summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-11-16 01:02:47 +0000
committerKarl Berry <karl@freefriends.org>2006-11-16 01:02:47 +0000
commit3c85b55e2f245fb7edac7e445f107e6d0bb423ae (patch)
treec62b7f80edafe0455310d08e09f4218127bf9e87
parente5ecff27a26ef59e1dbe9702677687fd7107be3a (diff)
context update
git-svn-id: svn://tug.org/texlive/trunk@2444 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/bibtex/bst/context/cont-ab.bst127
-rw-r--r--Master/texmf-dist/bibtex/bst/context/cont-au.bst125
-rw-r--r--Master/texmf-dist/bibtex/bst/context/cont-no.bst127
-rw-r--r--Master/texmf-dist/bibtex/bst/context/cont-ti.bst127
-rw-r--r--Master/texmf-dist/context/config/texexec.rme2
-rw-r--r--Master/texmf-dist/context/data/cont-fr-scite.properties76
-rw-r--r--Master/texmf-dist/context/data/cont-nl-scite.properties4
-rw-r--r--Master/texmf-dist/context/data/context-jedit-fr.xml459
-rw-r--r--Master/texmf-dist/context/data/context-jedit-nl.xml4
-rw-r--r--Master/texmf-dist/context/data/context.properties202
-rw-r--r--Master/texmf-dist/context/data/context.vim155
-rw-r--r--Master/texmf-dist/context/data/contextnames.txt14096
-rw-r--r--Master/texmf-dist/context/data/mp.vim138
-rw-r--r--Master/texmf-dist/context/data/scite-ctx.properties44
-rw-r--r--Master/texmf-dist/context/data/scite-ctx.readme8
-rw-r--r--Master/texmf-dist/context/data/type-ghz.dat4
-rw-r--r--Master/texmf-dist/context/data/type-tmf.dat69
-rw-r--r--Master/texmf-dist/doc/context/bib/bibmod-doc.pdfbin0 -> 271422 bytes
-rw-r--r--Master/texmf-dist/doc/context/bib/bibmod-doc.tex732
-rw-r--r--Master/texmf-dist/doc/scripts/context/perl/texshow.170
-rw-r--r--Master/texmf-dist/doc/scripts/context/perl/texshow.html137
-rw-r--r--Master/texmf-dist/fonts/enc/dvips/context/ec-sc.enc84
-rw-r--r--Master/texmf-dist/fonts/enc/dvips/context/texnansi-sc.enc319
-rw-r--r--Master/texmf-dist/fonts/enc/pdftex/context/koeieletters-ex.enc259
-rw-r--r--Master/texmf-dist/fonts/enc/pdftex/context/koeieletters-mi.enc271
-rw-r--r--Master/texmf-dist/fonts/enc/pdftex/context/koeieletters-sy.enc271
-rw-r--r--Master/texmf-dist/fonts/enc/pdftex/context/koeieletters.enc271
-rw-r--r--Master/texmf-dist/fonts/enc/pdftex/context/koeielogos.enc258
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/8r-base.map78
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/ec-base.map78
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/ec-os-public-lm.map69
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/ec-public-lm.map69
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/el-public-lm.map69
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/original-adobe-euro.map12
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/original-ams-base.map39
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/original-ams-cmr.map79
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/original-ams-euler.map19
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/original-base.map40
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/original-context-symbol.map3
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/original-dummy.map1
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/original-empty.map1
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/original-micropress-informal.map7
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/original-public-csr.map56
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/original-public-lm.map97
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/original-public-plr.map77
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/original-public-vnr.map55
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/original-vogel-symbol.map1
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/original-wasy.map7
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/original-youngryu-px.map36
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/original-youngryu-tx.map66
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/qx-base.map25
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/qx-os-public-lm.map69
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/qx-public-lm.map69
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/t5-base.map36
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/t5-os-public-lm.map69
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/t5-public-lm.map69
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/texnansi-base.map1
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/texnansi-os-public-lm.map69
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfm/context/texnansi-public-lm.map69
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/8r-base.map135
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/ec-base.map135
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/ec-os-public-lm.map69
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/ec-public-lm.map69
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/el-public-lm.map69
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/koeieletters.map8
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/original-adobe-euro.map25
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/original-ams-base.map47
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/original-ams-cmr.map97
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/original-ams-euler.map25
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/original-base.map63
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/original-context-symbol.map3
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/original-dummy.map1
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/original-empty.map4
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/original-micropress-informal.map7
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/original-public-csr.map56
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/original-public-lm.map170
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/original-public-plr.map77
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/original-public-vnr.map59
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/original-vogel-symbol.map2
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/original-wasy.map7
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/original-youngryu-px.map50
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/original-youngryu-tx.map89
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/qx-base.map55
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/qx-os-public-lm.map69
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/qx-public-lm.map69
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/t5-base.map72
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/t5-os-public-lm.map69
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/t5-public-lm.map69
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/texnansi-base.map142
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/texnansi-os-public-lm.map69
-rw-r--r--Master/texmf-dist/fonts/map/pdftex/context/texnansi-public-lm.map69
-rw-r--r--Master/texmf-dist/fonts/pfm/hoekwater/context/contnav.pfmbin0 -> 482 bytes
-rw-r--r--Master/texmf-dist/fonts/pfm/jmn/hans/hans-sh.pfmbin0 -> 754 bytes
-rw-r--r--Master/texmf-dist/fonts/pfm/jmn/hans/hans.pfmbin0 -> 748 bytes
-rw-r--r--Master/texmf-dist/fonts/truetype/hoekwater/lm/lmtypewriter10-regular.ttfbin0 -> 128311 bytes
-rw-r--r--Master/texmf-dist/metapost/context/base/metafun.mp10
-rw-r--r--Master/texmf-dist/metapost/context/base/mp-base.mp556
-rw-r--r--Master/texmf-dist/metapost/context/base/mp-core.mp74
-rw-r--r--Master/texmf-dist/metapost/context/base/mp-spec.mp181
-rw-r--r--Master/texmf-dist/metapost/context/base/mp-tool.mp13
-rw-r--r--Master/texmf-dist/metapost/context/base/mp-txts.mp67
-rw-r--r--Master/texmf-dist/scripts/context/lua/scite-ctx.lua925
-rw-r--r--Master/texmf-dist/scripts/context/perl/makempy.pl6
-rw-r--r--Master/texmf-dist/scripts/context/perl/mptopdf.pl165
-rw-r--r--Master/texmf-dist/scripts/context/perl/pdftrimwhite.pl525
-rw-r--r--Master/texmf-dist/scripts/context/perl/texexec.pl74
-rw-r--r--Master/texmf-dist/scripts/context/perl/texexec.rme2
-rw-r--r--Master/texmf-dist/scripts/context/perl/texshow.pl82
-rw-r--r--Master/texmf-dist/scripts/context/perl/texutil.pl32
-rw-r--r--Master/texmf-dist/scripts/context/ruby/base/ctx.rb117
-rw-r--r--Master/texmf-dist/scripts/context/ruby/base/exa.rb406
-rw-r--r--Master/texmf-dist/scripts/context/ruby/base/file.rb10
-rw-r--r--Master/texmf-dist/scripts/context/ruby/base/kpse.rb93
-rw-r--r--Master/texmf-dist/scripts/context/ruby/base/kpse/drb.rb57
-rw-r--r--Master/texmf-dist/scripts/context/ruby/base/kpse/soap.rb79
-rw-r--r--Master/texmf-dist/scripts/context/ruby/base/kpse/trees.rb84
-rw-r--r--Master/texmf-dist/scripts/context/ruby/base/kpsedirect.rb34
-rw-r--r--Master/texmf-dist/scripts/context/ruby/base/kpsefast.rb483
-rw-r--r--Master/texmf-dist/scripts/context/ruby/base/kpseremote.rb116
-rw-r--r--Master/texmf-dist/scripts/context/ruby/base/kpserunner.rb87
-rw-r--r--Master/texmf-dist/scripts/context/ruby/base/merge.rb139
-rw-r--r--Master/texmf-dist/scripts/context/ruby/base/mp.rb167
-rw-r--r--Master/texmf-dist/scripts/context/ruby/base/pdf.rb34
-rw-r--r--Master/texmf-dist/scripts/context/ruby/base/state.rb2
-rw-r--r--Master/texmf-dist/scripts/context/ruby/base/switch.rb43
-rw-r--r--Master/texmf-dist/scripts/context/ruby/base/system.rb25
-rw-r--r--Master/texmf-dist/scripts/context/ruby/base/tex.rb1283
-rw-r--r--Master/texmf-dist/scripts/context/ruby/base/texutil.rb308
-rw-r--r--Master/texmf-dist/scripts/context/ruby/base/tool.rb2
-rw-r--r--Master/texmf-dist/scripts/context/ruby/base/variables.rb87
-rw-r--r--Master/texmf-dist/scripts/context/ruby/ctxtools.rb1251
-rw-r--r--Master/texmf-dist/scripts/context/ruby/fcd_start.rb32
-rw-r--r--Master/texmf-dist/scripts/context/ruby/graphics/gs.rb21
-rw-r--r--Master/texmf-dist/scripts/context/ruby/imgtopdf.rb86
-rw-r--r--Master/texmf-dist/scripts/context/ruby/mpstools.rb2
-rw-r--r--Master/texmf-dist/scripts/context/ruby/newimgtopdf.rb82
-rw-r--r--Master/texmf-dist/scripts/context/ruby/newpstopdf.rb524
-rw-r--r--Master/texmf-dist/scripts/context/ruby/newtexexec.rb613
-rw-r--r--Master/texmf-dist/scripts/context/ruby/newtexutil.rb100
-rw-r--r--Master/texmf-dist/scripts/context/ruby/pdftools.rb816
-rw-r--r--Master/texmf-dist/scripts/context/ruby/pstopdf.rb527
-rw-r--r--Master/texmf-dist/scripts/context/ruby/rlxtools.rb83
-rw-r--r--Master/texmf-dist/scripts/context/ruby/rscortool.rb63
-rw-r--r--Master/texmf-dist/scripts/context/ruby/rsfiltool.rb340
-rw-r--r--Master/texmf-dist/scripts/context/ruby/rslibtool.rb114
-rw-r--r--Master/texmf-dist/scripts/context/ruby/runtools.rb505
-rw-r--r--Master/texmf-dist/scripts/context/ruby/texexec.rb708
-rw-r--r--Master/texmf-dist/scripts/context/ruby/texmfstart.rb2268
-rw-r--r--Master/texmf-dist/scripts/context/ruby/textools.rb67
-rw-r--r--Master/texmf-dist/scripts/context/ruby/texutil.rb96
-rw-r--r--Master/texmf-dist/scripts/context/ruby/tmftools.rb61
-rw-r--r--Master/texmf-dist/scripts/context/ruby/www/admin.rb215
-rw-r--r--Master/texmf-dist/scripts/context/ruby/www/common.rb80
-rw-r--r--Master/texmf-dist/scripts/context/ruby/www/dir.rb155
-rw-r--r--Master/texmf-dist/scripts/context/ruby/www/exa.rb386
-rw-r--r--Master/texmf-dist/scripts/context/ruby/www/lib.rb1399
-rw-r--r--Master/texmf-dist/scripts/context/ruby/www/login.rb13
-rw-r--r--Master/texmf-dist/scripts/context/ruby/wwwclient.rb677
-rw-r--r--Master/texmf-dist/scripts/context/ruby/wwwserver.rb293
-rw-r--r--Master/texmf-dist/scripts/context/ruby/wwwwatch.rb483
-rw-r--r--Master/texmf-dist/scripts/context/ruby/xmltools.rb303
-rw-r--r--Master/texmf-dist/scripts/context/stubs/mswin/ctxtools.bat2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/mswin/exatools.bat2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/mswin/makempy.bat2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/mswin/mpstools.bat2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/mswin/mptopdf.bat2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/mswin/pdftools.bat2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/mswin/pstopdf.bat2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/mswin/rlxtools.bat2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/mswin/runtools.bat2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/mswin/texexec.bat2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/mswin/texfont.bat2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/mswin/textools.bat2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/mswin/texutil.bat2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/mswin/tmftools.bat2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/mswin/xmltools.bat2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/unix/ctxtools2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/unix/exatools2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/unix/makempy2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/unix/mpstools2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/unix/mptopdf2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/unix/pdftools2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/unix/pstopdf2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/unix/rlxtools2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/unix/runtools2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/unix/texexec2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/unix/texfont2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/unix/textools2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/unix/texutil2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/unix/tmftools2
-rw-r--r--Master/texmf-dist/scripts/context/stubs/unix/xmltools2
-rw-r--r--Master/texmf-dist/tex/context/base/colo-ini.tex178
-rw-r--r--Master/texmf-dist/tex/context/base/cont-fil.tex8
-rw-r--r--Master/texmf-dist/tex/context/base/cont-fr.tex38
-rw-r--r--Master/texmf-dist/tex/context/base/cont-log.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/cont-new.tex345
-rw-r--r--Master/texmf-dist/tex/context/base/cont-old.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/cont-sys.ori3
-rw-r--r--Master/texmf-dist/tex/context/base/context.tex51
-rw-r--r--Master/texmf-dist/tex/context/base/core-bar.tex195
-rw-r--r--Master/texmf-dist/tex/context/base/core-box.tex4
-rw-r--r--Master/texmf-dist/tex/context/base/core-buf.tex81
-rw-r--r--Master/texmf-dist/tex/context/base/core-con.tex103
-rw-r--r--Master/texmf-dist/tex/context/base/core-dat.tex138
-rw-r--r--Master/texmf-dist/tex/context/base/core-des.tex193
-rw-r--r--Master/texmf-dist/tex/context/base/core-fig.tex251
-rw-r--r--Master/texmf-dist/tex/context/base/core-fil.tex134
-rw-r--r--Master/texmf-dist/tex/context/base/core-fld.tex34
-rw-r--r--Master/texmf-dist/tex/context/base/core-fnt.tex5
-rw-r--r--Master/texmf-dist/tex/context/base/core-ini.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/core-int.tex40
-rw-r--r--Master/texmf-dist/tex/context/base/core-itm.tex443
-rw-r--r--Master/texmf-dist/tex/context/base/core-job.tex76
-rw-r--r--Master/texmf-dist/tex/context/base/core-lnt.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/core-lst.tex99
-rw-r--r--Master/texmf-dist/tex/context/base/core-mak.tex18
-rw-r--r--Master/texmf-dist/tex/context/base/core-mar.tex237
-rw-r--r--Master/texmf-dist/tex/context/base/core-mat.tex1190
-rw-r--r--Master/texmf-dist/tex/context/base/core-mis.tex1046
-rw-r--r--Master/texmf-dist/tex/context/base/core-nav.tex75
-rw-r--r--Master/texmf-dist/tex/context/base/core-new.tex277
-rw-r--r--Master/texmf-dist/tex/context/base/core-not.tex230
-rw-r--r--Master/texmf-dist/tex/context/base/core-ntb.tex797
-rw-r--r--Master/texmf-dist/tex/context/base/core-num.tex28
-rw-r--r--Master/texmf-dist/tex/context/base/core-obj.tex5
-rw-r--r--Master/texmf-dist/tex/context/base/core-pgr.tex1675
-rw-r--r--Master/texmf-dist/tex/context/base/core-pos.tex1923
-rw-r--r--Master/texmf-dist/tex/context/base/core-ref.tex137
-rw-r--r--Master/texmf-dist/tex/context/base/core-reg.tex458
-rw-r--r--Master/texmf-dist/tex/context/base/core-rul.tex498
-rw-r--r--Master/texmf-dist/tex/context/base/core-sec.tex582
-rw-r--r--Master/texmf-dist/tex/context/base/core-snc.tex27
-rw-r--r--Master/texmf-dist/tex/context/base/core-spa.tex558
-rw-r--r--Master/texmf-dist/tex/context/base/core-syn.tex110
-rw-r--r--Master/texmf-dist/tex/context/base/core-sys.tex85
-rw-r--r--Master/texmf-dist/tex/context/base/core-tab.tex390
-rw-r--r--Master/texmf-dist/tex/context/base/core-tbl.tex178
-rw-r--r--Master/texmf-dist/tex/context/base/core-tsp.tex463
-rw-r--r--Master/texmf-dist/tex/context/base/core-uti.tex25
-rw-r--r--Master/texmf-dist/tex/context/base/core-var.tex258
-rw-r--r--Master/texmf-dist/tex/context/base/core-ver.tex471
-rw-r--r--Master/texmf-dist/tex/context/base/enco-032.tex82
-rw-r--r--Master/texmf-dist/tex/context/base/enco-037.tex276
-rw-r--r--Master/texmf-dist/tex/context/base/enco-agr.tex14
-rw-r--r--Master/texmf-dist/tex/context/base/enco-cas.tex12
-rw-r--r--Master/texmf-dist/tex/context/base/enco-chi.tex124
-rw-r--r--Master/texmf-dist/tex/context/base/enco-def.tex108
-rw-r--r--Master/texmf-dist/tex/context/base/enco-ec.tex418
-rw-r--r--Master/texmf-dist/tex/context/base/enco-fde.tex9
-rw-r--r--Master/texmf-dist/tex/context/base/enco-ffr.tex7
-rw-r--r--Master/texmf-dist/tex/context/base/enco-fpl.tex82
-rw-r--r--Master/texmf-dist/tex/context/base/enco-fro.tex10
-rw-r--r--Master/texmf-dist/tex/context/base/enco-ini.tex199
-rw-r--r--Master/texmf-dist/tex/context/base/enco-mis.tex14
-rw-r--r--Master/texmf-dist/tex/context/base/enco-pfr.tex45
-rw-r--r--Master/texmf-dist/tex/context/base/enco-pol.tex48
-rw-r--r--Master/texmf-dist/tex/context/base/enco-run.tex11
-rw-r--r--Master/texmf-dist/tex/context/base/filt-ini.tex14
-rw-r--r--Master/texmf-dist/tex/context/base/font-chi.tex231
-rw-r--r--Master/texmf-dist/tex/context/base/font-ini.tex261
-rw-r--r--Master/texmf-dist/tex/context/base/font-jap.tex83
-rw-r--r--Master/texmf-dist/tex/context/base/font-run.tex25
-rw-r--r--Master/texmf-dist/tex/context/base/font-uni.tex224
-rw-r--r--Master/texmf-dist/tex/context/base/hand-def.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/hand-ini.tex35
-rw-r--r--Master/texmf-dist/tex/context/base/java-ini.tex10
-rw-r--r--Master/texmf-dist/tex/context/base/lang-all.xml14
-rw-r--r--Master/texmf-dist/tex/context/base/lang-chi.tex133
-rw-r--r--Master/texmf-dist/tex/context/base/lang-ctx.tex14
-rw-r--r--Master/texmf-dist/tex/context/base/lang-ger.tex158
-rw-r--r--Master/texmf-dist/tex/context/base/lang-grk.tex7
-rw-r--r--Master/texmf-dist/tex/context/base/lang-ini.tex128
-rw-r--r--Master/texmf-dist/tex/context/base/lang-ita.tex21
-rw-r--r--Master/texmf-dist/tex/context/base/lang-jap.tex235
-rw-r--r--Master/texmf-dist/tex/context/base/lang-run.tex6
-rw-r--r--Master/texmf-dist/tex/context/base/lang-sla.tex133
-rw-r--r--Master/texmf-dist/tex/context/base/lang-spe.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/m-cweb.tex4
-rw-r--r--Master/texmf-dist/tex/context/base/m-database.tex407
-rw-r--r--Master/texmf-dist/tex/context/base/m-dratex.tex21
-rw-r--r--Master/texmf-dist/tex/context/base/m-gamma.tex38
-rw-r--r--Master/texmf-dist/tex/context/base/m-gnuplot.tex168
-rw-r--r--Master/texmf-dist/tex/context/base/m-graph.tex156
-rw-r--r--Master/texmf-dist/tex/context/base/m-newmat.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/m-plus.tex5
-rw-r--r--Master/texmf-dist/tex/context/base/m-pstric.tex78
-rw-r--r--Master/texmf-dist/tex/context/base/m-r.tex216
-rw-r--r--Master/texmf-dist/tex/context/base/m-steps.tex171
-rw-r--r--Master/texmf-dist/tex/context/base/m-streams.tex439
-rw-r--r--Master/texmf-dist/tex/context/base/m-subsub.tex20
-rw-r--r--Master/texmf-dist/tex/context/base/m-tryout.tex4
-rw-r--r--Master/texmf-dist/tex/context/base/m-units.tex33
-rw-r--r--Master/texmf-dist/tex/context/base/m-visual.tex21
-rw-r--r--Master/texmf-dist/tex/context/base/math-cow.tex30
-rw-r--r--Master/texmf-dist/tex/context/base/math-eul.tex106
-rw-r--r--Master/texmf-dist/tex/context/base/math-ext.tex229
-rw-r--r--Master/texmf-dist/tex/context/base/math-ini.tex135
-rw-r--r--Master/texmf-dist/tex/context/base/math-mis.tex49
-rw-r--r--Master/texmf-dist/tex/context/base/math-pln.tex86
-rw-r--r--Master/texmf-dist/tex/context/base/math-tex.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/math-uni.tex171
-rw-r--r--Master/texmf-dist/tex/context/base/meta-dum.tex12
-rw-r--r--Master/texmf-dist/tex/context/base/meta-fig.tex17
-rw-r--r--Master/texmf-dist/tex/context/base/meta-ini.tex261
-rw-r--r--Master/texmf-dist/tex/context/base/meta-pag.tex45
-rw-r--r--Master/texmf-dist/tex/context/base/meta-pdf.tex3373
-rw-r--r--Master/texmf-dist/tex/context/base/meta-tex.tex206
-rw-r--r--Master/texmf-dist/tex/context/base/meta-txt.tex4
-rw-r--r--Master/texmf-dist/tex/context/base/mult-com.tex1139
-rw-r--r--Master/texmf-dist/tex/context/base/mult-con.tex1354
-rw-r--r--Master/texmf-dist/tex/context/base/mult-ini.tex27
-rw-r--r--Master/texmf-dist/tex/context/base/mult-sys.tex78
-rw-r--r--Master/texmf-dist/tex/context/base/page-app.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/page-bck.tex30
-rw-r--r--Master/texmf-dist/tex/context/base/page-flt.tex767
-rw-r--r--Master/texmf-dist/tex/context/base/page-imp.tex55
-rw-r--r--Master/texmf-dist/tex/context/base/page-ini.tex123
-rw-r--r--Master/texmf-dist/tex/context/base/page-lay.tex73
-rw-r--r--Master/texmf-dist/tex/context/base/page-lin.tex41
-rw-r--r--Master/texmf-dist/tex/context/base/page-log.tex6
-rw-r--r--Master/texmf-dist/tex/context/base/page-lyr.tex30
-rw-r--r--Master/texmf-dist/tex/context/base/page-mak.tex16
-rw-r--r--Master/texmf-dist/tex/context/base/page-mar.tex10
-rw-r--r--Master/texmf-dist/tex/context/base/page-mul.tex182
-rw-r--r--Master/texmf-dist/tex/context/base/page-num.tex38
-rw-r--r--Master/texmf-dist/tex/context/base/page-one.tex138
-rw-r--r--Master/texmf-dist/tex/context/base/page-plg.tex209
-rw-r--r--Master/texmf-dist/tex/context/base/page-run.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/page-set.tex138
-rw-r--r--Master/texmf-dist/tex/context/base/page-sid.tex20
-rw-r--r--Master/texmf-dist/tex/context/base/page-spr.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/page-str.tex366
-rw-r--r--Master/texmf-dist/tex/context/base/page-txt.tex131
-rw-r--r--Master/texmf-dist/tex/context/base/prop-lay.tex12
-rw-r--r--Master/texmf-dist/tex/context/base/regi-cp1250.tex153
-rw-r--r--Master/texmf-dist/tex/context/base/regi-cp1251.tex152
-rw-r--r--Master/texmf-dist/tex/context/base/regi-cp1252.tex156
-rw-r--r--Master/texmf-dist/tex/context/base/regi-cp1253.tex153
-rw-r--r--Master/texmf-dist/tex/context/base/regi-cp1254.tex153
-rw-r--r--Master/texmf-dist/tex/context/base/regi-cp1257.tex153
-rw-r--r--Master/texmf-dist/tex/context/base/regi-cyr.tex137
-rw-r--r--Master/texmf-dist/tex/context/base/regi-ini.tex12
-rw-r--r--Master/texmf-dist/tex/context/base/regi-iso-8859-1.tex157
-rw-r--r--Master/texmf-dist/tex/context/base/regi-iso-8859-15.tex157
-rw-r--r--Master/texmf-dist/tex/context/base/regi-iso-8859-2.tex155
-rw-r--r--Master/texmf-dist/tex/context/base/regi-iso-8859-7.tex155
-rw-r--r--Master/texmf-dist/tex/context/base/regi-syn.tex62
-rw-r--r--Master/texmf-dist/tex/context/base/regi-uni.tex13
-rw-r--r--Master/texmf-dist/tex/context/base/regi-utf.tex18
-rw-r--r--Master/texmf-dist/tex/context/base/regi-vis.tex296
-rw-r--r--Master/texmf-dist/tex/context/base/rlxtools.rlx92
-rw-r--r--Master/texmf-dist/tex/context/base/s-abr-01.tex7
-rw-r--r--Master/texmf-dist/tex/context/base/s-chi-00.tex37
-rw-r--r--Master/texmf-dist/tex/context/base/s-jap-00.tex23
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-01.tex92
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-02.tex108
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-03.tex40
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-04.tex152
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-05.tex80
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-06.tex42
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-07.tex28
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-13.tex138
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-14.tex68
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-30.tex258
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-50.tex28
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-60.tex31
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-61.tex10
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-62.tex210
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-63.tex73
-rw-r--r--Master/texmf-dist/tex/context/base/s-syn-01.tex54
-rw-r--r--Master/texmf-dist/tex/context/base/sort-def.tex3
-rw-r--r--Master/texmf-dist/tex/context/base/sort-ini.tex66
-rw-r--r--Master/texmf-dist/tex/context/base/sort-lan.tex103
-rw-r--r--Master/texmf-dist/tex/context/base/spec-def.tex6
-rw-r--r--Master/texmf-dist/tex/context/base/spec-dpx.tex123
-rw-r--r--Master/texmf-dist/tex/context/base/spec-dvi.tex6
-rw-r--r--Master/texmf-dist/tex/context/base/spec-fdf.tex41
-rw-r--r--Master/texmf-dist/tex/context/base/spec-ini.tex41
-rw-r--r--Master/texmf-dist/tex/context/base/spec-mis.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/spec-tpd.tex219
-rw-r--r--Master/texmf-dist/tex/context/base/spec-xtx.tex112
-rw-r--r--Master/texmf-dist/tex/context/base/supp-ali.tex5
-rw-r--r--Master/texmf-dist/tex/context/base/supp-box.tex37
-rw-r--r--Master/texmf-dist/tex/context/base/supp-fil.tex14
-rw-r--r--Master/texmf-dist/tex/context/base/supp-fun.tex5
-rw-r--r--Master/texmf-dist/tex/context/base/supp-lan.tex126
-rw-r--r--Master/texmf-dist/tex/context/base/supp-mat.tex28
-rw-r--r--Master/texmf-dist/tex/context/base/supp-mis.tex51
-rw-r--r--Master/texmf-dist/tex/context/base/supp-mpe.tex11
-rw-r--r--Master/texmf-dist/tex/context/base/supp-mps.tex342
-rw-r--r--Master/texmf-dist/tex/context/base/supp-mrk.tex6
-rw-r--r--Master/texmf-dist/tex/context/base/supp-pdf.tex660
-rw-r--r--Master/texmf-dist/tex/context/base/supp-ran.tex27
-rw-r--r--Master/texmf-dist/tex/context/base/supp-vis.tex18
-rw-r--r--Master/texmf-dist/tex/context/base/symb-cow.tex113
-rw-r--r--Master/texmf-dist/tex/context/base/symb-glm.tex1
-rw-r--r--Master/texmf-dist/tex/context/base/symb-ini.tex31
-rw-r--r--Master/texmf-dist/tex/context/base/symb-was.tex205
-rw-r--r--Master/texmf-dist/tex/context/base/syst-con.tex51
-rw-r--r--Master/texmf-dist/tex/context/base/syst-etx.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/syst-ext.tex211
-rw-r--r--Master/texmf-dist/tex/context/base/syst-gen.tex306
-rw-r--r--Master/texmf-dist/tex/context/base/syst-new.tex59
-rw-r--r--Master/texmf-dist/tex/context/base/syst-pln.tex26
-rw-r--r--Master/texmf-dist/tex/context/base/syst-xtx.tex13
-rw-r--r--Master/texmf-dist/tex/context/base/type-akb.tex45
-rw-r--r--Master/texmf-dist/tex/context/base/type-buy.tex9
-rw-r--r--Master/texmf-dist/tex/context/base/type-cow.tex83
-rw-r--r--Master/texmf-dist/tex/context/base/type-dis.tex55
-rw-r--r--Master/texmf-dist/tex/context/base/type-enc.tex162
-rw-r--r--Master/texmf-dist/tex/context/base/type-exa.tex71
-rw-r--r--Master/texmf-dist/tex/context/base/type-ghz.tex288
-rw-r--r--Master/texmf-dist/tex/context/base/type-gyr.tex36
-rw-r--r--Master/texmf-dist/tex/context/base/type-ini.tex64
-rw-r--r--Master/texmf-dist/tex/context/base/type-map.tex65
-rw-r--r--Master/texmf-dist/tex/context/base/type-pre.tex1
-rw-r--r--Master/texmf-dist/tex/context/base/type-syn.tex147
-rw-r--r--Master/texmf-dist/tex/context/base/unic-002.tex95
-rw-r--r--Master/texmf-dist/tex/context/base/unic-032.tex380
-rw-r--r--Master/texmf-dist/tex/context/base/unic-033.tex374
-rw-r--r--Master/texmf-dist/tex/context/base/unic-037.tex278
-rw-r--r--Master/texmf-dist/tex/context/base/unic-251.tex34
-rw-r--r--Master/texmf-dist/tex/context/base/unic-cjk.tex16
-rw-r--r--Master/texmf-dist/tex/context/base/unic-exp.tex44
-rw-r--r--Master/texmf-dist/tex/context/base/unic-ini.tex99
-rw-r--r--Master/texmf-dist/tex/context/base/unic-run.tex29
-rw-r--r--Master/texmf-dist/tex/context/base/verb-c.tex484
-rw-r--r--Master/texmf-dist/tex/context/base/verb-ini.tex117
-rw-r--r--Master/texmf-dist/tex/context/base/x-chemml.xsd93
-rw-r--r--Master/texmf-dist/tex/context/base/x-contml.tex13
-rw-r--r--Master/texmf-dist/tex/context/base/x-contml.xsd375
-rw-r--r--Master/texmf-dist/tex/context/base/x-corres.rng170
-rw-r--r--Master/texmf-dist/tex/context/base/x-fe.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/x-fig-00.dtd24
-rw-r--r--Master/texmf-dist/tex/context/base/x-fig-00.xsd77
-rw-r--r--Master/texmf-dist/tex/context/base/x-fig-01.tex8
-rw-r--r--Master/texmf-dist/tex/context/base/x-mathml.xsd11
-rw-r--r--Master/texmf-dist/tex/context/base/x-newcml.tex454
-rw-r--r--Master/texmf-dist/tex/context/base/x-newmme.tex429
-rw-r--r--Master/texmf-dist/tex/context/base/x-newmml.tex2496
-rw-r--r--Master/texmf-dist/tex/context/base/x-newmmo.tex126
-rw-r--r--Master/texmf-dist/tex/context/base/x-newpml.tex250
-rw-r--r--Master/texmf-dist/tex/context/base/x-om2cml.xsl1258
-rw-r--r--Master/texmf-dist/tex/context/base/x-openmath.tex4
-rw-r--r--Master/texmf-dist/tex/context/base/x-openmath.xsl35
-rw-r--r--Master/texmf-dist/tex/context/base/x-physml.xsd172
-rw-r--r--Master/texmf-dist/tex/context/base/x-res-00.tex37
-rw-r--r--Master/texmf-dist/tex/context/base/x-res-01.tex65
-rw-r--r--Master/texmf-dist/tex/context/base/x-res-04.tex46
-rw-r--r--Master/texmf-dist/tex/context/base/x-res-08.tex4
-rw-r--r--Master/texmf-dist/tex/context/base/x-set-11.tex101
-rw-r--r--Master/texmf-dist/tex/context/base/x-set-12.tex106
-rw-r--r--Master/texmf-dist/tex/context/base/x-sm2om.xsl229
-rw-r--r--Master/texmf-dist/tex/context/base/x-xml-11.tex44
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-cml.tex37
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-ent.tex1
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-ext.tex79
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-ini.tex50
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-map.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-mmc.tex8
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-mml.tex4
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-mmp.tex31
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-pml.tex41
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-pmu.tex68
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-pre.tex20
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-run.tex4
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-stk.tex235
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-xsl.tex2
-rw-r--r--Master/texmf-dist/tex/context/bib/bibl-ams.tex438
-rw-r--r--Master/texmf-dist/tex/context/bib/bibl-apa-de.tex388
-rw-r--r--Master/texmf-dist/tex/context/bib/bibl-apa-fr.tex389
-rw-r--r--Master/texmf-dist/tex/context/bib/bibl-apa.tex55
-rw-r--r--Master/texmf-dist/tex/context/bib/bibl-aps.tex36
-rw-r--r--Master/texmf-dist/tex/context/bib/bibl-num-fr.tex427
-rw-r--r--Master/texmf-dist/tex/context/bib/bibl-num.tex427
-rw-r--r--Master/texmf-dist/tex/context/bib/bibl-ssa.tex486
-rw-r--r--Master/texmf-dist/tex/context/bib/t-bib.tex1328
-rw-r--r--Master/texmf-dist/tex/context/config/cont-fr.ini5
-rw-r--r--Master/texmf-dist/tex/context/extra/mag-0000.tex4
-rw-r--r--Master/texmf-dist/tex/context/interface/cont-cz.xml1009
-rw-r--r--Master/texmf-dist/tex/context/interface/cont-de.xml1009
-rw-r--r--Master/texmf-dist/tex/context/interface/cont-en.xml1003
-rw-r--r--Master/texmf-dist/tex/context/interface/cont-fr.xml9890
-rw-r--r--Master/texmf-dist/tex/context/interface/cont-it.xml1009
-rw-r--r--Master/texmf-dist/tex/context/interface/cont-nl.xml1011
-rw-r--r--Master/texmf-dist/tex/context/interface/cont-ro.xml1013
-rw-r--r--Master/texmf-dist/tex/context/interface/keys-cz.xml28
-rw-r--r--Master/texmf-dist/tex/context/interface/keys-de.xml28
-rw-r--r--Master/texmf-dist/tex/context/interface/keys-en.xml28
-rw-r--r--Master/texmf-dist/tex/context/interface/keys-fr.xml1623
-rw-r--r--Master/texmf-dist/tex/context/interface/keys-it.xml28
-rw-r--r--Master/texmf-dist/tex/context/interface/keys-nl.xml34
-rw-r--r--Master/texmf-dist/tex/context/interface/keys-ro.xml30
-rw-r--r--Master/texmf-dist/tex/context/interface/t-bib.xml403
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-agr.hyp32
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-agr.pat2048
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-ca.pat1094
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-cy.pat62
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-cz.hyp6
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-cz.pat2894
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-da.pat123
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-de.pat1310
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-deo.pat1316
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-en.hyp2
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-en.pat493
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-es.pat254
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-fi.pat108
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-fr.pat620
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-hr.pat976
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-hu.pat16138
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-is.pat4190
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-la.pat8
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-nl.pat366
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-no.pat2374
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-pl.hyp18
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-pl.pat2522
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-pt.pat340
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-ro.pat68
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-ru.hyp195
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-ru.pat4502
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-sk.hyp11
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-sk.pat2008
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-sl.pat352
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-sv.pat1794
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-tr.pat792
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-uk.hyp2
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-uk.pat2
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-us.hyp25
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-us.pat4949
-rw-r--r--Master/texmf-dist/tex/context/user/cont-sys.rme3
-rw-r--r--Master/texmf-dist/tex/generic/context/mptopdf.tex137
531 files changed, 120016 insertions, 40633 deletions
diff --git a/Master/texmf-dist/bibtex/bst/context/cont-ab.bst b/Master/texmf-dist/bibtex/bst/context/cont-ab.bst
index cc3c9411ae9..c524ff8ee08 100644
--- a/Master/texmf-dist/bibtex/bst/context/cont-ab.bst
+++ b/Master/texmf-dist/bibtex/bst/context/cont-ab.bst
@@ -11,7 +11,7 @@
% only two lines: the ITERATEs right before the two SORTs can
% have different values, sorting by either one of
%
-% -------------------------- cont-master.bst clabel
+% -------------------------- cont-master.bst author
% - the author (+year, title) : cont-au.bst author
% - the title (+author, year) : cont-ti.bst title
% - the short key a la abbrev : cont-ab.bst clabel
@@ -58,6 +58,7 @@
% \chapter
% \city
% \comment
+% \country
% \crossref
% \edition
% \isbn
@@ -70,6 +71,7 @@
% \month
% \names
% \note
+% \notes
% \organization
% \pages
% \pubname
@@ -78,11 +80,23 @@
% \size
% \thekey
% \title
-% \type
+% \bibtype
% \volume
% \eprint
% \doi
% \howpublished
+% \biburl
+% \lastchecked
+% for ieee:
+
+% \nationality
+% \assignee
+% \bibnumber
+% \day
+% \dayfiled
+% \monthfiled
+% \yearfiled
+% \revision
ENTRY
{ abstract
@@ -92,6 +106,7 @@ ENTRY
booktitle
chapter
comment
+ country
doi
edition
editor
@@ -105,9 +120,11 @@ ENTRY
keyword
keywords
language
+ lastchecked
month
names
note
+ notes
number
organization
pages
@@ -117,8 +134,17 @@ ENTRY
size
title
type
+ url
volume
year
+ nationality
+ assignee
+ bibnumber
+ day
+ dayfiled
+ monthfiled
+ yearfiled
+ revision
}
{}
{ label extra.label sort.label clabel sort.clabel ordinal.label}
@@ -197,11 +223,19 @@ FUNCTION {start.entry}
doi empty$
{}
{
- "o=" write$
+ "o={" write$
doi write$
- "," write$
+ "}," write$
} if$
newline$
+ url empty$
+ {}
+ {
+ "u={" write$
+ url write$
+ "}," write$
+ newline$
+ } if$
"n=" write$
ordinal.label write$
",s=" write$
@@ -212,7 +246,9 @@ FUNCTION {start.entry}
}
FUNCTION {stop.entry}
-{ "" "\note" note do.out
+{ "" "\country" country do.out
+ "" "\note" note do.out
+ "" "\notes" notes do.out
"" "\annotate" annotate do.out
"" "\eprint" eprint do.out
"" "\doi" doi do.out
@@ -222,6 +258,8 @@ FUNCTION {stop.entry}
"" "\abstract" abstract do.out
"" "\names" names do.out
"" "\size" size do.out
+ "" "\biburl" url do.out
+ "" "\lastchecked" lastchecked do.out
"\stoppublication" write$
newline$
}
@@ -380,7 +418,7 @@ FUNCTION {format.vol.num.page}
FUNCTION {format.type.chapter.pages}
{ chapter empty$
'format.pages
- { "" "\type" type do.out
+ { "" "\bibtype" type do.out
"" "\chapter" chapter do.out
}
if$
@@ -413,7 +451,7 @@ FUNCTION {format.in.booktitle.or.series}
FUNCTION {format.tr.number}
-{"" "\type" type do.out
+{"" "\bibtype" type do.out
"" "\volume" number do.out
}
@@ -566,7 +604,7 @@ FUNCTION {mastersthesis}
format.authors
format.year
format.t.title
- "" "\type" type do.out
+ "" "\bibtype" type do.out
"" "\pubname" school do.out
"" "\month" month do.out
"" "\city" address do.out
@@ -591,7 +629,7 @@ FUNCTION {phdthesis}
format.authors
format.title
format.year
- "" "\type" type do.out
+ "" "\bibtype" type do.out
"" "\month" month do.out
"" "\pubname" school do.out
"" "\city" address do.out
@@ -630,6 +668,65 @@ FUNCTION {unpublished}
stop.entry
}
+% 4 additions from IEEEtran
+
+FUNCTION {electronic}
+{ start.entry
+ format.authors
+ format.year
+ format.t.title
+ "" "\month" month do.out
+ "" "\city" address do.out
+ "" "\organization" organization do.out
+ "" "\howpublished" howpublished do.out
+ stop.entry
+}
+FUNCTION {patent}
+{ start.entry
+ format.authors
+ format.year
+ format.t.title
+ "" "\bibnumber" number do.out
+ "" "\city" address do.out
+ "" "\nationality" nationality do.out
+ "" "\assignee" assignee do.out
+ "" "\bibtype" type do.out
+ "" "\month" month do.out
+ "" "\monthfiled" monthfiled do.out
+ "" "\yearfiled" yearfiled do.out
+ "" "\day" day do.out
+ "" "\dayfiled" dayfiled do.out
+ stop.entry
+}
+FUNCTION {periodical}
+{ start.entry
+ format.editors
+ format.year
+ format.title
+ format.number.series
+ "" "\bibnumber" number do.out
+ "" "\month" month do.out
+ "" "\organization" organization do.out
+ stop.entry
+}
+FUNCTION {standard}
+{ start.entry
+ format.authors
+ format.year
+ format.title
+ "" "\bibtype" type do.out
+ "" "\organization" organization do.out
+ "" "\city" address do.out
+ "" "\revision" revision do.out
+ "" "\pubname" institution do.out
+ "" "\howpublished" howpublished do.out
+ "" "\bibnumber" number do.out
+ "" "\month" month do.out
+ stop.entry
+}
+
+FUNCTION {IEEEtranBSTCTL} { }
+
FUNCTION {default.type} { misc }
@@ -677,14 +774,20 @@ FUNCTION {chop.word}
FUNCTION {format.lab.names}
{ 's :=
s #1 "{vv~}{ll}" format.name$
+ "{" swap$ * "}" *
+ s num.names$ duplicate$
+ #1 >
+ { pop$ "," * }
+ { pop$ }
+ if$
s num.names$ duplicate$
#2 >
- { pop$ " et~al." * }
+ { pop$ "{}" * }
{ #2 <
'skip$
{ s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- { " et~al." * }
- { " and " * s #2 "{vv~}{ll}" format.name$ * }
+ { "{}" * }
+ { s #2 "{vv~}{ll}" format.name$ "{" swap$ * "}" * * }
if$
}
if$
diff --git a/Master/texmf-dist/bibtex/bst/context/cont-au.bst b/Master/texmf-dist/bibtex/bst/context/cont-au.bst
index 3af40718107..2eba98b0ae2 100644
--- a/Master/texmf-dist/bibtex/bst/context/cont-au.bst
+++ b/Master/texmf-dist/bibtex/bst/context/cont-au.bst
@@ -58,6 +58,7 @@
% \chapter
% \city
% \comment
+% \country
% \crossref
% \edition
% \isbn
@@ -70,6 +71,7 @@
% \month
% \names
% \note
+% \notes
% \organization
% \pages
% \pubname
@@ -78,11 +80,23 @@
% \size
% \thekey
% \title
-% \type
+% \bibtype
% \volume
% \eprint
% \doi
% \howpublished
+% \biburl
+% \lastchecked
+% for ieee:
+
+% \nationality
+% \assignee
+% \bibnumber
+% \day
+% \dayfiled
+% \monthfiled
+% \yearfiled
+% \revision
ENTRY
{ abstract
@@ -92,6 +106,7 @@ ENTRY
booktitle
chapter
comment
+ country
doi
edition
editor
@@ -105,9 +120,11 @@ ENTRY
keyword
keywords
language
+ lastchecked
month
names
note
+ notes
number
organization
pages
@@ -117,8 +134,17 @@ ENTRY
size
title
type
+ url
volume
year
+ nationality
+ assignee
+ bibnumber
+ day
+ dayfiled
+ monthfiled
+ yearfiled
+ revision
}
{}
{ label extra.label sort.label clabel sort.clabel ordinal.label}
@@ -197,11 +223,19 @@ FUNCTION {start.entry}
doi empty$
{}
{
- "o=" write$
+ "o={" write$
doi write$
- "," write$
+ "}," write$
} if$
newline$
+ url empty$
+ {}
+ {
+ "u={" write$
+ url write$
+ "}," write$
+ newline$
+ } if$
"n=" write$
ordinal.label write$
",s=" write$
@@ -212,7 +246,9 @@ FUNCTION {start.entry}
}
FUNCTION {stop.entry}
-{ "" "\note" note do.out
+{ "" "\country" country do.out
+ "" "\note" note do.out
+ "" "\notes" notes do.out
"" "\annotate" annotate do.out
"" "\eprint" eprint do.out
"" "\doi" doi do.out
@@ -222,6 +258,8 @@ FUNCTION {stop.entry}
"" "\abstract" abstract do.out
"" "\names" names do.out
"" "\size" size do.out
+ "" "\biburl" url do.out
+ "" "\lastchecked" lastchecked do.out
"\stoppublication" write$
newline$
}
@@ -380,7 +418,7 @@ FUNCTION {format.vol.num.page}
FUNCTION {format.type.chapter.pages}
{ chapter empty$
'format.pages
- { "" "\type" type do.out
+ { "" "\bibtype" type do.out
"" "\chapter" chapter do.out
}
if$
@@ -413,7 +451,7 @@ FUNCTION {format.in.booktitle.or.series}
FUNCTION {format.tr.number}
-{"" "\type" type do.out
+{"" "\bibtype" type do.out
"" "\volume" number do.out
}
@@ -566,7 +604,7 @@ FUNCTION {mastersthesis}
format.authors
format.year
format.t.title
- "" "\type" type do.out
+ "" "\bibtype" type do.out
"" "\pubname" school do.out
"" "\month" month do.out
"" "\city" address do.out
@@ -591,7 +629,7 @@ FUNCTION {phdthesis}
format.authors
format.title
format.year
- "" "\type" type do.out
+ "" "\bibtype" type do.out
"" "\month" month do.out
"" "\pubname" school do.out
"" "\city" address do.out
@@ -630,6 +668,65 @@ FUNCTION {unpublished}
stop.entry
}
+% 4 additions from IEEEtran
+
+FUNCTION {electronic}
+{ start.entry
+ format.authors
+ format.year
+ format.t.title
+ "" "\month" month do.out
+ "" "\city" address do.out
+ "" "\organization" organization do.out
+ "" "\howpublished" howpublished do.out
+ stop.entry
+}
+FUNCTION {patent}
+{ start.entry
+ format.authors
+ format.year
+ format.t.title
+ "" "\bibnumber" number do.out
+ "" "\city" address do.out
+ "" "\nationality" nationality do.out
+ "" "\assignee" assignee do.out
+ "" "\bibtype" type do.out
+ "" "\month" month do.out
+ "" "\monthfiled" monthfiled do.out
+ "" "\yearfiled" yearfiled do.out
+ "" "\day" day do.out
+ "" "\dayfiled" dayfiled do.out
+ stop.entry
+}
+FUNCTION {periodical}
+{ start.entry
+ format.editors
+ format.year
+ format.title
+ format.number.series
+ "" "\bibnumber" number do.out
+ "" "\month" month do.out
+ "" "\organization" organization do.out
+ stop.entry
+}
+FUNCTION {standard}
+{ start.entry
+ format.authors
+ format.year
+ format.title
+ "" "\bibtype" type do.out
+ "" "\organization" organization do.out
+ "" "\city" address do.out
+ "" "\revision" revision do.out
+ "" "\pubname" institution do.out
+ "" "\howpublished" howpublished do.out
+ "" "\bibnumber" number do.out
+ "" "\month" month do.out
+ stop.entry
+}
+
+FUNCTION {IEEEtranBSTCTL} { }
+
FUNCTION {default.type} { misc }
@@ -677,14 +774,20 @@ FUNCTION {chop.word}
FUNCTION {format.lab.names}
{ 's :=
s #1 "{vv~}{ll}" format.name$
+ "{" swap$ * "}" *
+ s num.names$ duplicate$
+ #1 >
+ { pop$ "," * }
+ { pop$ }
+ if$
s num.names$ duplicate$
#2 >
- { pop$ " et~al." * }
+ { pop$ "{}" * }
{ #2 <
'skip$
{ s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- { " et~al." * }
- { " and " * s #2 "{vv~}{ll}" format.name$ * }
+ { "{}" * }
+ { s #2 "{vv~}{ll}" format.name$ "{" swap$ * "}" * * }
if$
}
if$
diff --git a/Master/texmf-dist/bibtex/bst/context/cont-no.bst b/Master/texmf-dist/bibtex/bst/context/cont-no.bst
index 7b582f359c8..dbeb8a45dcc 100644
--- a/Master/texmf-dist/bibtex/bst/context/cont-no.bst
+++ b/Master/texmf-dist/bibtex/bst/context/cont-no.bst
@@ -11,7 +11,7 @@
% only two lines: the ITERATEs right before the two SORTs can
% have different values, sorting by either one of
%
-% -------------------------- cont-master.bst none
+% -------------------------- cont-master.bst author
% - the author (+year, title) : cont-au.bst author
% - the title (+author, year) : cont-ti.bst title
% - the short key a la abbrev : cont-ab.bst clabel
@@ -58,6 +58,7 @@
% \chapter
% \city
% \comment
+% \country
% \crossref
% \edition
% \isbn
@@ -70,6 +71,7 @@
% \month
% \names
% \note
+% \notes
% \organization
% \pages
% \pubname
@@ -78,11 +80,23 @@
% \size
% \thekey
% \title
-% \type
+% \bibtype
% \volume
% \eprint
% \doi
% \howpublished
+% \biburl
+% \lastchecked
+% for ieee:
+
+% \nationality
+% \assignee
+% \bibnumber
+% \day
+% \dayfiled
+% \monthfiled
+% \yearfiled
+% \revision
ENTRY
{ abstract
@@ -92,6 +106,7 @@ ENTRY
booktitle
chapter
comment
+ country
doi
edition
editor
@@ -105,9 +120,11 @@ ENTRY
keyword
keywords
language
+ lastchecked
month
names
note
+ notes
number
organization
pages
@@ -117,8 +134,17 @@ ENTRY
size
title
type
+ url
volume
year
+ nationality
+ assignee
+ bibnumber
+ day
+ dayfiled
+ monthfiled
+ yearfiled
+ revision
}
{}
{ label extra.label sort.label clabel sort.clabel ordinal.label}
@@ -197,11 +223,19 @@ FUNCTION {start.entry}
doi empty$
{}
{
- "o=" write$
+ "o={" write$
doi write$
- "," write$
+ "}," write$
} if$
newline$
+ url empty$
+ {}
+ {
+ "u={" write$
+ url write$
+ "}," write$
+ newline$
+ } if$
"n=" write$
ordinal.label write$
",s=" write$
@@ -212,7 +246,9 @@ FUNCTION {start.entry}
}
FUNCTION {stop.entry}
-{ "" "\note" note do.out
+{ "" "\country" country do.out
+ "" "\note" note do.out
+ "" "\notes" notes do.out
"" "\annotate" annotate do.out
"" "\eprint" eprint do.out
"" "\doi" doi do.out
@@ -222,6 +258,8 @@ FUNCTION {stop.entry}
"" "\abstract" abstract do.out
"" "\names" names do.out
"" "\size" size do.out
+ "" "\biburl" url do.out
+ "" "\lastchecked" lastchecked do.out
"\stoppublication" write$
newline$
}
@@ -380,7 +418,7 @@ FUNCTION {format.vol.num.page}
FUNCTION {format.type.chapter.pages}
{ chapter empty$
'format.pages
- { "" "\type" type do.out
+ { "" "\bibtype" type do.out
"" "\chapter" chapter do.out
}
if$
@@ -413,7 +451,7 @@ FUNCTION {format.in.booktitle.or.series}
FUNCTION {format.tr.number}
-{"" "\type" type do.out
+{"" "\bibtype" type do.out
"" "\volume" number do.out
}
@@ -566,7 +604,7 @@ FUNCTION {mastersthesis}
format.authors
format.year
format.t.title
- "" "\type" type do.out
+ "" "\bibtype" type do.out
"" "\pubname" school do.out
"" "\month" month do.out
"" "\city" address do.out
@@ -591,7 +629,7 @@ FUNCTION {phdthesis}
format.authors
format.title
format.year
- "" "\type" type do.out
+ "" "\bibtype" type do.out
"" "\month" month do.out
"" "\pubname" school do.out
"" "\city" address do.out
@@ -630,6 +668,65 @@ FUNCTION {unpublished}
stop.entry
}
+% 4 additions from IEEEtran
+
+FUNCTION {electronic}
+{ start.entry
+ format.authors
+ format.year
+ format.t.title
+ "" "\month" month do.out
+ "" "\city" address do.out
+ "" "\organization" organization do.out
+ "" "\howpublished" howpublished do.out
+ stop.entry
+}
+FUNCTION {patent}
+{ start.entry
+ format.authors
+ format.year
+ format.t.title
+ "" "\bibnumber" number do.out
+ "" "\city" address do.out
+ "" "\nationality" nationality do.out
+ "" "\assignee" assignee do.out
+ "" "\bibtype" type do.out
+ "" "\month" month do.out
+ "" "\monthfiled" monthfiled do.out
+ "" "\yearfiled" yearfiled do.out
+ "" "\day" day do.out
+ "" "\dayfiled" dayfiled do.out
+ stop.entry
+}
+FUNCTION {periodical}
+{ start.entry
+ format.editors
+ format.year
+ format.title
+ format.number.series
+ "" "\bibnumber" number do.out
+ "" "\month" month do.out
+ "" "\organization" organization do.out
+ stop.entry
+}
+FUNCTION {standard}
+{ start.entry
+ format.authors
+ format.year
+ format.title
+ "" "\bibtype" type do.out
+ "" "\organization" organization do.out
+ "" "\city" address do.out
+ "" "\revision" revision do.out
+ "" "\pubname" institution do.out
+ "" "\howpublished" howpublished do.out
+ "" "\bibnumber" number do.out
+ "" "\month" month do.out
+ stop.entry
+}
+
+FUNCTION {IEEEtranBSTCTL} { }
+
FUNCTION {default.type} { misc }
@@ -677,14 +774,20 @@ FUNCTION {chop.word}
FUNCTION {format.lab.names}
{ 's :=
s #1 "{vv~}{ll}" format.name$
+ "{" swap$ * "}" *
+ s num.names$ duplicate$
+ #1 >
+ { pop$ "," * }
+ { pop$ }
+ if$
s num.names$ duplicate$
#2 >
- { pop$ " et~al." * }
+ { pop$ "{}" * }
{ #2 <
'skip$
{ s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- { " et~al." * }
- { " and " * s #2 "{vv~}{ll}" format.name$ * }
+ { "{}" * }
+ { s #2 "{vv~}{ll}" format.name$ "{" swap$ * "}" * * }
if$
}
if$
diff --git a/Master/texmf-dist/bibtex/bst/context/cont-ti.bst b/Master/texmf-dist/bibtex/bst/context/cont-ti.bst
index b4660d6ae99..734cbb4b6f3 100644
--- a/Master/texmf-dist/bibtex/bst/context/cont-ti.bst
+++ b/Master/texmf-dist/bibtex/bst/context/cont-ti.bst
@@ -11,7 +11,7 @@
% only two lines: the ITERATEs right before the two SORTs can
% have different values, sorting by either one of
%
-% -------------------------- cont-master.bst title
+% -------------------------- cont-master.bst author
% - the author (+year, title) : cont-au.bst author
% - the title (+author, year) : cont-ti.bst title
% - the short key a la abbrev : cont-ab.bst clabel
@@ -58,6 +58,7 @@
% \chapter
% \city
% \comment
+% \country
% \crossref
% \edition
% \isbn
@@ -70,6 +71,7 @@
% \month
% \names
% \note
+% \notes
% \organization
% \pages
% \pubname
@@ -78,11 +80,23 @@
% \size
% \thekey
% \title
-% \type
+% \bibtype
% \volume
% \eprint
% \doi
% \howpublished
+% \biburl
+% \lastchecked
+% for ieee:
+
+% \nationality
+% \assignee
+% \bibnumber
+% \day
+% \dayfiled
+% \monthfiled
+% \yearfiled
+% \revision
ENTRY
{ abstract
@@ -92,6 +106,7 @@ ENTRY
booktitle
chapter
comment
+ country
doi
edition
editor
@@ -105,9 +120,11 @@ ENTRY
keyword
keywords
language
+ lastchecked
month
names
note
+ notes
number
organization
pages
@@ -117,8 +134,17 @@ ENTRY
size
title
type
+ url
volume
year
+ nationality
+ assignee
+ bibnumber
+ day
+ dayfiled
+ monthfiled
+ yearfiled
+ revision
}
{}
{ label extra.label sort.label clabel sort.clabel ordinal.label}
@@ -197,11 +223,19 @@ FUNCTION {start.entry}
doi empty$
{}
{
- "o=" write$
+ "o={" write$
doi write$
- "," write$
+ "}," write$
} if$
newline$
+ url empty$
+ {}
+ {
+ "u={" write$
+ url write$
+ "}," write$
+ newline$
+ } if$
"n=" write$
ordinal.label write$
",s=" write$
@@ -212,7 +246,9 @@ FUNCTION {start.entry}
}
FUNCTION {stop.entry}
-{ "" "\note" note do.out
+{ "" "\country" country do.out
+ "" "\note" note do.out
+ "" "\notes" notes do.out
"" "\annotate" annotate do.out
"" "\eprint" eprint do.out
"" "\doi" doi do.out
@@ -222,6 +258,8 @@ FUNCTION {stop.entry}
"" "\abstract" abstract do.out
"" "\names" names do.out
"" "\size" size do.out
+ "" "\biburl" url do.out
+ "" "\lastchecked" lastchecked do.out
"\stoppublication" write$
newline$
}
@@ -380,7 +418,7 @@ FUNCTION {format.vol.num.page}
FUNCTION {format.type.chapter.pages}
{ chapter empty$
'format.pages
- { "" "\type" type do.out
+ { "" "\bibtype" type do.out
"" "\chapter" chapter do.out
}
if$
@@ -413,7 +451,7 @@ FUNCTION {format.in.booktitle.or.series}
FUNCTION {format.tr.number}
-{"" "\type" type do.out
+{"" "\bibtype" type do.out
"" "\volume" number do.out
}
@@ -566,7 +604,7 @@ FUNCTION {mastersthesis}
format.authors
format.year
format.t.title
- "" "\type" type do.out
+ "" "\bibtype" type do.out
"" "\pubname" school do.out
"" "\month" month do.out
"" "\city" address do.out
@@ -591,7 +629,7 @@ FUNCTION {phdthesis}
format.authors
format.title
format.year
- "" "\type" type do.out
+ "" "\bibtype" type do.out
"" "\month" month do.out
"" "\pubname" school do.out
"" "\city" address do.out
@@ -630,6 +668,65 @@ FUNCTION {unpublished}
stop.entry
}
+% 4 additions from IEEEtran
+
+FUNCTION {electronic}
+{ start.entry
+ format.authors
+ format.year
+ format.t.title
+ "" "\month" month do.out
+ "" "\city" address do.out
+ "" "\organization" organization do.out
+ "" "\howpublished" howpublished do.out
+ stop.entry
+}
+FUNCTION {patent}
+{ start.entry
+ format.authors
+ format.year
+ format.t.title
+ "" "\bibnumber" number do.out
+ "" "\city" address do.out
+ "" "\nationality" nationality do.out
+ "" "\assignee" assignee do.out
+ "" "\bibtype" type do.out
+ "" "\month" month do.out
+ "" "\monthfiled" monthfiled do.out
+ "" "\yearfiled" yearfiled do.out
+ "" "\day" day do.out
+ "" "\dayfiled" dayfiled do.out
+ stop.entry
+}
+FUNCTION {periodical}
+{ start.entry
+ format.editors
+ format.year
+ format.title
+ format.number.series
+ "" "\bibnumber" number do.out
+ "" "\month" month do.out
+ "" "\organization" organization do.out
+ stop.entry
+}
+FUNCTION {standard}
+{ start.entry
+ format.authors
+ format.year
+ format.title
+ "" "\bibtype" type do.out
+ "" "\organization" organization do.out
+ "" "\city" address do.out
+ "" "\revision" revision do.out
+ "" "\pubname" institution do.out
+ "" "\howpublished" howpublished do.out
+ "" "\bibnumber" number do.out
+ "" "\month" month do.out
+ stop.entry
+}
+
+FUNCTION {IEEEtranBSTCTL} { }
+
FUNCTION {default.type} { misc }
@@ -677,14 +774,20 @@ FUNCTION {chop.word}
FUNCTION {format.lab.names}
{ 's :=
s #1 "{vv~}{ll}" format.name$
+ "{" swap$ * "}" *
+ s num.names$ duplicate$
+ #1 >
+ { pop$ "," * }
+ { pop$ }
+ if$
s num.names$ duplicate$
#2 >
- { pop$ " et~al." * }
+ { pop$ "{}" * }
{ #2 <
'skip$
{ s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- { " et~al." * }
- { " and " * s #2 "{vv~}{ll}" format.name$ * }
+ { "{}" * }
+ { s #2 "{vv~}{ll}" format.name$ "{" swap$ * "}" * * }
if$
}
if$
diff --git a/Master/texmf-dist/context/config/texexec.rme b/Master/texmf-dist/context/config/texexec.rme
index f38b4be7fe0..43f142f9da4 100644
--- a/Master/texmf-dist/context/config/texexec.rme
+++ b/Master/texmf-dist/context/config/texexec.rme
@@ -120,7 +120,7 @@ for miktex set TeXVirginFlag to --initialize
for miktex set TeXPassString to --alias=context --translate-file=natural.tcx
for miktex set TeXBatchFlag to --interaction=batchmode
for miktex set TeXNonStopFlag to --interaction=nonstopmode
-for miktex set MpToTeXExecutable to mptotex
+for miktex set MpToTeXExecutable to mpto
for miktex set MpVirginFlag to --initialize
for miktex set MpPassString to --alias=mpost --translate-file=natural.tcx
for miktex set MpBatchFlag to --interaction=batchmode
diff --git a/Master/texmf-dist/context/data/cont-fr-scite.properties b/Master/texmf-dist/context/data/cont-fr-scite.properties
new file mode 100644
index 00000000000..581154cb032
--- /dev/null
+++ b/Master/texmf-dist/context/data/cont-fr-scite.properties
@@ -0,0 +1,76 @@
+keywordclass.macros.context.fr=\
+ Caractere Caracteres Chiffresromains JOURSEMAINE MOIS MOT \
+ MOTS Mot Mots a adaptedisposition affectevariabletexte \
+ ajout ajustechamp alaligne alapage aligneadroite aligneagauche \
+ aligneaumilieu arg arriereplan baha barreinteraction barresynchronisation \
+ bas bouton boutonsinteraction but cacheblocs caractere \
+ caracteres champ changepolicebrute changepolicecorps chem chiffresromains \
+ citation citer clip clonechamp colonne commentaire \
+ comparegroupecouleur comparepalette completeregistre composeenalinea concernant convertitnumero \
+ copitchamp corrigeespaceblanc couleur couleurgrise coupledocument couplemarquage \
+ couplepapier coupleregistre crlf dactylographier dans dansautremarge \
+ dansdroite dansgauche dansmarge date datecourante daterecommandation \
+ de decouplemarquage defineframed defineframedtext definit definitbloc \
+ definitblocsection definitbuffer definitchamp definitcompoalinea definitconversion definitcouleur \
+ definitdactylo definitdemarrestoppe definitdescription definitenumeration definitenvironnementpolicecorps definitetiquette \
+ definitflottant definitformatreference definitgroupecouleur definitliste definitlisteimbriquee definitlistereference \
+ definitlogo definitmakeup definitmarquage definitmenuinteraction definitnotepdp definitpalette \
+ definitparagraphes definitpilechamp definitpolice definitpolicebrute definitpolicecorps definitpositiontexte \
+ definitprofil definitprogramme definitreference definitregistre definitregle definitrevetement \
+ definitsection definitsortie definitsouschamp definitsymbole definitsymbolefigure definitsynonymes \
+ definittabulation definittaillepapier definittete definittexte definittrametableau definittri \
+ definittype definitvariabletexte definitversion definitvide demarreciter deplacesurgrille \
+ determinecaracteristiqueliste determinenumerotete echelle ecran ecritdansliste ecritdanslistereference \
+ ecritentreliste ecritregistre el element elements emptylines \
+ espace espaceblanc espacesfixes etiquettes etire fichierdactylo \
+ figureexterne forceblocs fraction framed gardeblocs grille \
+ groupe haut hl inframed inhibemenuinteraction ininner \
+ inouter installelangue joursemaine labeltexte langue langueprincipale \
+ ligneh lignenoire ligneregleetexte lignesnoires listesymbole logchamp \
+ mar margereglee marquage marquageversion marquepage mathematique \
+ mois montrecadre montrechamps montrecouleur montredisposition montreedition \
+ montreenvironnementpolicecorps montrefiguresexternes montregrille montregroupecouleur montrejeusymboles montremakeup \
+ montrepalette montrepolicecorps montrereglages montrestruts motdroit nop \
+ note notepdp numeros numerotete numerotetecourant obtientmarquage \
+ oriente overbar overbars page pagedouble pasplusdeblocs \
+ pasplusdefichiers periodes pilechamp placecoteacote placeflottant placeformule \
+ placelegende placelesunsaudessusdesautres placeliste placelisteinmbriquee placelistereference placelogos \
+ placemarquespages placenotespdp placenotespdplocales placeregistre placeregle placesousformule \
+ placesurgrille placevariabletexte position positionnetexte prendbuffer programme \
+ publication qqpart ran raz razmarquage recommandation \
+ ref reference referencepage referencetexte reflete reglealignement \
+ reglealineas reglearrangement reglearriereplan reglearriereplans reglebarreinteraction reglebarresynchronisation \
+ reglebloc regleblocmarge regleblocsection regleboutons reglebuffer reglecapitales \
+ reglechamp reglechamps regleclipping reglecolonnes reglecombinaisons reglecommentaire \
+ reglecompoetroite reglecomposeenalinea reglecouleur reglecouleurs regledactylo regledansmarge \
+ regledescriptions regledisposition regleecraninteraction regleecrans regleelements regleencadre \
+ regleentete regleenumerations regleenvironnementpolicecorps regleepaisseurligne regleespaceblanc regleespacement \
+ regleespacementinterligne reglefiguresexternes regleflottant regleflottants regleformulaires regleinf \
+ regleinteraction regleintitule regleintitules reglejeusymboles reglelabeltexte reglelangue \
+ reglelegende reglelignes reglelignesnoires reglelignesreglestexte regleliste reglelisteimbriquee \
+ reglelistereference reglemakeup reglemargereglee reglemarquage reglemarquagehyphenation reglenotepdp \
+ reglenumeropage reglenumerotation reglenumerotationligne reglenumerotationpage reglenumerotationparagraphe reglenumerotete \
+ regleoriente reglepalette reglepapier regleparagraphes reglepdp regleplacementopposition \
+ reglepolicecorps reglepositionnement reglepositiontexte regleprofils regleprogrammes reglepublications \
+ reglereferencage regleregistre regleregle regleremplitligne regleremplitlignesreglees reglesection \
+ regleseparationflottant reglesortie reglesouslignage reglesousnumeropage reglestrut reglesup \
+ reglesynchronisation reglesynonymes reglesysteme regletab regletableaux regletabulation \
+ regletaillepapier regletete regletetes regletexte regletextesentete regletextesinf \
+ regletextespdp regletextessup regletextestexte regletextetete regletolerance regletraitsfins \
+ regletransitionspage regletri regletype regleurl reglevariabletexte regleversions \
+ remplitchamp remplitligne remplitlignesreglees remplittexte sansalinea sansespace \
+ sansespaceblanc sanslignesenteteetpdp sanslignessupetinf sansliste sansmarquage sanstest \
+ sauteblocs selectionneblocs selectionnepapier selectionneversion separeflottant setupframedtexts \
+ setupitemgroup sousligne souslignetout start startarriereplan startcitation \
+ startcommentaire startcomposant startcouleur startenvironement startfait startgroupe \
+ startligneregleetexte startmargereglee startmenuinteraction startproduit startprojet startversion \
+ stop stoparriereplan stopcitation stopcommentaire stopcomposant stopcouleur \
+ stopenvironement stopfait stopgroupe stopligneregleetexte stopmargereglee stopmenuinteraction \
+ stopproduit stopprojet stopversion suggestion suivantprofil suivantversion \
+ suivantversionprofil surligne surlignetout sym symbole synchronise \
+ tab tapebuffer tapepage tete tex textemarge \
+ textenotepdp textetete traduire traiteblocs traitepage traitfin \
+ traitsfins typ uneligne utiliseURL utiliseblocs utilisecommandes \
+ utilisedocumentexterne utiliseencodage utilisefichierexterne utilisefichiersexternes utilisefigureexterne utilisemodule \
+ utilisepsiteaudioexterne utilisereferences utilisespecialites utilisesymboles va vaalaboite \
+ vaenbas variabletexte version vide vl
diff --git a/Master/texmf-dist/context/data/cont-nl-scite.properties b/Master/texmf-dist/context/data/cont-nl-scite.properties
index 0d1637ba5a1..5ca7901d08b 100644
--- a/Master/texmf-dist/context/data/cont-nl-scite.properties
+++ b/Master/texmf-dist/context/data/cont-nl-scite.properties
@@ -41,7 +41,7 @@ keywordclass.macros.context.nl=\
selecteerblokken selecteerpapier selecteerversie som soortpagina spatie \
spiegel splitsplaatsblok start startachtergrond startcitaat startcommentaar \
startgeg startinteractiemenu startkantlijn startkleur startomgeving startonderdeel \
- startopelkaar startprodukt startproject starttekstlijn startversie stelachtergrondenin \
+ startopelkaar startprodukt startprojekt starttekstlijn startversie stelachtergrondenin \
stelachtergrondin stelalineasin stelarrangerenin stelblankoin stelblokin stelblokjesin \
stelblokkopjein stelblokkopjesin stelbovenin stelboventekstenin stelbufferin stelbuttonsin \
stelciterenin stelclipin stelcombinatiesin stelcommentaarin steldoordefinierenin steldoornummerenin \
@@ -63,7 +63,7 @@ keywordclass.macros.context.nl=\
steluitlijnenin steluitvoerin stelurlin stelveldenin stelveldin stelversiesin \
stelvoetin stelvoetnootdefinitiein stelvoetnotenin stelvoettekstenin stelwitruimtein stop \
stopachtergrond stopcitaat stopcommentaar stopgeg stopinteractiemenu stopkantlijn \
- stopkleur stopomgeving stoponderdeel stopopelkaar stopprodukt stopproject \
+ stopkleur stopomgeving stoponderdeel stopopelkaar stopprodukt stopprojekt \
stoptekstlijn stopversie suggestie switchnaarkorps switchtorawfont sym \
symbool synchronisatiebalk synchroniseer taal tab tekstlijn \
tekstreferentie tekstvariabele tex toevoegen toonexternefiguren toongrid \
diff --git a/Master/texmf-dist/context/data/context-jedit-fr.xml b/Master/texmf-dist/context/data/context-jedit-fr.xml
new file mode 100644
index 00000000000..68e40115fd1
--- /dev/null
+++ b/Master/texmf-dist/context/data/context-jedit-fr.xml
@@ -0,0 +1,459 @@
+<?xml version='1.0'?>
+
+<!DOCTYPE MODE SYSTEM 'xmode.dtd'>
+
+<MODE>
+ <RULES>
+ <KEYWORDS>
+ <KEYWORD2>\Caractere</KEYWORD2>
+ <KEYWORD2>\Caracteres</KEYWORD2>
+ <KEYWORD2>\Chiffresromains</KEYWORD2>
+ <KEYWORD2>\JOURSEMAINE</KEYWORD2>
+ <KEYWORD2>\MOIS</KEYWORD2>
+ <KEYWORD2>\MOT</KEYWORD2>
+ <KEYWORD2>\MOTS</KEYWORD2>
+ <KEYWORD2>\Mot</KEYWORD2>
+ <KEYWORD2>\Mots</KEYWORD2>
+ <KEYWORD2>\a</KEYWORD2>
+ <KEYWORD2>\adaptedisposition</KEYWORD2>
+ <KEYWORD2>\affectevariabletexte</KEYWORD2>
+ <KEYWORD2>\ajout</KEYWORD2>
+ <KEYWORD2>\ajustechamp</KEYWORD2>
+ <KEYWORD2>\alaligne</KEYWORD2>
+ <KEYWORD2>\alapage</KEYWORD2>
+ <KEYWORD2>\aligneadroite</KEYWORD2>
+ <KEYWORD2>\aligneagauche</KEYWORD2>
+ <KEYWORD2>\aligneaumilieu</KEYWORD2>
+ <KEYWORD2>\arg</KEYWORD2>
+ <KEYWORD2>\arriereplan</KEYWORD2>
+ <KEYWORD2>\baha</KEYWORD2>
+ <KEYWORD2>\barreinteraction</KEYWORD2>
+ <KEYWORD2>\barresynchronisation</KEYWORD2>
+ <KEYWORD2>\bas</KEYWORD2>
+ <KEYWORD2>\bouton</KEYWORD2>
+ <KEYWORD2>\boutonsinteraction</KEYWORD2>
+ <KEYWORD2>\but</KEYWORD2>
+ <KEYWORD2>\cacheblocs</KEYWORD2>
+ <KEYWORD2>\caractere</KEYWORD2>
+ <KEYWORD2>\caracteres</KEYWORD2>
+ <KEYWORD2>\champ</KEYWORD2>
+ <KEYWORD2>\changepolicebrute</KEYWORD2>
+ <KEYWORD2>\changepolicecorps</KEYWORD2>
+ <KEYWORD2>\chem</KEYWORD2>
+ <KEYWORD2>\chiffresromains</KEYWORD2>
+ <KEYWORD2>\citation</KEYWORD2>
+ <KEYWORD2>\citer</KEYWORD2>
+ <KEYWORD2>\clip</KEYWORD2>
+ <KEYWORD2>\clonechamp</KEYWORD2>
+ <KEYWORD2>\colonne</KEYWORD2>
+ <KEYWORD2>\commentaire</KEYWORD2>
+ <KEYWORD2>\comparegroupecouleur</KEYWORD2>
+ <KEYWORD2>\comparepalette</KEYWORD2>
+ <KEYWORD2>\completeregistre</KEYWORD2>
+ <KEYWORD2>\composeenalinea</KEYWORD2>
+ <KEYWORD2>\concernant</KEYWORD2>
+ <KEYWORD2>\convertitnumero</KEYWORD2>
+ <KEYWORD2>\copitchamp</KEYWORD2>
+ <KEYWORD2>\corrigeespaceblanc</KEYWORD2>
+ <KEYWORD2>\couleur</KEYWORD2>
+ <KEYWORD2>\couleurgrise</KEYWORD2>
+ <KEYWORD2>\coupledocument</KEYWORD2>
+ <KEYWORD2>\couplemarquage</KEYWORD2>
+ <KEYWORD2>\couplepapier</KEYWORD2>
+ <KEYWORD2>\coupleregistre</KEYWORD2>
+ <KEYWORD2>\crlf</KEYWORD2>
+ <KEYWORD2>\dactylographier</KEYWORD2>
+ <KEYWORD2>\dans</KEYWORD2>
+ <KEYWORD2>\dansautremarge</KEYWORD2>
+ <KEYWORD2>\dansdroite</KEYWORD2>
+ <KEYWORD2>\dansgauche</KEYWORD2>
+ <KEYWORD2>\dansmarge</KEYWORD2>
+ <KEYWORD2>\date</KEYWORD2>
+ <KEYWORD2>\datecourante</KEYWORD2>
+ <KEYWORD2>\daterecommandation</KEYWORD2>
+ <KEYWORD2>\de</KEYWORD2>
+ <KEYWORD2>\decouplemarquage</KEYWORD2>
+ <KEYWORD2>\defineframed</KEYWORD2>
+ <KEYWORD2>\defineframedtext</KEYWORD2>
+ <KEYWORD2>\definit</KEYWORD2>
+ <KEYWORD2>\definitbloc</KEYWORD2>
+ <KEYWORD2>\definitblocsection</KEYWORD2>
+ <KEYWORD2>\definitbuffer</KEYWORD2>
+ <KEYWORD2>\definitchamp</KEYWORD2>
+ <KEYWORD2>\definitcompoalinea</KEYWORD2>
+ <KEYWORD2>\definitconversion</KEYWORD2>
+ <KEYWORD2>\definitcouleur</KEYWORD2>
+ <KEYWORD2>\definitdactylo</KEYWORD2>
+ <KEYWORD2>\definitdemarrestoppe</KEYWORD2>
+ <KEYWORD2>\definitdescription</KEYWORD2>
+ <KEYWORD2>\definitenumeration</KEYWORD2>
+ <KEYWORD2>\definitenvironnementpolicecorps</KEYWORD2>
+ <KEYWORD2>\definitetiquette</KEYWORD2>
+ <KEYWORD2>\definitflottant</KEYWORD2>
+ <KEYWORD2>\definitformatreference</KEYWORD2>
+ <KEYWORD2>\definitgroupecouleur</KEYWORD2>
+ <KEYWORD2>\definitliste</KEYWORD2>
+ <KEYWORD2>\definitlisteimbriquee</KEYWORD2>
+ <KEYWORD2>\definitlistereference</KEYWORD2>
+ <KEYWORD2>\definitlogo</KEYWORD2>
+ <KEYWORD2>\definitmakeup</KEYWORD2>
+ <KEYWORD2>\definitmarquage</KEYWORD2>
+ <KEYWORD2>\definitmenuinteraction</KEYWORD2>
+ <KEYWORD2>\definitnotepdp</KEYWORD2>
+ <KEYWORD2>\definitpalette</KEYWORD2>
+ <KEYWORD2>\definitparagraphes</KEYWORD2>
+ <KEYWORD2>\definitpilechamp</KEYWORD2>
+ <KEYWORD2>\definitpolice</KEYWORD2>
+ <KEYWORD2>\definitpolicebrute</KEYWORD2>
+ <KEYWORD2>\definitpolicecorps</KEYWORD2>
+ <KEYWORD2>\definitpositiontexte</KEYWORD2>
+ <KEYWORD2>\definitprofil</KEYWORD2>
+ <KEYWORD2>\definitprogramme</KEYWORD2>
+ <KEYWORD2>\definitreference</KEYWORD2>
+ <KEYWORD2>\definitregistre</KEYWORD2>
+ <KEYWORD2>\definitregle</KEYWORD2>
+ <KEYWORD2>\definitrevetement</KEYWORD2>
+ <KEYWORD2>\definitsection</KEYWORD2>
+ <KEYWORD2>\definitsortie</KEYWORD2>
+ <KEYWORD2>\definitsouschamp</KEYWORD2>
+ <KEYWORD2>\definitsymbole</KEYWORD2>
+ <KEYWORD2>\definitsymbolefigure</KEYWORD2>
+ <KEYWORD2>\definitsynonymes</KEYWORD2>
+ <KEYWORD2>\definittabulation</KEYWORD2>
+ <KEYWORD2>\definittaillepapier</KEYWORD2>
+ <KEYWORD2>\definittete</KEYWORD2>
+ <KEYWORD2>\definittexte</KEYWORD2>
+ <KEYWORD2>\definittrametableau</KEYWORD2>
+ <KEYWORD2>\definittri</KEYWORD2>
+ <KEYWORD2>\definittype</KEYWORD2>
+ <KEYWORD2>\definitvariabletexte</KEYWORD2>
+ <KEYWORD2>\definitversion</KEYWORD2>
+ <KEYWORD2>\definitvide</KEYWORD2>
+ <KEYWORD2>\demarreciter</KEYWORD2>
+ <KEYWORD2>\deplacesurgrille</KEYWORD2>
+ <KEYWORD2>\determinecaracteristiqueliste</KEYWORD2>
+ <KEYWORD2>\determinenumerotete</KEYWORD2>
+ <KEYWORD2>\echelle</KEYWORD2>
+ <KEYWORD2>\ecran</KEYWORD2>
+ <KEYWORD2>\ecritdansliste</KEYWORD2>
+ <KEYWORD2>\ecritdanslistereference</KEYWORD2>
+ <KEYWORD2>\ecritentreliste</KEYWORD2>
+ <KEYWORD2>\ecritregistre</KEYWORD2>
+ <KEYWORD2>\el</KEYWORD2>
+ <KEYWORD2>\element</KEYWORD2>
+ <KEYWORD2>\elements</KEYWORD2>
+ <KEYWORD2>\emptylines</KEYWORD2>
+ <KEYWORD2>\espace</KEYWORD2>
+ <KEYWORD2>\espaceblanc</KEYWORD2>
+ <KEYWORD2>\espacesfixes</KEYWORD2>
+ <KEYWORD2>\etiquettes</KEYWORD2>
+ <KEYWORD2>\etire</KEYWORD2>
+ <KEYWORD2>\fichierdactylo</KEYWORD2>
+ <KEYWORD2>\figureexterne</KEYWORD2>
+ <KEYWORD2>\forceblocs</KEYWORD2>
+ <KEYWORD2>\fraction</KEYWORD2>
+ <KEYWORD2>\framed</KEYWORD2>
+ <KEYWORD2>\gardeblocs</KEYWORD2>
+ <KEYWORD2>\grille</KEYWORD2>
+ <KEYWORD2>\groupe</KEYWORD2>
+ <KEYWORD2>\haut</KEYWORD2>
+ <KEYWORD2>\hl</KEYWORD2>
+ <KEYWORD2>\inframed</KEYWORD2>
+ <KEYWORD2>\inhibemenuinteraction</KEYWORD2>
+ <KEYWORD2>\ininner</KEYWORD2>
+ <KEYWORD2>\inouter</KEYWORD2>
+ <KEYWORD2>\installelangue</KEYWORD2>
+ <KEYWORD2>\joursemaine</KEYWORD2>
+ <KEYWORD2>\labeltexte</KEYWORD2>
+ <KEYWORD2>\langue</KEYWORD2>
+ <KEYWORD2>\langueprincipale</KEYWORD2>
+ <KEYWORD2>\ligneh</KEYWORD2>
+ <KEYWORD2>\lignenoire</KEYWORD2>
+ <KEYWORD2>\ligneregleetexte</KEYWORD2>
+ <KEYWORD2>\lignesnoires</KEYWORD2>
+ <KEYWORD2>\listesymbole</KEYWORD2>
+ <KEYWORD2>\logchamp</KEYWORD2>
+ <KEYWORD2>\mar</KEYWORD2>
+ <KEYWORD2>\margereglee</KEYWORD2>
+ <KEYWORD2>\marquage</KEYWORD2>
+ <KEYWORD2>\marquageversion</KEYWORD2>
+ <KEYWORD2>\marquepage</KEYWORD2>
+ <KEYWORD2>\mathematique</KEYWORD2>
+ <KEYWORD2>\mois</KEYWORD2>
+ <KEYWORD2>\montrecadre</KEYWORD2>
+ <KEYWORD2>\montrechamps</KEYWORD2>
+ <KEYWORD2>\montrecouleur</KEYWORD2>
+ <KEYWORD2>\montredisposition</KEYWORD2>
+ <KEYWORD2>\montreedition</KEYWORD2>
+ <KEYWORD2>\montreenvironnementpolicecorps</KEYWORD2>
+ <KEYWORD2>\montrefiguresexternes</KEYWORD2>
+ <KEYWORD2>\montregrille</KEYWORD2>
+ <KEYWORD2>\montregroupecouleur</KEYWORD2>
+ <KEYWORD2>\montrejeusymboles</KEYWORD2>
+ <KEYWORD2>\montremakeup</KEYWORD2>
+ <KEYWORD2>\montrepalette</KEYWORD2>
+ <KEYWORD2>\montrepolicecorps</KEYWORD2>
+ <KEYWORD2>\montrereglages</KEYWORD2>
+ <KEYWORD2>\montrestruts</KEYWORD2>
+ <KEYWORD2>\motdroit</KEYWORD2>
+ <KEYWORD2>\nop</KEYWORD2>
+ <KEYWORD2>\note</KEYWORD2>
+ <KEYWORD2>\notepdp</KEYWORD2>
+ <KEYWORD2>\numeros</KEYWORD2>
+ <KEYWORD2>\numerotete</KEYWORD2>
+ <KEYWORD2>\numerotetecourant</KEYWORD2>
+ <KEYWORD2>\obtientmarquage</KEYWORD2>
+ <KEYWORD2>\oriente</KEYWORD2>
+ <KEYWORD2>\overbar</KEYWORD2>
+ <KEYWORD2>\overbars</KEYWORD2>
+ <KEYWORD2>\page</KEYWORD2>
+ <KEYWORD2>\pagedouble</KEYWORD2>
+ <KEYWORD2>\pasplusdeblocs</KEYWORD2>
+ <KEYWORD2>\pasplusdefichiers</KEYWORD2>
+ <KEYWORD2>\periodes</KEYWORD2>
+ <KEYWORD2>\pilechamp</KEYWORD2>
+ <KEYWORD2>\placecoteacote</KEYWORD2>
+ <KEYWORD2>\placeflottant</KEYWORD2>
+ <KEYWORD2>\placeformule</KEYWORD2>
+ <KEYWORD2>\placelegende</KEYWORD2>
+ <KEYWORD2>\placelesunsaudessusdesautres</KEYWORD2>
+ <KEYWORD2>\placeliste</KEYWORD2>
+ <KEYWORD2>\placelisteinmbriquee</KEYWORD2>
+ <KEYWORD2>\placelistereference</KEYWORD2>
+ <KEYWORD2>\placelogos</KEYWORD2>
+ <KEYWORD2>\placemarquespages</KEYWORD2>
+ <KEYWORD2>\placenotespdp</KEYWORD2>
+ <KEYWORD2>\placenotespdplocales</KEYWORD2>
+ <KEYWORD2>\placeregistre</KEYWORD2>
+ <KEYWORD2>\placeregle</KEYWORD2>
+ <KEYWORD2>\placesousformule</KEYWORD2>
+ <KEYWORD2>\placesurgrille</KEYWORD2>
+ <KEYWORD2>\placevariabletexte</KEYWORD2>
+ <KEYWORD2>\position</KEYWORD2>
+ <KEYWORD2>\positionnetexte</KEYWORD2>
+ <KEYWORD2>\prendbuffer</KEYWORD2>
+ <KEYWORD2>\programme</KEYWORD2>
+ <KEYWORD2>\publication</KEYWORD2>
+ <KEYWORD2>\qqpart</KEYWORD2>
+ <KEYWORD2>\ran</KEYWORD2>
+ <KEYWORD2>\raz</KEYWORD2>
+ <KEYWORD2>\razmarquage</KEYWORD2>
+ <KEYWORD2>\recommandation</KEYWORD2>
+ <KEYWORD2>\ref</KEYWORD2>
+ <KEYWORD2>\reference</KEYWORD2>
+ <KEYWORD2>\referencepage</KEYWORD2>
+ <KEYWORD2>\referencetexte</KEYWORD2>
+ <KEYWORD2>\reflete</KEYWORD2>
+ <KEYWORD2>\reglealignement</KEYWORD2>
+ <KEYWORD2>\reglealineas</KEYWORD2>
+ <KEYWORD2>\reglearrangement</KEYWORD2>
+ <KEYWORD2>\reglearriereplan</KEYWORD2>
+ <KEYWORD2>\reglearriereplans</KEYWORD2>
+ <KEYWORD2>\reglebarreinteraction</KEYWORD2>
+ <KEYWORD2>\reglebarresynchronisation</KEYWORD2>
+ <KEYWORD2>\reglebloc</KEYWORD2>
+ <KEYWORD2>\regleblocmarge</KEYWORD2>
+ <KEYWORD2>\regleblocsection</KEYWORD2>
+ <KEYWORD2>\regleboutons</KEYWORD2>
+ <KEYWORD2>\reglebuffer</KEYWORD2>
+ <KEYWORD2>\reglecapitales</KEYWORD2>
+ <KEYWORD2>\reglechamp</KEYWORD2>
+ <KEYWORD2>\reglechamps</KEYWORD2>
+ <KEYWORD2>\regleclipping</KEYWORD2>
+ <KEYWORD2>\reglecolonnes</KEYWORD2>
+ <KEYWORD2>\reglecombinaisons</KEYWORD2>
+ <KEYWORD2>\reglecommentaire</KEYWORD2>
+ <KEYWORD2>\reglecompoetroite</KEYWORD2>
+ <KEYWORD2>\reglecomposeenalinea</KEYWORD2>
+ <KEYWORD2>\reglecouleur</KEYWORD2>
+ <KEYWORD2>\reglecouleurs</KEYWORD2>
+ <KEYWORD2>\regledactylo</KEYWORD2>
+ <KEYWORD2>\regledansmarge</KEYWORD2>
+ <KEYWORD2>\regledescriptions</KEYWORD2>
+ <KEYWORD2>\regledisposition</KEYWORD2>
+ <KEYWORD2>\regleecraninteraction</KEYWORD2>
+ <KEYWORD2>\regleecrans</KEYWORD2>
+ <KEYWORD2>\regleelements</KEYWORD2>
+ <KEYWORD2>\regleencadre</KEYWORD2>
+ <KEYWORD2>\regleentete</KEYWORD2>
+ <KEYWORD2>\regleenumerations</KEYWORD2>
+ <KEYWORD2>\regleenvironnementpolicecorps</KEYWORD2>
+ <KEYWORD2>\regleepaisseurligne</KEYWORD2>
+ <KEYWORD2>\regleespaceblanc</KEYWORD2>
+ <KEYWORD2>\regleespacement</KEYWORD2>
+ <KEYWORD2>\regleespacementinterligne</KEYWORD2>
+ <KEYWORD2>\reglefiguresexternes</KEYWORD2>
+ <KEYWORD2>\regleflottant</KEYWORD2>
+ <KEYWORD2>\regleflottants</KEYWORD2>
+ <KEYWORD2>\regleformulaires</KEYWORD2>
+ <KEYWORD2>\regleinf</KEYWORD2>
+ <KEYWORD2>\regleinteraction</KEYWORD2>
+ <KEYWORD2>\regleintitule</KEYWORD2>
+ <KEYWORD2>\regleintitules</KEYWORD2>
+ <KEYWORD2>\reglejeusymboles</KEYWORD2>
+ <KEYWORD2>\reglelabeltexte</KEYWORD2>
+ <KEYWORD2>\reglelangue</KEYWORD2>
+ <KEYWORD2>\reglelegende</KEYWORD2>
+ <KEYWORD2>\reglelignes</KEYWORD2>
+ <KEYWORD2>\reglelignesnoires</KEYWORD2>
+ <KEYWORD2>\reglelignesreglestexte</KEYWORD2>
+ <KEYWORD2>\regleliste</KEYWORD2>
+ <KEYWORD2>\reglelisteimbriquee</KEYWORD2>
+ <KEYWORD2>\reglelistereference</KEYWORD2>
+ <KEYWORD2>\reglemakeup</KEYWORD2>
+ <KEYWORD2>\reglemargereglee</KEYWORD2>
+ <KEYWORD2>\reglemarquage</KEYWORD2>
+ <KEYWORD2>\reglemarquagehyphenation</KEYWORD2>
+ <KEYWORD2>\reglenotepdp</KEYWORD2>
+ <KEYWORD2>\reglenumeropage</KEYWORD2>
+ <KEYWORD2>\reglenumerotation</KEYWORD2>
+ <KEYWORD2>\reglenumerotationligne</KEYWORD2>
+ <KEYWORD2>\reglenumerotationpage</KEYWORD2>
+ <KEYWORD2>\reglenumerotationparagraphe</KEYWORD2>
+ <KEYWORD2>\reglenumerotete</KEYWORD2>
+ <KEYWORD2>\regleoriente</KEYWORD2>
+ <KEYWORD2>\reglepalette</KEYWORD2>
+ <KEYWORD2>\reglepapier</KEYWORD2>
+ <KEYWORD2>\regleparagraphes</KEYWORD2>
+ <KEYWORD2>\reglepdp</KEYWORD2>
+ <KEYWORD2>\regleplacementopposition</KEYWORD2>
+ <KEYWORD2>\reglepolicecorps</KEYWORD2>
+ <KEYWORD2>\reglepositionnement</KEYWORD2>
+ <KEYWORD2>\reglepositiontexte</KEYWORD2>
+ <KEYWORD2>\regleprofils</KEYWORD2>
+ <KEYWORD2>\regleprogrammes</KEYWORD2>
+ <KEYWORD2>\reglepublications</KEYWORD2>
+ <KEYWORD2>\reglereferencage</KEYWORD2>
+ <KEYWORD2>\regleregistre</KEYWORD2>
+ <KEYWORD2>\regleregle</KEYWORD2>
+ <KEYWORD2>\regleremplitligne</KEYWORD2>
+ <KEYWORD2>\regleremplitlignesreglees</KEYWORD2>
+ <KEYWORD2>\reglesection</KEYWORD2>
+ <KEYWORD2>\regleseparationflottant</KEYWORD2>
+ <KEYWORD2>\reglesortie</KEYWORD2>
+ <KEYWORD2>\reglesouslignage</KEYWORD2>
+ <KEYWORD2>\reglesousnumeropage</KEYWORD2>
+ <KEYWORD2>\reglestrut</KEYWORD2>
+ <KEYWORD2>\reglesup</KEYWORD2>
+ <KEYWORD2>\reglesynchronisation</KEYWORD2>
+ <KEYWORD2>\reglesynonymes</KEYWORD2>
+ <KEYWORD2>\reglesysteme</KEYWORD2>
+ <KEYWORD2>\regletab</KEYWORD2>
+ <KEYWORD2>\regletableaux</KEYWORD2>
+ <KEYWORD2>\regletabulation</KEYWORD2>
+ <KEYWORD2>\regletaillepapier</KEYWORD2>
+ <KEYWORD2>\regletete</KEYWORD2>
+ <KEYWORD2>\regletetes</KEYWORD2>
+ <KEYWORD2>\regletexte</KEYWORD2>
+ <KEYWORD2>\regletextesentete</KEYWORD2>
+ <KEYWORD2>\regletextesinf</KEYWORD2>
+ <KEYWORD2>\regletextespdp</KEYWORD2>
+ <KEYWORD2>\regletextessup</KEYWORD2>
+ <KEYWORD2>\regletextestexte</KEYWORD2>
+ <KEYWORD2>\regletextetete</KEYWORD2>
+ <KEYWORD2>\regletolerance</KEYWORD2>
+ <KEYWORD2>\regletraitsfins</KEYWORD2>
+ <KEYWORD2>\regletransitionspage</KEYWORD2>
+ <KEYWORD2>\regletri</KEYWORD2>
+ <KEYWORD2>\regletype</KEYWORD2>
+ <KEYWORD2>\regleurl</KEYWORD2>
+ <KEYWORD2>\reglevariabletexte</KEYWORD2>
+ <KEYWORD2>\regleversions</KEYWORD2>
+ <KEYWORD2>\remplitchamp</KEYWORD2>
+ <KEYWORD2>\remplitligne</KEYWORD2>
+ <KEYWORD2>\remplitlignesreglees</KEYWORD2>
+ <KEYWORD2>\remplittexte</KEYWORD2>
+ <KEYWORD2>\sansalinea</KEYWORD2>
+ <KEYWORD2>\sansespace</KEYWORD2>
+ <KEYWORD2>\sansespaceblanc</KEYWORD2>
+ <KEYWORD2>\sanslignesenteteetpdp</KEYWORD2>
+ <KEYWORD2>\sanslignessupetinf</KEYWORD2>
+ <KEYWORD2>\sansliste</KEYWORD2>
+ <KEYWORD2>\sansmarquage</KEYWORD2>
+ <KEYWORD2>\sanstest</KEYWORD2>
+ <KEYWORD2>\sauteblocs</KEYWORD2>
+ <KEYWORD2>\selectionneblocs</KEYWORD2>
+ <KEYWORD2>\selectionnepapier</KEYWORD2>
+ <KEYWORD2>\selectionneversion</KEYWORD2>
+ <KEYWORD2>\separeflottant</KEYWORD2>
+ <KEYWORD2>\setupframedtexts</KEYWORD2>
+ <KEYWORD2>\setupitemgroup</KEYWORD2>
+ <KEYWORD2>\sousligne</KEYWORD2>
+ <KEYWORD2>\souslignetout</KEYWORD2>
+ <KEYWORD2>\start</KEYWORD2>
+ <KEYWORD2>\startarriereplan</KEYWORD2>
+ <KEYWORD2>\startcitation</KEYWORD2>
+ <KEYWORD2>\startcommentaire</KEYWORD2>
+ <KEYWORD2>\startcomposant</KEYWORD2>
+ <KEYWORD2>\startcouleur</KEYWORD2>
+ <KEYWORD2>\startenvironement</KEYWORD2>
+ <KEYWORD2>\startfait</KEYWORD2>
+ <KEYWORD2>\startgroupe</KEYWORD2>
+ <KEYWORD2>\startligneregleetexte</KEYWORD2>
+ <KEYWORD2>\startmargereglee</KEYWORD2>
+ <KEYWORD2>\startmenuinteraction</KEYWORD2>
+ <KEYWORD2>\startproduit</KEYWORD2>
+ <KEYWORD2>\startprojet</KEYWORD2>
+ <KEYWORD2>\startversion</KEYWORD2>
+ <KEYWORD2>\stop</KEYWORD2>
+ <KEYWORD2>\stoparriereplan</KEYWORD2>
+ <KEYWORD2>\stopcitation</KEYWORD2>
+ <KEYWORD2>\stopcommentaire</KEYWORD2>
+ <KEYWORD2>\stopcomposant</KEYWORD2>
+ <KEYWORD2>\stopcouleur</KEYWORD2>
+ <KEYWORD2>\stopenvironement</KEYWORD2>
+ <KEYWORD2>\stopfait</KEYWORD2>
+ <KEYWORD2>\stopgroupe</KEYWORD2>
+ <KEYWORD2>\stopligneregleetexte</KEYWORD2>
+ <KEYWORD2>\stopmargereglee</KEYWORD2>
+ <KEYWORD2>\stopmenuinteraction</KEYWORD2>
+ <KEYWORD2>\stopproduit</KEYWORD2>
+ <KEYWORD2>\stopprojet</KEYWORD2>
+ <KEYWORD2>\stopversion</KEYWORD2>
+ <KEYWORD2>\suggestion</KEYWORD2>
+ <KEYWORD2>\suivantprofil</KEYWORD2>
+ <KEYWORD2>\suivantversion</KEYWORD2>
+ <KEYWORD2>\suivantversionprofil</KEYWORD2>
+ <KEYWORD2>\surligne</KEYWORD2>
+ <KEYWORD2>\surlignetout</KEYWORD2>
+ <KEYWORD2>\sym</KEYWORD2>
+ <KEYWORD2>\symbole</KEYWORD2>
+ <KEYWORD2>\synchronise</KEYWORD2>
+ <KEYWORD2>\tab</KEYWORD2>
+ <KEYWORD2>\tapebuffer</KEYWORD2>
+ <KEYWORD2>\tapepage</KEYWORD2>
+ <KEYWORD2>\tete</KEYWORD2>
+ <KEYWORD2>\tex</KEYWORD2>
+ <KEYWORD2>\textemarge</KEYWORD2>
+ <KEYWORD2>\textenotepdp</KEYWORD2>
+ <KEYWORD2>\textetete</KEYWORD2>
+ <KEYWORD2>\traduire</KEYWORD2>
+ <KEYWORD2>\traiteblocs</KEYWORD2>
+ <KEYWORD2>\traitepage</KEYWORD2>
+ <KEYWORD2>\traitfin</KEYWORD2>
+ <KEYWORD2>\traitsfins</KEYWORD2>
+ <KEYWORD2>\typ</KEYWORD2>
+ <KEYWORD2>\uneligne</KEYWORD2>
+ <KEYWORD2>\utiliseURL</KEYWORD2>
+ <KEYWORD2>\utiliseblocs</KEYWORD2>
+ <KEYWORD2>\utilisecommandes</KEYWORD2>
+ <KEYWORD2>\utilisedocumentexterne</KEYWORD2>
+ <KEYWORD2>\utiliseencodage</KEYWORD2>
+ <KEYWORD2>\utilisefichierexterne</KEYWORD2>
+ <KEYWORD2>\utilisefichiersexternes</KEYWORD2>
+ <KEYWORD2>\utilisefigureexterne</KEYWORD2>
+ <KEYWORD2>\utilisemodule</KEYWORD2>
+ <KEYWORD2>\utilisepsiteaudioexterne</KEYWORD2>
+ <KEYWORD2>\utilisereferences</KEYWORD2>
+ <KEYWORD2>\utilisespecialites</KEYWORD2>
+ <KEYWORD2>\utilisesymboles</KEYWORD2>
+ <KEYWORD2>\va</KEYWORD2>
+ <KEYWORD2>\vaalaboite</KEYWORD2>
+ <KEYWORD2>\vaenbas</KEYWORD2>
+ <KEYWORD2>\variabletexte</KEYWORD2>
+ <KEYWORD2>\version</KEYWORD2>
+ <KEYWORD2>\vide</KEYWORD2>
+ <KEYWORD2>\vl</KEYWORD2>
+ </KEYWORDS>
+ </RULES>
+</MODE>
diff --git a/Master/texmf-dist/context/data/context-jedit-nl.xml b/Master/texmf-dist/context/data/context-jedit-nl.xml
index 9779ec0fae0..d9da1606ddb 100644
--- a/Master/texmf-dist/context/data/context-jedit-nl.xml
+++ b/Master/texmf-dist/context/data/context-jedit-nl.xml
@@ -259,7 +259,7 @@
<KEYWORD2>\startonderdeel</KEYWORD2>
<KEYWORD2>\startopelkaar</KEYWORD2>
<KEYWORD2>\startprodukt</KEYWORD2>
- <KEYWORD2>\startproject</KEYWORD2>
+ <KEYWORD2>\startprojekt</KEYWORD2>
<KEYWORD2>\starttekstlijn</KEYWORD2>
<KEYWORD2>\startversie</KEYWORD2>
<KEYWORD2>\stelachtergrondenin</KEYWORD2>
@@ -394,7 +394,7 @@
<KEYWORD2>\stoponderdeel</KEYWORD2>
<KEYWORD2>\stopopelkaar</KEYWORD2>
<KEYWORD2>\stopprodukt</KEYWORD2>
- <KEYWORD2>\stopproject</KEYWORD2>
+ <KEYWORD2>\stopprojekt</KEYWORD2>
<KEYWORD2>\stoptekstlijn</KEYWORD2>
<KEYWORD2>\stopversie</KEYWORD2>
<KEYWORD2>\suggestie</KEYWORD2>
diff --git a/Master/texmf-dist/context/data/context.properties b/Master/texmf-dist/context/data/context.properties
index 6edccaab5c2..6875277180d 100644
--- a/Master/texmf-dist/context/data/context.properties
+++ b/Master/texmf-dist/context/data/context.properties
@@ -57,36 +57,45 @@ lexer.$(file.patterns.example)=xml
if PLAT_WIN
name.context.console=cmd
+ name.context.console=$(ComSpec)
name.context.gsview=gsview32.exe
name.context.acrobat=
+ name.texexec.flag.pdfopen=--autopdf
+
+# consoles: rxvt,konsole | acrobat: acroread,xpdfopen
+#
+# name.texexec.flag.pdfopen=--autopdf --xpdf
if PLAT_GTK
- name.context.console=cmd
- name.context.gsview=gs
- name.context.acrobat=acrobat
-
-name.context.concheck=texmfstart concheck.rb
-#name.context.texexec=texmfstart texexec.pl --autopdf
-name.context.texexec=texmfstart newtexexec.rb --autopdf
-name.context.texshow=texmfstart texshow.pl
-name.context.texutil=texmfstart texutil.pl
-#name.context.examplap=texmfstart --file=examplap.pdf --program=context --browser
+ name.context.console=rxvt
+ name.context.gsview=gv
+ name.context.acrobat=acroread
+ name.texexec.flag.pdfopen=--autopdf
+
+name.metafun.console=$(name.context.console)
+name.example.console=$(name.context.console)
+
+name.context.concheck=texmfstart concheck
+name.context.texexec=texmfstart texexec $(name.texexec.flag.pdfopen)
+name.context.texshow=texmfstart texshow
+name.context.purge=texmfstart ctxtools --purge --all
+name.context.update=texmfstart ctxtools --update
name.context.examplap=texmfstart --browser --file=http://localhost:8061/exalogin
name.context.showcase=texmfstart --file=showcase.pdf --program=context
+name.context.backend=pdf
+
name.example.xmlcheck=tidy -quiet -utf8 -xml -errors
-name.example.examplez=texmfstart examplez.rb
name.metafun.mptopdf=texmfstart mptopdf.pl
-# name.context.exampler=cmd /c start /min "Local Example Service" texmfstart exampler.rb --continue
-# name.context.exampler=texmfstart exampler.rb --continue > /tmp/exampler.log &
+# wwwserver --start --port=8061 --url=http://localhost:8061 --forcetemp --direct
if PLAT_WIN
- name.context.exampler=cmd /c start /min "Local Example Service" texmfstart exaserver.rb --start --port=8061
+ name.context.wwwserver=cmd /c start /min "Local Example Service" texmfstart wwwserver.rb --direct
if PLAT_GTK
- name.context.exampler=texmfstart exaserver.rb --start --port=8061 > /tmp/exampler.log &
+ name.context.wwwserver=texmfstart wwwserver.rb --direct > ~/context-wwwserver.log &
# Commands: help info, e:\websites\www.pragma-ade.com\showcase.pdf / todo: manuals
@@ -104,6 +113,10 @@ context.distribution.writable=1
command.save.before=1
+# xml completion
+
+xml.auto.close.tags=1
+
# extensions
import scite-ctx
@@ -119,21 +132,28 @@ command.compile.*.fo=$(name.example.xmlcheck) $(FileNameExt)
#command.compile.subsystem.$(file.patterns.metafun)=1
#command.compile.subsystem.$(file.patterns.example)=1
-command.build.$(file.patterns.context)=$(name.context.texexec) --pdf $(FileNameExt)
-# command.build.$(file.patterns.metafun)=$(name.context.texexec) --pdf --mptex $(FileNameExt)
+command.build.$(file.patterns.context)=$(name.context.texexec) --$(name.context.backend) $(FileNameExt)
+# command.build.$(file.patterns.metafun)=$(name.context.texexec) --$(name.context.backend) --mptex $(FileNameExt)
command.build.$(file.patterns.metafun)=$(name.metafun.mptopdf) $(FileNameExt)
-command.build.$(file.patterns.example)=$(name.context.texexec) --pdf --xml $(FileNameExt)
-command.build.*.fo=$(name.context.texexec) --pdf --autopdf --xml --use=foxet $(FileNameExt)
+command.build.$(file.patterns.example)=$(name.context.texexec) --$(name.context.backend) --xml $(FileNameExt)
+command.build.*.fo=$(name.context.texexec) --$(name.context.backend) $(name.texexec.flag.pdfopen) --xml --use=foxet $(FileNameExt)
command.build.subsystem.$(file.patterns.context)=1
command.build.subsystem.$(file.patterns.metafun)=1
command.build.subsystem.$(file.patterns.example)=1
command.build.subsystem.*.fo=1
-command.go.$(file.patterns.context)=$(FileName).pdf
-command.go.$(file.patterns.metafun)=$(FileName).pdf
-command.go.$(file.patterns.example)=$(FileName).pdf
-command.go.*.fo=$(FileName).pdf
+if PLAT_WIN
+ command.go.$(file.patterns.context)=$(FileName).pdf
+ command.go.$(file.patterns.metafun)=$(FileName).pdf
+ command.go.$(file.patterns.example)=$(FileName).pdf
+ command.go.*.fo=$(FileName).pdf
+
+if PLAT_GTK
+ command.go.$(file.patterns.context)=$(name.context.acrobat) $(FileName).pdf
+ command.go.$(file.patterns.metafun)=$(name.context.acrobat) $(FileName).pdf
+ command.go.$(file.patterns.example)=$(name.context.acrobat) $(FileName).pdf
+ command.go.*.fo=$(name.context.acrobat) $(FileName).pdf
command.go.subsystem.$(file.patterns.context)=2
command.go.subsystem.$(file.patterns.metafun)=2
@@ -156,9 +176,9 @@ command.name.1.$(file.patterns.context)=Process TeX file
command.name.1.$(file.patterns.metafun)=Process METAPOST File
command.name.1.$(file.patterns.example)=Process XML File
-command.1.$(file.patterns.context)=$(name.context.texexec) --pdf $(FileNameExt)
-command.1.$(file.patterns.metafun)=$(name.context.texexec) --pdf --mptex $(FileNameExt)
-command.1.$(file.patterns.example)=$(name.context.texexec) --pdf --xml $(FileNameExt)
+command.1.$(file.patterns.context)=$(name.context.texexec) --$(name.context.backend) $(FileNameExt)
+command.1.$(file.patterns.metafun)=$(name.context.texexec) --$(name.context.backend) --mptex $(FileNameExt)
+command.1.$(file.patterns.example)=$(name.context.texexec) --$(name.context.backend) --xml $(FileNameExt)
command.1.subsystem.$(file.patterns.context)=1
command.1.subsystem.$(file.patterns.metafun)=1
@@ -198,9 +218,9 @@ command.name.3.$(file.patterns.context)=Purge Files
command.name.3.$(file.patterns.metafun)=Purge Files
command.name.3.$(file.patterns.example)=Purge Files
-command.3.$(file.patterns.context)=$(name.context.texutil) --purge
-command.3.$(file.patterns.metafun)=$(name.context.texutil) --purge
-command.3.$(file.patterns.example)=$(name.context.texutil) --purge
+command.3.$(file.patterns.context)=$(name.context.purge)
+command.3.$(file.patterns.metafun)=$(name.context.purge)
+command.3.$(file.patterns.example)=$(name.context.purge)
# 4 : documentation
@@ -243,30 +263,28 @@ command.name.7.$(file.patterns.context)=Generate Listing
command.name.7.$(file.patterns.metafun)=Generate Listing
command.name.7.$(file.patterns.example)=Generate Listing
-command.7=$(name.context.texexec) --pdf --list --result=$(FileName) $(FileNameExt)
-command.7.$(file.patterns.context)=$(name.context.texexec) --pdf --list --result=$(FileName) $(FileNameExt)
-command.7.$(file.patterns.metafun)=$(name.context.texexec) --pdf --list --result=$(FileName) $(FileNameExt)
-command.7.$(file.patterns.example)=$(name.context.texexec) --pdf --list --result=$(FileName) $(FileNameExt)
+command.7=$(name.context.texexec) --$(name.context.backend) --list --result=$(FileName) $(FileNameExt)
+command.7.$(file.patterns.context)=$(name.context.texexec) --$(name.context.backend) --list --result=$(FileName) $(FileNameExt)
+command.7.$(file.patterns.metafun)=$(name.context.texexec) --$(name.context.backend) --list --result=$(FileName) $(FileNameExt)
+command.7.$(file.patterns.example)=$(name.context.texexec) --$(name.context.backend) --list --result=$(FileName) $(FileNameExt)
command.7.subsystem=1
command.7.subsystem.$(file.patterns.context)=1
command.7.subsystem.$(file.patterns.metafun)=1
command.7.subsystem.$(file.patterns.example)=1
-# 8 : example framework service
-
-command.name.8=Example Service
-command.name.8.$(file.patterns.context)=Example Service
-command.name.8.$(file.patterns.metafun)=Example Service
-command.name.8.$(file.patterns.example)=Example Service
+# 8 : reserved
-command.8=$(name.context.exampler)
-command.8.$(file.patterns.context)=$(name.context.exampler)
-command.8.$(file.patterns.metafun)=$(name.context.exampler)
-command.8.$(file.patterns.example)=$(name.context.exampler)
+command.name.8.$(file.patterns.context)=
+command.name.8.$(file.patterns.metafun)=
+command.name.8.$(file.patterns.example)=
+command.8.$(file.patterns.context)=
+command.8.$(file.patterns.metafun)=
+command.8.$(file.patterns.example)=
-# 9 : format generation
+# 9 : reserved
+command.name.9=
command.name.9.$(file.patterns.context)=
command.name.9.$(file.patterns.metafun)=
command.name.9.$(file.patterns.example)=
@@ -274,16 +292,54 @@ command.9.$(file.patterns.context)=
command.9.$(file.patterns.metafun)=
command.9.$(file.patterns.example)=
-if $(context.distribution.writable)
- command.name.9.$(file.patterns.context)=Generate Formats
- command.name.9.$(file.patterns.metafun)=Generate Formats
- command.name.9.$(file.patterns.example)=Generate Formats
- command.9.$(file.patterns.context)=$(name.context.texexec) --make --alone
- command.9.$(file.patterns.metafun)=$(name.context.texexec) --make --alone
- command.9.$(file.patterns.example)=$(name.context.texexec) --make --alone
- command.9.subsystem.$(file.patterns.context)=1
- command.9.subsystem.$(file.patterns.metafun)=1
- command.9.subsystem.$(file.patterns.example)=1
+# 10: arranging
+
+command.name.10.$(file.patterns.context)=Process and Arrange
+command.name.10.$(file.patterns.metafun)=Process and Arrange
+command.name.10.$(file.patterns.example)=Process and Arrange
+command.10.$(file.patterns.context)=$(name.context.texexec) --arrange --$(name.context.backend) $(FileNameExt)
+command.10.$(file.patterns.metafun)=$(name.context.texexec) --$(name.context.backend) --mptex $(FileNameExt)
+command.10.$(file.patterns.example)=$(name.context.texexec) --arrange --$(name.context.backend) --xml $(FileNameExt)
+command.10.subsystem.$(file.patterns.context)=1
+command.10.subsystem.$(file.patterns.metafun)=1
+command.10.subsystem.$(file.patterns.example)=1
+
+# 11: make
+
+command.name.11.$(file.patterns.context)=Generate Formats
+command.name.11.$(file.patterns.metafun)=Generate Formats
+command.name.11.$(file.patterns.example)=Generate Formats
+command.11.$(file.patterns.context)=$(name.context.texexec) --make --all
+command.11.$(file.patterns.metafun)=$(name.context.texexec) --make --all
+command.11.$(file.patterns.example)=$(name.context.texexec) --make --all
+command.11.subsystem.$(file.patterns.context)=1
+command.11.subsystem.$(file.patterns.metafun)=1
+command.11.subsystem.$(file.patterns.example)=1
+
+# 12: update
+
+command.name.12=Update ConTeXt
+command.name.12.$(file.patterns.context)=Update ConTeXt
+command.name.12.$(file.patterns.metafun)=Update ConTeXt
+command.name.12.$(file.patterns.example)=Update ConTeXt
+
+command.12=$(name.context.update)
+command.12.$(file.patterns.context)=$(name.context.update)
+command.12.$(file.patterns.metafun)=$(name.context.update)
+command.12.$(file.patterns.example)=$(name.context.update)
+
+
+# 12: example
+
+command.name.13=Example Service
+command.name.13.$(file.patterns.context)=Example Service
+command.name.13.$(file.patterns.metafun)=Example Service
+command.name.13.$(file.patterns.example)=Example Service
+
+command.13=$(name.context.wwwserver)
+command.13.$(file.patterns.context)=$(name.context.wwwserver)
+command.13.$(file.patterns.metafun)=$(name.context.wwwserver)
+command.13.$(file.patterns.example)=$(name.context.wwwserver)
# Editor: syntax highlighting
@@ -300,8 +356,19 @@ Alt+F12|IDM_STOPEXECUTE|\
# Editor: fonts (16.5/11.5)
-font.monospace=font:LMTypewriter10,size:16.5
-font.errorfont=font:LMTypewriter10,size:11.5
+# install: fonts/truetype/hoekwater/lm/LMTypewriter10-Regular.ttf
+
+if PLAT_WIN
+ font.monospace=font:LMTypewriter10,size:16
+ font.errorfont=font:LMTypewriter10,size:12
+
+if PLAT_WIN
+ font.monospace=font:lmtypewriter10 regular,size:16
+ font.errorfont=font:lmtypewriter10 regular,size:12
+
+if PLAT_GTK
+ font.monospace=font:!lmtypewriter10 regular,size:16
+ font.errorfont=font:!lmtypewriter10 regular,size:12
font.base=$(font.monospace)
#~ font.small=$(font.monospace)
@@ -329,7 +396,7 @@ color.fore.yellow=fore:#7F7F00
# Editor: fast switching between files
tabbar.visible=1
-tabbar.hide.one=1
+tabbar.hide.one=0
tabbar.multiline=1
buffers=100
@@ -340,7 +407,8 @@ tabbar.multiline=1
# Editor: handy anyway
line.margin.visible=1
-line.numbers=5
+#~ line.numbers=6
+line.margin.width=3+
title.full.path=1
strip.trailing.spaces=1
save.session=1
@@ -368,7 +436,7 @@ error.marker.back=#007F7F
statusbar.visible=1
statusbar.number=1
-statusbar.text.1=$(FileNameExt) | $(FileDate) $(FileTime) | line $(LineNumber) column $(ColumnNumber) | mode $(OverType)
+statusbar.text.1=$(FileNameExt) | $(FileDate) $(FileTime) | line $(LineNumber) column $(ColumnNumber) | mode $(OverType) | eol $(EOLMode) | $(FileDate) $(FileTime)
# Editor: searching
@@ -381,7 +449,8 @@ find.files=*.tex *.xml *.mp
if PLAT_WIN
find.command=fgrep -n $(find.what) $(find.files)
-source.files=$(file.patterns.context);$(file.patterns.metafun);$(file.patterns.example);*.pl;*.rb
+source.files=$(file.patterns.context);$(file.patterns.metafun);$(file.patterns.example);*.pl;*.rb
+
# Editor: printing
if PLAT_WIN
@@ -397,9 +466,11 @@ if PLAT_WIN
clear.before.execute=1
wrap.output=0
-eol.mode=CRLF
+if PLAT_WIN
+ eol.mode=CRLF
+
ensure.final.line.end=1
-ensure.consistent,line.ends=1
+ensure.consistent.line.ends=1
# Editor: file type
@@ -407,8 +478,11 @@ default.file.ext=.tex
# Editor: auto completion
-autocompleteword.automatic=1 autocomplete.choose.single=0
-api.*.tex=t:\sources\cont-en-scite.api
+autocompleteword.automatic=1
+autocomplete.choose.single=0
+
+api.*.tex=t:\sources\cont-en-scite.api
+
# Logging
style.errorlist.32=$(font.errorfont)
diff --git a/Master/texmf-dist/context/data/context.vim b/Master/texmf-dist/context/data/context.vim
new file mode 100644
index 00000000000..69f89cbf54f
--- /dev/null
+++ b/Master/texmf-dist/context/data/context.vim
@@ -0,0 +1,155 @@
+" Vim syntax file
+" Language: ConTeXt typesetting engine
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-07-04
+
+if exists("b:current_syntax")
+ finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword contextTodo TODO FIXME XXX NOTE
+
+"syn region contextComment display oneline start='%' end='\n'
+" \ contains=contextTodo
+"syn region contextComment display oneline start='^\s*%[CDM]' end='\n'
+" \ contains=ALL
+
+syn match contextComment '%.*' display
+ \ contains=contextTodo
+syn match contextComment '^\s*%[CDM]*.*' display
+ \ contains=ALL
+
+syn match contextStatement display '\\[a-zA-Z@]\+' contains=@NoSpell
+
+syn match contextBlockDelim display '\\\%(start\|stop\)\a\+'
+ \ contains=@NoSpell
+
+syn match contextDelimiter '[][{}]'
+
+syn match contextEscaped display '\\\_[\{}|&%$ ]'
+syn region contextEscaped display matchgroup=contextPreProc
+ \ start='\\type\z(\A\)' end='\z1'
+syn region contextEscaped display matchgroup=contextPreProc
+ \ start='\\type\={' end='}'
+syn region contextEscaped display matchgroup=contextPreProc
+ \ start='\\type\=<<' end='>>'
+syn region contextEscaped matchgroup=contextPreProc
+ \ start='\\start\z(\a*\%(typing\|typen\)\)'
+ \ end='\\stop\z1'
+syn region contextEscaped display matchgroup=contextPreProc
+ \ start='\\\h\+Type{' end='}'
+syn region contextEscaped display matchgroup=contextPreProc
+ \ start='\\Typed\h\+{' end='}'
+
+"syn region contextMath matchgroup=contextMath start='\$' end='\$'
+" \ contains=contextStatement
+
+syn match contextBuiltin '\\\%(newif\|def\|gdef\|global\|let\|glet\|bgroup\)\>'
+ \ contains=@NoSpell
+syn match contextBuiltin '\\\%(begingroup\|egroup\|endgroup\|long\|catcode\)\>'
+ \ contains=@NoSpell
+syn match contextBuiltin '\\\%(unprotect\|unexpanded\|if\|else\|fi\|ifx\)\>'
+ \ contains=@NoSpell
+syn match contextBuiltin '\\\%(futurelet\|protect\)\>' contains=@NoSpell
+syn match contextBuiltin '\\\%([lr]q\)\>' contains=@NoSpell
+
+syn match contextPreProc '^\s*\\\%(start\|stop\)\=\%(component\|environment\|project\|product\).*$'
+ \ contains=@NoSpell
+syn match contextPreProc '^\s*\\input\s\+.*$' contains=@NoSpell
+
+syn match contextSectioning '\\chapter\>' contains=@NoSpell
+syn match contextSectioning '\\\%(sub\)*section\>' contains=@NoSpell
+
+syn match contextSpecial '\\crlf\>\|\\par\>\|-\{2,3}\||[<>/]\=|'
+ \ contains=@NoSpell
+syn match contextSpecial '\\[`'"]'
+syn match contextSpecial +\\char\%(\d\{1,3}\|'\o\{1,3}\|"\x\{1,2}\)\>+
+ \ contains=@NoSpell
+syn match contextSpecial '\^\^.'
+syn match contextSpecial '`\%(\\.\|\^\^.\|.\)'
+
+syn match contextStyle '\\\%(em\|tt\|rm\|ss\|hw\|cg\|mf\)\>'
+ \ contains=@NoSpell
+syn match contextFont '\\\%(CAP\|Cap\|cap\|Caps\|kap\|nocap\)\>'
+ \ contains=@NoSpell
+syn match contextFont '\\\%(Word\|WORD\|Words\|WORDS\)\>'
+ \ contains=@NoSpell
+syn match contextFont '\\\%(vi\{1,3}\|ix\|xi\{0,2}\)\>'
+ \ contains=@NoSpell
+"syn match contextFont '\\\%(tf[abcdx]\|bfx\|[is]lx\)\>'
+" \ contains=@NoSpell
+syn match contextFont '\\\%(tf\|b[fsi]\|s[cl]\|it\|os\)\%(\|[xabcd]\|xx\)\>'
+ \ contains=@NoSpell
+" missing:
+" \tx, \txx, is \t[abcd] also possible?
+" \rmsl, \ssbf, \sssl, \tttf ... I didn't figure out yet how they are used
+" \rmd ...
+" is \em[xabcd] possible?
+" mm
+" ex, mi, sy - what's that?
+
+syn match contextDimension '[+-]\=\s*\%(\d\+\%([.,]\d*\)\=\|[.,]\d\+\)\s*\%(true\)\=\s*\%(p[tc]\|in\|bp\|c[mc]\|mm\|dd\|sp\|e[mx]\)\>'
+ \ contains=@NoSpell
+
+
+" Put the metafun syntax file in @metafunTop
+"
+" TODO: should be changed to metafun once the support is there
+" javascript should probably be adapted to PDF specification too, but it
+" changes in every version anyway and often doesn't work either
+"
+syn include @metafunTop syntax/mp.vim
+unlet b:current_syntax
+"syn cluster @metafunTop contains=@mmetafunTop remove=texComment
+" for some reason I can't make both metapost and javascript working at the same time
+
+"syn region metafunBlock matchgroup=metafunDelim start=#\\startMPpage# skip=#%.*\\stopMPpage# end=#\\stopMPpage# keepend contains=@metafunTop
+"syn region metafunBlock matchgroup=metafunDelim start=#\\startMPpage\(\s|$\)# skip=#%.*\\stopMPpage# matchgroup=metafunDelim end=#\\stopMPpage\(\s|$\)# transparent keepend contains=@metafunTop
+syn region metafunBlock matchgroup=metafunDelim start=#\\startMPpage# skip=#%.*\\stopMPpage# matchgroup=metafunDelim end=#\\stopMPpage# transparent keepend contains=@metafunTop
+"syn region metafunBlock matchgroup=metafunDelim start=#\\startMPpage#hs=e-2 skip=#%.*\\stopMPpage# matchgroup=metafunDelim end=#\\stopMPpage#he=s-1 keepend contains=@metafunTop
+" TODO: \startuseMPgraphic{the name} - "the name" has to be catched and
+" typeset in ConTeXt, not in metapost!!!
+syn region metafunBlock matchgroup=metafunDelim start=#\\startMPcode# skip=#%.*\\stopMPcode# end=#\\stopMPcode# transparent keepend contains=@metafunTop
+syn region metafunBlock matchgroup=metafunDelim start=#\\startMPinclusions# skip=#%.*\\stopMPinclusions# end=#\\stopMPinclusions# transparent keepend contains=@metafunTop
+syn region metafunBlock matchgroup=metafunDelim start=#\\startMPgraphic# skip=#%.*\\stopMPgraphic# end=#\\stopMPgraphic# transparent keepend contains=@metafunTop
+syn region metafunBlock matchgroup=metafunDelim start=#\\startMPdrawing# skip=#%.*\\stopMPdrawing# end=#\\stopMPdrawing# transparent keepend contains=@metafunTop
+syn region metafunBlock matchgroup=metafunDelim start=#\\startuseMPgraphic# skip=#%.*\\stopuseMPgraphic# end=#\\stopuseMPgraphic# transparent keepend contains=@metafunTop
+syn region metafunBlock matchgroup=metafunDelim start=#\\startreusableMPgraphic# skip=#%.*\\stopreusableMPgraphic# end=#\\stopreusableMPgraphic# transparent keepend contains=@metafunTop
+syn region metafunBlock matchgroup=metafunDelim start=#\\startuniqueMPgraphic# skip=#%.*\\stopuniqueMPgraphic# end=#\\stopuniqueMPgraphic# transparent keepend contains=@metafunTop
+syn region metafunBlock matchgroup=metafunDelim start=#\\startMPrun# skip=#%.*\\stopMPrun# end=#\\stopMPrun# transparent keepend contains=@metafunTop
+
+hi def link metafundelim contextBlockDelim
+
+syn match contextURL '\\useURL\s*\[abc\]'
+
+
+hi def link contextTodo Todo
+hi def link contextComment Comment
+hi def link contextEscaped Special
+"hi def link contextStatement Identifier
+hi def link contextStatement Statement
+hi def link contextMath String
+hi def link contextBlockDelim Keyword
+hi def link contextBuiltin Keyword
+hi def link contextDelimiter Delimiter
+hi def link contextPreProc PreProc
+hi def link contextSectioning PreProc
+hi def link contextSpecial Special
+hi def link contextStyle contextType
+hi def link contextFont contextType
+hi def link contextType Type
+hi def link contextDimension Number
+
+hi def link metafunBlock String
+hi def link contextURL String
+
+let b:current_syntax = "context"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
+
+
diff --git a/Master/texmf-dist/context/data/contextnames.txt b/Master/texmf-dist/context/data/contextnames.txt
new file mode 100644
index 00000000000..ed57e628bec
--- /dev/null
+++ b/Master/texmf-dist/context/data/contextnames.txt
@@ -0,0 +1,14096 @@
+# version : 2006.04.20
+# author : Mojca Miklavec
+#
+# This module is part of the ConTeXt macro package. See
+# mreadme.pdf for details.
+
+#
+# Basic Latin
+#
+0000;;;<control>
+0001;;;<control>
+0002;;;<control>
+0003;;;<control>
+0004;;;<control>
+0005;;;<control>
+0006;;;<control>
+0007;;;<control>
+0008;;;<control>
+0009;;;<control>
+000A;;;<control>
+000B;;;<control>
+000C;;;<control>
+000D;;;<control>
+000E;;;<control>
+000F;;;<control>
+#
+0010;;;<control>
+0011;;;<control>
+0012;;;<control>
+0013;;;<control>
+0014;;;<control>
+0015;;;<control>
+0016;;;<control>
+0017;;;<control>
+0018;;;<control>
+0019;;;<control>
+001A;;;<control>
+001B;;;<control>
+001C;;;<control>
+001D;;;<control>
+001E;;;<control>
+001F;;;<control>
+#
+0020;space;;SPACE
+0021;exclam;;EXCLAMATION MARK
+0022;quotedbl;;QUOTATION MARK
+0023;numbersign;;NUMBER SIGN
+0024;dollar;;DOLLAR SIGN
+0025;percent;percent;PERCENT SIGN
+0026;ampersand;;AMPERSAND
+0027;quotesingle;;APOSTROPHE
+0028;parenleft;;LEFT PARENTHESIS
+0029;parenright;;RIGHT PARENTHESIS
+002A;asterisk;;ASTERISK
+002B;plus;;PLUS SIGN
+002C;comma;;COMMA
+002D;hyphen;;HYPHEN-MINUS
+002E;period;;FULL STOP
+002F;slash;;SOLIDUS
+#
+0030;zero;;DIGIT ZERO
+0031;one;;DIGIT ONE
+0032;two;;DIGIT TWO
+0033;three;;DIGIT THREE
+0034;four;;DIGIT FOUR
+0035;five;;DIGIT FIVE
+0036;six;;DIGIT SIX
+0037;seven;;DIGIT SEVEN
+0038;eight;;DIGIT EIGHT
+0039;nine;;DIGIT NINE
+003A;colon;;COLON
+003B;semicolon;;SEMICOLON
+003C;less;;LESS-THAN SIGN
+003D;equal;;EQUALS SIGN
+003E;greater;;GREATER-THAN SIGN
+003F;question;;QUESTION MARK
+#
+0040;at;;COMMERCIAL AT
+0041;A;;LATIN CAPITAL LETTER A
+0042;B;;LATIN CAPITAL LETTER B
+0043;C;;LATIN CAPITAL LETTER C
+0044;D;;LATIN CAPITAL LETTER D
+0045;E;;LATIN CAPITAL LETTER E
+0046;F;;LATIN CAPITAL LETTER F
+0047;G;;LATIN CAPITAL LETTER G
+0048;H;;LATIN CAPITAL LETTER H
+0049;I;;LATIN CAPITAL LETTER I
+004A;J;;LATIN CAPITAL LETTER J
+004B;K;;LATIN CAPITAL LETTER K
+004C;L;;LATIN CAPITAL LETTER L
+004D;M;;LATIN CAPITAL LETTER M
+004E;N;;LATIN CAPITAL LETTER N
+004F;O;;LATIN CAPITAL LETTER O
+#
+0050;P;;LATIN CAPITAL LETTER P
+0051;Q;;LATIN CAPITAL LETTER Q
+0052;R;;LATIN CAPITAL LETTER R
+0053;S;;LATIN CAPITAL LETTER S
+0054;T;;LATIN CAPITAL LETTER T
+0055;U;;LATIN CAPITAL LETTER U
+0056;V;;LATIN CAPITAL LETTER V
+0057;W;;LATIN CAPITAL LETTER W
+0058;X;;LATIN CAPITAL LETTER X
+0059;Y;;LATIN CAPITAL LETTER Y
+005A;Z;;LATIN CAPITAL LETTER Z
+005B;bracketleft;;LEFT SQUARE BRACKET
+005C;backslash;textbackslash;REVERSE SOLIDUS
+005D;bracketright;;RIGHT SQUARE BRACKET
+005E;asciicircum;textasciicircum;CIRCUMFLEX ACCENT
+005F;underscore;textunderscore;LOW LINE
+#
+0060;grave;textgrave;GRAVE ACCENT
+0061;a;;LATIN SMALL LETTER A
+0062;b;;LATIN SMALL LETTER B
+0063;c;;LATIN SMALL LETTER C
+0064;d;;LATIN SMALL LETTER D
+0065;e;;LATIN SMALL LETTER E
+0066;f;;LATIN SMALL LETTER F
+0067;g;;LATIN SMALL LETTER G
+0068;h;;LATIN SMALL LETTER H
+0069;i;;LATIN SMALL LETTER I
+006A;j;;LATIN SMALL LETTER J
+006B;k;;LATIN SMALL LETTER K
+006C;l;;LATIN SMALL LETTER L
+006D;m;;LATIN SMALL LETTER M
+006E;n;;LATIN SMALL LETTER N
+006F;o;;LATIN SMALL LETTER O
+#
+0070;p;;LATIN SMALL LETTER P
+0071;q;;LATIN SMALL LETTER Q
+0072;r;;LATIN SMALL LETTER R
+0073;s;;LATIN SMALL LETTER S
+0074;t;;LATIN SMALL LETTER T
+0075;u;;LATIN SMALL LETTER U
+0076;v;;LATIN SMALL LETTER V
+0077;w;;LATIN SMALL LETTER W
+0078;x;;LATIN SMALL LETTER X
+0079;y;;LATIN SMALL LETTER Y
+007A;z;;LATIN SMALL LETTER Z
+007B;braceleft;textbraceleft;LEFT CURLY BRACKET
+007C;bar;;VERTICAL LINE
+007D;braceright;textbraceright;RIGHT CURLY BRACKET
+007E;asciitilde;textasciitilde;TILDE
+007F;;;<control>
+#
+# Latin-1 Supplement
+#
+0080;;;<control>
+0081;;;<control>
+0082;;;<control>
+0083;;;<control>
+0084;;;<control>
+0085;;;<control>
+0086;;;<control>
+0087;;;<control>
+0088;;;<control>
+0089;;;<control>
+008A;;;<control>
+008B;;;<control>
+008C;;;<control>
+008D;;;<control>
+008E;;;<control>
+008F;;;<control>
+#
+0090;;;<control>
+0091;;;<control>
+0092;;;<control>
+0093;;;<control>
+0094;;;<control>
+0095;;;<control>
+0096;;;<control>
+0097;;;<control>
+0098;;;<control>
+0099;;;<control>
+009A;;;<control>
+009B;;;<control>
+009C;;;<control>
+009D;;;<control>
+009E;;;<control>
+009F;;;<control>
+#
+00A0;;nonbreakablespace;NO-BREAK SPACE
+00A1;exclamdown;exclamdown;INVERTED EXCLAMATION MARK
+00A2;cent;textcent;CENT SIGN
+00A3;sterling;textsterling;POUND SIGN
+00A4;currency;textcurrency;CURRENCY SIGN
+00A5;yen;textyen;YEN SIGN
+00A6;brokenbar;textbrokenbar;BROKEN BAR
+00A7;section;sectionmark;SECTION SIGN
+00A8;dieresis;textdiaeresis;DIAERESIS
+00A9;copyright;copyright;COPYRIGHT SIGN
+00AA;ordfeminine;ordfeminine;FEMININE ORDINAL INDICATOR
+00AB;guillemotleft;leftguillemot;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+00AC;logicalnot;textlognot;NOT SIGN
+00AD;;softhyphen;SOFT HYPHEN
+00AE;registered;registered;REGISTERED SIGN
+00AF;macron;textmacron;MACRON
+#
+00B0;degree;textdegree;DEGREE SIGN
+00B1;plusminus;textpm;PLUS-MINUS SIGN
+00B2;;twosuperior;SUPERSCRIPT TWO
+00B3;;threesuperior;SUPERSCRIPT THREE
+00B4;acute;textacute;ACUTE ACCENT
+00B5;mu;textmu;MICRO SIGN
+00B6;paragraph;paragraphmark;PILCROW SIGN
+00B7;periodcentered;periodcentered;MIDDLE DOT
+00B8;cedilla;textcedilla;CEDILLA
+00B9;;onesuperior;SUPERSCRIPT ONE
+00BA;ordmasculine;ordmasculine;MASCULINE ORDINAL INDICATOR
+00BB;guillemotright;rightguillemot;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+00BC;onequarter;onequarter;VULGAR FRACTION ONE QUARTER
+00BD;onehalf;onehalf;VULGAR FRACTION ONE HALF
+00BE;threequarters;threequarter;VULGAR FRACTION THREE QUARTERS
+00BF;questiondown;questiondown;INVERTED QUESTION MARK
+#
+00C0;Agrave;Agrave;LATIN CAPITAL LETTER A WITH GRAVE
+00C1;Aacute;Aacute;LATIN CAPITAL LETTER A WITH ACUTE
+00C2;Acircumflex;Acircumflex;LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+00C3;Atilde;Atilde;LATIN CAPITAL LETTER A WITH TILDE
+00C4;Adieresis;Adiaeresis;LATIN CAPITAL LETTER A WITH DIAERESIS
+00C5;Aring;Aring;LATIN CAPITAL LETTER A WITH RING ABOVE
+00C6;AE;AEligature;LATIN CAPITAL LETTER AE
+00C7;Ccedilla;Ccedilla;LATIN CAPITAL LETTER C WITH CEDILLA
+00C8;Egrave;Egrave;LATIN CAPITAL LETTER E WITH GRAVE
+00C9;Eacute;Eacute;LATIN CAPITAL LETTER E WITH ACUTE
+00CA;Ecircumflex;Ecircumflex;LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+00CB;Edieresis;Ediaeresis;LATIN CAPITAL LETTER E WITH DIAERESIS
+00CC;Igrave;Igrave;LATIN CAPITAL LETTER I WITH GRAVE
+00CD;Iacute;Iacute;LATIN CAPITAL LETTER I WITH ACUTE
+00CE;Icircumflex;Icircumflex;LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+00CF;Idieresis;Idiaeresis;LATIN CAPITAL LETTER I WITH DIAERESIS
+#
+00D0;Eth;Eth;LATIN CAPITAL LETTER ETH
+00D1;Ntilde;Ntilde;LATIN CAPITAL LETTER N WITH TILDE
+00D2;Ograve;Ograve;LATIN CAPITAL LETTER O WITH GRAVE
+00D3;Oacute;Oacute;LATIN CAPITAL LETTER O WITH ACUTE
+00D4;Ocircumflex;Ocircumflex;LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+00D5;Otilde;Otilde;LATIN CAPITAL LETTER O WITH TILDE
+00D6;Odieresis;Odiaeresis;LATIN CAPITAL LETTER O WITH DIAERESIS
+00D7;multiply;textmultiply;MULTIPLICATION SIGN
+00D8;Oslash;Ostroke;LATIN CAPITAL LETTER O WITH STROKE
+00D9;Ugrave;Ugrave;LATIN CAPITAL LETTER U WITH GRAVE
+00DA;Uacute;Uacute;LATIN CAPITAL LETTER U WITH ACUTE
+00DB;Ucircumflex;Ucircumflex;LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+00DC;Udieresis;Udiaeresis;LATIN CAPITAL LETTER U WITH DIAERESIS
+00DD;Yacute;Yacute;LATIN CAPITAL LETTER Y WITH ACUTE
+00DE;Thorn;Thorn;LATIN CAPITAL LETTER THORN
+00DF;germandbls;ssharp;LATIN SMALL LETTER SHARP S
+#
+00E0;agrave;agrave;LATIN SMALL LETTER A WITH GRAVE
+00E1;aacute;aacute;LATIN SMALL LETTER A WITH ACUTE
+00E2;acircumflex;acircumflex;LATIN SMALL LETTER A WITH CIRCUMFLEX
+00E3;atilde;atilde;LATIN SMALL LETTER A WITH TILDE
+00E4;adieresis;adiaeresis;LATIN SMALL LETTER A WITH DIAERESIS
+00E5;aring;aring;LATIN SMALL LETTER A WITH RING ABOVE
+00E6;ae;aeligature;LATIN SMALL LETTER AE
+00E7;ccedilla;ccedilla;LATIN SMALL LETTER C WITH CEDILLA
+00E8;egrave;egrave;LATIN SMALL LETTER E WITH GRAVE
+00E9;eacute;eacute;LATIN SMALL LETTER E WITH ACUTE
+00EA;ecircumflex;ecircumflex;LATIN SMALL LETTER E WITH CIRCUMFLEX
+00EB;edieresis;ediaeresis;LATIN SMALL LETTER E WITH DIAERESIS
+00EC;igrave;igrave;LATIN SMALL LETTER I WITH GRAVE
+00ED;iacute;iacute;LATIN SMALL LETTER I WITH ACUTE
+00EE;icircumflex;icircumflex;LATIN SMALL LETTER I WITH CIRCUMFLEX
+00EF;idieresis;idiaeresis;LATIN SMALL LETTER I WITH DIAERESIS
+#
+00F0;eth;eth;LATIN SMALL LETTER ETH
+00F1;ntilde;ntilde;LATIN SMALL LETTER N WITH TILDE
+00F2;ograve;ograve;LATIN SMALL LETTER O WITH GRAVE
+00F3;oacute;oacute;LATIN SMALL LETTER O WITH ACUTE
+00F4;ocircumflex;ocircumflex;LATIN SMALL LETTER O WITH CIRCUMFLEX
+00F5;otilde;otilde;LATIN SMALL LETTER O WITH TILDE
+00F6;odieresis;odiaeresis;LATIN SMALL LETTER O WITH DIAERESIS
+00F7;divide;textdiv;DIVISION SIGN
+00F8;oslash;ostroke;LATIN SMALL LETTER O WITH STROKE
+00F9;ugrave;ugrave;LATIN SMALL LETTER U WITH GRAVE
+00FA;uacute;uacute;LATIN SMALL LETTER U WITH ACUTE
+00FB;ucircumflex;ucircumflex;LATIN SMALL LETTER U WITH CIRCUMFLEX
+00FC;udieresis;udiaeresis;LATIN SMALL LETTER U WITH DIAERESIS
+00FD;yacute;yacute;LATIN SMALL LETTER Y WITH ACUTE
+00FE;thorn;thorn;LATIN SMALL LETTER THORN
+00FF;ydieresis;ydiaeresis;LATIN SMALL LETTER Y WITH DIAERESIS
+#
+# Latin Extended-A
+#
+0100;Amacron;Amacron;LATIN CAPITAL LETTER A WITH MACRON
+0101;amacron;amacron;LATIN SMALL LETTER A WITH MACRON
+0102;Abreve;Abreve;LATIN CAPITAL LETTER A WITH BREVE
+0103;abreve;abreve;LATIN SMALL LETTER A WITH BREVE
+0104;Aogonek;Aogonek;LATIN CAPITAL LETTER A WITH OGONEK
+0105;aogonek;aogonek;LATIN SMALL LETTER A WITH OGONEK
+0106;Cacute;Cacute;LATIN CAPITAL LETTER C WITH ACUTE
+0107;cacute;cacute;LATIN SMALL LETTER C WITH ACUTE
+0108;Ccircumflex;Ccircumflex;LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+0109;ccircumflex;ccircumflex;LATIN SMALL LETTER C WITH CIRCUMFLEX
+010A;Cdotaccent;Cdotaccent;LATIN CAPITAL LETTER C WITH DOT ABOVE
+010B;cdotaccent;cdotaccent;LATIN SMALL LETTER C WITH DOT ABOVE
+010C;Ccaron;Ccaron;LATIN CAPITAL LETTER C WITH CARON
+010D;ccaron;ccaron;LATIN SMALL LETTER C WITH CARON
+010E;Dcaron;Dcaron;LATIN CAPITAL LETTER D WITH CARON
+010F;dcaron;dcaron;LATIN SMALL LETTER D WITH CARON
+#
+0110;Dcroat;Dstroke;LATIN CAPITAL LETTER D WITH STROKE
+0111;dcroat;dstroke;LATIN SMALL LETTER D WITH STROKE
+0112;Emacron;Emacron;LATIN CAPITAL LETTER E WITH MACRON
+0113;emacron;emacron;LATIN SMALL LETTER E WITH MACRON
+0114;Ebreve;Ebreve;LATIN CAPITAL LETTER E WITH BREVE
+0115;ebreve;ebreve;LATIN SMALL LETTER E WITH BREVE
+0116;Edotaccent;Edotaccent;LATIN CAPITAL LETTER E WITH DOT ABOVE
+0117;edotaccent;edotaccent;LATIN SMALL LETTER E WITH DOT ABOVE
+0118;Eogonek;Eogonek;LATIN CAPITAL LETTER E WITH OGONEK
+0119;eogonek;eogonek;LATIN SMALL LETTER E WITH OGONEK
+011A;Ecaron;Ecaron;LATIN CAPITAL LETTER E WITH CARON
+011B;ecaron;ecaron;LATIN SMALL LETTER E WITH CARON
+011C;Gcircumflex;Gcircumflex;LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+011D;gcircumflex;gcircumflex;LATIN SMALL LETTER G WITH CIRCUMFLEX
+011E;Gbreve;Gbreve;LATIN CAPITAL LETTER G WITH BREVE
+011F;gbreve;gbreve;LATIN SMALL LETTER G WITH BREVE
+#
+0120;Gdotaccent;Gdotaccent;LATIN CAPITAL LETTER G WITH DOT ABOVE
+0121;gdotaccent;gdotaccent;LATIN SMALL LETTER G WITH DOT ABOVE
+0122;Gcommaaccent;Gcommaaccent;LATIN CAPITAL LETTER G WITH CEDILLA
+0123;gcommaaccent;gcommaaccent;LATIN SMALL LETTER G WITH CEDILLA
+0124;Hcircumflex;Hcircumflex;LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+0125;hcircumflex;hcircumflex;LATIN SMALL LETTER H WITH CIRCUMFLEX
+0126;Hbar;Hstroke;LATIN CAPITAL LETTER H WITH STROKE
+0127;hbar;hstroke;LATIN SMALL LETTER H WITH STROKE
+0128;Itilde;Itilde;LATIN CAPITAL LETTER I WITH TILDE
+0129;itilde;itilde;LATIN SMALL LETTER I WITH TILDE
+012A;Imacron;Imacron;LATIN CAPITAL LETTER I WITH MACRON
+012B;imacron;imacron;LATIN SMALL LETTER I WITH MACRON
+012C;Ibreve;Ibreve;LATIN CAPITAL LETTER I WITH BREVE
+012D;ibreve;ibreve;LATIN SMALL LETTER I WITH BREVE
+012E;Iogonek;Iogonek;LATIN CAPITAL LETTER I WITH OGONEK
+012F;iogonek;iogonek;LATIN SMALL LETTER I WITH OGONEK
+#
+0130;Idotaccent;Idotaccent;LATIN CAPITAL LETTER I WITH DOT ABOVE
+0131;dotlessi;dotlessi;LATIN SMALL LETTER DOTLESS I
+0132;IJ;IJligature;LATIN CAPITAL LIGATURE IJ
+0133;ij;ijligature;LATIN SMALL LIGATURE IJ
+0134;Jcircumflex;Jcircumflex;LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+0135;jcircumflex;jcircumflex;LATIN SMALL LETTER J WITH CIRCUMFLEX
+0136;Kcommaaccent;Kcommaaccent;LATIN CAPITAL LETTER K WITH CEDILLA
+0137;kcommaaccent;kcommaaccent;LATIN SMALL LETTER K WITH CEDILLA
+0138;kgreenlandic;kkra;LATIN SMALL LETTER KRA
+0139;Lacute;Lacute;LATIN CAPITAL LETTER L WITH ACUTE
+013A;lacute;lacute;LATIN SMALL LETTER L WITH ACUTE
+013B;Lcommaaccent;Lcommaaccent;LATIN CAPITAL LETTER L WITH CEDILLA
+013C;lcommaaccent;lcommaaccent;LATIN SMALL LETTER L WITH CEDILLA
+013D;Lcaron;Lcaron;LATIN CAPITAL LETTER L WITH CARON
+013E;lcaron;lcaron;LATIN SMALL LETTER L WITH CARON
+013F;Ldot;Ldotmiddle;LATIN CAPITAL LETTER L WITH MIDDLE DOT
+#
+0140;ldot;ldotmiddle;LATIN SMALL LETTER L WITH MIDDLE DOT
+0141;Lslash;Lstroke;LATIN CAPITAL LETTER L WITH STROKE
+0142;lslash;lstroke;LATIN SMALL LETTER L WITH STROKE
+0143;Nacute;Nacute;LATIN CAPITAL LETTER N WITH ACUTE
+0144;nacute;nacute;LATIN SMALL LETTER N WITH ACUTE
+0145;Ncommaaccent;Ncommaaccent;LATIN CAPITAL LETTER N WITH CEDILLA
+0146;ncommaaccent;ncommaaccent;LATIN SMALL LETTER N WITH CEDILLA
+0147;Ncaron;Ncaron;LATIN CAPITAL LETTER N WITH CARON
+0148;ncaron;ncaron;LATIN SMALL LETTER N WITH CARON
+0149;napostrophe;napostrophe;LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+014A;Eng;Neng;LATIN CAPITAL LETTER ENG
+014B;eng;neng;LATIN SMALL LETTER ENG
+014C;Omacron;Omacron;LATIN CAPITAL LETTER O WITH MACRON
+014D;omacron;omacron;LATIN SMALL LETTER O WITH MACRON
+014E;Obreve;Obreve;LATIN CAPITAL LETTER O WITH BREVE
+014F;obreve;obreve;LATIN SMALL LETTER O WITH BREVE
+#
+0150;Ohungarumlaut;Ohungarumlaut;LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0151;ohungarumlaut;ohungarumlaut;LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0152;OE;OEligature;LATIN CAPITAL LIGATURE OE
+0153;oe;oeligature;LATIN SMALL LIGATURE OE
+0154;Racute;Racute;LATIN CAPITAL LETTER R WITH ACUTE
+0155;racute;racute;LATIN SMALL LETTER R WITH ACUTE
+0156;Rcommaaccent;Rcommaaccent;LATIN CAPITAL LETTER R WITH CEDILLA
+0157;rcommaaccent;rcommaaccent;LATIN SMALL LETTER R WITH CEDILLA
+0158;Rcaron;Rcaron;LATIN CAPITAL LETTER R WITH CARON
+0159;rcaron;rcaron;LATIN SMALL LETTER R WITH CARON
+015A;Sacute;Sacute;LATIN CAPITAL LETTER S WITH ACUTE
+015B;sacute;sacute;LATIN SMALL LETTER S WITH ACUTE
+015C;Scircumflex;Scircumflex;LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+015D;scircumflex;scircumflex;LATIN SMALL LETTER S WITH CIRCUMFLEX
+015E;Scedilla;Scedilla;LATIN CAPITAL LETTER S WITH CEDILLA
+015F;scedilla;scedilla;LATIN SMALL LETTER S WITH CEDILLA
+#
+0160;Scaron;Scaron;LATIN CAPITAL LETTER S WITH CARON
+0161;scaron;scaron;LATIN SMALL LETTER S WITH CARON
+0162;Tcommaaccent;Tcedilla;LATIN CAPITAL LETTER T WITH CEDILLA
+0163;tcommaaccent;tcedilla;LATIN SMALL LETTER T WITH CEDILLA
+0164;Tcaron;Tcaron;LATIN CAPITAL LETTER T WITH CARON
+0165;tcaron;tcaron;LATIN SMALL LETTER T WITH CARON
+0166;Tbar;Tstroke;LATIN CAPITAL LETTER T WITH STROKE
+0167;tbar;tstroke;LATIN SMALL LETTER T WITH STROKE
+0168;Utilde;Utilde;LATIN CAPITAL LETTER U WITH TILDE
+0169;utilde;utilde;LATIN SMALL LETTER U WITH TILDE
+016A;Umacron;Umacron;LATIN CAPITAL LETTER U WITH MACRON
+016B;umacron;umacron;LATIN SMALL LETTER U WITH MACRON
+016C;Ubreve;Ubreve;LATIN CAPITAL LETTER U WITH BREVE
+016D;ubreve;ubreve;LATIN SMALL LETTER U WITH BREVE
+016E;Uring;Uring;LATIN CAPITAL LETTER U WITH RING ABOVE
+016F;uring;uring;LATIN SMALL LETTER U WITH RING ABOVE
+#
+0170;Uhungarumlaut;Uhungarumlaut;LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0171;uhungarumlaut;uhungarumlaut;LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0172;Uogonek;Uogonek;LATIN CAPITAL LETTER U WITH OGONEK
+0173;uogonek;uogonek;LATIN SMALL LETTER U WITH OGONEK
+0174;Wcircumflex;Wcircumflex;LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+0175;wcircumflex;wcircumflex;LATIN SMALL LETTER W WITH CIRCUMFLEX
+0176;Ycircumflex;Ycircumflex;LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+0177;ycircumflex;ycircumflex;LATIN SMALL LETTER Y WITH CIRCUMFLEX
+0178;Ydieresis;Ydiaeresis;LATIN CAPITAL LETTER Y WITH DIAERESIS
+0179;Zacute;Zacute;LATIN CAPITAL LETTER Z WITH ACUTE
+017A;zacute;zacute;LATIN SMALL LETTER Z WITH ACUTE
+017B;Zdotaccent;Zdotaccent;LATIN CAPITAL LETTER Z WITH DOT ABOVE
+017C;zdotaccent;zdotaccent;LATIN SMALL LETTER Z WITH DOT ABOVE
+017D;Zcaron;Zcaron;LATIN CAPITAL LETTER Z WITH CARON
+017E;zcaron;zcaron;LATIN SMALL LETTER Z WITH CARON
+017F;longs;slong;LATIN SMALL LETTER LONG S
+#
+# Latin Extended-B
+#
+0180;;bstroke;LATIN SMALL LETTER B WITH STROKE
+0181;;Bhook;LATIN CAPITAL LETTER B WITH HOOK
+0182;;;LATIN CAPITAL LETTER B WITH TOPBAR
+0183;;;LATIN SMALL LETTER B WITH TOPBAR
+0184;;;LATIN CAPITAL LETTER TONE SIX
+0185;;;LATIN SMALL LETTER TONE SIX
+0186;;;LATIN CAPITAL LETTER OPEN O
+0187;;Chook;LATIN CAPITAL LETTER C WITH HOOK
+0188;;chook;LATIN SMALL LETTER C WITH HOOK
+0189;;Dafrican;LATIN CAPITAL LETTER AFRICAN D
+018A;;Dhook;LATIN CAPITAL LETTER D WITH HOOK
+018B;;;LATIN CAPITAL LETTER D WITH TOPBAR
+018C;;;LATIN SMALL LETTER D WITH TOPBAR
+018D;;;LATIN SMALL LETTER TURNED DELTA
+018E;;;LATIN CAPITAL LETTER REVERSED E
+018F;;Schwa;LATIN CAPITAL LETTER SCHWA
+#
+0190;;;LATIN CAPITAL LETTER OPEN E
+0191;;Fhook;LATIN CAPITAL LETTER F WITH HOOK
+0192;florin;fhook;LATIN SMALL LETTER F WITH HOOK
+0193;;Ghook;LATIN CAPITAL LETTER G WITH HOOK
+0194;;;LATIN CAPITAL LETTER GAMMA
+0195;;;LATIN SMALL LETTER HV
+0196;;;LATIN CAPITAL LETTER IOTA
+0197;;Istroke;LATIN CAPITAL LETTER I WITH STROKE
+0198;;Khook;LATIN CAPITAL LETTER K WITH HOOK
+0199;;khook;LATIN SMALL LETTER K WITH HOOK
+019A;;lbar;LATIN SMALL LETTER L WITH BAR
+019B;;;LATIN SMALL LETTER LAMBDA WITH STROKE
+019C;;;LATIN CAPITAL LETTER TURNED M
+019D;;;LATIN CAPITAL LETTER N WITH LEFT HOOK
+019E;;;LATIN SMALL LETTER N WITH LONG RIGHT LEG
+019F;;;LATIN CAPITAL LETTER O WITH MIDDLE TILDE
+#
+01A0;Ohorn;Ohorn;LATIN CAPITAL LETTER O WITH HORN
+01A1;ohorn;ohorn;LATIN SMALL LETTER O WITH HORN
+01A2;;;LATIN CAPITAL LETTER OI
+01A3;;;LATIN SMALL LETTER OI
+01A4;;Phook;LATIN CAPITAL LETTER P WITH HOOK
+01A5;;phook;LATIN SMALL LETTER P WITH HOOK
+01A6;;;LATIN LETTER YR
+01A7;;;LATIN CAPITAL LETTER TONE TWO
+01A8;;;LATIN SMALL LETTER TONE TWO
+01A9;;;LATIN CAPITAL LETTER ESH
+01AA;;;LATIN LETTER REVERSED ESH LOOP
+01AB;;;LATIN SMALL LETTER T WITH PALATAL HOOK
+01AC;;Thook;LATIN CAPITAL LETTER T WITH HOOK
+01AD;;thook;LATIN SMALL LETTER T WITH HOOK
+01AE;;;LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
+01AF;Uhorn;Uhorn;LATIN CAPITAL LETTER U WITH HORN
+#
+01B0;uhorn;uhorn;LATIN SMALL LETTER U WITH HORN
+01B1;;;LATIN CAPITAL LETTER UPSILON
+01B2;;Uhook;LATIN CAPITAL LETTER V WITH HOOK
+01B3;;Yhook;LATIN CAPITAL LETTER Y WITH HOOK
+01B4;;yhook;LATIN SMALL LETTER Y WITH HOOK
+01B5;;Zstroke;LATIN CAPITAL LETTER Z WITH STROKE
+01B6;;zstroke;LATIN SMALL LETTER Z WITH STROKE
+01B7;;;LATIN CAPITAL LETTER EZH
+01B8;;;LATIN CAPITAL LETTER EZH REVERSED
+01B9;;;LATIN SMALL LETTER EZH REVERSED
+01BA;;;LATIN SMALL LETTER EZH WITH TAIL
+01BB;;;LATIN LETTER TWO WITH STROKE
+01BC;;;LATIN CAPITAL LETTER TONE FIVE
+01BD;;;LATIN SMALL LETTER TONE FIVE
+01BE;;;LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE
+01BF;;;LATIN LETTER WYNN
+#
+01C0;;;LATIN LETTER DENTAL CLICK
+01C1;;;LATIN LETTER LATERAL CLICK
+01C2;;;LATIN LETTER ALVEOLAR CLICK
+01C3;;;LATIN LETTER RETROFLEX CLICK
+01C4;;DZcaronligature;LATIN CAPITAL LETTER DZ WITH CARON
+01C5;;Dzcaronligature;LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
+01C6;;dzcaronligature;LATIN SMALL LETTER DZ WITH CARON
+01C7;;LJligature;LATIN CAPITAL LETTER LJ
+01C8;;Ljligature;LATIN CAPITAL LETTER L WITH SMALL LETTER J
+01C9;;ljligature;LATIN SMALL LETTER LJ
+01CA;;NJligature;LATIN CAPITAL LETTER NJ
+01CB;;Njligature;LATIN CAPITAL LETTER N WITH SMALL LETTER J
+01CC;;njligature;LATIN SMALL LETTER NJ
+01CD;;Acaron;LATIN CAPITAL LETTER A WITH CARON
+01CE;;acaron;LATIN SMALL LETTER A WITH CARON
+01CF;;Icaron;LATIN CAPITAL LETTER I WITH CARON
+#
+01D0;;icaron;LATIN SMALL LETTER I WITH CARON
+01D1;;Ocaron;LATIN CAPITAL LETTER O WITH CARON
+01D2;;ocaron;LATIN SMALL LETTER O WITH CARON
+01D3;;Ucaron;LATIN CAPITAL LETTER U WITH CARON
+01D4;;ucaron;LATIN SMALL LETTER U WITH CARON
+01D5;;Udiaeresismacron;LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01D6;;udiaeresismacron;LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D7;;Udiaeresisacute;LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D8;;udiaeresisacute;LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D9;;Udiaeresiscaron;LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+01DA;;udiaeresiscaron;LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01DB;;Udiaeresisgrave;LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01DC;;udiaeresisgrave;LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DD;;;LATIN SMALL LETTER TURNED E
+01DE;;Adiaeresismacron;LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+01DF;;adiaeresismacron;LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+#
+01E0;;Adotaccentmacron;LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+01E1;;adotaccentmacron;LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+01E2;;AEmacron;LATIN CAPITAL LETTER AE WITH MACRON
+01E3;;aemacron;LATIN SMALL LETTER AE WITH MACRON
+01E4;;Gstroke;LATIN CAPITAL LETTER G WITH STROKE
+01E5;;gstroke;LATIN SMALL LETTER G WITH STROKE
+01E6;Gcaron;Gcaron;LATIN CAPITAL LETTER G WITH CARON
+01E7;gcaron;gcaron;LATIN SMALL LETTER G WITH CARON
+01E8;;Kcaron;LATIN CAPITAL LETTER K WITH CARON
+01E9;;kcaron;LATIN SMALL LETTER K WITH CARON
+01EA;;Oogonek;LATIN CAPITAL LETTER O WITH OGONEK
+01EB;;oogonek;LATIN SMALL LETTER O WITH OGONEK
+01EC;;Oogonekmacron;LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+01ED;;oogonekmacron;LATIN SMALL LETTER O WITH OGONEK AND MACRON
+01EE;;;LATIN CAPITAL LETTER EZH WITH CARON
+01EF;;;LATIN SMALL LETTER EZH WITH CARON
+#
+01F0;;jcaron;LATIN SMALL LETTER J WITH CARON
+01F1;;DZligature;LATIN CAPITAL LETTER DZ
+01F2;;Dzligature;LATIN CAPITAL LETTER D WITH SMALL LETTER Z
+01F3;;dzligature;LATIN SMALL LETTER DZ
+01F4;;Gacute;LATIN CAPITAL LETTER G WITH ACUTE
+01F5;;gacute;LATIN SMALL LETTER G WITH ACUTE
+01F6;;;LATIN CAPITAL LETTER HWAIR
+01F7;;;LATIN CAPITAL LETTER WYNN
+01F8;;Ngrave;LATIN CAPITAL LETTER N WITH GRAVE
+01F9;;ngrave;LATIN SMALL LETTER N WITH GRAVE
+01FA;Aringacute;Aringacute;LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+01FB;aringacute;aringacute;LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FC;AEacute;AEacute;LATIN CAPITAL LETTER AE WITH ACUTE
+01FD;aeacute;aeacute;LATIN SMALL LETTER AE WITH ACUTE
+01FE;Oslashacute;Ostrokeacute;LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+01FF;oslashacute;ostrokeacute;LATIN SMALL LETTER O WITH STROKE AND ACUTE
+#
+0200;;Adoublegrave;LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
+0201;;adoublegrave;LATIN SMALL LETTER A WITH DOUBLE GRAVE
+0202;;Ainvertedbreve;LATIN CAPITAL LETTER A WITH INVERTED BREVE
+0203;;ainvertedbreve;LATIN SMALL LETTER A WITH INVERTED BREVE
+0204;;Edoublegrave;LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
+0205;;edoublegrave;LATIN SMALL LETTER E WITH DOUBLE GRAVE
+0206;;Einvertedbreve;LATIN CAPITAL LETTER E WITH INVERTED BREVE
+0207;;einvertedbreve;LATIN SMALL LETTER E WITH INVERTED BREVE
+0208;;Idoublegrave;LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
+0209;;idoublegrave;LATIN SMALL LETTER I WITH DOUBLE GRAVE
+020A;;Iinvertedbreve;LATIN CAPITAL LETTER I WITH INVERTED BREVE
+020B;;iinvertedbreve;LATIN SMALL LETTER I WITH INVERTED BREVE
+020C;;Odoublegrave;LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
+020D;;odoublegrave;LATIN SMALL LETTER O WITH DOUBLE GRAVE
+020E;;Oinvertedbreve;LATIN CAPITAL LETTER O WITH INVERTED BREVE
+020F;;oinvertedbreve;LATIN SMALL LETTER O WITH INVERTED BREVE
+#
+0210;;Rdoublegrave;LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
+0211;;rdoublegrave;LATIN SMALL LETTER R WITH DOUBLE GRAVE
+0212;;Rinvertedbreve;LATIN CAPITAL LETTER R WITH INVERTED BREVE
+0213;;rinvertedbreve;LATIN SMALL LETTER R WITH INVERTED BREVE
+0214;;Udoublegrave;LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
+0215;;udoublegrave;LATIN SMALL LETTER U WITH DOUBLE GRAVE
+0216;;Uinvertedbreve;LATIN CAPITAL LETTER U WITH INVERTED BREVE
+0217;;uinvertedbreve;LATIN SMALL LETTER U WITH INVERTED BREVE
+0218;Scommaaccent;Scommaaccent;LATIN CAPITAL LETTER S WITH COMMA BELOW
+0219;scommaaccent;scommaaccent;LATIN SMALL LETTER S WITH COMMA BELOW
+021A;;Tcommaaccent;LATIN CAPITAL LETTER T WITH COMMA BELOW
+021B;;tcommaaccent;LATIN SMALL LETTER T WITH COMMA BELOW
+021C;;;LATIN CAPITAL LETTER YOGH
+021D;;;LATIN SMALL LETTER YOGH
+021E;;Hcaron;LATIN CAPITAL LETTER H WITH CARON
+021F;;hcaron;LATIN SMALL LETTER H WITH CARON
+#
+0220;;;LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
+0221;;dcurl;LATIN SMALL LETTER D WITH CURL
+0222;;;LATIN CAPITAL LETTER OU
+0223;;;LATIN SMALL LETTER OU
+0224;;Zhook;LATIN CAPITAL LETTER Z WITH HOOK
+0225;;zhook;LATIN SMALL LETTER Z WITH HOOK
+0226;;Adotaccent;LATIN CAPITAL LETTER A WITH DOT ABOVE
+0227;;adotaccent;LATIN SMALL LETTER A WITH DOT ABOVE
+0228;;Ecedilla;LATIN CAPITAL LETTER E WITH CEDILLA
+0229;;ecedilla;LATIN SMALL LETTER E WITH CEDILLA
+022A;;Odiaeresismacron;LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+022B;;odiaeresismacron;LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022C;;Otildemacron;LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+022D;;otildemacron;LATIN SMALL LETTER O WITH TILDE AND MACRON
+022E;;Odotaccent;LATIN CAPITAL LETTER O WITH DOT ABOVE
+022F;;odotaccent;LATIN SMALL LETTER O WITH DOT ABOVE
+#
+0230;;Odotaccentmacron;LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+0231;;odotaccentmacron;LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+0232;;Ymacron;LATIN CAPITAL LETTER Y WITH MACRON
+0233;;ymacron;LATIN SMALL LETTER Y WITH MACRON
+0234;;lcurl;LATIN SMALL LETTER L WITH CURL
+0235;;ncurl;LATIN SMALL LETTER N WITH CURL
+0236;;tcurl;LATIN SMALL LETTER T WITH CURL
+0237;;dotlessj;LATIN SMALL LETTER DOTLESS J
+0238;;;LATIN SMALL LETTER DB DIGRAPH
+0239;;;LATIN SMALL LETTER QP DIGRAPH
+023A;;Astroke;LATIN CAPITAL LETTER A WITH STROKE
+023B;;Cstroke;LATIN CAPITAL LETTER C WITH STROKE
+023C;;cstroke;LATIN SMALL LETTER C WITH STROKE
+023D;;Lbar;LATIN CAPITAL LETTER L WITH BAR
+023E;;;LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
+023F;;;LATIN SMALL LETTER S WITH SWASH TAIL
+#
+0240;;;LATIN SMALL LETTER Z WITH SWASH TAIL
+0241;;;LATIN CAPITAL LETTER GLOTTAL STOP
+#
+# IPA Extensions
+#
+0250;;;LATIN SMALL LETTER TURNED A
+0251;;;LATIN SMALL LETTER ALPHA
+0252;;;LATIN SMALL LETTER TURNED ALPHA
+0253;;bhook;LATIN SMALL LETTER B WITH HOOK
+0254;;;LATIN SMALL LETTER OPEN O
+0255;;ccurl;LATIN SMALL LETTER C WITH CURL
+0256;;dtail;LATIN SMALL LETTER D WITH TAIL
+0257;;dhook;LATIN SMALL LETTER D WITH HOOK
+0258;;;LATIN SMALL LETTER REVERSED E
+0259;;schwa;LATIN SMALL LETTER SCHWA
+025A;;schwahook;LATIN SMALL LETTER SCHWA WITH HOOK
+025B;;;LATIN SMALL LETTER OPEN E
+025C;;;LATIN SMALL LETTER REVERSED OPEN E
+025D;;;LATIN SMALL LETTER REVERSED OPEN E WITH HOOK
+025E;;;LATIN SMALL LETTER CLOSED REVERSED OPEN E
+025F;;dotlessjstroke;LATIN SMALL LETTER DOTLESS J WITH STROKE
+#
+0260;;;LATIN SMALL LETTER G WITH HOOK
+0261;;;LATIN SMALL LETTER SCRIPT G
+0262;;;LATIN LETTER SMALL CAPITAL G
+0263;;;LATIN SMALL LETTER GAMMA
+0264;;;LATIN SMALL LETTER RAMS HORN
+0265;;;LATIN SMALL LETTER TURNED H
+0266;;;LATIN SMALL LETTER H WITH HOOK
+0267;;;LATIN SMALL LETTER HENG WITH HOOK
+0268;;;LATIN SMALL LETTER I WITH STROKE
+0269;;;LATIN SMALL LETTER IOTA
+026A;;;LATIN LETTER SMALL CAPITAL I
+026B;;;LATIN SMALL LETTER L WITH MIDDLE TILDE
+026C;;;LATIN SMALL LETTER L WITH BELT
+026D;;;LATIN SMALL LETTER L WITH RETROFLEX HOOK
+026E;;;LATIN SMALL LETTER LEZH
+026F;;;LATIN SMALL LETTER TURNED M
+#
+0270;;;LATIN SMALL LETTER TURNED M WITH LONG LEG
+0271;;;LATIN SMALL LETTER M WITH HOOK
+0272;;;LATIN SMALL LETTER N WITH LEFT HOOK
+0273;;;LATIN SMALL LETTER N WITH RETROFLEX HOOK
+0274;;;LATIN LETTER SMALL CAPITAL N
+0275;;;LATIN SMALL LETTER BARRED O
+0276;;;LATIN LETTER SMALL CAPITAL OE
+0277;;;LATIN SMALL LETTER CLOSED OMEGA
+0278;;;LATIN SMALL LETTER PHI
+0279;;;LATIN SMALL LETTER TURNED R
+027A;;;LATIN SMALL LETTER TURNED R WITH LONG LEG
+027B;;;LATIN SMALL LETTER TURNED R WITH HOOK
+027C;;;LATIN SMALL LETTER R WITH LONG LEG
+027D;;;LATIN SMALL LETTER R WITH TAIL
+027E;;;LATIN SMALL LETTER R WITH FISHHOOK
+027F;;;LATIN SMALL LETTER REVERSED R WITH FISHHOOK
+#
+0280;;;LATIN LETTER SMALL CAPITAL R
+0281;;;LATIN LETTER SMALL CAPITAL INVERTED R
+0282;;;LATIN SMALL LETTER S WITH HOOK
+0283;;;LATIN SMALL LETTER ESH
+0284;;;LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK
+0285;;;LATIN SMALL LETTER SQUAT REVERSED ESH
+0286;;;LATIN SMALL LETTER ESH WITH CURL
+0287;;;LATIN SMALL LETTER TURNED T
+0288;;;LATIN SMALL LETTER T WITH RETROFLEX HOOK
+0289;;;LATIN SMALL LETTER U BAR
+028A;;;LATIN SMALL LETTER UPSILON
+028B;;;LATIN SMALL LETTER V WITH HOOK
+028C;;;LATIN SMALL LETTER TURNED V
+028D;;;LATIN SMALL LETTER TURNED W
+028E;;;LATIN SMALL LETTER TURNED Y
+028F;;;LATIN LETTER SMALL CAPITAL Y
+#
+0290;;;LATIN SMALL LETTER Z WITH RETROFLEX HOOK
+0291;;;LATIN SMALL LETTER Z WITH CURL
+0292;;;LATIN SMALL LETTER EZH
+0293;;;LATIN SMALL LETTER EZH WITH CURL
+0294;;;LATIN LETTER GLOTTAL STOP
+0295;;;LATIN LETTER PHARYNGEAL VOICED FRICATIVE
+0296;;;LATIN LETTER INVERTED GLOTTAL STOP
+0297;;;LATIN LETTER STRETCHED C
+0298;;;LATIN LETTER BILABIAL CLICK
+0299;;;LATIN LETTER SMALL CAPITAL B
+029A;;;LATIN SMALL LETTER CLOSED OPEN E
+029B;;;LATIN LETTER SMALL CAPITAL G WITH HOOK
+029C;;;LATIN LETTER SMALL CAPITAL H
+029D;;;LATIN SMALL LETTER J WITH CROSSED-TAIL
+029E;;;LATIN SMALL LETTER TURNED K
+029F;;;LATIN LETTER SMALL CAPITAL L
+#
+02A0;;;LATIN SMALL LETTER Q WITH HOOK
+02A1;;;LATIN LETTER GLOTTAL STOP WITH STROKE
+02A2;;;LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE
+02A3;;;LATIN SMALL LETTER DZ DIGRAPH
+02A4;;;LATIN SMALL LETTER DEZH DIGRAPH
+02A5;;;LATIN SMALL LETTER DZ DIGRAPH WITH CURL
+02A6;;;LATIN SMALL LETTER TS DIGRAPH
+02A7;;;LATIN SMALL LETTER TESH DIGRAPH
+02A8;;;LATIN SMALL LETTER TC DIGRAPH WITH CURL
+02A9;;;LATIN SMALL LETTER FENG DIGRAPH
+02AA;;;LATIN SMALL LETTER LS DIGRAPH
+02AB;;;LATIN SMALL LETTER LZ DIGRAPH
+02AC;;;LATIN LETTER BILABIAL PERCUSSIVE
+02AD;;;LATIN LETTER BIDENTAL PERCUSSIVE
+02AE;;;LATIN SMALL LETTER TURNED H WITH FISHHOOK
+02AF;;;LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
+#
+# Spacing Modifier Letters
+#
+02B0;;;MODIFIER LETTER SMALL H
+02B1;;;MODIFIER LETTER SMALL H WITH HOOK
+02B2;;;MODIFIER LETTER SMALL J
+02B3;;;MODIFIER LETTER SMALL R
+02B4;;;MODIFIER LETTER SMALL TURNED R
+02B5;;;MODIFIER LETTER SMALL TURNED R WITH HOOK
+02B6;;;MODIFIER LETTER SMALL CAPITAL INVERTED R
+02B7;;;MODIFIER LETTER SMALL W
+02B8;;;MODIFIER LETTER SMALL Y
+02B9;;;MODIFIER LETTER PRIME
+02BA;;;MODIFIER LETTER DOUBLE PRIME
+02BB;;;MODIFIER LETTER TURNED COMMA
+02BC;afii57929;;MODIFIER LETTER APOSTROPHE
+02BD;afii64937;;MODIFIER LETTER REVERSED COMMA
+02BE;;;MODIFIER LETTER RIGHT HALF RING
+02BF;;;MODIFIER LETTER LEFT HALF RING
+#
+02C0;;;MODIFIER LETTER GLOTTAL STOP
+02C1;;;MODIFIER LETTER REVERSED GLOTTAL STOP
+02C2;;;MODIFIER LETTER LEFT ARROWHEAD
+02C3;;;MODIFIER LETTER RIGHT ARROWHEAD
+02C4;;;MODIFIER LETTER UP ARROWHEAD
+02C5;;;MODIFIER LETTER DOWN ARROWHEAD
+02C6;circumflex;textcircumflex;MODIFIER LETTER CIRCUMFLEX ACCENT
+02C7;caron;textcaron;CARON
+02C8;;;MODIFIER LETTER VERTICAL LINE
+02C9;;;MODIFIER LETTER MACRON
+02CA;;;MODIFIER LETTER ACUTE ACCENT
+02CB;;;MODIFIER LETTER GRAVE ACCENT
+02CC;;;MODIFIER LETTER LOW VERTICAL LINE
+02CD;;;MODIFIER LETTER LOW MACRON
+02CE;;;MODIFIER LETTER LOW GRAVE ACCENT
+02CF;;;MODIFIER LETTER LOW ACUTE ACCENT
+#
+02D0;;;MODIFIER LETTER TRIANGULAR COLON
+02D1;;;MODIFIER LETTER HALF TRIANGULAR COLON
+02D2;;;MODIFIER LETTER CENTRED RIGHT HALF RING
+02D3;;;MODIFIER LETTER CENTRED LEFT HALF RING
+02D4;;;MODIFIER LETTER UP TACK
+02D5;;;MODIFIER LETTER DOWN TACK
+02D6;;;MODIFIER LETTER PLUS SIGN
+02D7;;;MODIFIER LETTER MINUS SIGN
+02D8;breve;textbreve;BREVE
+02D9;dotaccent;textdotaccent;DOT ABOVE
+02DA;ring;textring;RING ABOVE
+02DB;ogonek;textogonek;OGONEK
+02DC;tilde;texttilde;SMALL TILDE
+02DD;hungarumlaut;texthungarumlaut;DOUBLE ACUTE ACCENT
+02DE;;;MODIFIER LETTER RHOTIC HOOK
+02DF;;;MODIFIER LETTER CROSS ACCENT
+#
+02E0;;;MODIFIER LETTER SMALL GAMMA
+02E1;;;MODIFIER LETTER SMALL L
+02E2;;;MODIFIER LETTER SMALL S
+02E3;;;MODIFIER LETTER SMALL X
+02E4;;;MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+02E5;;;MODIFIER LETTER EXTRA-HIGH TONE BAR
+02E6;;;MODIFIER LETTER HIGH TONE BAR
+02E7;;;MODIFIER LETTER MID TONE BAR
+02E8;;;MODIFIER LETTER LOW TONE BAR
+02E9;;;MODIFIER LETTER EXTRA-LOW TONE BAR
+02EA;;;MODIFIER LETTER YIN DEPARTING TONE MARK
+02EB;;;MODIFIER LETTER YANG DEPARTING TONE MARK
+02EC;;;MODIFIER LETTER VOICING
+02ED;;;MODIFIER LETTER UNASPIRATED
+02EE;;;MODIFIER LETTER DOUBLE APOSTROPHE
+02EF;;;MODIFIER LETTER LOW DOWN ARROWHEAD
+#
+02F0;;;MODIFIER LETTER LOW UP ARROWHEAD
+02F1;;;MODIFIER LETTER LOW LEFT ARROWHEAD
+02F2;;;MODIFIER LETTER LOW RIGHT ARROWHEAD
+02F3;;;MODIFIER LETTER LOW RING
+02F4;;;MODIFIER LETTER MIDDLE GRAVE ACCENT
+02F5;;;MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT
+02F6;;;MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT
+02F7;;;MODIFIER LETTER LOW TILDE
+02F8;;;MODIFIER LETTER RAISED COLON
+02F9;;;MODIFIER LETTER BEGIN HIGH TONE
+02FA;;;MODIFIER LETTER END HIGH TONE
+02FB;;;MODIFIER LETTER BEGIN LOW TONE
+02FC;;;MODIFIER LETTER END LOW TONE
+02FD;;;MODIFIER LETTER SHELF
+02FE;;;MODIFIER LETTER OPEN SHELF
+02FF;;;MODIFIER LETTER LOW LEFT ARROW
+#
+# Combining Diacritical Marks
+#
+0300;gravecomb;;COMBINING GRAVE ACCENT
+0301;acutecomb;;COMBINING ACUTE ACCENT
+0302;;;COMBINING CIRCUMFLEX ACCENT
+0303;tildecomb;;COMBINING TILDE
+0304;;;COMBINING MACRON
+0305;;;COMBINING OVERLINE
+0306;;;COMBINING BREVE
+0307;;;COMBINING DOT ABOVE
+0308;;;COMBINING DIAERESIS
+0309;hookabovecomb;;COMBINING HOOK ABOVE
+030A;;;COMBINING RING ABOVE
+030B;;;COMBINING DOUBLE ACUTE ACCENT
+030C;;;COMBINING CARON
+030D;;;COMBINING VERTICAL LINE ABOVE
+030E;;;COMBINING DOUBLE VERTICAL LINE ABOVE
+030F;;;COMBINING DOUBLE GRAVE ACCENT
+#
+0310;;;COMBINING CANDRABINDU
+0311;;;COMBINING INVERTED BREVE
+0312;;;COMBINING TURNED COMMA ABOVE
+0313;;;COMBINING COMMA ABOVE
+0314;;;COMBINING REVERSED COMMA ABOVE
+0315;;;COMBINING COMMA ABOVE RIGHT
+0316;;;COMBINING GRAVE ACCENT BELOW
+0317;;;COMBINING ACUTE ACCENT BELOW
+0318;;;COMBINING LEFT TACK BELOW
+0319;;;COMBINING RIGHT TACK BELOW
+031A;;;COMBINING LEFT ANGLE ABOVE
+031B;;;COMBINING HORN
+031C;;;COMBINING LEFT HALF RING BELOW
+031D;;;COMBINING UP TACK BELOW
+031E;;;COMBINING DOWN TACK BELOW
+031F;;;COMBINING PLUS SIGN BELOW
+#
+0320;;;COMBINING MINUS SIGN BELOW
+0321;;;COMBINING PALATALIZED HOOK BELOW
+0322;;;COMBINING RETROFLEX HOOK BELOW
+0323;dotbelowcomb;;COMBINING DOT BELOW
+0324;;;COMBINING DIAERESIS BELOW
+0325;;;COMBINING RING BELOW
+0326;;;COMBINING COMMA BELOW
+0327;;;COMBINING CEDILLA
+0328;;;COMBINING OGONEK
+0329;;;COMBINING VERTICAL LINE BELOW
+032A;;;COMBINING BRIDGE BELOW
+032B;;;COMBINING INVERTED DOUBLE ARCH BELOW
+032C;;;COMBINING CARON BELOW
+032D;;;COMBINING CIRCUMFLEX ACCENT BELOW
+032E;;;COMBINING BREVE BELOW
+032F;;;COMBINING INVERTED BREVE BELOW
+#
+0330;;;COMBINING TILDE BELOW
+0331;;;COMBINING MACRON BELOW
+0332;;;COMBINING LOW LINE
+0333;;;COMBINING DOUBLE LOW LINE
+0334;;;COMBINING TILDE OVERLAY
+0335;;;COMBINING SHORT STROKE OVERLAY
+0336;;;COMBINING LONG STROKE OVERLAY
+0337;;;COMBINING SHORT SOLIDUS OVERLAY
+0338;;;COMBINING LONG SOLIDUS OVERLAY
+0339;;;COMBINING RIGHT HALF RING BELOW
+033A;;;COMBINING INVERTED BRIDGE BELOW
+033B;;;COMBINING SQUARE BELOW
+033C;;;COMBINING SEAGULL BELOW
+033D;;;COMBINING X ABOVE
+033E;;;COMBINING VERTICAL TILDE
+033F;;;COMBINING DOUBLE OVERLINE
+#
+0340;;;COMBINING GRAVE TONE MARK
+0341;;;COMBINING ACUTE TONE MARK
+0342;;;COMBINING GREEK PERISPOMENI
+0343;;;COMBINING GREEK KORONIS
+0344;;;COMBINING GREEK DIALYTIKA TONOS
+0345;;;COMBINING GREEK YPOGEGRAMMENI
+0346;;;COMBINING BRIDGE ABOVE
+0347;;;COMBINING EQUALS SIGN BELOW
+0348;;;COMBINING DOUBLE VERTICAL LINE BELOW
+0349;;;COMBINING LEFT ANGLE BELOW
+034A;;;COMBINING NOT TILDE ABOVE
+034B;;;COMBINING HOMOTHETIC ABOVE
+034C;;;COMBINING ALMOST EQUAL TO ABOVE
+034D;;;COMBINING LEFT RIGHT ARROW BELOW
+034E;;;COMBINING UPWARDS ARROW BELOW
+034F;;;COMBINING GRAPHEME JOINER
+#
+0350;;;COMBINING RIGHT ARROWHEAD ABOVE
+0351;;;COMBINING LEFT HALF RING ABOVE
+0352;;;COMBINING FERMATA
+0353;;;COMBINING X BELOW
+0354;;;COMBINING LEFT ARROWHEAD BELOW
+0355;;;COMBINING RIGHT ARROWHEAD BELOW
+0356;;;COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW
+0357;;;COMBINING RIGHT HALF RING ABOVE
+0358;;;COMBINING DOT ABOVE RIGHT
+0359;;;COMBINING ASTERISK BELOW
+035A;;;COMBINING DOUBLE RING BELOW
+035B;;;COMBINING ZIGZAG ABOVE
+035C;;;COMBINING DOUBLE BREVE BELOW
+035D;;;COMBINING DOUBLE BREVE
+035E;;;COMBINING DOUBLE MACRON
+035F;;;COMBINING DOUBLE MACRON BELOW
+#
+0360;;;COMBINING DOUBLE TILDE
+0361;;;COMBINING DOUBLE INVERTED BREVE
+0362;;;COMBINING DOUBLE RIGHTWARDS ARROW BELOW
+0363;;;COMBINING LATIN SMALL LETTER A
+0364;;;COMBINING LATIN SMALL LETTER E
+0365;;;COMBINING LATIN SMALL LETTER I
+0366;;;COMBINING LATIN SMALL LETTER O
+0367;;;COMBINING LATIN SMALL LETTER U
+0368;;;COMBINING LATIN SMALL LETTER C
+0369;;;COMBINING LATIN SMALL LETTER D
+036A;;;COMBINING LATIN SMALL LETTER H
+036B;;;COMBINING LATIN SMALL LETTER M
+036C;;;COMBINING LATIN SMALL LETTER R
+036D;;;COMBINING LATIN SMALL LETTER T
+036E;;;COMBINING LATIN SMALL LETTER V
+036F;;;COMBINING LATIN SMALL LETTER X
+0374;;;GREEK NUMERAL SIGN
+0375;;;GREEK LOWER NUMERAL SIGN
+037A;;;GREEK YPOGEGRAMMENI
+037E;;;GREEK QUESTION MARK
+0384;tonos;greektonos;GREEK TONOS
+0385;dieresistonos;greekdialytikatonos;GREEK DIALYTIKA TONOS
+0386;Alphatonos;greekAlphatonos;GREEK CAPITAL LETTER ALPHA WITH TONOS
+0387;anoteleia;;GREEK ANO TELEIA
+0388;Epsilontonos;greekEpsilontonos;GREEK CAPITAL LETTER EPSILON WITH TONOS
+0389;Etatonos;greekEtatonos;GREEK CAPITAL LETTER ETA WITH TONOS
+038A;Iotatonos;greekIotatonos;GREEK CAPITAL LETTER IOTA WITH TONOS
+038C;Omicrontonos;greekOmicrontonos;GREEK CAPITAL LETTER OMICRON WITH TONOS
+038E;Upsilontonos;greekUpsilontonos;GREEK CAPITAL LETTER UPSILON WITH TONOS
+038F;Omegatonos;greekOmegatonos;GREEK CAPITAL LETTER OMEGA WITH TONOS
+#
+0390;iotadieresistonos;greekiotadialytikatonos;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+0391;Alpha;greekAlpha;GREEK CAPITAL LETTER ALPHA
+0392;Beta;greekBeta;GREEK CAPITAL LETTER BETA
+0393;Gamma;greekGamma;GREEK CAPITAL LETTER GAMMA
+0394;;greekDelta;GREEK CAPITAL LETTER DELTA
+0395;Epsilon;greekEpsilon;GREEK CAPITAL LETTER EPSILON
+0396;Zeta;greekZeta;GREEK CAPITAL LETTER ZETA
+0397;Eta;greekEta;GREEK CAPITAL LETTER ETA
+0398;Theta;greekTheta;GREEK CAPITAL LETTER THETA
+0399;Iota;greekIota;GREEK CAPITAL LETTER IOTA
+039A;Kappa;greekKappa;GREEK CAPITAL LETTER KAPPA
+039B;Lambda;greekLambda;GREEK CAPITAL LETTER LAMDA
+039C;Mu;greekMu;GREEK CAPITAL LETTER MU
+039D;Nu;greekNu;GREEK CAPITAL LETTER NU
+039E;Xi;greekXi;GREEK CAPITAL LETTER XI
+039F;Omicron;greekOmicron;GREEK CAPITAL LETTER OMICRON
+#
+03A0;Pi;greekPi;GREEK CAPITAL LETTER PI
+03A1;Rho;greekRho;GREEK CAPITAL LETTER RHO
+03A3;Sigma;greekSigma;GREEK CAPITAL LETTER SIGMA
+03A4;Tau;greekTau;GREEK CAPITAL LETTER TAU
+03A5;Upsilon;greekUpsilon;GREEK CAPITAL LETTER UPSILON
+03A6;Phi;greekPhi;GREEK CAPITAL LETTER PHI
+03A7;Chi;greekChi;GREEK CAPITAL LETTER CHI
+03A8;Psi;greekPsi;GREEK CAPITAL LETTER PSI
+03A9;;greekOmega;GREEK CAPITAL LETTER OMEGA
+03AA;Iotadieresis;greekIotadialytika;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+03AB;Upsilondieresis;greekUpsilondialytika;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+03AC;alphatonos;greekalphatonos;GREEK SMALL LETTER ALPHA WITH TONOS
+03AD;epsilontonos;greekepsilontonos;GREEK SMALL LETTER EPSILON WITH TONOS
+03AE;etatonos;greeketatonos;GREEK SMALL LETTER ETA WITH TONOS
+03AF;iotatonos;greekiotatonos;GREEK SMALL LETTER IOTA WITH TONOS
+#
+03B0;upsilondieresistonos;greekupsilondialytikatonos;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+03B1;alpha;greekalpha;GREEK SMALL LETTER ALPHA
+03B2;beta;greekbeta;GREEK SMALL LETTER BETA
+03B3;gamma;greekgamma;GREEK SMALL LETTER GAMMA
+03B4;delta;greekdelta;GREEK SMALL LETTER DELTA
+03B5;epsilon;greekepsilon;GREEK SMALL LETTER EPSILON
+03B6;zeta;greekzeta;GREEK SMALL LETTER ZETA
+03B7;eta;greeketa;GREEK SMALL LETTER ETA
+03B8;theta;greektheta;GREEK SMALL LETTER THETA
+03B9;iota;greekiota;GREEK SMALL LETTER IOTA
+03BA;kappa;greekkappa;GREEK SMALL LETTER KAPPA
+03BB;lambda;greeklambda;GREEK SMALL LETTER LAMDA
+03BC;;greekmu;GREEK SMALL LETTER MU
+03BD;nu;greeknu;GREEK SMALL LETTER NU
+03BE;xi;greekxi;GREEK SMALL LETTER XI
+03BF;omicron;greekomicron;GREEK SMALL LETTER OMICRON
+#
+03C0;pi;greekpi;GREEK SMALL LETTER PI
+03C1;rho;greekrho;GREEK SMALL LETTER RHO
+03C2;sigma1;greekfinalsigma;GREEK SMALL LETTER FINAL SIGMA
+03C3;sigma;greeksigma;GREEK SMALL LETTER SIGMA
+03C4;tau;greektau;GREEK SMALL LETTER TAU
+03C5;upsilon;greekupsilon;GREEK SMALL LETTER UPSILON
+03C6;phi;greekphi;GREEK SMALL LETTER PHI
+03C7;chi;greekchi;GREEK SMALL LETTER CHI
+03C8;psi;greekpsi;GREEK SMALL LETTER PSI
+03C9;omega;greekomega;GREEK SMALL LETTER OMEGA
+03CA;iotadieresis;greekiotadialytika;GREEK SMALL LETTER IOTA WITH DIALYTIKA
+03CB;upsilondieresis;greekupsilondiaeresis;GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+03CC;omicrontonos;greekomicrontonos;GREEK SMALL LETTER OMICRON WITH TONOS
+03CD;upsilontonos;greekupsilontonos;GREEK SMALL LETTER UPSILON WITH TONOS
+03CE;omegatonos;greekomegatonos;GREEK SMALL LETTER OMEGA WITH TONOS
+#
+03D0;;;GREEK BETA SYMBOL
+03D1;theta1;greekthetaalt;GREEK THETA SYMBOL
+03D2;Upsilon1;;GREEK UPSILON WITH HOOK SYMBOL
+03D3;;;GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
+03D4;;;GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
+03D5;phi1;greekphialt;GREEK PHI SYMBOL
+03D6;omega1;greekpialt;GREEK PI SYMBOL
+03D7;;;GREEK KAI SYMBOL
+03D8;;;GREEK LETTER ARCHAIC KOPPA
+03D9;;greekkoppa;GREEK SMALL LETTER ARCHAIC KOPPA
+03DA;;;GREEK LETTER STIGMA
+03DB;;greekstigma;GREEK SMALL LETTER STIGMA
+03DC;;;GREEK LETTER DIGAMMA
+03DD;;greekdigamma;GREEK SMALL LETTER DIGAMMA
+03DE;;;GREEK LETTER KOPPA
+03DF;;greeknumkoppa;GREEK SMALL LETTER KOPPA
+#
+03E0;;;GREEK LETTER SAMPI
+03E1;;greeksampi;GREEK SMALL LETTER SAMPI
+03E2;;;COPTIC CAPITAL LETTER SHEI
+03E3;;;COPTIC SMALL LETTER SHEI
+03E4;;;COPTIC CAPITAL LETTER FEI
+03E5;;;COPTIC SMALL LETTER FEI
+03E6;;;COPTIC CAPITAL LETTER KHEI
+03E7;;;COPTIC SMALL LETTER KHEI
+03E8;;;COPTIC CAPITAL LETTER HORI
+03E9;;;COPTIC SMALL LETTER HORI
+03EA;;;COPTIC CAPITAL LETTER GANGIA
+03EB;;;COPTIC SMALL LETTER GANGIA
+03EC;;;COPTIC CAPITAL LETTER SHIMA
+03ED;;;COPTIC SMALL LETTER SHIMA
+03EE;;;COPTIC CAPITAL LETTER DEI
+03EF;;;COPTIC SMALL LETTER DEI
+#
+03F0;;;GREEK KAPPA SYMBOL
+03F1;;greekrhoalt;GREEK RHO SYMBOL
+03F2;;greeksigmalunate;GREEK LUNATE SIGMA SYMBOL
+03F3;;;GREEK LETTER YOT
+03F4;;;GREEK CAPITAL THETA SYMBOL
+03F5;;greekepsilonalt;GREEK LUNATE EPSILON SYMBOL
+03F6;;;GREEK REVERSED LUNATE EPSILON SYMBOL
+03F7;;;GREEK CAPITAL LETTER SHO
+03F8;;;GREEK SMALL LETTER SHO
+03F9;;greekSigmalunate;GREEK CAPITAL LUNATE SIGMA SYMBOL
+03FA;;;GREEK CAPITAL LETTER SAN
+03FB;;;GREEK SMALL LETTER SAN
+03FC;;;GREEK RHO WITH STROKE SYMBOL
+03FD;;;GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL
+03FE;;;GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL
+03FF;;;GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
+#
+# Cyrillic
+#
+0400;;cyrillicEgrave;CYRILLIC CAPITAL LETTER IE WITH GRAVE
+0401;afii10023;cyrillicYO;CYRILLIC CAPITAL LETTER IO
+0402;afii10051;cyrillicDJE;CYRILLIC CAPITAL LETTER DJE
+0403;afii10052;cyrillicGJE;CYRILLIC CAPITAL LETTER GJE
+0404;afii10053;cyrillicIE;CYRILLIC CAPITAL LETTER UKRAINIAN IE
+0405;afii10054;cyrillicDZE;CYRILLIC CAPITAL LETTER DZE
+0406;afii10055;cyrillicII;CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+0407;afii10056;cyrillicYI;CYRILLIC CAPITAL LETTER YI
+0408;afii10057;cyrillicJE;CYRILLIC CAPITAL LETTER JE
+0409;afii10058;cyrillicLJE;CYRILLIC CAPITAL LETTER LJE
+040A;afii10059;cyrillicNJE;CYRILLIC CAPITAL LETTER NJE
+040B;afii10060;cyrillicTSHE;CYRILLIC CAPITAL LETTER TSHE
+040C;afii10061;cyrillicKJE;CYRILLIC CAPITAL LETTER KJE
+040D;;cyrillicIgrave;CYRILLIC CAPITAL LETTER I WITH GRAVE
+040E;afii10062;cyrillicUSHRT;CYRILLIC CAPITAL LETTER SHORT U
+040F;afii10145;cyrillicDZHE;CYRILLIC CAPITAL LETTER DZHE
+#
+0410;afii10017;cyrillicA;CYRILLIC CAPITAL LETTER A
+0411;afii10018;cyrillicB;CYRILLIC CAPITAL LETTER BE
+0412;afii10019;cyrillicV;CYRILLIC CAPITAL LETTER VE
+0413;afii10020;cyrillicG;CYRILLIC CAPITAL LETTER GHE
+0414;afii10021;cyrillicD;CYRILLIC CAPITAL LETTER DE
+0415;afii10022;cyrillicE;CYRILLIC CAPITAL LETTER IE
+0416;afii10024;cyrillicZH;CYRILLIC CAPITAL LETTER ZHE
+0417;afii10025;cyrillicZ;CYRILLIC CAPITAL LETTER ZE
+0418;afii10026;cyrillicI;CYRILLIC CAPITAL LETTER I
+0419;afii10027;cyrillicISHRT;CYRILLIC CAPITAL LETTER SHORT I
+041A;afii10028;cyrillicK;CYRILLIC CAPITAL LETTER KA
+041B;afii10029;cyrillicL;CYRILLIC CAPITAL LETTER EL
+041C;afii10030;cyrillicM;CYRILLIC CAPITAL LETTER EM
+041D;afii10031;cyrillicN;CYRILLIC CAPITAL LETTER EN
+041E;afii10032;cyrillicO;CYRILLIC CAPITAL LETTER O
+041F;afii10033;cyrillicP;CYRILLIC CAPITAL LETTER PE
+#
+0420;afii10034;cyrillicR;CYRILLIC CAPITAL LETTER ER
+0421;afii10035;cyrillicS;CYRILLIC CAPITAL LETTER ES
+0422;afii10036;cyrillicT;CYRILLIC CAPITAL LETTER TE
+0423;afii10037;cyrillicU;CYRILLIC CAPITAL LETTER U
+0424;afii10038;cyrillicF;CYRILLIC CAPITAL LETTER EF
+0425;afii10039;cyrillicH;CYRILLIC CAPITAL LETTER HA
+0426;afii10040;cyrillicC;CYRILLIC CAPITAL LETTER TSE
+0427;afii10041;cyrillicCH;CYRILLIC CAPITAL LETTER CHE
+0428;afii10042;cyrillicSH;CYRILLIC CAPITAL LETTER SHA
+0429;afii10043;cyrillicSHCH;CYRILLIC CAPITAL LETTER SHCHA
+042A;afii10044;cyrillicHRDSN;CYRILLIC CAPITAL LETTER HARD SIGN
+042B;afii10045;cyrillicERY;CYRILLIC CAPITAL LETTER YERU
+042C;afii10046;cyrillicSFTSN;CYRILLIC CAPITAL LETTER SOFT SIGN
+042D;afii10047;cyrillicEREV;CYRILLIC CAPITAL LETTER E
+042E;afii10048;cyrillicYU;CYRILLIC CAPITAL LETTER YU
+042F;afii10049;cyrillicYA;CYRILLIC CAPITAL LETTER YA
+#
+0430;afii10065;cyrillica;CYRILLIC SMALL LETTER A
+0431;afii10066;cyrillicb;CYRILLIC SMALL LETTER BE
+0432;afii10067;cyrillicv;CYRILLIC SMALL LETTER VE
+0433;afii10068;cyrillicg;CYRILLIC SMALL LETTER GHE
+0434;afii10069;cyrillicd;CYRILLIC SMALL LETTER DE
+0435;afii10070;cyrillice;CYRILLIC SMALL LETTER IE
+0436;afii10072;cyrilliczh;CYRILLIC SMALL LETTER ZHE
+0437;afii10073;cyrillicz;CYRILLIC SMALL LETTER ZE
+0438;afii10074;cyrillici;CYRILLIC SMALL LETTER I
+0439;afii10075;cyrillicishrt;CYRILLIC SMALL LETTER SHORT I
+043A;afii10076;cyrillick;CYRILLIC SMALL LETTER KA
+043B;afii10077;cyrillicl;CYRILLIC SMALL LETTER EL
+043C;afii10078;cyrillicm;CYRILLIC SMALL LETTER EM
+043D;afii10079;cyrillicn;CYRILLIC SMALL LETTER EN
+043E;afii10080;cyrillico;CYRILLIC SMALL LETTER O
+043F;afii10081;cyrillicp;CYRILLIC SMALL LETTER PE
+#
+0440;afii10082;cyrillicr;CYRILLIC SMALL LETTER ER
+0441;afii10083;cyrillics;CYRILLIC SMALL LETTER ES
+0442;afii10084;cyrillict;CYRILLIC SMALL LETTER TE
+0443;afii10085;cyrillicu;CYRILLIC SMALL LETTER U
+0444;afii10086;cyrillicf;CYRILLIC SMALL LETTER EF
+0445;afii10087;cyrillich;CYRILLIC SMALL LETTER HA
+0446;afii10088;cyrillicc;CYRILLIC SMALL LETTER TSE
+0447;afii10089;cyrillicch;CYRILLIC SMALL LETTER CHE
+0448;afii10090;cyrillicsh;CYRILLIC SMALL LETTER SHA
+0449;afii10091;cyrillicshch;CYRILLIC SMALL LETTER SHCHA
+044A;afii10092;cyrillichrdsn;CYRILLIC SMALL LETTER HARD SIGN
+044B;afii10093;cyrillicery;CYRILLIC SMALL LETTER YERU
+044C;afii10094;cyrillicsftsn;CYRILLIC SMALL LETTER SOFT SIGN
+044D;afii10095;cyrillicerev;CYRILLIC SMALL LETTER E
+044E;afii10096;cyrillicyu;CYRILLIC SMALL LETTER YU
+044F;afii10097;cyrillicya;CYRILLIC SMALL LETTER YA
+#
+0450;;cyrillicegrave;CYRILLIC SMALL LETTER IE WITH GRAVE
+0451;afii10071;cyrillicyo;CYRILLIC SMALL LETTER IO
+0452;afii10099;cyrillicdje;CYRILLIC SMALL LETTER DJE
+0453;afii10100;cyrillicgje;CYRILLIC SMALL LETTER GJE
+0454;afii10101;cyrillicie;CYRILLIC SMALL LETTER UKRAINIAN IE
+0455;afii10102;cyrillicdze;CYRILLIC SMALL LETTER DZE
+0456;afii10103;cyrillicii;CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+0457;afii10104;cyrillicyi;CYRILLIC SMALL LETTER YI
+0458;afii10105;cyrillicje;CYRILLIC SMALL LETTER JE
+0459;afii10106;cyrilliclje;CYRILLIC SMALL LETTER LJE
+045A;afii10107;cyrillicnje;CYRILLIC SMALL LETTER NJE
+045B;afii10108;cyrillictshe;CYRILLIC SMALL LETTER TSHE
+045C;afii10109;cyrillickje;CYRILLIC SMALL LETTER KJE
+045D;;cyrillicigrave;CYRILLIC SMALL LETTER I WITH GRAVE
+045E;afii10110;cyrillicushrt;CYRILLIC SMALL LETTER SHORT U
+045F;afii10193;cyrillicdzhe;CYRILLIC SMALL LETTER DZHE
+#
+0460;;cyrillicOMEGA;CYRILLIC CAPITAL LETTER OMEGA
+0461;;cyrillicomega;CYRILLIC SMALL LETTER OMEGA
+0462;afii10146;cyrillicYAT;CYRILLIC CAPITAL LETTER YAT
+0463;afii10194;cyrillicyat;CYRILLIC SMALL LETTER YAT
+0464;;cyrillicEiotified;CYRILLIC CAPITAL LETTER IOTIFIED E
+0465;;cyrilliceiotified;CYRILLIC SMALL LETTER IOTIFIED E
+0466;;cyrillicLITTLEYUS;CYRILLIC CAPITAL LETTER LITTLE YUS
+0467;;cyrilliclittleyus;CYRILLIC SMALL LETTER LITTLE YUS
+0468;;cyrillicLITTLEYUSiotified;CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
+0469;;cyrilliclittleyusiotified;CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
+046A;;cyrillicBIGYUS;CYRILLIC CAPITAL LETTER BIG YUS
+046B;;cyrillicbigyus;CYRILLIC SMALL LETTER BIG YUS
+046C;;cyrillicBIGYUSiotified;CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
+046D;;cyrillicbigyusiotified;CYRILLIC SMALL LETTER IOTIFIED BIG YUS
+046E;;cyrillicKSI;CYRILLIC CAPITAL LETTER KSI
+046F;;cyrillicksi;CYRILLIC SMALL LETTER KSI
+#
+0470;;cyrillicPSI;CYRILLIC CAPITAL LETTER PSI
+0471;;cyrillicpsi;CYRILLIC SMALL LETTER PSI
+0472;afii10147;cyrillicFITA;CYRILLIC CAPITAL LETTER FITA
+0473;afii10195;cyrillicfita;CYRILLIC SMALL LETTER FITA
+0474;afii10148;cyrillicIZHITSA;CYRILLIC CAPITAL LETTER IZHITSA
+0475;afii10196;cyrillicizhitsa;CYRILLIC SMALL LETTER IZHITSA
+0476;;cyrillicIZHITSAdoublegrave;CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+0477;;cyrillicizhitsadoublegrave;CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+0478;;cyrillicUK;CYRILLIC CAPITAL LETTER UK
+0479;;cyrillicuk;CYRILLIC SMALL LETTER UK
+047A;;cyrillicOMEGAround;CYRILLIC CAPITAL LETTER ROUND OMEGA
+047B;;cyrillicomegaround;CYRILLIC SMALL LETTER ROUND OMEGA
+047C;;cyrillicOMEGAtitlo;CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
+047D;;cyrillicomegatitlo;CYRILLIC SMALL LETTER OMEGA WITH TITLO
+047E;;cyrillicOT;CYRILLIC CAPITAL LETTER OT
+047F;;cyrillicot;CYRILLIC SMALL LETTER OT
+#
+0480;;cyrillicKOPPA;CYRILLIC CAPITAL LETTER KOPPA
+0481;;cyrillickoppa;CYRILLIC SMALL LETTER KOPPA
+0482;;;CYRILLIC THOUSANDS SIGN
+0483;;cyrillicTITLO;COMBINING CYRILLIC TITLO
+0484;;cyrillicPALATALIZATION;COMBINING CYRILLIC PALATALIZATION
+0485;;cyrillicDASIAPNEUMATA;COMBINING CYRILLIC DASIA PNEUMATA
+0486;;cyrillicPSILIPNEUMATA;COMBINING CYRILLIC PSILI PNEUMATA
+0488;;;COMBINING CYRILLIC HUNDRED THOUSANDS SIGN
+0489;;;COMBINING CYRILLIC MILLIONS SIGN
+048A;;cyrillicISHRTtail;CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
+048B;;cyrillicishrttail;CYRILLIC SMALL LETTER SHORT I WITH TAIL
+048C;;cyrillicSEMISOFT;CYRILLIC CAPITAL LETTER SEMISOFT SIGN
+048D;;cyrillicsemisoft;CYRILLIC SMALL LETTER SEMISOFT SIGN
+048E;;cyrillicERtick;CYRILLIC CAPITAL LETTER ER WITH TICK
+048F;;cyrillicertick;CYRILLIC SMALL LETTER ER WITH TICK
+#
+0490;afii10050;cyrillicGHEupturn;CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+0491;afii10098;cyrillicgheupturn;CYRILLIC SMALL LETTER GHE WITH UPTURN
+0492;;cyrillicGHEstroke;CYRILLIC CAPITAL LETTER GHE WITH STROKE
+0493;;cyrillicghestroke;CYRILLIC SMALL LETTER GHE WITH STROKE
+0494;;cyrillicGHEmidhook;CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
+0495;;cyrillicghemidhook;CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
+0496;;cyrillicZHEdescender;CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
+0497;;cyrilliczhedescender;CYRILLIC SMALL LETTER ZHE WITH DESCENDER
+0498;;cyrillicZDSC;CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
+0499;;cyrilliczdsc;CYRILLIC SMALL LETTER ZE WITH DESCENDER
+049A;;cyrillicKADC;CYRILLIC CAPITAL LETTER KA WITH DESCENDER
+049B;;cyrillickadc;CYRILLIC SMALL LETTER KA WITH DESCENDER
+049C;;cyrillicKAvertstroke;CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
+049D;;cyrillickavertstroke;CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
+049E;;cyrillicKAstroke;CYRILLIC CAPITAL LETTER KA WITH STROKE
+049F;;cyrillickastroke;CYRILLIC SMALL LETTER KA WITH STROKE
+#
+04A0;;cyrillicKAbashkir;CYRILLIC CAPITAL LETTER BASHKIR KA
+04A1;;cyrillickabashkir;CYRILLIC SMALL LETTER BASHKIR KA
+04A2;;cyrillicENDC;CYRILLIC CAPITAL LETTER EN WITH DESCENDER
+04A3;;cyrillicendc;CYRILLIC SMALL LETTER EN WITH DESCENDER
+04A4;;cyrillicENGHE;CYRILLIC CAPITAL LIGATURE EN GHE
+04A5;;cyrillicenghe;CYRILLIC SMALL LIGATURE EN GHE
+04A6;;cyrillicPEmidhook;CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
+04A7;;cyrillicpemidhook;CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
+04A8;;cyrillicHA;CYRILLIC CAPITAL LETTER ABKHASIAN HA
+04A9;;cyrillicha;CYRILLIC SMALL LETTER ABKHASIAN HA
+04AA;;cyrillicSDSC;CYRILLIC CAPITAL LETTER ES WITH DESCENDER
+04AB;;cyrillicsdsc;CYRILLIC SMALL LETTER ES WITH DESCENDER
+04AC;;cyrillicTEDC;CYRILLIC CAPITAL LETTER TE WITH DESCENDER
+04AD;;cyrillictedc;CYRILLIC SMALL LETTER TE WITH DESCENDER
+04AE;;cyrillicYstr;CYRILLIC CAPITAL LETTER STRAIGHT U
+04AF;;cyrillicystr;CYRILLIC SMALL LETTER STRAIGHT U
+#
+04B0;;cyrillicYstrstroke;CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
+04B1;;cyrillicystrstroke;CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
+04B2;;cyrillicHADC;CYRILLIC CAPITAL LETTER HA WITH DESCENDER
+04B3;;cyrillichadc;CYRILLIC SMALL LETTER HA WITH DESCENDER
+04B4;;cyrillicTETSE;CYRILLIC CAPITAL LIGATURE TE TSE
+04B5;;cyrillictetse;CYRILLIC SMALL LIGATURE TE TSE
+04B6;;cyrillicCHEDC;CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
+04B7;;cyrillicchedc;CYRILLIC SMALL LETTER CHE WITH DESCENDER
+04B8;;cyrillicCHEvertstroke;CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
+04B9;;cyrillicchevertstroke;CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
+04BA;;cyrillicSHHA;CYRILLIC CAPITAL LETTER SHHA
+04BB;;cyrillicshha;CYRILLIC SMALL LETTER SHHA
+04BC;;cyrillicCHEabkhasian;CYRILLIC CAPITAL LETTER ABKHASIAN CHE
+04BD;;cyrilliccheabkhasian;CYRILLIC SMALL LETTER ABKHASIAN CHE
+04BE;;cyrillicCHEDCabkhasian;CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
+04BF;;cyrillicchedcabkhasian;CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
+#
+04C0;;cyrillicPALOCHKA;CYRILLIC LETTER PALOCHKA
+04C1;;cyrillicZHEbreve;CYRILLIC CAPITAL LETTER ZHE WITH BREVE
+04C2;;cyrilliczhebreve;CYRILLIC SMALL LETTER ZHE WITH BREVE
+04C3;;cyrillicKAhook;CYRILLIC CAPITAL LETTER KA WITH HOOK
+04C4;;cyrillickahook;CYRILLIC SMALL LETTER KA WITH HOOK
+04C5;;cyrillicELtail;CYRILLIC CAPITAL LETTER EL WITH TAIL
+04C6;;cyrilliceltail;CYRILLIC SMALL LETTER EL WITH TAIL
+04C7;;cyrillicENhook;CYRILLIC CAPITAL LETTER EN WITH HOOK
+04C8;;cyrillicenhook;CYRILLIC SMALL LETTER EN WITH HOOK
+04C9;;cyrillicENtail;CYRILLIC CAPITAL LETTER EN WITH TAIL
+04CA;;cyrillicentail;CYRILLIC SMALL LETTER EN WITH TAIL
+04CB;;cyrillicCHEkhakassian;CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
+04CC;;cyrillicchekhakassian;CYRILLIC SMALL LETTER KHAKASSIAN CHE
+04CD;;cyrillicEMtail;CYRILLIC CAPITAL LETTER EM WITH TAIL
+04CE;;cyrillicemtail;CYRILLIC SMALL LETTER EM WITH TAIL
+#
+04D0;;cyrillicAbreve;CYRILLIC CAPITAL LETTER A WITH BREVE
+04D1;;cyrillicabreve;CYRILLIC SMALL LETTER A WITH BREVE
+04D2;;cyrillicAdiaeresis;CYRILLIC CAPITAL LETTER A WITH DIAERESIS
+04D3;;cyrillicadiaeresis;CYRILLIC SMALL LETTER A WITH DIAERESIS
+04D4;;cyrillicAE;CYRILLIC CAPITAL LIGATURE A IE
+04D5;;cyrillicae;CYRILLIC SMALL LIGATURE A IE
+04D6;;cyrillicEbreve;CYRILLIC CAPITAL LETTER IE WITH BREVE
+04D7;;cyrillicebreve;CYRILLIC SMALL LETTER IE WITH BREVE
+04D8;;cyrillicSCHWA;CYRILLIC CAPITAL LETTER SCHWA
+04D9;afii10846;cyrillicschwa;CYRILLIC SMALL LETTER SCHWA
+04DA;;cyrillicSCHWAdiaeresis;CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
+04DB;;cyrillicschwadiaeresis;CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
+04DC;;cyrillicZHEdiaeresis;CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
+04DD;;cyrilliczhediaeresis;CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
+04DE;;cyrillicZEdiaeresis;CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
+04DF;;cyrilliczediaeresis;CYRILLIC SMALL LETTER ZE WITH DIAERESIS
+#
+04E0;;cyrillicDZEabkhasian;CYRILLIC CAPITAL LETTER ABKHASIAN DZE
+04E1;;cyrillicdzeabkhasian;CYRILLIC SMALL LETTER ABKHASIAN DZE
+04E2;;cyrillicImacron;CYRILLIC CAPITAL LETTER I WITH MACRON
+04E3;;cyrillicimacron;CYRILLIC SMALL LETTER I WITH MACRON
+04E4;;cyrillicIdiaeresis;CYRILLIC CAPITAL LETTER I WITH DIAERESIS
+04E5;;cyrillicidiaeresis;CYRILLIC SMALL LETTER I WITH DIAERESIS
+04E6;;cyrillicOdiaeresis;CYRILLIC CAPITAL LETTER O WITH DIAERESIS
+04E7;;cyrillicodiaeresis;CYRILLIC SMALL LETTER O WITH DIAERESIS
+04E8;;cyrillicObarred;CYRILLIC CAPITAL LETTER BARRED O
+04E9;;cyrillicobarred;CYRILLIC SMALL LETTER BARRED O
+04EA;;cyrillicObarreddiaeresis;CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
+04EB;;cyrillicobarreddiaeresis;CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
+04EC;;cyrillicEdiaeresis;CYRILLIC CAPITAL LETTER E WITH DIAERESIS
+04ED;;cyrillicediaeresis;CYRILLIC SMALL LETTER E WITH DIAERESIS
+04EE;;cyrillicUmacron;CYRILLIC CAPITAL LETTER U WITH MACRON
+04EF;;cyrillicumacron;CYRILLIC SMALL LETTER U WITH MACRON
+#
+04F0;;cyrillicUdiaeresis;CYRILLIC CAPITAL LETTER U WITH DIAERESIS
+04F1;;cyrillicudiaeresis;CYRILLIC SMALL LETTER U WITH DIAERESIS
+04F2;;cyrillicUdoubleacute;CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
+04F3;;cyrillicudoubleacute;CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
+04F4;;cyrillicCHEdiaeresis;CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
+04F5;;cyrillicchediaeresis;CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+04F6;;;CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
+04F7;;;CYRILLIC SMALL LETTER GHE WITH DESCENDER
+04F8;;cyrillicYERUdiaeresis;CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
+04F9;;cyrillicyerudiaeresis;CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+#
+# Cyrillic Supplement
+#
+0500;;;CYRILLIC CAPITAL LETTER KOMI DE
+0501;;;CYRILLIC SMALL LETTER KOMI DE
+0502;;;CYRILLIC CAPITAL LETTER KOMI DJE
+0503;;;CYRILLIC SMALL LETTER KOMI DJE
+0504;;;CYRILLIC CAPITAL LETTER KOMI ZJE
+0505;;;CYRILLIC SMALL LETTER KOMI ZJE
+0506;;;CYRILLIC CAPITAL LETTER KOMI DZJE
+0507;;;CYRILLIC SMALL LETTER KOMI DZJE
+0508;;;CYRILLIC CAPITAL LETTER KOMI LJE
+0509;;;CYRILLIC SMALL LETTER KOMI LJE
+050A;;;CYRILLIC CAPITAL LETTER KOMI NJE
+050B;;;CYRILLIC SMALL LETTER KOMI NJE
+050C;;;CYRILLIC CAPITAL LETTER KOMI SJE
+050D;;;CYRILLIC SMALL LETTER KOMI SJE
+050E;;;CYRILLIC CAPITAL LETTER KOMI TJE
+050F;;;CYRILLIC SMALL LETTER KOMI TJE
+0531;;;ARMENIAN CAPITAL LETTER AYB
+0532;;;ARMENIAN CAPITAL LETTER BEN
+0533;;;ARMENIAN CAPITAL LETTER GIM
+0534;;;ARMENIAN CAPITAL LETTER DA
+0535;;;ARMENIAN CAPITAL LETTER ECH
+0536;;;ARMENIAN CAPITAL LETTER ZA
+0537;;;ARMENIAN CAPITAL LETTER EH
+0538;;;ARMENIAN CAPITAL LETTER ET
+0539;;;ARMENIAN CAPITAL LETTER TO
+053A;;;ARMENIAN CAPITAL LETTER ZHE
+053B;;;ARMENIAN CAPITAL LETTER INI
+053C;;;ARMENIAN CAPITAL LETTER LIWN
+053D;;;ARMENIAN CAPITAL LETTER XEH
+053E;;;ARMENIAN CAPITAL LETTER CA
+053F;;;ARMENIAN CAPITAL LETTER KEN
+#
+0540;;;ARMENIAN CAPITAL LETTER HO
+0541;;;ARMENIAN CAPITAL LETTER JA
+0542;;;ARMENIAN CAPITAL LETTER GHAD
+0543;;;ARMENIAN CAPITAL LETTER CHEH
+0544;;;ARMENIAN CAPITAL LETTER MEN
+0545;;;ARMENIAN CAPITAL LETTER YI
+0546;;;ARMENIAN CAPITAL LETTER NOW
+0547;;;ARMENIAN CAPITAL LETTER SHA
+0548;;;ARMENIAN CAPITAL LETTER VO
+0549;;;ARMENIAN CAPITAL LETTER CHA
+054A;;;ARMENIAN CAPITAL LETTER PEH
+054B;;;ARMENIAN CAPITAL LETTER JHEH
+054C;;;ARMENIAN CAPITAL LETTER RA
+054D;;;ARMENIAN CAPITAL LETTER SEH
+054E;;;ARMENIAN CAPITAL LETTER VEW
+054F;;;ARMENIAN CAPITAL LETTER TIWN
+#
+0550;;;ARMENIAN CAPITAL LETTER REH
+0551;;;ARMENIAN CAPITAL LETTER CO
+0552;;;ARMENIAN CAPITAL LETTER YIWN
+0553;;;ARMENIAN CAPITAL LETTER PIWR
+0554;;;ARMENIAN CAPITAL LETTER KEH
+0555;;;ARMENIAN CAPITAL LETTER OH
+0556;;;ARMENIAN CAPITAL LETTER FEH
+0559;;;ARMENIAN MODIFIER LETTER LEFT HALF RING
+055A;;;ARMENIAN APOSTROPHE
+055B;;;ARMENIAN EMPHASIS MARK
+055C;;;ARMENIAN EXCLAMATION MARK
+055D;;;ARMENIAN COMMA
+055E;;;ARMENIAN QUESTION MARK
+055F;;;ARMENIAN ABBREVIATION MARK
+0561;;;ARMENIAN SMALL LETTER AYB
+0562;;;ARMENIAN SMALL LETTER BEN
+0563;;;ARMENIAN SMALL LETTER GIM
+0564;;;ARMENIAN SMALL LETTER DA
+0565;;;ARMENIAN SMALL LETTER ECH
+0566;;;ARMENIAN SMALL LETTER ZA
+0567;;;ARMENIAN SMALL LETTER EH
+0568;;;ARMENIAN SMALL LETTER ET
+0569;;;ARMENIAN SMALL LETTER TO
+056A;;;ARMENIAN SMALL LETTER ZHE
+056B;;;ARMENIAN SMALL LETTER INI
+056C;;;ARMENIAN SMALL LETTER LIWN
+056D;;;ARMENIAN SMALL LETTER XEH
+056E;;;ARMENIAN SMALL LETTER CA
+056F;;;ARMENIAN SMALL LETTER KEN
+#
+0570;;;ARMENIAN SMALL LETTER HO
+0571;;;ARMENIAN SMALL LETTER JA
+0572;;;ARMENIAN SMALL LETTER GHAD
+0573;;;ARMENIAN SMALL LETTER CHEH
+0574;;;ARMENIAN SMALL LETTER MEN
+0575;;;ARMENIAN SMALL LETTER YI
+0576;;;ARMENIAN SMALL LETTER NOW
+0577;;;ARMENIAN SMALL LETTER SHA
+0578;;;ARMENIAN SMALL LETTER VO
+0579;;;ARMENIAN SMALL LETTER CHA
+057A;;;ARMENIAN SMALL LETTER PEH
+057B;;;ARMENIAN SMALL LETTER JHEH
+057C;;;ARMENIAN SMALL LETTER RA
+057D;;;ARMENIAN SMALL LETTER SEH
+057E;;;ARMENIAN SMALL LETTER VEW
+057F;;;ARMENIAN SMALL LETTER TIWN
+#
+0580;;;ARMENIAN SMALL LETTER REH
+0581;;;ARMENIAN SMALL LETTER CO
+0582;;;ARMENIAN SMALL LETTER YIWN
+0583;;;ARMENIAN SMALL LETTER PIWR
+0584;;;ARMENIAN SMALL LETTER KEH
+0585;;;ARMENIAN SMALL LETTER OH
+0586;;;ARMENIAN SMALL LETTER FEH
+0587;;;ARMENIAN SMALL LIGATURE ECH YIWN
+0589;;;ARMENIAN FULL STOP
+058A;;;ARMENIAN HYPHEN
+0591;;;HEBREW ACCENT ETNAHTA
+0592;;;HEBREW ACCENT SEGOL
+0593;;;HEBREW ACCENT SHALSHELET
+0594;;;HEBREW ACCENT ZAQEF QATAN
+0595;;;HEBREW ACCENT ZAQEF GADOL
+0596;;;HEBREW ACCENT TIPEHA
+0597;;;HEBREW ACCENT REVIA
+0598;;;HEBREW ACCENT ZARQA
+0599;;;HEBREW ACCENT PASHTA
+059A;;;HEBREW ACCENT YETIV
+059B;;;HEBREW ACCENT TEVIR
+059C;;;HEBREW ACCENT GERESH
+059D;;;HEBREW ACCENT GERESH MUQDAM
+059E;;;HEBREW ACCENT GERSHAYIM
+059F;;;HEBREW ACCENT QARNEY PARA
+#
+05A0;;;HEBREW ACCENT TELISHA GEDOLA
+05A1;;;HEBREW ACCENT PAZER
+05A2;;;HEBREW ACCENT ATNAH HAFUKH
+05A3;;;HEBREW ACCENT MUNAH
+05A4;;;HEBREW ACCENT MAHAPAKH
+05A5;;;HEBREW ACCENT MERKHA
+05A6;;;HEBREW ACCENT MERKHA KEFULA
+05A7;;;HEBREW ACCENT DARGA
+05A8;;;HEBREW ACCENT QADMA
+05A9;;;HEBREW ACCENT TELISHA QETANA
+05AA;;;HEBREW ACCENT YERAH BEN YOMO
+05AB;;;HEBREW ACCENT OLE
+05AC;;;HEBREW ACCENT ILUY
+05AD;;;HEBREW ACCENT DEHI
+05AE;;;HEBREW ACCENT ZINOR
+05AF;;;HEBREW MARK MASORA CIRCLE
+#
+05B0;afii57799;;HEBREW POINT SHEVA
+05B1;afii57801;;HEBREW POINT HATAF SEGOL
+05B2;afii57800;;HEBREW POINT HATAF PATAH
+05B3;afii57802;;HEBREW POINT HATAF QAMATS
+05B4;afii57793;;HEBREW POINT HIRIQ
+05B5;afii57794;;HEBREW POINT TSERE
+05B6;afii57795;;HEBREW POINT SEGOL
+05B7;afii57798;;HEBREW POINT PATAH
+05B8;afii57797;;HEBREW POINT QAMATS
+05B9;afii57806;;HEBREW POINT HOLAM
+05BB;afii57796;;HEBREW POINT QUBUTS
+05BC;afii57807;;HEBREW POINT DAGESH OR MAPIQ
+05BD;afii57839;;HEBREW POINT METEG
+05BE;afii57645;;HEBREW PUNCTUATION MAQAF
+05BF;afii57841;;HEBREW POINT RAFE
+#
+05C0;afii57842;;HEBREW PUNCTUATION PASEQ
+05C1;afii57804;;HEBREW POINT SHIN DOT
+05C2;afii57803;;HEBREW POINT SIN DOT
+05C3;afii57658;;HEBREW PUNCTUATION SOF PASUQ
+05C4;;;HEBREW MARK UPPER DOT
+05C5;;;HEBREW MARK LOWER DOT
+05C6;;;HEBREW PUNCTUATION NUN HAFUKHA
+05C7;;;HEBREW POINT QAMATS QATAN
+#
+05D0;afii57664;hebrewAlef;HEBREW LETTER ALEF
+05D1;afii57665;hebrewBet;HEBREW LETTER BET
+05D2;afii57666;hebrewGimel;HEBREW LETTER GIMEL
+05D3;afii57667;hebrewDalet;HEBREW LETTER DALET
+05D4;afii57668;hebrewHe;HEBREW LETTER HE
+05D5;afii57669;hebrewVav;HEBREW LETTER VAV
+05D6;afii57670;hebrewZayin;HEBREW LETTER ZAYIN
+05D7;afii57671;hebrewHet;HEBREW LETTER HET
+05D8;afii57672;hebrewTet;HEBREW LETTER TET
+05D9;afii57673;hebrewYod;HEBREW LETTER YOD
+05DA;afii57674;hebrewKaffinal;HEBREW LETTER FINAL KAF
+05DB;afii57675;hebrewKaf;HEBREW LETTER KAF
+05DC;afii57676;hebrewLamed;HEBREW LETTER LAMED
+05DD;afii57677;hebrewMemfinal;HEBREW LETTER FINAL MEM
+05DE;afii57678;hebrewMem;HEBREW LETTER MEM
+05DF;afii57679;hebrewNunfinal;HEBREW LETTER FINAL NUN
+#
+05E0;afii57680;hebrewNun;HEBREW LETTER NUN
+05E1;afii57681;hebrewSamekh;HEBREW LETTER SAMEKH
+05E2;afii57682;hebrewAyin;HEBREW LETTER AYIN
+05E3;afii57683;hebrewPefinal;HEBREW LETTER FINAL PE
+05E4;afii57684;hebrewPe;HEBREW LETTER PE
+05E5;afii57685;hebrewTsadifinal;HEBREW LETTER FINAL TSADI
+05E6;afii57686;hebrewTsadi;HEBREW LETTER TSADI
+05E7;afii57687;hebrewQof;HEBREW LETTER QOF
+05E8;afii57688;hebrewResh;HEBREW LETTER RESH
+05E9;afii57689;hebrewShin;HEBREW LETTER SHIN
+05EA;afii57690;hebrewTav;HEBREW LETTER TAV
+#
+05F0;afii57716;;HEBREW LIGATURE YIDDISH DOUBLE VAV
+05F1;afii57717;;HEBREW LIGATURE YIDDISH VAV YOD
+05F2;afii57718;;HEBREW LIGATURE YIDDISH DOUBLE YOD
+05F3;;;HEBREW PUNCTUATION GERESH
+05F4;;;HEBREW PUNCTUATION GERSHAYIM
+#
+# Arabic
+#
+0600;;;ARABIC NUMBER SIGN
+0601;;;ARABIC SIGN SANAH
+0602;;;ARABIC FOOTNOTE MARKER
+0603;;;ARABIC SIGN SAFHA
+060B;;;AFGHANI SIGN
+060C;afii57388;;ARABIC COMMA
+060D;;;ARABIC DATE SEPARATOR
+060E;;;ARABIC POETIC VERSE SIGN
+060F;;;ARABIC SIGN MISRA
+#
+0610;;;ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM
+0611;;;ARABIC SIGN ALAYHE ASSALLAM
+0612;;;ARABIC SIGN RAHMATULLAH ALAYHE
+0613;;;ARABIC SIGN RADI ALLAHOU ANHU
+0614;;;ARABIC SIGN TAKHALLUS
+0615;;;ARABIC SMALL HIGH TAH
+061B;afii57403;;ARABIC SEMICOLON
+061E;;;ARABIC TRIPLE DOT PUNCTUATION MARK
+061F;afii57407;;ARABIC QUESTION MARK
+0621;afii57409;;ARABIC LETTER HAMZA
+0622;afii57410;;ARABIC LETTER ALEF WITH MADDA ABOVE
+0623;afii57411;;ARABIC LETTER ALEF WITH HAMZA ABOVE
+0624;afii57412;;ARABIC LETTER WAW WITH HAMZA ABOVE
+0625;afii57413;;ARABIC LETTER ALEF WITH HAMZA BELOW
+0626;afii57414;;ARABIC LETTER YEH WITH HAMZA ABOVE
+0627;afii57415;;ARABIC LETTER ALEF
+0628;afii57416;;ARABIC LETTER BEH
+0629;afii57417;;ARABIC LETTER TEH MARBUTA
+062A;afii57418;;ARABIC LETTER TEH
+062B;afii57419;;ARABIC LETTER THEH
+062C;afii57420;;ARABIC LETTER JEEM
+062D;afii57421;;ARABIC LETTER HAH
+062E;afii57422;;ARABIC LETTER KHAH
+062F;afii57423;;ARABIC LETTER DAL
+#
+0630;afii57424;;ARABIC LETTER THAL
+0631;afii57425;;ARABIC LETTER REH
+0632;afii57426;;ARABIC LETTER ZAIN
+0633;afii57427;;ARABIC LETTER SEEN
+0634;afii57428;;ARABIC LETTER SHEEN
+0635;afii57429;;ARABIC LETTER SAD
+0636;afii57430;;ARABIC LETTER DAD
+0637;afii57431;;ARABIC LETTER TAH
+0638;afii57432;;ARABIC LETTER ZAH
+0639;afii57433;;ARABIC LETTER AIN
+063A;afii57434;;ARABIC LETTER GHAIN
+#
+0640;afii57440;;ARABIC TATWEEL
+0641;afii57441;;ARABIC LETTER FEH
+0642;afii57442;;ARABIC LETTER QAF
+0643;afii57443;;ARABIC LETTER KAF
+0644;afii57444;;ARABIC LETTER LAM
+0645;afii57445;;ARABIC LETTER MEEM
+0646;afii57446;;ARABIC LETTER NOON
+0647;afii57470;;ARABIC LETTER HEH
+0648;afii57448;;ARABIC LETTER WAW
+0649;afii57449;;ARABIC LETTER ALEF MAKSURA
+064A;afii57450;;ARABIC LETTER YEH
+064B;afii57451;;ARABIC FATHATAN
+064C;afii57452;;ARABIC DAMMATAN
+064D;afii57453;;ARABIC KASRATAN
+064E;afii57454;;ARABIC FATHA
+064F;afii57455;;ARABIC DAMMA
+#
+0650;afii57456;;ARABIC KASRA
+0651;afii57457;;ARABIC SHADDA
+0652;afii57458;;ARABIC SUKUN
+0653;;;ARABIC MADDAH ABOVE
+0654;;;ARABIC HAMZA ABOVE
+0655;;;ARABIC HAMZA BELOW
+0656;;;ARABIC SUBSCRIPT ALEF
+0657;;;ARABIC INVERTED DAMMA
+0658;;;ARABIC MARK NOON GHUNNA
+0659;;;ARABIC ZWARAKAY
+065A;;;ARABIC VOWEL SIGN SMALL V ABOVE
+065B;;;ARABIC VOWEL SIGN INVERTED SMALL V ABOVE
+065C;;;ARABIC VOWEL SIGN DOT BELOW
+065D;;;ARABIC REVERSED DAMMA
+065E;;;ARABIC FATHA WITH TWO DOTS
+#
+0660;afii57392;;ARABIC-INDIC DIGIT ZERO
+0661;afii57393;;ARABIC-INDIC DIGIT ONE
+0662;afii57394;;ARABIC-INDIC DIGIT TWO
+0663;afii57395;;ARABIC-INDIC DIGIT THREE
+0664;afii57396;;ARABIC-INDIC DIGIT FOUR
+0665;afii57397;;ARABIC-INDIC DIGIT FIVE
+0666;afii57398;;ARABIC-INDIC DIGIT SIX
+0667;afii57399;;ARABIC-INDIC DIGIT SEVEN
+0668;afii57400;;ARABIC-INDIC DIGIT EIGHT
+0669;afii57401;;ARABIC-INDIC DIGIT NINE
+066A;afii57381;;ARABIC PERCENT SIGN
+066B;;;ARABIC DECIMAL SEPARATOR
+066C;;;ARABIC THOUSANDS SEPARATOR
+066D;afii63167;;ARABIC FIVE POINTED STAR
+066E;;;ARABIC LETTER DOTLESS BEH
+066F;;;ARABIC LETTER DOTLESS QAF
+#
+0670;;;ARABIC LETTER SUPERSCRIPT ALEF
+0671;;;ARABIC LETTER ALEF WASLA
+0672;;;ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE
+0673;;;ARABIC LETTER ALEF WITH WAVY HAMZA BELOW
+0674;;;ARABIC LETTER HIGH HAMZA
+0675;;;ARABIC LETTER HIGH HAMZA ALEF
+0676;;;ARABIC LETTER HIGH HAMZA WAW
+0677;;;ARABIC LETTER U WITH HAMZA ABOVE
+0678;;;ARABIC LETTER HIGH HAMZA YEH
+0679;afii57511;;ARABIC LETTER TTEH
+067A;;;ARABIC LETTER TTEHEH
+067B;;;ARABIC LETTER BEEH
+067C;;;ARABIC LETTER TEH WITH RING
+067D;;;ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS
+067E;afii57506;;ARABIC LETTER PEH
+067F;;;ARABIC LETTER TEHEH
+#
+0680;;;ARABIC LETTER BEHEH
+0681;;;ARABIC LETTER HAH WITH HAMZA ABOVE
+0682;;;ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE
+0683;;;ARABIC LETTER NYEH
+0684;;;ARABIC LETTER DYEH
+0685;;;ARABIC LETTER HAH WITH THREE DOTS ABOVE
+0686;afii57507;;ARABIC LETTER TCHEH
+0687;;;ARABIC LETTER TCHEHEH
+0688;afii57512;;ARABIC LETTER DDAL
+0689;;;ARABIC LETTER DAL WITH RING
+068A;;;ARABIC LETTER DAL WITH DOT BELOW
+068B;;;ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH
+068C;;;ARABIC LETTER DAHAL
+068D;;;ARABIC LETTER DDAHAL
+068E;;;ARABIC LETTER DUL
+068F;;;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS
+#
+0690;;;ARABIC LETTER DAL WITH FOUR DOTS ABOVE
+0691;afii57513;;ARABIC LETTER RREH
+0692;;;ARABIC LETTER REH WITH SMALL V
+0693;;;ARABIC LETTER REH WITH RING
+0694;;;ARABIC LETTER REH WITH DOT BELOW
+0695;;;ARABIC LETTER REH WITH SMALL V BELOW
+0696;;;ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE
+0697;;;ARABIC LETTER REH WITH TWO DOTS ABOVE
+0698;afii57508;;ARABIC LETTER JEH
+0699;;;ARABIC LETTER REH WITH FOUR DOTS ABOVE
+069A;;;ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE
+069B;;;ARABIC LETTER SEEN WITH THREE DOTS BELOW
+069C;;;ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE
+069D;;;ARABIC LETTER SAD WITH TWO DOTS BELOW
+069E;;;ARABIC LETTER SAD WITH THREE DOTS ABOVE
+069F;;;ARABIC LETTER TAH WITH THREE DOTS ABOVE
+#
+06A0;;;ARABIC LETTER AIN WITH THREE DOTS ABOVE
+06A1;;;ARABIC LETTER DOTLESS FEH
+06A2;;;ARABIC LETTER FEH WITH DOT MOVED BELOW
+06A3;;;ARABIC LETTER FEH WITH DOT BELOW
+06A4;afii57505;;ARABIC LETTER VEH
+06A5;;;ARABIC LETTER FEH WITH THREE DOTS BELOW
+06A6;;;ARABIC LETTER PEHEH
+06A7;;;ARABIC LETTER QAF WITH DOT ABOVE
+06A8;;;ARABIC LETTER QAF WITH THREE DOTS ABOVE
+06A9;;;ARABIC LETTER KEHEH
+06AA;;;ARABIC LETTER SWASH KAF
+06AB;;;ARABIC LETTER KAF WITH RING
+06AC;;;ARABIC LETTER KAF WITH DOT ABOVE
+06AD;;;ARABIC LETTER NG
+06AE;;;ARABIC LETTER KAF WITH THREE DOTS BELOW
+06AF;afii57509;;ARABIC LETTER GAF
+#
+06B0;;;ARABIC LETTER GAF WITH RING
+06B1;;;ARABIC LETTER NGOEH
+06B2;;;ARABIC LETTER GAF WITH TWO DOTS BELOW
+06B3;;;ARABIC LETTER GUEH
+06B4;;;ARABIC LETTER GAF WITH THREE DOTS ABOVE
+06B5;;;ARABIC LETTER LAM WITH SMALL V
+06B6;;;ARABIC LETTER LAM WITH DOT ABOVE
+06B7;;;ARABIC LETTER LAM WITH THREE DOTS ABOVE
+06B8;;;ARABIC LETTER LAM WITH THREE DOTS BELOW
+06B9;;;ARABIC LETTER NOON WITH DOT BELOW
+06BA;afii57514;;ARABIC LETTER NOON GHUNNA
+06BB;;;ARABIC LETTER RNOON
+06BC;;;ARABIC LETTER NOON WITH RING
+06BD;;;ARABIC LETTER NOON WITH THREE DOTS ABOVE
+06BE;;;ARABIC LETTER HEH DOACHASHMEE
+06BF;;;ARABIC LETTER TCHEH WITH DOT ABOVE
+#
+06C0;;;ARABIC LETTER HEH WITH YEH ABOVE
+06C1;;;ARABIC LETTER HEH GOAL
+06C2;;;ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
+06C3;;;ARABIC LETTER TEH MARBUTA GOAL
+06C4;;;ARABIC LETTER WAW WITH RING
+06C5;;;ARABIC LETTER KIRGHIZ OE
+06C6;;;ARABIC LETTER OE
+06C7;;;ARABIC LETTER U
+06C8;;;ARABIC LETTER YU
+06C9;;;ARABIC LETTER KIRGHIZ YU
+06CA;;;ARABIC LETTER WAW WITH TWO DOTS ABOVE
+06CB;;;ARABIC LETTER VE
+06CC;;;ARABIC LETTER FARSI YEH
+06CD;;;ARABIC LETTER YEH WITH TAIL
+06CE;;;ARABIC LETTER YEH WITH SMALL V
+06CF;;;ARABIC LETTER WAW WITH DOT ABOVE
+#
+06D0;;;ARABIC LETTER E
+06D1;;;ARABIC LETTER YEH WITH THREE DOTS BELOW
+06D2;afii57519;;ARABIC LETTER YEH BARREE
+06D3;;;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+06D4;;;ARABIC FULL STOP
+06D5;afii57534;;ARABIC LETTER AE
+06D6;;;ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA
+06D7;;;ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA
+06D8;;;ARABIC SMALL HIGH MEEM INITIAL FORM
+06D9;;;ARABIC SMALL HIGH LAM ALEF
+06DA;;;ARABIC SMALL HIGH JEEM
+06DB;;;ARABIC SMALL HIGH THREE DOTS
+06DC;;;ARABIC SMALL HIGH SEEN
+06DD;;;ARABIC END OF AYAH
+06DE;;;ARABIC START OF RUB EL HIZB
+06DF;;;ARABIC SMALL HIGH ROUNDED ZERO
+#
+06E0;;;ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO
+06E1;;;ARABIC SMALL HIGH DOTLESS HEAD OF KHAH
+06E2;;;ARABIC SMALL HIGH MEEM ISOLATED FORM
+06E3;;;ARABIC SMALL LOW SEEN
+06E4;;;ARABIC SMALL HIGH MADDA
+06E5;;;ARABIC SMALL WAW
+06E6;;;ARABIC SMALL YEH
+06E7;;;ARABIC SMALL HIGH YEH
+06E8;;;ARABIC SMALL HIGH NOON
+06E9;;;ARABIC PLACE OF SAJDAH
+06EA;;;ARABIC EMPTY CENTRE LOW STOP
+06EB;;;ARABIC EMPTY CENTRE HIGH STOP
+06EC;;;ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE
+06ED;;;ARABIC SMALL LOW MEEM
+06EE;;;ARABIC LETTER DAL WITH INVERTED V
+06EF;;;ARABIC LETTER REH WITH INVERTED V
+#
+06F0;;;EXTENDED ARABIC-INDIC DIGIT ZERO
+06F1;;;EXTENDED ARABIC-INDIC DIGIT ONE
+06F2;;;EXTENDED ARABIC-INDIC DIGIT TWO
+06F3;;;EXTENDED ARABIC-INDIC DIGIT THREE
+06F4;;;EXTENDED ARABIC-INDIC DIGIT FOUR
+06F5;;;EXTENDED ARABIC-INDIC DIGIT FIVE
+06F6;;;EXTENDED ARABIC-INDIC DIGIT SIX
+06F7;;;EXTENDED ARABIC-INDIC DIGIT SEVEN
+06F8;;;EXTENDED ARABIC-INDIC DIGIT EIGHT
+06F9;;;EXTENDED ARABIC-INDIC DIGIT NINE
+06FA;;;ARABIC LETTER SHEEN WITH DOT BELOW
+06FB;;;ARABIC LETTER DAD WITH DOT BELOW
+06FC;;;ARABIC LETTER GHAIN WITH DOT BELOW
+06FD;;;ARABIC SIGN SINDHI AMPERSAND
+06FE;;;ARABIC SIGN SINDHI POSTPOSITION MEN
+06FF;;;ARABIC LETTER HEH WITH INVERTED V
+#
+# Syriac
+#
+0700;;;SYRIAC END OF PARAGRAPH
+0701;;;SYRIAC SUPRALINEAR FULL STOP
+0702;;;SYRIAC SUBLINEAR FULL STOP
+0703;;;SYRIAC SUPRALINEAR COLON
+0704;;;SYRIAC SUBLINEAR COLON
+0705;;;SYRIAC HORIZONTAL COLON
+0706;;;SYRIAC COLON SKEWED LEFT
+0707;;;SYRIAC COLON SKEWED RIGHT
+0708;;;SYRIAC SUPRALINEAR COLON SKEWED LEFT
+0709;;;SYRIAC SUBLINEAR COLON SKEWED RIGHT
+070A;;;SYRIAC CONTRACTION
+070B;;;SYRIAC HARKLEAN OBELUS
+070C;;;SYRIAC HARKLEAN METOBELUS
+070D;;;SYRIAC HARKLEAN ASTERISCUS
+070F;;;SYRIAC ABBREVIATION MARK
+#
+0710;;;SYRIAC LETTER ALAPH
+0711;;;SYRIAC LETTER SUPERSCRIPT ALAPH
+0712;;;SYRIAC LETTER BETH
+0713;;;SYRIAC LETTER GAMAL
+0714;;;SYRIAC LETTER GAMAL GARSHUNI
+0715;;;SYRIAC LETTER DALATH
+0716;;;SYRIAC LETTER DOTLESS DALATH RISH
+0717;;;SYRIAC LETTER HE
+0718;;;SYRIAC LETTER WAW
+0719;;;SYRIAC LETTER ZAIN
+071A;;;SYRIAC LETTER HETH
+071B;;;SYRIAC LETTER TETH
+071C;;;SYRIAC LETTER TETH GARSHUNI
+071D;;;SYRIAC LETTER YUDH
+071E;;;SYRIAC LETTER YUDH HE
+071F;;;SYRIAC LETTER KAPH
+#
+0720;;;SYRIAC LETTER LAMADH
+0721;;;SYRIAC LETTER MIM
+0722;;;SYRIAC LETTER NUN
+0723;;;SYRIAC LETTER SEMKATH
+0724;;;SYRIAC LETTER FINAL SEMKATH
+0725;;;SYRIAC LETTER E
+0726;;;SYRIAC LETTER PE
+0727;;;SYRIAC LETTER REVERSED PE
+0728;;;SYRIAC LETTER SADHE
+0729;;;SYRIAC LETTER QAPH
+072A;;;SYRIAC LETTER RISH
+072B;;;SYRIAC LETTER SHIN
+072C;;;SYRIAC LETTER TAW
+072D;;;SYRIAC LETTER PERSIAN BHETH
+072E;;;SYRIAC LETTER PERSIAN GHAMAL
+072F;;;SYRIAC LETTER PERSIAN DHALATH
+#
+0730;;;SYRIAC PTHAHA ABOVE
+0731;;;SYRIAC PTHAHA BELOW
+0732;;;SYRIAC PTHAHA DOTTED
+0733;;;SYRIAC ZQAPHA ABOVE
+0734;;;SYRIAC ZQAPHA BELOW
+0735;;;SYRIAC ZQAPHA DOTTED
+0736;;;SYRIAC RBASA ABOVE
+0737;;;SYRIAC RBASA BELOW
+0738;;;SYRIAC DOTTED ZLAMA HORIZONTAL
+0739;;;SYRIAC DOTTED ZLAMA ANGULAR
+073A;;;SYRIAC HBASA ABOVE
+073B;;;SYRIAC HBASA BELOW
+073C;;;SYRIAC HBASA-ESASA DOTTED
+073D;;;SYRIAC ESASA ABOVE
+073E;;;SYRIAC ESASA BELOW
+073F;;;SYRIAC RWAHA
+#
+0740;;;SYRIAC FEMININE DOT
+0741;;;SYRIAC QUSHSHAYA
+0742;;;SYRIAC RUKKAKHA
+0743;;;SYRIAC TWO VERTICAL DOTS ABOVE
+0744;;;SYRIAC TWO VERTICAL DOTS BELOW
+0745;;;SYRIAC THREE DOTS ABOVE
+0746;;;SYRIAC THREE DOTS BELOW
+0747;;;SYRIAC OBLIQUE LINE ABOVE
+0748;;;SYRIAC OBLIQUE LINE BELOW
+0749;;;SYRIAC MUSIC
+074A;;;SYRIAC BARREKH
+074D;;;SYRIAC LETTER SOGDIAN ZHAIN
+074E;;;SYRIAC LETTER SOGDIAN KHAPH
+074F;;;SYRIAC LETTER SOGDIAN FE
+#
+0750;;;ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW
+0751;;;ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE
+0752;;;ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW
+0753;;;ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE
+0754;;;ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE
+0755;;;ARABIC LETTER BEH WITH INVERTED SMALL V BELOW
+0756;;;ARABIC LETTER BEH WITH SMALL V
+0757;;;ARABIC LETTER HAH WITH TWO DOTS ABOVE
+0758;;;ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW
+0759;;;ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH
+075A;;;ARABIC LETTER DAL WITH INVERTED SMALL V BELOW
+075B;;;ARABIC LETTER REH WITH STROKE
+075C;;;ARABIC LETTER SEEN WITH FOUR DOTS ABOVE
+075D;;;ARABIC LETTER AIN WITH TWO DOTS ABOVE
+075E;;;ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE
+075F;;;ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE
+#
+0760;;;ARABIC LETTER FEH WITH TWO DOTS BELOW
+0761;;;ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW
+0762;;;ARABIC LETTER KEHEH WITH DOT ABOVE
+0763;;;ARABIC LETTER KEHEH WITH THREE DOTS ABOVE
+0764;;;ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW
+0765;;;ARABIC LETTER MEEM WITH DOT ABOVE
+0766;;;ARABIC LETTER MEEM WITH DOT BELOW
+0767;;;ARABIC LETTER NOON WITH TWO DOTS BELOW
+0768;;;ARABIC LETTER NOON WITH SMALL TAH
+0769;;;ARABIC LETTER NOON WITH SMALL V
+076A;;;ARABIC LETTER LAM WITH BAR
+076B;;;ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE
+076C;;;ARABIC LETTER REH WITH HAMZA ABOVE
+076D;;;ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE
+#
+# Thaana
+#
+0780;;;THAANA LETTER HAA
+0781;;;THAANA LETTER SHAVIYANI
+0782;;;THAANA LETTER NOONU
+0783;;;THAANA LETTER RAA
+0784;;;THAANA LETTER BAA
+0785;;;THAANA LETTER LHAVIYANI
+0786;;;THAANA LETTER KAAFU
+0787;;;THAANA LETTER ALIFU
+0788;;;THAANA LETTER VAAVU
+0789;;;THAANA LETTER MEEMU
+078A;;;THAANA LETTER FAAFU
+078B;;;THAANA LETTER DHAALU
+078C;;;THAANA LETTER THAA
+078D;;;THAANA LETTER LAAMU
+078E;;;THAANA LETTER GAAFU
+078F;;;THAANA LETTER GNAVIYANI
+#
+0790;;;THAANA LETTER SEENU
+0791;;;THAANA LETTER DAVIYANI
+0792;;;THAANA LETTER ZAVIYANI
+0793;;;THAANA LETTER TAVIYANI
+0794;;;THAANA LETTER YAA
+0795;;;THAANA LETTER PAVIYANI
+0796;;;THAANA LETTER JAVIYANI
+0797;;;THAANA LETTER CHAVIYANI
+0798;;;THAANA LETTER TTAA
+0799;;;THAANA LETTER HHAA
+079A;;;THAANA LETTER KHAA
+079B;;;THAANA LETTER THAALU
+079C;;;THAANA LETTER ZAA
+079D;;;THAANA LETTER SHEENU
+079E;;;THAANA LETTER SAADHU
+079F;;;THAANA LETTER DAADHU
+#
+07A0;;;THAANA LETTER TO
+07A1;;;THAANA LETTER ZO
+07A2;;;THAANA LETTER AINU
+07A3;;;THAANA LETTER GHAINU
+07A4;;;THAANA LETTER QAAFU
+07A5;;;THAANA LETTER WAAVU
+07A6;;;THAANA ABAFILI
+07A7;;;THAANA AABAAFILI
+07A8;;;THAANA IBIFILI
+07A9;;;THAANA EEBEEFILI
+07AA;;;THAANA UBUFILI
+07AB;;;THAANA OOBOOFILI
+07AC;;;THAANA EBEFILI
+07AD;;;THAANA EYBEYFILI
+07AE;;;THAANA OBOFILI
+07AF;;;THAANA OABOAFILI
+#
+07B0;;;THAANA SUKUN
+07B1;;;THAANA LETTER NAA
+0901;;;DEVANAGARI SIGN CANDRABINDU
+0902;;;DEVANAGARI SIGN ANUSVARA
+0903;;;DEVANAGARI SIGN VISARGA
+0904;;;DEVANAGARI LETTER SHORT A
+0905;;;DEVANAGARI LETTER A
+0906;;;DEVANAGARI LETTER AA
+0907;;;DEVANAGARI LETTER I
+0908;;;DEVANAGARI LETTER II
+0909;;;DEVANAGARI LETTER U
+090A;;;DEVANAGARI LETTER UU
+090B;;;DEVANAGARI LETTER VOCALIC R
+090C;;;DEVANAGARI LETTER VOCALIC L
+090D;;;DEVANAGARI LETTER CANDRA E
+090E;;;DEVANAGARI LETTER SHORT E
+090F;;;DEVANAGARI LETTER E
+#
+0910;;;DEVANAGARI LETTER AI
+0911;;;DEVANAGARI LETTER CANDRA O
+0912;;;DEVANAGARI LETTER SHORT O
+0913;;;DEVANAGARI LETTER O
+0914;;;DEVANAGARI LETTER AU
+0915;;;DEVANAGARI LETTER KA
+0916;;;DEVANAGARI LETTER KHA
+0917;;;DEVANAGARI LETTER GA
+0918;;;DEVANAGARI LETTER GHA
+0919;;;DEVANAGARI LETTER NGA
+091A;;;DEVANAGARI LETTER CA
+091B;;;DEVANAGARI LETTER CHA
+091C;;;DEVANAGARI LETTER JA
+091D;;;DEVANAGARI LETTER JHA
+091E;;;DEVANAGARI LETTER NYA
+091F;;;DEVANAGARI LETTER TTA
+#
+0920;;;DEVANAGARI LETTER TTHA
+0921;;;DEVANAGARI LETTER DDA
+0922;;;DEVANAGARI LETTER DDHA
+0923;;;DEVANAGARI LETTER NNA
+0924;;;DEVANAGARI LETTER TA
+0925;;;DEVANAGARI LETTER THA
+0926;;;DEVANAGARI LETTER DA
+0927;;;DEVANAGARI LETTER DHA
+0928;;;DEVANAGARI LETTER NA
+0929;;;DEVANAGARI LETTER NNNA
+092A;;;DEVANAGARI LETTER PA
+092B;;;DEVANAGARI LETTER PHA
+092C;;;DEVANAGARI LETTER BA
+092D;;;DEVANAGARI LETTER BHA
+092E;;;DEVANAGARI LETTER MA
+092F;;;DEVANAGARI LETTER YA
+#
+0930;;;DEVANAGARI LETTER RA
+0931;;;DEVANAGARI LETTER RRA
+0932;;;DEVANAGARI LETTER LA
+0933;;;DEVANAGARI LETTER LLA
+0934;;;DEVANAGARI LETTER LLLA
+0935;;;DEVANAGARI LETTER VA
+0936;;;DEVANAGARI LETTER SHA
+0937;;;DEVANAGARI LETTER SSA
+0938;;;DEVANAGARI LETTER SA
+0939;;;DEVANAGARI LETTER HA
+093C;;;DEVANAGARI SIGN NUKTA
+093D;;;DEVANAGARI SIGN AVAGRAHA
+093E;;;DEVANAGARI VOWEL SIGN AA
+093F;;;DEVANAGARI VOWEL SIGN I
+#
+0940;;;DEVANAGARI VOWEL SIGN II
+0941;;;DEVANAGARI VOWEL SIGN U
+0942;;;DEVANAGARI VOWEL SIGN UU
+0943;;;DEVANAGARI VOWEL SIGN VOCALIC R
+0944;;;DEVANAGARI VOWEL SIGN VOCALIC RR
+0945;;;DEVANAGARI VOWEL SIGN CANDRA E
+0946;;;DEVANAGARI VOWEL SIGN SHORT E
+0947;;;DEVANAGARI VOWEL SIGN E
+0948;;;DEVANAGARI VOWEL SIGN AI
+0949;;;DEVANAGARI VOWEL SIGN CANDRA O
+094A;;;DEVANAGARI VOWEL SIGN SHORT O
+094B;;;DEVANAGARI VOWEL SIGN O
+094C;;;DEVANAGARI VOWEL SIGN AU
+094D;;;DEVANAGARI SIGN VIRAMA
+#
+0950;;;DEVANAGARI OM
+0951;;;DEVANAGARI STRESS SIGN UDATTA
+0952;;;DEVANAGARI STRESS SIGN ANUDATTA
+0953;;;DEVANAGARI GRAVE ACCENT
+0954;;;DEVANAGARI ACUTE ACCENT
+0958;;;DEVANAGARI LETTER QA
+0959;;;DEVANAGARI LETTER KHHA
+095A;;;DEVANAGARI LETTER GHHA
+095B;;;DEVANAGARI LETTER ZA
+095C;;;DEVANAGARI LETTER DDDHA
+095D;;;DEVANAGARI LETTER RHA
+095E;;;DEVANAGARI LETTER FA
+095F;;;DEVANAGARI LETTER YYA
+#
+0960;;;DEVANAGARI LETTER VOCALIC RR
+0961;;;DEVANAGARI LETTER VOCALIC LL
+0962;;;DEVANAGARI VOWEL SIGN VOCALIC L
+0963;;;DEVANAGARI VOWEL SIGN VOCALIC LL
+0964;;;DEVANAGARI DANDA
+0965;;;DEVANAGARI DOUBLE DANDA
+0966;;;DEVANAGARI DIGIT ZERO
+0967;;;DEVANAGARI DIGIT ONE
+0968;;;DEVANAGARI DIGIT TWO
+0969;;;DEVANAGARI DIGIT THREE
+096A;;;DEVANAGARI DIGIT FOUR
+096B;;;DEVANAGARI DIGIT FIVE
+096C;;;DEVANAGARI DIGIT SIX
+096D;;;DEVANAGARI DIGIT SEVEN
+096E;;;DEVANAGARI DIGIT EIGHT
+096F;;;DEVANAGARI DIGIT NINE
+#
+0970;;;DEVANAGARI ABBREVIATION SIGN
+097D;;;DEVANAGARI LETTER GLOTTAL STOP
+0981;;;BENGALI SIGN CANDRABINDU
+0982;;;BENGALI SIGN ANUSVARA
+0983;;;BENGALI SIGN VISARGA
+0985;;;BENGALI LETTER A
+0986;;;BENGALI LETTER AA
+0987;;;BENGALI LETTER I
+0988;;;BENGALI LETTER II
+0989;;;BENGALI LETTER U
+098A;;;BENGALI LETTER UU
+098B;;;BENGALI LETTER VOCALIC R
+098C;;;BENGALI LETTER VOCALIC L
+098F;;;BENGALI LETTER E
+#
+0990;;;BENGALI LETTER AI
+0993;;;BENGALI LETTER O
+0994;;;BENGALI LETTER AU
+0995;;;BENGALI LETTER KA
+0996;;;BENGALI LETTER KHA
+0997;;;BENGALI LETTER GA
+0998;;;BENGALI LETTER GHA
+0999;;;BENGALI LETTER NGA
+099A;;;BENGALI LETTER CA
+099B;;;BENGALI LETTER CHA
+099C;;;BENGALI LETTER JA
+099D;;;BENGALI LETTER JHA
+099E;;;BENGALI LETTER NYA
+099F;;;BENGALI LETTER TTA
+#
+09A0;;;BENGALI LETTER TTHA
+09A1;;;BENGALI LETTER DDA
+09A2;;;BENGALI LETTER DDHA
+09A3;;;BENGALI LETTER NNA
+09A4;;;BENGALI LETTER TA
+09A5;;;BENGALI LETTER THA
+09A6;;;BENGALI LETTER DA
+09A7;;;BENGALI LETTER DHA
+09A8;;;BENGALI LETTER NA
+09AA;;;BENGALI LETTER PA
+09AB;;;BENGALI LETTER PHA
+09AC;;;BENGALI LETTER BA
+09AD;;;BENGALI LETTER BHA
+09AE;;;BENGALI LETTER MA
+09AF;;;BENGALI LETTER YA
+#
+09B0;;;BENGALI LETTER RA
+09B2;;;BENGALI LETTER LA
+09B6;;;BENGALI LETTER SHA
+09B7;;;BENGALI LETTER SSA
+09B8;;;BENGALI LETTER SA
+09B9;;;BENGALI LETTER HA
+09BC;;;BENGALI SIGN NUKTA
+09BD;;;BENGALI SIGN AVAGRAHA
+09BE;;;BENGALI VOWEL SIGN AA
+09BF;;;BENGALI VOWEL SIGN I
+#
+09C0;;;BENGALI VOWEL SIGN II
+09C1;;;BENGALI VOWEL SIGN U
+09C2;;;BENGALI VOWEL SIGN UU
+09C3;;;BENGALI VOWEL SIGN VOCALIC R
+09C4;;;BENGALI VOWEL SIGN VOCALIC RR
+09C7;;;BENGALI VOWEL SIGN E
+09C8;;;BENGALI VOWEL SIGN AI
+09CB;;;BENGALI VOWEL SIGN O
+09CC;;;BENGALI VOWEL SIGN AU
+09CD;;;BENGALI SIGN VIRAMA
+09CE;;;BENGALI LETTER KHANDA TA
+09D7;;;BENGALI AU LENGTH MARK
+09DC;;;BENGALI LETTER RRA
+09DD;;;BENGALI LETTER RHA
+09DF;;;BENGALI LETTER YYA
+#
+09E0;;;BENGALI LETTER VOCALIC RR
+09E1;;;BENGALI LETTER VOCALIC LL
+09E2;;;BENGALI VOWEL SIGN VOCALIC L
+09E3;;;BENGALI VOWEL SIGN VOCALIC LL
+09E6;;;BENGALI DIGIT ZERO
+09E7;;;BENGALI DIGIT ONE
+09E8;;;BENGALI DIGIT TWO
+09E9;;;BENGALI DIGIT THREE
+09EA;;;BENGALI DIGIT FOUR
+09EB;;;BENGALI DIGIT FIVE
+09EC;;;BENGALI DIGIT SIX
+09ED;;;BENGALI DIGIT SEVEN
+09EE;;;BENGALI DIGIT EIGHT
+09EF;;;BENGALI DIGIT NINE
+#
+09F0;;;BENGALI LETTER RA WITH MIDDLE DIAGONAL
+09F1;;;BENGALI LETTER RA WITH LOWER DIAGONAL
+09F2;;;BENGALI RUPEE MARK
+09F3;;;BENGALI RUPEE SIGN
+09F4;;;BENGALI CURRENCY NUMERATOR ONE
+09F5;;;BENGALI CURRENCY NUMERATOR TWO
+09F6;;;BENGALI CURRENCY NUMERATOR THREE
+09F7;;;BENGALI CURRENCY NUMERATOR FOUR
+09F8;;;BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
+09F9;;;BENGALI CURRENCY DENOMINATOR SIXTEEN
+09FA;;;BENGALI ISSHAR
+0A01;;;GURMUKHI SIGN ADAK BINDI
+0A02;;;GURMUKHI SIGN BINDI
+0A03;;;GURMUKHI SIGN VISARGA
+0A05;;;GURMUKHI LETTER A
+0A06;;;GURMUKHI LETTER AA
+0A07;;;GURMUKHI LETTER I
+0A08;;;GURMUKHI LETTER II
+0A09;;;GURMUKHI LETTER U
+0A0A;;;GURMUKHI LETTER UU
+0A0F;;;GURMUKHI LETTER EE
+#
+0A10;;;GURMUKHI LETTER AI
+0A13;;;GURMUKHI LETTER OO
+0A14;;;GURMUKHI LETTER AU
+0A15;;;GURMUKHI LETTER KA
+0A16;;;GURMUKHI LETTER KHA
+0A17;;;GURMUKHI LETTER GA
+0A18;;;GURMUKHI LETTER GHA
+0A19;;;GURMUKHI LETTER NGA
+0A1A;;;GURMUKHI LETTER CA
+0A1B;;;GURMUKHI LETTER CHA
+0A1C;;;GURMUKHI LETTER JA
+0A1D;;;GURMUKHI LETTER JHA
+0A1E;;;GURMUKHI LETTER NYA
+0A1F;;;GURMUKHI LETTER TTA
+#
+0A20;;;GURMUKHI LETTER TTHA
+0A21;;;GURMUKHI LETTER DDA
+0A22;;;GURMUKHI LETTER DDHA
+0A23;;;GURMUKHI LETTER NNA
+0A24;;;GURMUKHI LETTER TA
+0A25;;;GURMUKHI LETTER THA
+0A26;;;GURMUKHI LETTER DA
+0A27;;;GURMUKHI LETTER DHA
+0A28;;;GURMUKHI LETTER NA
+0A2A;;;GURMUKHI LETTER PA
+0A2B;;;GURMUKHI LETTER PHA
+0A2C;;;GURMUKHI LETTER BA
+0A2D;;;GURMUKHI LETTER BHA
+0A2E;;;GURMUKHI LETTER MA
+0A2F;;;GURMUKHI LETTER YA
+#
+0A30;;;GURMUKHI LETTER RA
+0A32;;;GURMUKHI LETTER LA
+0A33;;;GURMUKHI LETTER LLA
+0A35;;;GURMUKHI LETTER VA
+0A36;;;GURMUKHI LETTER SHA
+0A38;;;GURMUKHI LETTER SA
+0A39;;;GURMUKHI LETTER HA
+0A3C;;;GURMUKHI SIGN NUKTA
+0A3E;;;GURMUKHI VOWEL SIGN AA
+0A3F;;;GURMUKHI VOWEL SIGN I
+#
+0A40;;;GURMUKHI VOWEL SIGN II
+0A41;;;GURMUKHI VOWEL SIGN U
+0A42;;;GURMUKHI VOWEL SIGN UU
+0A47;;;GURMUKHI VOWEL SIGN EE
+0A48;;;GURMUKHI VOWEL SIGN AI
+0A4B;;;GURMUKHI VOWEL SIGN OO
+0A4C;;;GURMUKHI VOWEL SIGN AU
+0A4D;;;GURMUKHI SIGN VIRAMA
+0A59;;;GURMUKHI LETTER KHHA
+0A5A;;;GURMUKHI LETTER GHHA
+0A5B;;;GURMUKHI LETTER ZA
+0A5C;;;GURMUKHI LETTER RRA
+0A5E;;;GURMUKHI LETTER FA
+0A66;;;GURMUKHI DIGIT ZERO
+0A67;;;GURMUKHI DIGIT ONE
+0A68;;;GURMUKHI DIGIT TWO
+0A69;;;GURMUKHI DIGIT THREE
+0A6A;;;GURMUKHI DIGIT FOUR
+0A6B;;;GURMUKHI DIGIT FIVE
+0A6C;;;GURMUKHI DIGIT SIX
+0A6D;;;GURMUKHI DIGIT SEVEN
+0A6E;;;GURMUKHI DIGIT EIGHT
+0A6F;;;GURMUKHI DIGIT NINE
+#
+0A70;;;GURMUKHI TIPPI
+0A71;;;GURMUKHI ADDAK
+0A72;;;GURMUKHI IRI
+0A73;;;GURMUKHI URA
+0A74;;;GURMUKHI EK ONKAR
+0A81;;;GUJARATI SIGN CANDRABINDU
+0A82;;;GUJARATI SIGN ANUSVARA
+0A83;;;GUJARATI SIGN VISARGA
+0A85;;;GUJARATI LETTER A
+0A86;;;GUJARATI LETTER AA
+0A87;;;GUJARATI LETTER I
+0A88;;;GUJARATI LETTER II
+0A89;;;GUJARATI LETTER U
+0A8A;;;GUJARATI LETTER UU
+0A8B;;;GUJARATI LETTER VOCALIC R
+0A8C;;;GUJARATI LETTER VOCALIC L
+0A8D;;;GUJARATI VOWEL CANDRA E
+0A8F;;;GUJARATI LETTER E
+#
+0A90;;;GUJARATI LETTER AI
+0A91;;;GUJARATI VOWEL CANDRA O
+0A93;;;GUJARATI LETTER O
+0A94;;;GUJARATI LETTER AU
+0A95;;;GUJARATI LETTER KA
+0A96;;;GUJARATI LETTER KHA
+0A97;;;GUJARATI LETTER GA
+0A98;;;GUJARATI LETTER GHA
+0A99;;;GUJARATI LETTER NGA
+0A9A;;;GUJARATI LETTER CA
+0A9B;;;GUJARATI LETTER CHA
+0A9C;;;GUJARATI LETTER JA
+0A9D;;;GUJARATI LETTER JHA
+0A9E;;;GUJARATI LETTER NYA
+0A9F;;;GUJARATI LETTER TTA
+#
+0AA0;;;GUJARATI LETTER TTHA
+0AA1;;;GUJARATI LETTER DDA
+0AA2;;;GUJARATI LETTER DDHA
+0AA3;;;GUJARATI LETTER NNA
+0AA4;;;GUJARATI LETTER TA
+0AA5;;;GUJARATI LETTER THA
+0AA6;;;GUJARATI LETTER DA
+0AA7;;;GUJARATI LETTER DHA
+0AA8;;;GUJARATI LETTER NA
+0AAA;;;GUJARATI LETTER PA
+0AAB;;;GUJARATI LETTER PHA
+0AAC;;;GUJARATI LETTER BA
+0AAD;;;GUJARATI LETTER BHA
+0AAE;;;GUJARATI LETTER MA
+0AAF;;;GUJARATI LETTER YA
+#
+0AB0;;;GUJARATI LETTER RA
+0AB2;;;GUJARATI LETTER LA
+0AB3;;;GUJARATI LETTER LLA
+0AB5;;;GUJARATI LETTER VA
+0AB6;;;GUJARATI LETTER SHA
+0AB7;;;GUJARATI LETTER SSA
+0AB8;;;GUJARATI LETTER SA
+0AB9;;;GUJARATI LETTER HA
+0ABC;;;GUJARATI SIGN NUKTA
+0ABD;;;GUJARATI SIGN AVAGRAHA
+0ABE;;;GUJARATI VOWEL SIGN AA
+0ABF;;;GUJARATI VOWEL SIGN I
+#
+0AC0;;;GUJARATI VOWEL SIGN II
+0AC1;;;GUJARATI VOWEL SIGN U
+0AC2;;;GUJARATI VOWEL SIGN UU
+0AC3;;;GUJARATI VOWEL SIGN VOCALIC R
+0AC4;;;GUJARATI VOWEL SIGN VOCALIC RR
+0AC5;;;GUJARATI VOWEL SIGN CANDRA E
+0AC7;;;GUJARATI VOWEL SIGN E
+0AC8;;;GUJARATI VOWEL SIGN AI
+0AC9;;;GUJARATI VOWEL SIGN CANDRA O
+0ACB;;;GUJARATI VOWEL SIGN O
+0ACC;;;GUJARATI VOWEL SIGN AU
+0ACD;;;GUJARATI SIGN VIRAMA
+#
+0AD0;;;GUJARATI OM
+#
+0AE0;;;GUJARATI LETTER VOCALIC RR
+0AE1;;;GUJARATI LETTER VOCALIC LL
+0AE2;;;GUJARATI VOWEL SIGN VOCALIC L
+0AE3;;;GUJARATI VOWEL SIGN VOCALIC LL
+0AE6;;;GUJARATI DIGIT ZERO
+0AE7;;;GUJARATI DIGIT ONE
+0AE8;;;GUJARATI DIGIT TWO
+0AE9;;;GUJARATI DIGIT THREE
+0AEA;;;GUJARATI DIGIT FOUR
+0AEB;;;GUJARATI DIGIT FIVE
+0AEC;;;GUJARATI DIGIT SIX
+0AED;;;GUJARATI DIGIT SEVEN
+0AEE;;;GUJARATI DIGIT EIGHT
+0AEF;;;GUJARATI DIGIT NINE
+0AF1;;;GUJARATI RUPEE SIGN
+0B01;;;ORIYA SIGN CANDRABINDU
+0B02;;;ORIYA SIGN ANUSVARA
+0B03;;;ORIYA SIGN VISARGA
+0B05;;;ORIYA LETTER A
+0B06;;;ORIYA LETTER AA
+0B07;;;ORIYA LETTER I
+0B08;;;ORIYA LETTER II
+0B09;;;ORIYA LETTER U
+0B0A;;;ORIYA LETTER UU
+0B0B;;;ORIYA LETTER VOCALIC R
+0B0C;;;ORIYA LETTER VOCALIC L
+0B0F;;;ORIYA LETTER E
+#
+0B10;;;ORIYA LETTER AI
+0B13;;;ORIYA LETTER O
+0B14;;;ORIYA LETTER AU
+0B15;;;ORIYA LETTER KA
+0B16;;;ORIYA LETTER KHA
+0B17;;;ORIYA LETTER GA
+0B18;;;ORIYA LETTER GHA
+0B19;;;ORIYA LETTER NGA
+0B1A;;;ORIYA LETTER CA
+0B1B;;;ORIYA LETTER CHA
+0B1C;;;ORIYA LETTER JA
+0B1D;;;ORIYA LETTER JHA
+0B1E;;;ORIYA LETTER NYA
+0B1F;;;ORIYA LETTER TTA
+#
+0B20;;;ORIYA LETTER TTHA
+0B21;;;ORIYA LETTER DDA
+0B22;;;ORIYA LETTER DDHA
+0B23;;;ORIYA LETTER NNA
+0B24;;;ORIYA LETTER TA
+0B25;;;ORIYA LETTER THA
+0B26;;;ORIYA LETTER DA
+0B27;;;ORIYA LETTER DHA
+0B28;;;ORIYA LETTER NA
+0B2A;;;ORIYA LETTER PA
+0B2B;;;ORIYA LETTER PHA
+0B2C;;;ORIYA LETTER BA
+0B2D;;;ORIYA LETTER BHA
+0B2E;;;ORIYA LETTER MA
+0B2F;;;ORIYA LETTER YA
+#
+0B30;;;ORIYA LETTER RA
+0B32;;;ORIYA LETTER LA
+0B33;;;ORIYA LETTER LLA
+0B35;;;ORIYA LETTER VA
+0B36;;;ORIYA LETTER SHA
+0B37;;;ORIYA LETTER SSA
+0B38;;;ORIYA LETTER SA
+0B39;;;ORIYA LETTER HA
+0B3C;;;ORIYA SIGN NUKTA
+0B3D;;;ORIYA SIGN AVAGRAHA
+0B3E;;;ORIYA VOWEL SIGN AA
+0B3F;;;ORIYA VOWEL SIGN I
+#
+0B40;;;ORIYA VOWEL SIGN II
+0B41;;;ORIYA VOWEL SIGN U
+0B42;;;ORIYA VOWEL SIGN UU
+0B43;;;ORIYA VOWEL SIGN VOCALIC R
+0B47;;;ORIYA VOWEL SIGN E
+0B48;;;ORIYA VOWEL SIGN AI
+0B4B;;;ORIYA VOWEL SIGN O
+0B4C;;;ORIYA VOWEL SIGN AU
+0B4D;;;ORIYA SIGN VIRAMA
+0B56;;;ORIYA AI LENGTH MARK
+0B57;;;ORIYA AU LENGTH MARK
+0B5C;;;ORIYA LETTER RRA
+0B5D;;;ORIYA LETTER RHA
+0B5F;;;ORIYA LETTER YYA
+#
+0B60;;;ORIYA LETTER VOCALIC RR
+0B61;;;ORIYA LETTER VOCALIC LL
+0B66;;;ORIYA DIGIT ZERO
+0B67;;;ORIYA DIGIT ONE
+0B68;;;ORIYA DIGIT TWO
+0B69;;;ORIYA DIGIT THREE
+0B6A;;;ORIYA DIGIT FOUR
+0B6B;;;ORIYA DIGIT FIVE
+0B6C;;;ORIYA DIGIT SIX
+0B6D;;;ORIYA DIGIT SEVEN
+0B6E;;;ORIYA DIGIT EIGHT
+0B6F;;;ORIYA DIGIT NINE
+#
+0B70;;;ORIYA ISSHAR
+0B71;;;ORIYA LETTER WA
+0B82;;;TAMIL SIGN ANUSVARA
+0B83;;;TAMIL SIGN VISARGA
+0B85;;;TAMIL LETTER A
+0B86;;;TAMIL LETTER AA
+0B87;;;TAMIL LETTER I
+0B88;;;TAMIL LETTER II
+0B89;;;TAMIL LETTER U
+0B8A;;;TAMIL LETTER UU
+0B8E;;;TAMIL LETTER E
+0B8F;;;TAMIL LETTER EE
+#
+0B90;;;TAMIL LETTER AI
+0B92;;;TAMIL LETTER O
+0B93;;;TAMIL LETTER OO
+0B94;;;TAMIL LETTER AU
+0B95;;;TAMIL LETTER KA
+0B99;;;TAMIL LETTER NGA
+0B9A;;;TAMIL LETTER CA
+0B9C;;;TAMIL LETTER JA
+0B9E;;;TAMIL LETTER NYA
+0B9F;;;TAMIL LETTER TTA
+0BA3;;;TAMIL LETTER NNA
+0BA4;;;TAMIL LETTER TA
+0BA8;;;TAMIL LETTER NA
+0BA9;;;TAMIL LETTER NNNA
+0BAA;;;TAMIL LETTER PA
+0BAE;;;TAMIL LETTER MA
+0BAF;;;TAMIL LETTER YA
+#
+0BB0;;;TAMIL LETTER RA
+0BB1;;;TAMIL LETTER RRA
+0BB2;;;TAMIL LETTER LA
+0BB3;;;TAMIL LETTER LLA
+0BB4;;;TAMIL LETTER LLLA
+0BB5;;;TAMIL LETTER VA
+0BB6;;;TAMIL LETTER SHA
+0BB7;;;TAMIL LETTER SSA
+0BB8;;;TAMIL LETTER SA
+0BB9;;;TAMIL LETTER HA
+0BBE;;;TAMIL VOWEL SIGN AA
+0BBF;;;TAMIL VOWEL SIGN I
+#
+0BC0;;;TAMIL VOWEL SIGN II
+0BC1;;;TAMIL VOWEL SIGN U
+0BC2;;;TAMIL VOWEL SIGN UU
+0BC6;;;TAMIL VOWEL SIGN E
+0BC7;;;TAMIL VOWEL SIGN EE
+0BC8;;;TAMIL VOWEL SIGN AI
+0BCA;;;TAMIL VOWEL SIGN O
+0BCB;;;TAMIL VOWEL SIGN OO
+0BCC;;;TAMIL VOWEL SIGN AU
+0BCD;;;TAMIL SIGN VIRAMA
+0BD7;;;TAMIL AU LENGTH MARK
+0BE6;;;TAMIL DIGIT ZERO
+0BE7;;;TAMIL DIGIT ONE
+0BE8;;;TAMIL DIGIT TWO
+0BE9;;;TAMIL DIGIT THREE
+0BEA;;;TAMIL DIGIT FOUR
+0BEB;;;TAMIL DIGIT FIVE
+0BEC;;;TAMIL DIGIT SIX
+0BED;;;TAMIL DIGIT SEVEN
+0BEE;;;TAMIL DIGIT EIGHT
+0BEF;;;TAMIL DIGIT NINE
+#
+0BF0;;;TAMIL NUMBER TEN
+0BF1;;;TAMIL NUMBER ONE HUNDRED
+0BF2;;;TAMIL NUMBER ONE THOUSAND
+0BF3;;;TAMIL DAY SIGN
+0BF4;;;TAMIL MONTH SIGN
+0BF5;;;TAMIL YEAR SIGN
+0BF6;;;TAMIL DEBIT SIGN
+0BF7;;;TAMIL CREDIT SIGN
+0BF8;;;TAMIL AS ABOVE SIGN
+0BF9;;;TAMIL RUPEE SIGN
+0BFA;;;TAMIL NUMBER SIGN
+0C01;;;TELUGU SIGN CANDRABINDU
+0C02;;;TELUGU SIGN ANUSVARA
+0C03;;;TELUGU SIGN VISARGA
+0C05;;;TELUGU LETTER A
+0C06;;;TELUGU LETTER AA
+0C07;;;TELUGU LETTER I
+0C08;;;TELUGU LETTER II
+0C09;;;TELUGU LETTER U
+0C0A;;;TELUGU LETTER UU
+0C0B;;;TELUGU LETTER VOCALIC R
+0C0C;;;TELUGU LETTER VOCALIC L
+0C0E;;;TELUGU LETTER E
+0C0F;;;TELUGU LETTER EE
+#
+0C10;;;TELUGU LETTER AI
+0C12;;;TELUGU LETTER O
+0C13;;;TELUGU LETTER OO
+0C14;;;TELUGU LETTER AU
+0C15;;;TELUGU LETTER KA
+0C16;;;TELUGU LETTER KHA
+0C17;;;TELUGU LETTER GA
+0C18;;;TELUGU LETTER GHA
+0C19;;;TELUGU LETTER NGA
+0C1A;;;TELUGU LETTER CA
+0C1B;;;TELUGU LETTER CHA
+0C1C;;;TELUGU LETTER JA
+0C1D;;;TELUGU LETTER JHA
+0C1E;;;TELUGU LETTER NYA
+0C1F;;;TELUGU LETTER TTA
+#
+0C20;;;TELUGU LETTER TTHA
+0C21;;;TELUGU LETTER DDA
+0C22;;;TELUGU LETTER DDHA
+0C23;;;TELUGU LETTER NNA
+0C24;;;TELUGU LETTER TA
+0C25;;;TELUGU LETTER THA
+0C26;;;TELUGU LETTER DA
+0C27;;;TELUGU LETTER DHA
+0C28;;;TELUGU LETTER NA
+0C2A;;;TELUGU LETTER PA
+0C2B;;;TELUGU LETTER PHA
+0C2C;;;TELUGU LETTER BA
+0C2D;;;TELUGU LETTER BHA
+0C2E;;;TELUGU LETTER MA
+0C2F;;;TELUGU LETTER YA
+#
+0C30;;;TELUGU LETTER RA
+0C31;;;TELUGU LETTER RRA
+0C32;;;TELUGU LETTER LA
+0C33;;;TELUGU LETTER LLA
+0C35;;;TELUGU LETTER VA
+0C36;;;TELUGU LETTER SHA
+0C37;;;TELUGU LETTER SSA
+0C38;;;TELUGU LETTER SA
+0C39;;;TELUGU LETTER HA
+0C3E;;;TELUGU VOWEL SIGN AA
+0C3F;;;TELUGU VOWEL SIGN I
+#
+0C40;;;TELUGU VOWEL SIGN II
+0C41;;;TELUGU VOWEL SIGN U
+0C42;;;TELUGU VOWEL SIGN UU
+0C43;;;TELUGU VOWEL SIGN VOCALIC R
+0C44;;;TELUGU VOWEL SIGN VOCALIC RR
+0C46;;;TELUGU VOWEL SIGN E
+0C47;;;TELUGU VOWEL SIGN EE
+0C48;;;TELUGU VOWEL SIGN AI
+0C4A;;;TELUGU VOWEL SIGN O
+0C4B;;;TELUGU VOWEL SIGN OO
+0C4C;;;TELUGU VOWEL SIGN AU
+0C4D;;;TELUGU SIGN VIRAMA
+0C55;;;TELUGU LENGTH MARK
+0C56;;;TELUGU AI LENGTH MARK
+#
+0C60;;;TELUGU LETTER VOCALIC RR
+0C61;;;TELUGU LETTER VOCALIC LL
+0C66;;;TELUGU DIGIT ZERO
+0C67;;;TELUGU DIGIT ONE
+0C68;;;TELUGU DIGIT TWO
+0C69;;;TELUGU DIGIT THREE
+0C6A;;;TELUGU DIGIT FOUR
+0C6B;;;TELUGU DIGIT FIVE
+0C6C;;;TELUGU DIGIT SIX
+0C6D;;;TELUGU DIGIT SEVEN
+0C6E;;;TELUGU DIGIT EIGHT
+0C6F;;;TELUGU DIGIT NINE
+0C82;;;KANNADA SIGN ANUSVARA
+0C83;;;KANNADA SIGN VISARGA
+0C85;;;KANNADA LETTER A
+0C86;;;KANNADA LETTER AA
+0C87;;;KANNADA LETTER I
+0C88;;;KANNADA LETTER II
+0C89;;;KANNADA LETTER U
+0C8A;;;KANNADA LETTER UU
+0C8B;;;KANNADA LETTER VOCALIC R
+0C8C;;;KANNADA LETTER VOCALIC L
+0C8E;;;KANNADA LETTER E
+0C8F;;;KANNADA LETTER EE
+#
+0C90;;;KANNADA LETTER AI
+0C92;;;KANNADA LETTER O
+0C93;;;KANNADA LETTER OO
+0C94;;;KANNADA LETTER AU
+0C95;;;KANNADA LETTER KA
+0C96;;;KANNADA LETTER KHA
+0C97;;;KANNADA LETTER GA
+0C98;;;KANNADA LETTER GHA
+0C99;;;KANNADA LETTER NGA
+0C9A;;;KANNADA LETTER CA
+0C9B;;;KANNADA LETTER CHA
+0C9C;;;KANNADA LETTER JA
+0C9D;;;KANNADA LETTER JHA
+0C9E;;;KANNADA LETTER NYA
+0C9F;;;KANNADA LETTER TTA
+#
+0CA0;;;KANNADA LETTER TTHA
+0CA1;;;KANNADA LETTER DDA
+0CA2;;;KANNADA LETTER DDHA
+0CA3;;;KANNADA LETTER NNA
+0CA4;;;KANNADA LETTER TA
+0CA5;;;KANNADA LETTER THA
+0CA6;;;KANNADA LETTER DA
+0CA7;;;KANNADA LETTER DHA
+0CA8;;;KANNADA LETTER NA
+0CAA;;;KANNADA LETTER PA
+0CAB;;;KANNADA LETTER PHA
+0CAC;;;KANNADA LETTER BA
+0CAD;;;KANNADA LETTER BHA
+0CAE;;;KANNADA LETTER MA
+0CAF;;;KANNADA LETTER YA
+#
+0CB0;;;KANNADA LETTER RA
+0CB1;;;KANNADA LETTER RRA
+0CB2;;;KANNADA LETTER LA
+0CB3;;;KANNADA LETTER LLA
+0CB5;;;KANNADA LETTER VA
+0CB6;;;KANNADA LETTER SHA
+0CB7;;;KANNADA LETTER SSA
+0CB8;;;KANNADA LETTER SA
+0CB9;;;KANNADA LETTER HA
+0CBC;;;KANNADA SIGN NUKTA
+0CBD;;;KANNADA SIGN AVAGRAHA
+0CBE;;;KANNADA VOWEL SIGN AA
+0CBF;;;KANNADA VOWEL SIGN I
+#
+0CC0;;;KANNADA VOWEL SIGN II
+0CC1;;;KANNADA VOWEL SIGN U
+0CC2;;;KANNADA VOWEL SIGN UU
+0CC3;;;KANNADA VOWEL SIGN VOCALIC R
+0CC4;;;KANNADA VOWEL SIGN VOCALIC RR
+0CC6;;;KANNADA VOWEL SIGN E
+0CC7;;;KANNADA VOWEL SIGN EE
+0CC8;;;KANNADA VOWEL SIGN AI
+0CCA;;;KANNADA VOWEL SIGN O
+0CCB;;;KANNADA VOWEL SIGN OO
+0CCC;;;KANNADA VOWEL SIGN AU
+0CCD;;;KANNADA SIGN VIRAMA
+0CD5;;;KANNADA LENGTH MARK
+0CD6;;;KANNADA AI LENGTH MARK
+0CDE;;;KANNADA LETTER FA
+#
+0CE0;;;KANNADA LETTER VOCALIC RR
+0CE1;;;KANNADA LETTER VOCALIC LL
+0CE6;;;KANNADA DIGIT ZERO
+0CE7;;;KANNADA DIGIT ONE
+0CE8;;;KANNADA DIGIT TWO
+0CE9;;;KANNADA DIGIT THREE
+0CEA;;;KANNADA DIGIT FOUR
+0CEB;;;KANNADA DIGIT FIVE
+0CEC;;;KANNADA DIGIT SIX
+0CED;;;KANNADA DIGIT SEVEN
+0CEE;;;KANNADA DIGIT EIGHT
+0CEF;;;KANNADA DIGIT NINE
+0D02;;;MALAYALAM SIGN ANUSVARA
+0D03;;;MALAYALAM SIGN VISARGA
+0D05;;;MALAYALAM LETTER A
+0D06;;;MALAYALAM LETTER AA
+0D07;;;MALAYALAM LETTER I
+0D08;;;MALAYALAM LETTER II
+0D09;;;MALAYALAM LETTER U
+0D0A;;;MALAYALAM LETTER UU
+0D0B;;;MALAYALAM LETTER VOCALIC R
+0D0C;;;MALAYALAM LETTER VOCALIC L
+0D0E;;;MALAYALAM LETTER E
+0D0F;;;MALAYALAM LETTER EE
+#
+0D10;;;MALAYALAM LETTER AI
+0D12;;;MALAYALAM LETTER O
+0D13;;;MALAYALAM LETTER OO
+0D14;;;MALAYALAM LETTER AU
+0D15;;;MALAYALAM LETTER KA
+0D16;;;MALAYALAM LETTER KHA
+0D17;;;MALAYALAM LETTER GA
+0D18;;;MALAYALAM LETTER GHA
+0D19;;;MALAYALAM LETTER NGA
+0D1A;;;MALAYALAM LETTER CA
+0D1B;;;MALAYALAM LETTER CHA
+0D1C;;;MALAYALAM LETTER JA
+0D1D;;;MALAYALAM LETTER JHA
+0D1E;;;MALAYALAM LETTER NYA
+0D1F;;;MALAYALAM LETTER TTA
+#
+0D20;;;MALAYALAM LETTER TTHA
+0D21;;;MALAYALAM LETTER DDA
+0D22;;;MALAYALAM LETTER DDHA
+0D23;;;MALAYALAM LETTER NNA
+0D24;;;MALAYALAM LETTER TA
+0D25;;;MALAYALAM LETTER THA
+0D26;;;MALAYALAM LETTER DA
+0D27;;;MALAYALAM LETTER DHA
+0D28;;;MALAYALAM LETTER NA
+0D2A;;;MALAYALAM LETTER PA
+0D2B;;;MALAYALAM LETTER PHA
+0D2C;;;MALAYALAM LETTER BA
+0D2D;;;MALAYALAM LETTER BHA
+0D2E;;;MALAYALAM LETTER MA
+0D2F;;;MALAYALAM LETTER YA
+#
+0D30;;;MALAYALAM LETTER RA
+0D31;;;MALAYALAM LETTER RRA
+0D32;;;MALAYALAM LETTER LA
+0D33;;;MALAYALAM LETTER LLA
+0D34;;;MALAYALAM LETTER LLLA
+0D35;;;MALAYALAM LETTER VA
+0D36;;;MALAYALAM LETTER SHA
+0D37;;;MALAYALAM LETTER SSA
+0D38;;;MALAYALAM LETTER SA
+0D39;;;MALAYALAM LETTER HA
+0D3E;;;MALAYALAM VOWEL SIGN AA
+0D3F;;;MALAYALAM VOWEL SIGN I
+#
+0D40;;;MALAYALAM VOWEL SIGN II
+0D41;;;MALAYALAM VOWEL SIGN U
+0D42;;;MALAYALAM VOWEL SIGN UU
+0D43;;;MALAYALAM VOWEL SIGN VOCALIC R
+0D46;;;MALAYALAM VOWEL SIGN E
+0D47;;;MALAYALAM VOWEL SIGN EE
+0D48;;;MALAYALAM VOWEL SIGN AI
+0D4A;;;MALAYALAM VOWEL SIGN O
+0D4B;;;MALAYALAM VOWEL SIGN OO
+0D4C;;;MALAYALAM VOWEL SIGN AU
+0D4D;;;MALAYALAM SIGN VIRAMA
+0D57;;;MALAYALAM AU LENGTH MARK
+#
+0D60;;;MALAYALAM LETTER VOCALIC RR
+0D61;;;MALAYALAM LETTER VOCALIC LL
+0D66;;;MALAYALAM DIGIT ZERO
+0D67;;;MALAYALAM DIGIT ONE
+0D68;;;MALAYALAM DIGIT TWO
+0D69;;;MALAYALAM DIGIT THREE
+0D6A;;;MALAYALAM DIGIT FOUR
+0D6B;;;MALAYALAM DIGIT FIVE
+0D6C;;;MALAYALAM DIGIT SIX
+0D6D;;;MALAYALAM DIGIT SEVEN
+0D6E;;;MALAYALAM DIGIT EIGHT
+0D6F;;;MALAYALAM DIGIT NINE
+0D82;;;SINHALA SIGN ANUSVARAYA
+0D83;;;SINHALA SIGN VISARGAYA
+0D85;;;SINHALA LETTER AYANNA
+0D86;;;SINHALA LETTER AAYANNA
+0D87;;;SINHALA LETTER AEYANNA
+0D88;;;SINHALA LETTER AEEYANNA
+0D89;;;SINHALA LETTER IYANNA
+0D8A;;;SINHALA LETTER IIYANNA
+0D8B;;;SINHALA LETTER UYANNA
+0D8C;;;SINHALA LETTER UUYANNA
+0D8D;;;SINHALA LETTER IRUYANNA
+0D8E;;;SINHALA LETTER IRUUYANNA
+0D8F;;;SINHALA LETTER ILUYANNA
+#
+0D90;;;SINHALA LETTER ILUUYANNA
+0D91;;;SINHALA LETTER EYANNA
+0D92;;;SINHALA LETTER EEYANNA
+0D93;;;SINHALA LETTER AIYANNA
+0D94;;;SINHALA LETTER OYANNA
+0D95;;;SINHALA LETTER OOYANNA
+0D96;;;SINHALA LETTER AUYANNA
+0D9A;;;SINHALA LETTER ALPAPRAANA KAYANNA
+0D9B;;;SINHALA LETTER MAHAAPRAANA KAYANNA
+0D9C;;;SINHALA LETTER ALPAPRAANA GAYANNA
+0D9D;;;SINHALA LETTER MAHAAPRAANA GAYANNA
+0D9E;;;SINHALA LETTER KANTAJA NAASIKYAYA
+0D9F;;;SINHALA LETTER SANYAKA GAYANNA
+#
+0DA0;;;SINHALA LETTER ALPAPRAANA CAYANNA
+0DA1;;;SINHALA LETTER MAHAAPRAANA CAYANNA
+0DA2;;;SINHALA LETTER ALPAPRAANA JAYANNA
+0DA3;;;SINHALA LETTER MAHAAPRAANA JAYANNA
+0DA4;;;SINHALA LETTER TAALUJA NAASIKYAYA
+0DA5;;;SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
+0DA6;;;SINHALA LETTER SANYAKA JAYANNA
+0DA7;;;SINHALA LETTER ALPAPRAANA TTAYANNA
+0DA8;;;SINHALA LETTER MAHAAPRAANA TTAYANNA
+0DA9;;;SINHALA LETTER ALPAPRAANA DDAYANNA
+0DAA;;;SINHALA LETTER MAHAAPRAANA DDAYANNA
+0DAB;;;SINHALA LETTER MUURDHAJA NAYANNA
+0DAC;;;SINHALA LETTER SANYAKA DDAYANNA
+0DAD;;;SINHALA LETTER ALPAPRAANA TAYANNA
+0DAE;;;SINHALA LETTER MAHAAPRAANA TAYANNA
+0DAF;;;SINHALA LETTER ALPAPRAANA DAYANNA
+#
+0DB0;;;SINHALA LETTER MAHAAPRAANA DAYANNA
+0DB1;;;SINHALA LETTER DANTAJA NAYANNA
+0DB3;;;SINHALA LETTER SANYAKA DAYANNA
+0DB4;;;SINHALA LETTER ALPAPRAANA PAYANNA
+0DB5;;;SINHALA LETTER MAHAAPRAANA PAYANNA
+0DB6;;;SINHALA LETTER ALPAPRAANA BAYANNA
+0DB7;;;SINHALA LETTER MAHAAPRAANA BAYANNA
+0DB8;;;SINHALA LETTER MAYANNA
+0DB9;;;SINHALA LETTER AMBA BAYANNA
+0DBA;;;SINHALA LETTER YAYANNA
+0DBB;;;SINHALA LETTER RAYANNA
+0DBD;;;SINHALA LETTER DANTAJA LAYANNA
+#
+0DC0;;;SINHALA LETTER VAYANNA
+0DC1;;;SINHALA LETTER TAALUJA SAYANNA
+0DC2;;;SINHALA LETTER MUURDHAJA SAYANNA
+0DC3;;;SINHALA LETTER DANTAJA SAYANNA
+0DC4;;;SINHALA LETTER HAYANNA
+0DC5;;;SINHALA LETTER MUURDHAJA LAYANNA
+0DC6;;;SINHALA LETTER FAYANNA
+0DCA;;;SINHALA SIGN AL-LAKUNA
+0DCF;;;SINHALA VOWEL SIGN AELA-PILLA
+#
+0DD0;;;SINHALA VOWEL SIGN KETTI AEDA-PILLA
+0DD1;;;SINHALA VOWEL SIGN DIGA AEDA-PILLA
+0DD2;;;SINHALA VOWEL SIGN KETTI IS-PILLA
+0DD3;;;SINHALA VOWEL SIGN DIGA IS-PILLA
+0DD4;;;SINHALA VOWEL SIGN KETTI PAA-PILLA
+0DD6;;;SINHALA VOWEL SIGN DIGA PAA-PILLA
+0DD8;;;SINHALA VOWEL SIGN GAETTA-PILLA
+0DD9;;;SINHALA VOWEL SIGN KOMBUVA
+0DDA;;;SINHALA VOWEL SIGN DIGA KOMBUVA
+0DDB;;;SINHALA VOWEL SIGN KOMBU DEKA
+0DDC;;;SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
+0DDD;;;SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
+0DDE;;;SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
+0DDF;;;SINHALA VOWEL SIGN GAYANUKITTA
+0DF2;;;SINHALA VOWEL SIGN DIGA GAETTA-PILLA
+0DF3;;;SINHALA VOWEL SIGN DIGA GAYANUKITTA
+0DF4;;;SINHALA PUNCTUATION KUNDDALIYA
+0E01;;;THAI CHARACTER KO KAI
+0E02;;;THAI CHARACTER KHO KHAI
+0E03;;;THAI CHARACTER KHO KHUAT
+0E04;;;THAI CHARACTER KHO KHWAI
+0E05;;;THAI CHARACTER KHO KHON
+0E06;;;THAI CHARACTER KHO RAKHANG
+0E07;;;THAI CHARACTER NGO NGU
+0E08;;;THAI CHARACTER CHO CHAN
+0E09;;;THAI CHARACTER CHO CHING
+0E0A;;;THAI CHARACTER CHO CHANG
+0E0B;;;THAI CHARACTER SO SO
+0E0C;;;THAI CHARACTER CHO CHOE
+0E0D;;;THAI CHARACTER YO YING
+0E0E;;;THAI CHARACTER DO CHADA
+0E0F;;;THAI CHARACTER TO PATAK
+#
+0E10;;;THAI CHARACTER THO THAN
+0E11;;;THAI CHARACTER THO NANGMONTHO
+0E12;;;THAI CHARACTER THO PHUTHAO
+0E13;;;THAI CHARACTER NO NEN
+0E14;;;THAI CHARACTER DO DEK
+0E15;;;THAI CHARACTER TO TAO
+0E16;;;THAI CHARACTER THO THUNG
+0E17;;;THAI CHARACTER THO THAHAN
+0E18;;;THAI CHARACTER THO THONG
+0E19;;;THAI CHARACTER NO NU
+0E1A;;;THAI CHARACTER BO BAIMAI
+0E1B;;;THAI CHARACTER PO PLA
+0E1C;;;THAI CHARACTER PHO PHUNG
+0E1D;;;THAI CHARACTER FO FA
+0E1E;;;THAI CHARACTER PHO PHAN
+0E1F;;;THAI CHARACTER FO FAN
+#
+0E20;;;THAI CHARACTER PHO SAMPHAO
+0E21;;;THAI CHARACTER MO MA
+0E22;;;THAI CHARACTER YO YAK
+0E23;;;THAI CHARACTER RO RUA
+0E24;;;THAI CHARACTER RU
+0E25;;;THAI CHARACTER LO LING
+0E26;;;THAI CHARACTER LU
+0E27;;;THAI CHARACTER WO WAEN
+0E28;;;THAI CHARACTER SO SALA
+0E29;;;THAI CHARACTER SO RUSI
+0E2A;;;THAI CHARACTER SO SUA
+0E2B;;;THAI CHARACTER HO HIP
+0E2C;;;THAI CHARACTER LO CHULA
+0E2D;;;THAI CHARACTER O ANG
+0E2E;;;THAI CHARACTER HO NOKHUK
+0E2F;;;THAI CHARACTER PAIYANNOI
+#
+0E30;;;THAI CHARACTER SARA A
+0E31;;;THAI CHARACTER MAI HAN-AKAT
+0E32;;;THAI CHARACTER SARA AA
+0E33;;;THAI CHARACTER SARA AM
+0E34;;;THAI CHARACTER SARA I
+0E35;;;THAI CHARACTER SARA II
+0E36;;;THAI CHARACTER SARA UE
+0E37;;;THAI CHARACTER SARA UEE
+0E38;;;THAI CHARACTER SARA U
+0E39;;;THAI CHARACTER SARA UU
+0E3A;;;THAI CHARACTER PHINTHU
+0E3F;;;THAI CURRENCY SYMBOL BAHT
+#
+0E40;;;THAI CHARACTER SARA E
+0E41;;;THAI CHARACTER SARA AE
+0E42;;;THAI CHARACTER SARA O
+0E43;;;THAI CHARACTER SARA AI MAIMUAN
+0E44;;;THAI CHARACTER SARA AI MAIMALAI
+0E45;;;THAI CHARACTER LAKKHANGYAO
+0E46;;;THAI CHARACTER MAIYAMOK
+0E47;;;THAI CHARACTER MAITAIKHU
+0E48;;;THAI CHARACTER MAI EK
+0E49;;;THAI CHARACTER MAI THO
+0E4A;;;THAI CHARACTER MAI TRI
+0E4B;;;THAI CHARACTER MAI CHATTAWA
+0E4C;;;THAI CHARACTER THANTHAKHAT
+0E4D;;;THAI CHARACTER NIKHAHIT
+0E4E;;;THAI CHARACTER YAMAKKAN
+0E4F;;;THAI CHARACTER FONGMAN
+#
+0E50;;;THAI DIGIT ZERO
+0E51;;;THAI DIGIT ONE
+0E52;;;THAI DIGIT TWO
+0E53;;;THAI DIGIT THREE
+0E54;;;THAI DIGIT FOUR
+0E55;;;THAI DIGIT FIVE
+0E56;;;THAI DIGIT SIX
+0E57;;;THAI DIGIT SEVEN
+0E58;;;THAI DIGIT EIGHT
+0E59;;;THAI DIGIT NINE
+0E5A;;;THAI CHARACTER ANGKHANKHU
+0E5B;;;THAI CHARACTER KHOMUT
+0E81;;;LAO LETTER KO
+0E82;;;LAO LETTER KHO SUNG
+0E84;;;LAO LETTER KHO TAM
+0E87;;;LAO LETTER NGO
+0E88;;;LAO LETTER CO
+0E8A;;;LAO LETTER SO TAM
+0E8D;;;LAO LETTER NYO
+0E94;;;LAO LETTER DO
+0E95;;;LAO LETTER TO
+0E96;;;LAO LETTER THO SUNG
+0E97;;;LAO LETTER THO TAM
+0E99;;;LAO LETTER NO
+0E9A;;;LAO LETTER BO
+0E9B;;;LAO LETTER PO
+0E9C;;;LAO LETTER PHO SUNG
+0E9D;;;LAO LETTER FO TAM
+0E9E;;;LAO LETTER PHO TAM
+0E9F;;;LAO LETTER FO SUNG
+0EA1;;;LAO LETTER MO
+0EA2;;;LAO LETTER YO
+0EA3;;;LAO LETTER LO LING
+0EA5;;;LAO LETTER LO LOOT
+0EA7;;;LAO LETTER WO
+0EAA;;;LAO LETTER SO SUNG
+0EAB;;;LAO LETTER HO SUNG
+0EAD;;;LAO LETTER O
+0EAE;;;LAO LETTER HO TAM
+0EAF;;;LAO ELLIPSIS
+#
+0EB0;;;LAO VOWEL SIGN A
+0EB1;;;LAO VOWEL SIGN MAI KAN
+0EB2;;;LAO VOWEL SIGN AA
+0EB3;;;LAO VOWEL SIGN AM
+0EB4;;;LAO VOWEL SIGN I
+0EB5;;;LAO VOWEL SIGN II
+0EB6;;;LAO VOWEL SIGN Y
+0EB7;;;LAO VOWEL SIGN YY
+0EB8;;;LAO VOWEL SIGN U
+0EB9;;;LAO VOWEL SIGN UU
+0EBB;;;LAO VOWEL SIGN MAI KON
+0EBC;;;LAO SEMIVOWEL SIGN LO
+0EBD;;;LAO SEMIVOWEL SIGN NYO
+#
+0EC0;;;LAO VOWEL SIGN E
+0EC1;;;LAO VOWEL SIGN EI
+0EC2;;;LAO VOWEL SIGN O
+0EC3;;;LAO VOWEL SIGN AY
+0EC4;;;LAO VOWEL SIGN AI
+0EC6;;;LAO KO LA
+0EC8;;;LAO TONE MAI EK
+0EC9;;;LAO TONE MAI THO
+0ECA;;;LAO TONE MAI TI
+0ECB;;;LAO TONE MAI CATAWA
+0ECC;;;LAO CANCELLATION MARK
+0ECD;;;LAO NIGGAHITA
+#
+0ED0;;;LAO DIGIT ZERO
+0ED1;;;LAO DIGIT ONE
+0ED2;;;LAO DIGIT TWO
+0ED3;;;LAO DIGIT THREE
+0ED4;;;LAO DIGIT FOUR
+0ED5;;;LAO DIGIT FIVE
+0ED6;;;LAO DIGIT SIX
+0ED7;;;LAO DIGIT SEVEN
+0ED8;;;LAO DIGIT EIGHT
+0ED9;;;LAO DIGIT NINE
+0EDC;;;LAO HO NO
+0EDD;;;LAO HO MO
+#
+# Tibetan
+#
+0F00;;;TIBETAN SYLLABLE OM
+0F01;;;TIBETAN MARK GTER YIG MGO TRUNCATED A
+0F02;;;TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA
+0F03;;;TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
+0F04;;;TIBETAN MARK INITIAL YIG MGO MDUN MA
+0F05;;;TIBETAN MARK CLOSING YIG MGO SGAB MA
+0F06;;;TIBETAN MARK CARET YIG MGO PHUR SHAD MA
+0F07;;;TIBETAN MARK YIG MGO TSHEG SHAD MA
+0F08;;;TIBETAN MARK SBRUL SHAD
+0F09;;;TIBETAN MARK BSKUR YIG MGO
+0F0A;;;TIBETAN MARK BKA- SHOG YIG MGO
+0F0B;;;TIBETAN MARK INTERSYLLABIC TSHEG
+0F0C;;;TIBETAN MARK DELIMITER TSHEG BSTAR
+0F0D;;;TIBETAN MARK SHAD
+0F0E;;;TIBETAN MARK NYIS SHAD
+0F0F;;;TIBETAN MARK TSHEG SHAD
+#
+0F10;;;TIBETAN MARK NYIS TSHEG SHAD
+0F11;;;TIBETAN MARK RIN CHEN SPUNGS SHAD
+0F12;;;TIBETAN MARK RGYA GRAM SHAD
+0F13;;;TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
+0F14;;;TIBETAN MARK GTER TSHEG
+0F15;;;TIBETAN LOGOTYPE SIGN CHAD RTAGS
+0F16;;;TIBETAN LOGOTYPE SIGN LHAG RTAGS
+0F17;;;TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
+0F18;;;TIBETAN ASTROLOGICAL SIGN -KHYUD PA
+0F19;;;TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+0F1A;;;TIBETAN SIGN RDEL DKAR GCIG
+0F1B;;;TIBETAN SIGN RDEL DKAR GNYIS
+0F1C;;;TIBETAN SIGN RDEL DKAR GSUM
+0F1D;;;TIBETAN SIGN RDEL NAG GCIG
+0F1E;;;TIBETAN SIGN RDEL NAG GNYIS
+0F1F;;;TIBETAN SIGN RDEL DKAR RDEL NAG
+#
+0F20;;;TIBETAN DIGIT ZERO
+0F21;;;TIBETAN DIGIT ONE
+0F22;;;TIBETAN DIGIT TWO
+0F23;;;TIBETAN DIGIT THREE
+0F24;;;TIBETAN DIGIT FOUR
+0F25;;;TIBETAN DIGIT FIVE
+0F26;;;TIBETAN DIGIT SIX
+0F27;;;TIBETAN DIGIT SEVEN
+0F28;;;TIBETAN DIGIT EIGHT
+0F29;;;TIBETAN DIGIT NINE
+0F2A;;;TIBETAN DIGIT HALF ONE
+0F2B;;;TIBETAN DIGIT HALF TWO
+0F2C;;;TIBETAN DIGIT HALF THREE
+0F2D;;;TIBETAN DIGIT HALF FOUR
+0F2E;;;TIBETAN DIGIT HALF FIVE
+0F2F;;;TIBETAN DIGIT HALF SIX
+#
+0F30;;;TIBETAN DIGIT HALF SEVEN
+0F31;;;TIBETAN DIGIT HALF EIGHT
+0F32;;;TIBETAN DIGIT HALF NINE
+0F33;;;TIBETAN DIGIT HALF ZERO
+0F34;;;TIBETAN MARK BSDUS RTAGS
+0F35;;;TIBETAN MARK NGAS BZUNG NYI ZLA
+0F36;;;TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
+0F37;;;TIBETAN MARK NGAS BZUNG SGOR RTAGS
+0F38;;;TIBETAN MARK CHE MGO
+0F39;;;TIBETAN MARK TSA -PHRU
+0F3A;;;TIBETAN MARK GUG RTAGS GYON
+0F3B;;;TIBETAN MARK GUG RTAGS GYAS
+0F3C;;;TIBETAN MARK ANG KHANG GYON
+0F3D;;;TIBETAN MARK ANG KHANG GYAS
+0F3E;;;TIBETAN SIGN YAR TSHES
+0F3F;;;TIBETAN SIGN MAR TSHES
+#
+0F40;;;TIBETAN LETTER KA
+0F41;;;TIBETAN LETTER KHA
+0F42;;;TIBETAN LETTER GA
+0F43;;;TIBETAN LETTER GHA
+0F44;;;TIBETAN LETTER NGA
+0F45;;;TIBETAN LETTER CA
+0F46;;;TIBETAN LETTER CHA
+0F47;;;TIBETAN LETTER JA
+0F49;;;TIBETAN LETTER NYA
+0F4A;;;TIBETAN LETTER TTA
+0F4B;;;TIBETAN LETTER TTHA
+0F4C;;;TIBETAN LETTER DDA
+0F4D;;;TIBETAN LETTER DDHA
+0F4E;;;TIBETAN LETTER NNA
+0F4F;;;TIBETAN LETTER TA
+#
+0F50;;;TIBETAN LETTER THA
+0F51;;;TIBETAN LETTER DA
+0F52;;;TIBETAN LETTER DHA
+0F53;;;TIBETAN LETTER NA
+0F54;;;TIBETAN LETTER PA
+0F55;;;TIBETAN LETTER PHA
+0F56;;;TIBETAN LETTER BA
+0F57;;;TIBETAN LETTER BHA
+0F58;;;TIBETAN LETTER MA
+0F59;;;TIBETAN LETTER TSA
+0F5A;;;TIBETAN LETTER TSHA
+0F5B;;;TIBETAN LETTER DZA
+0F5C;;;TIBETAN LETTER DZHA
+0F5D;;;TIBETAN LETTER WA
+0F5E;;;TIBETAN LETTER ZHA
+0F5F;;;TIBETAN LETTER ZA
+#
+0F60;;;TIBETAN LETTER -A
+0F61;;;TIBETAN LETTER YA
+0F62;;;TIBETAN LETTER RA
+0F63;;;TIBETAN LETTER LA
+0F64;;;TIBETAN LETTER SHA
+0F65;;;TIBETAN LETTER SSA
+0F66;;;TIBETAN LETTER SA
+0F67;;;TIBETAN LETTER HA
+0F68;;;TIBETAN LETTER A
+0F69;;;TIBETAN LETTER KSSA
+0F6A;;;TIBETAN LETTER FIXED-FORM RA
+0F71;;;TIBETAN VOWEL SIGN AA
+0F72;;;TIBETAN VOWEL SIGN I
+0F73;;;TIBETAN VOWEL SIGN II
+0F74;;;TIBETAN VOWEL SIGN U
+0F75;;;TIBETAN VOWEL SIGN UU
+0F76;;;TIBETAN VOWEL SIGN VOCALIC R
+0F77;;;TIBETAN VOWEL SIGN VOCALIC RR
+0F78;;;TIBETAN VOWEL SIGN VOCALIC L
+0F79;;;TIBETAN VOWEL SIGN VOCALIC LL
+0F7A;;;TIBETAN VOWEL SIGN E
+0F7B;;;TIBETAN VOWEL SIGN EE
+0F7C;;;TIBETAN VOWEL SIGN O
+0F7D;;;TIBETAN VOWEL SIGN OO
+0F7E;;;TIBETAN SIGN RJES SU NGA RO
+0F7F;;;TIBETAN SIGN RNAM BCAD
+#
+0F80;;;TIBETAN VOWEL SIGN REVERSED I
+0F81;;;TIBETAN VOWEL SIGN REVERSED II
+0F82;;;TIBETAN SIGN NYI ZLA NAA DA
+0F83;;;TIBETAN SIGN SNA LDAN
+0F84;;;TIBETAN MARK HALANTA
+0F85;;;TIBETAN MARK PALUTA
+0F86;;;TIBETAN SIGN LCI RTAGS
+0F87;;;TIBETAN SIGN YANG RTAGS
+0F88;;;TIBETAN SIGN LCE TSA CAN
+0F89;;;TIBETAN SIGN MCHU CAN
+0F8A;;;TIBETAN SIGN GRU CAN RGYINGS
+0F8B;;;TIBETAN SIGN GRU MED RGYINGS
+#
+0F90;;;TIBETAN SUBJOINED LETTER KA
+0F91;;;TIBETAN SUBJOINED LETTER KHA
+0F92;;;TIBETAN SUBJOINED LETTER GA
+0F93;;;TIBETAN SUBJOINED LETTER GHA
+0F94;;;TIBETAN SUBJOINED LETTER NGA
+0F95;;;TIBETAN SUBJOINED LETTER CA
+0F96;;;TIBETAN SUBJOINED LETTER CHA
+0F97;;;TIBETAN SUBJOINED LETTER JA
+0F99;;;TIBETAN SUBJOINED LETTER NYA
+0F9A;;;TIBETAN SUBJOINED LETTER TTA
+0F9B;;;TIBETAN SUBJOINED LETTER TTHA
+0F9C;;;TIBETAN SUBJOINED LETTER DDA
+0F9D;;;TIBETAN SUBJOINED LETTER DDHA
+0F9E;;;TIBETAN SUBJOINED LETTER NNA
+0F9F;;;TIBETAN SUBJOINED LETTER TA
+#
+0FA0;;;TIBETAN SUBJOINED LETTER THA
+0FA1;;;TIBETAN SUBJOINED LETTER DA
+0FA2;;;TIBETAN SUBJOINED LETTER DHA
+0FA3;;;TIBETAN SUBJOINED LETTER NA
+0FA4;;;TIBETAN SUBJOINED LETTER PA
+0FA5;;;TIBETAN SUBJOINED LETTER PHA
+0FA6;;;TIBETAN SUBJOINED LETTER BA
+0FA7;;;TIBETAN SUBJOINED LETTER BHA
+0FA8;;;TIBETAN SUBJOINED LETTER MA
+0FA9;;;TIBETAN SUBJOINED LETTER TSA
+0FAA;;;TIBETAN SUBJOINED LETTER TSHA
+0FAB;;;TIBETAN SUBJOINED LETTER DZA
+0FAC;;;TIBETAN SUBJOINED LETTER DZHA
+0FAD;;;TIBETAN SUBJOINED LETTER WA
+0FAE;;;TIBETAN SUBJOINED LETTER ZHA
+0FAF;;;TIBETAN SUBJOINED LETTER ZA
+#
+0FB0;;;TIBETAN SUBJOINED LETTER -A
+0FB1;;;TIBETAN SUBJOINED LETTER YA
+0FB2;;;TIBETAN SUBJOINED LETTER RA
+0FB3;;;TIBETAN SUBJOINED LETTER LA
+0FB4;;;TIBETAN SUBJOINED LETTER SHA
+0FB5;;;TIBETAN SUBJOINED LETTER SSA
+0FB6;;;TIBETAN SUBJOINED LETTER SA
+0FB7;;;TIBETAN SUBJOINED LETTER HA
+0FB8;;;TIBETAN SUBJOINED LETTER A
+0FB9;;;TIBETAN SUBJOINED LETTER KSSA
+0FBA;;;TIBETAN SUBJOINED LETTER FIXED-FORM WA
+0FBB;;;TIBETAN SUBJOINED LETTER FIXED-FORM YA
+0FBC;;;TIBETAN SUBJOINED LETTER FIXED-FORM RA
+0FBE;;;TIBETAN KU RU KHA
+0FBF;;;TIBETAN KU RU KHA BZHI MIG CAN
+#
+0FC0;;;TIBETAN CANTILLATION SIGN HEAVY BEAT
+0FC1;;;TIBETAN CANTILLATION SIGN LIGHT BEAT
+0FC2;;;TIBETAN CANTILLATION SIGN CANG TE-U
+0FC3;;;TIBETAN CANTILLATION SIGN SBUB -CHAL
+0FC4;;;TIBETAN SYMBOL DRIL BU
+0FC5;;;TIBETAN SYMBOL RDO RJE
+0FC6;;;TIBETAN SYMBOL PADMA GDAN
+0FC7;;;TIBETAN SYMBOL RDO RJE RGYA GRAM
+0FC8;;;TIBETAN SYMBOL PHUR PA
+0FC9;;;TIBETAN SYMBOL NOR BU
+0FCA;;;TIBETAN SYMBOL NOR BU NYIS -KHYIL
+0FCB;;;TIBETAN SYMBOL NOR BU GSUM -KHYIL
+0FCC;;;TIBETAN SYMBOL NOR BU BZHI -KHYIL
+0FCF;;;TIBETAN SIGN RDEL NAG GSUM
+#
+0FD0;;;TIBETAN MARK BSKA- SHOG GI MGO RGYAN
+0FD1;;;TIBETAN MARK MNYAM YIG GI MGO RGYAN
+#
+# Myanmar
+#
+1000;;;MYANMAR LETTER KA
+1001;;;MYANMAR LETTER KHA
+1002;;;MYANMAR LETTER GA
+1003;;;MYANMAR LETTER GHA
+1004;;;MYANMAR LETTER NGA
+1005;;;MYANMAR LETTER CA
+1006;;;MYANMAR LETTER CHA
+1007;;;MYANMAR LETTER JA
+1008;;;MYANMAR LETTER JHA
+1009;;;MYANMAR LETTER NYA
+100A;;;MYANMAR LETTER NNYA
+100B;;;MYANMAR LETTER TTA
+100C;;;MYANMAR LETTER TTHA
+100D;;;MYANMAR LETTER DDA
+100E;;;MYANMAR LETTER DDHA
+100F;;;MYANMAR LETTER NNA
+#
+1010;;;MYANMAR LETTER TA
+1011;;;MYANMAR LETTER THA
+1012;;;MYANMAR LETTER DA
+1013;;;MYANMAR LETTER DHA
+1014;;;MYANMAR LETTER NA
+1015;;;MYANMAR LETTER PA
+1016;;;MYANMAR LETTER PHA
+1017;;;MYANMAR LETTER BA
+1018;;;MYANMAR LETTER BHA
+1019;;;MYANMAR LETTER MA
+101A;;;MYANMAR LETTER YA
+101B;;;MYANMAR LETTER RA
+101C;;;MYANMAR LETTER LA
+101D;;;MYANMAR LETTER WA
+101E;;;MYANMAR LETTER SA
+101F;;;MYANMAR LETTER HA
+#
+1020;;;MYANMAR LETTER LLA
+1021;;;MYANMAR LETTER A
+1023;;;MYANMAR LETTER I
+1024;;;MYANMAR LETTER II
+1025;;;MYANMAR LETTER U
+1026;;;MYANMAR LETTER UU
+1027;;;MYANMAR LETTER E
+1029;;;MYANMAR LETTER O
+102A;;;MYANMAR LETTER AU
+102C;;;MYANMAR VOWEL SIGN AA
+102D;;;MYANMAR VOWEL SIGN I
+102E;;;MYANMAR VOWEL SIGN II
+102F;;;MYANMAR VOWEL SIGN U
+#
+1030;;;MYANMAR VOWEL SIGN UU
+1031;;;MYANMAR VOWEL SIGN E
+1032;;;MYANMAR VOWEL SIGN AI
+1036;;;MYANMAR SIGN ANUSVARA
+1037;;;MYANMAR SIGN DOT BELOW
+1038;;;MYANMAR SIGN VISARGA
+1039;;;MYANMAR SIGN VIRAMA
+#
+1040;;;MYANMAR DIGIT ZERO
+1041;;;MYANMAR DIGIT ONE
+1042;;;MYANMAR DIGIT TWO
+1043;;;MYANMAR DIGIT THREE
+1044;;;MYANMAR DIGIT FOUR
+1045;;;MYANMAR DIGIT FIVE
+1046;;;MYANMAR DIGIT SIX
+1047;;;MYANMAR DIGIT SEVEN
+1048;;;MYANMAR DIGIT EIGHT
+1049;;;MYANMAR DIGIT NINE
+104A;;;MYANMAR SIGN LITTLE SECTION
+104B;;;MYANMAR SIGN SECTION
+104C;;;MYANMAR SYMBOL LOCATIVE
+104D;;;MYANMAR SYMBOL COMPLETED
+104E;;;MYANMAR SYMBOL AFOREMENTIONED
+104F;;;MYANMAR SYMBOL GENITIVE
+#
+1050;;;MYANMAR LETTER SHA
+1051;;;MYANMAR LETTER SSA
+1052;;;MYANMAR LETTER VOCALIC R
+1053;;;MYANMAR LETTER VOCALIC RR
+1054;;;MYANMAR LETTER VOCALIC L
+1055;;;MYANMAR LETTER VOCALIC LL
+1056;;;MYANMAR VOWEL SIGN VOCALIC R
+1057;;;MYANMAR VOWEL SIGN VOCALIC RR
+1058;;;MYANMAR VOWEL SIGN VOCALIC L
+1059;;;MYANMAR VOWEL SIGN VOCALIC LL
+#
+# Georgian
+#
+10A0;;;GEORGIAN CAPITAL LETTER AN
+10A1;;;GEORGIAN CAPITAL LETTER BAN
+10A2;;;GEORGIAN CAPITAL LETTER GAN
+10A3;;;GEORGIAN CAPITAL LETTER DON
+10A4;;;GEORGIAN CAPITAL LETTER EN
+10A5;;;GEORGIAN CAPITAL LETTER VIN
+10A6;;;GEORGIAN CAPITAL LETTER ZEN
+10A7;;;GEORGIAN CAPITAL LETTER TAN
+10A8;;;GEORGIAN CAPITAL LETTER IN
+10A9;;;GEORGIAN CAPITAL LETTER KAN
+10AA;;;GEORGIAN CAPITAL LETTER LAS
+10AB;;;GEORGIAN CAPITAL LETTER MAN
+10AC;;;GEORGIAN CAPITAL LETTER NAR
+10AD;;;GEORGIAN CAPITAL LETTER ON
+10AE;;;GEORGIAN CAPITAL LETTER PAR
+10AF;;;GEORGIAN CAPITAL LETTER ZHAR
+#
+10B0;;;GEORGIAN CAPITAL LETTER RAE
+10B1;;;GEORGIAN CAPITAL LETTER SAN
+10B2;;;GEORGIAN CAPITAL LETTER TAR
+10B3;;;GEORGIAN CAPITAL LETTER UN
+10B4;;;GEORGIAN CAPITAL LETTER PHAR
+10B5;;;GEORGIAN CAPITAL LETTER KHAR
+10B6;;;GEORGIAN CAPITAL LETTER GHAN
+10B7;;;GEORGIAN CAPITAL LETTER QAR
+10B8;;;GEORGIAN CAPITAL LETTER SHIN
+10B9;;;GEORGIAN CAPITAL LETTER CHIN
+10BA;;;GEORGIAN CAPITAL LETTER CAN
+10BB;;;GEORGIAN CAPITAL LETTER JIL
+10BC;;;GEORGIAN CAPITAL LETTER CIL
+10BD;;;GEORGIAN CAPITAL LETTER CHAR
+10BE;;;GEORGIAN CAPITAL LETTER XAN
+10BF;;;GEORGIAN CAPITAL LETTER JHAN
+#
+10C0;;;GEORGIAN CAPITAL LETTER HAE
+10C1;;;GEORGIAN CAPITAL LETTER HE
+10C2;;;GEORGIAN CAPITAL LETTER HIE
+10C3;;;GEORGIAN CAPITAL LETTER WE
+10C4;;;GEORGIAN CAPITAL LETTER HAR
+10C5;;;GEORGIAN CAPITAL LETTER HOE
+#
+10D0;;;GEORGIAN LETTER AN
+10D1;;;GEORGIAN LETTER BAN
+10D2;;;GEORGIAN LETTER GAN
+10D3;;;GEORGIAN LETTER DON
+10D4;;;GEORGIAN LETTER EN
+10D5;;;GEORGIAN LETTER VIN
+10D6;;;GEORGIAN LETTER ZEN
+10D7;;;GEORGIAN LETTER TAN
+10D8;;;GEORGIAN LETTER IN
+10D9;;;GEORGIAN LETTER KAN
+10DA;;;GEORGIAN LETTER LAS
+10DB;;;GEORGIAN LETTER MAN
+10DC;;;GEORGIAN LETTER NAR
+10DD;;;GEORGIAN LETTER ON
+10DE;;;GEORGIAN LETTER PAR
+10DF;;;GEORGIAN LETTER ZHAR
+#
+10E0;;;GEORGIAN LETTER RAE
+10E1;;;GEORGIAN LETTER SAN
+10E2;;;GEORGIAN LETTER TAR
+10E3;;;GEORGIAN LETTER UN
+10E4;;;GEORGIAN LETTER PHAR
+10E5;;;GEORGIAN LETTER KHAR
+10E6;;;GEORGIAN LETTER GHAN
+10E7;;;GEORGIAN LETTER QAR
+10E8;;;GEORGIAN LETTER SHIN
+10E9;;;GEORGIAN LETTER CHIN
+10EA;;;GEORGIAN LETTER CAN
+10EB;;;GEORGIAN LETTER JIL
+10EC;;;GEORGIAN LETTER CIL
+10ED;;;GEORGIAN LETTER CHAR
+10EE;;;GEORGIAN LETTER XAN
+10EF;;;GEORGIAN LETTER JHAN
+#
+10F0;;;GEORGIAN LETTER HAE
+10F1;;;GEORGIAN LETTER HE
+10F2;;;GEORGIAN LETTER HIE
+10F3;;;GEORGIAN LETTER WE
+10F4;;;GEORGIAN LETTER HAR
+10F5;;;GEORGIAN LETTER HOE
+10F6;;;GEORGIAN LETTER FI
+10F7;;;GEORGIAN LETTER YN
+10F8;;;GEORGIAN LETTER ELIFI
+10F9;;;GEORGIAN LETTER TURNED GAN
+10FA;;;GEORGIAN LETTER AIN
+10FB;;;GEORGIAN PARAGRAPH SEPARATOR
+10FC;;;MODIFIER LETTER GEORGIAN NAR
+#
+# Hangul Jamo
+#
+1100;;;HANGUL CHOSEONG KIYEOK
+1101;;;HANGUL CHOSEONG SSANGKIYEOK
+1102;;;HANGUL CHOSEONG NIEUN
+1103;;;HANGUL CHOSEONG TIKEUT
+1104;;;HANGUL CHOSEONG SSANGTIKEUT
+1105;;;HANGUL CHOSEONG RIEUL
+1106;;;HANGUL CHOSEONG MIEUM
+1107;;;HANGUL CHOSEONG PIEUP
+1108;;;HANGUL CHOSEONG SSANGPIEUP
+1109;;;HANGUL CHOSEONG SIOS
+110A;;;HANGUL CHOSEONG SSANGSIOS
+110B;;;HANGUL CHOSEONG IEUNG
+110C;;;HANGUL CHOSEONG CIEUC
+110D;;;HANGUL CHOSEONG SSANGCIEUC
+110E;;;HANGUL CHOSEONG CHIEUCH
+110F;;;HANGUL CHOSEONG KHIEUKH
+#
+1110;;;HANGUL CHOSEONG THIEUTH
+1111;;;HANGUL CHOSEONG PHIEUPH
+1112;;;HANGUL CHOSEONG HIEUH
+1113;;;HANGUL CHOSEONG NIEUN-KIYEOK
+1114;;;HANGUL CHOSEONG SSANGNIEUN
+1115;;;HANGUL CHOSEONG NIEUN-TIKEUT
+1116;;;HANGUL CHOSEONG NIEUN-PIEUP
+1117;;;HANGUL CHOSEONG TIKEUT-KIYEOK
+1118;;;HANGUL CHOSEONG RIEUL-NIEUN
+1119;;;HANGUL CHOSEONG SSANGRIEUL
+111A;;;HANGUL CHOSEONG RIEUL-HIEUH
+111B;;;HANGUL CHOSEONG KAPYEOUNRIEUL
+111C;;;HANGUL CHOSEONG MIEUM-PIEUP
+111D;;;HANGUL CHOSEONG KAPYEOUNMIEUM
+111E;;;HANGUL CHOSEONG PIEUP-KIYEOK
+111F;;;HANGUL CHOSEONG PIEUP-NIEUN
+#
+1120;;;HANGUL CHOSEONG PIEUP-TIKEUT
+1121;;;HANGUL CHOSEONG PIEUP-SIOS
+1122;;;HANGUL CHOSEONG PIEUP-SIOS-KIYEOK
+1123;;;HANGUL CHOSEONG PIEUP-SIOS-TIKEUT
+1124;;;HANGUL CHOSEONG PIEUP-SIOS-PIEUP
+1125;;;HANGUL CHOSEONG PIEUP-SSANGSIOS
+1126;;;HANGUL CHOSEONG PIEUP-SIOS-CIEUC
+1127;;;HANGUL CHOSEONG PIEUP-CIEUC
+1128;;;HANGUL CHOSEONG PIEUP-CHIEUCH
+1129;;;HANGUL CHOSEONG PIEUP-THIEUTH
+112A;;;HANGUL CHOSEONG PIEUP-PHIEUPH
+112B;;;HANGUL CHOSEONG KAPYEOUNPIEUP
+112C;;;HANGUL CHOSEONG KAPYEOUNSSANGPIEUP
+112D;;;HANGUL CHOSEONG SIOS-KIYEOK
+112E;;;HANGUL CHOSEONG SIOS-NIEUN
+112F;;;HANGUL CHOSEONG SIOS-TIKEUT
+#
+1130;;;HANGUL CHOSEONG SIOS-RIEUL
+1131;;;HANGUL CHOSEONG SIOS-MIEUM
+1132;;;HANGUL CHOSEONG SIOS-PIEUP
+1133;;;HANGUL CHOSEONG SIOS-PIEUP-KIYEOK
+1134;;;HANGUL CHOSEONG SIOS-SSANGSIOS
+1135;;;HANGUL CHOSEONG SIOS-IEUNG
+1136;;;HANGUL CHOSEONG SIOS-CIEUC
+1137;;;HANGUL CHOSEONG SIOS-CHIEUCH
+1138;;;HANGUL CHOSEONG SIOS-KHIEUKH
+1139;;;HANGUL CHOSEONG SIOS-THIEUTH
+113A;;;HANGUL CHOSEONG SIOS-PHIEUPH
+113B;;;HANGUL CHOSEONG SIOS-HIEUH
+113C;;;HANGUL CHOSEONG CHITUEUMSIOS
+113D;;;HANGUL CHOSEONG CHITUEUMSSANGSIOS
+113E;;;HANGUL CHOSEONG CEONGCHIEUMSIOS
+113F;;;HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS
+#
+1140;;;HANGUL CHOSEONG PANSIOS
+1141;;;HANGUL CHOSEONG IEUNG-KIYEOK
+1142;;;HANGUL CHOSEONG IEUNG-TIKEUT
+1143;;;HANGUL CHOSEONG IEUNG-MIEUM
+1144;;;HANGUL CHOSEONG IEUNG-PIEUP
+1145;;;HANGUL CHOSEONG IEUNG-SIOS
+1146;;;HANGUL CHOSEONG IEUNG-PANSIOS
+1147;;;HANGUL CHOSEONG SSANGIEUNG
+1148;;;HANGUL CHOSEONG IEUNG-CIEUC
+1149;;;HANGUL CHOSEONG IEUNG-CHIEUCH
+114A;;;HANGUL CHOSEONG IEUNG-THIEUTH
+114B;;;HANGUL CHOSEONG IEUNG-PHIEUPH
+114C;;;HANGUL CHOSEONG YESIEUNG
+114D;;;HANGUL CHOSEONG CIEUC-IEUNG
+114E;;;HANGUL CHOSEONG CHITUEUMCIEUC
+114F;;;HANGUL CHOSEONG CHITUEUMSSANGCIEUC
+#
+1150;;;HANGUL CHOSEONG CEONGCHIEUMCIEUC
+1151;;;HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC
+1152;;;HANGUL CHOSEONG CHIEUCH-KHIEUKH
+1153;;;HANGUL CHOSEONG CHIEUCH-HIEUH
+1154;;;HANGUL CHOSEONG CHITUEUMCHIEUCH
+1155;;;HANGUL CHOSEONG CEONGCHIEUMCHIEUCH
+1156;;;HANGUL CHOSEONG PHIEUPH-PIEUP
+1157;;;HANGUL CHOSEONG KAPYEOUNPHIEUPH
+1158;;;HANGUL CHOSEONG SSANGHIEUH
+1159;;;HANGUL CHOSEONG YEORINHIEUH
+115F;;;HANGUL CHOSEONG FILLER
+#
+1160;;;HANGUL JUNGSEONG FILLER
+1161;;;HANGUL JUNGSEONG A
+1162;;;HANGUL JUNGSEONG AE
+1163;;;HANGUL JUNGSEONG YA
+1164;;;HANGUL JUNGSEONG YAE
+1165;;;HANGUL JUNGSEONG EO
+1166;;;HANGUL JUNGSEONG E
+1167;;;HANGUL JUNGSEONG YEO
+1168;;;HANGUL JUNGSEONG YE
+1169;;;HANGUL JUNGSEONG O
+116A;;;HANGUL JUNGSEONG WA
+116B;;;HANGUL JUNGSEONG WAE
+116C;;;HANGUL JUNGSEONG OE
+116D;;;HANGUL JUNGSEONG YO
+116E;;;HANGUL JUNGSEONG U
+116F;;;HANGUL JUNGSEONG WEO
+#
+1170;;;HANGUL JUNGSEONG WE
+1171;;;HANGUL JUNGSEONG WI
+1172;;;HANGUL JUNGSEONG YU
+1173;;;HANGUL JUNGSEONG EU
+1174;;;HANGUL JUNGSEONG YI
+1175;;;HANGUL JUNGSEONG I
+1176;;;HANGUL JUNGSEONG A-O
+1177;;;HANGUL JUNGSEONG A-U
+1178;;;HANGUL JUNGSEONG YA-O
+1179;;;HANGUL JUNGSEONG YA-YO
+117A;;;HANGUL JUNGSEONG EO-O
+117B;;;HANGUL JUNGSEONG EO-U
+117C;;;HANGUL JUNGSEONG EO-EU
+117D;;;HANGUL JUNGSEONG YEO-O
+117E;;;HANGUL JUNGSEONG YEO-U
+117F;;;HANGUL JUNGSEONG O-EO
+#
+1180;;;HANGUL JUNGSEONG O-E
+1181;;;HANGUL JUNGSEONG O-YE
+1182;;;HANGUL JUNGSEONG O-O
+1183;;;HANGUL JUNGSEONG O-U
+1184;;;HANGUL JUNGSEONG YO-YA
+1185;;;HANGUL JUNGSEONG YO-YAE
+1186;;;HANGUL JUNGSEONG YO-YEO
+1187;;;HANGUL JUNGSEONG YO-O
+1188;;;HANGUL JUNGSEONG YO-I
+1189;;;HANGUL JUNGSEONG U-A
+118A;;;HANGUL JUNGSEONG U-AE
+118B;;;HANGUL JUNGSEONG U-EO-EU
+118C;;;HANGUL JUNGSEONG U-YE
+118D;;;HANGUL JUNGSEONG U-U
+118E;;;HANGUL JUNGSEONG YU-A
+118F;;;HANGUL JUNGSEONG YU-EO
+#
+1190;;;HANGUL JUNGSEONG YU-E
+1191;;;HANGUL JUNGSEONG YU-YEO
+1192;;;HANGUL JUNGSEONG YU-YE
+1193;;;HANGUL JUNGSEONG YU-U
+1194;;;HANGUL JUNGSEONG YU-I
+1195;;;HANGUL JUNGSEONG EU-U
+1196;;;HANGUL JUNGSEONG EU-EU
+1197;;;HANGUL JUNGSEONG YI-U
+1198;;;HANGUL JUNGSEONG I-A
+1199;;;HANGUL JUNGSEONG I-YA
+119A;;;HANGUL JUNGSEONG I-O
+119B;;;HANGUL JUNGSEONG I-U
+119C;;;HANGUL JUNGSEONG I-EU
+119D;;;HANGUL JUNGSEONG I-ARAEA
+119E;;;HANGUL JUNGSEONG ARAEA
+119F;;;HANGUL JUNGSEONG ARAEA-EO
+#
+11A0;;;HANGUL JUNGSEONG ARAEA-U
+11A1;;;HANGUL JUNGSEONG ARAEA-I
+11A2;;;HANGUL JUNGSEONG SSANGARAEA
+11A8;;;HANGUL JONGSEONG KIYEOK
+11A9;;;HANGUL JONGSEONG SSANGKIYEOK
+11AA;;;HANGUL JONGSEONG KIYEOK-SIOS
+11AB;;;HANGUL JONGSEONG NIEUN
+11AC;;;HANGUL JONGSEONG NIEUN-CIEUC
+11AD;;;HANGUL JONGSEONG NIEUN-HIEUH
+11AE;;;HANGUL JONGSEONG TIKEUT
+11AF;;;HANGUL JONGSEONG RIEUL
+#
+11B0;;;HANGUL JONGSEONG RIEUL-KIYEOK
+11B1;;;HANGUL JONGSEONG RIEUL-MIEUM
+11B2;;;HANGUL JONGSEONG RIEUL-PIEUP
+11B3;;;HANGUL JONGSEONG RIEUL-SIOS
+11B4;;;HANGUL JONGSEONG RIEUL-THIEUTH
+11B5;;;HANGUL JONGSEONG RIEUL-PHIEUPH
+11B6;;;HANGUL JONGSEONG RIEUL-HIEUH
+11B7;;;HANGUL JONGSEONG MIEUM
+11B8;;;HANGUL JONGSEONG PIEUP
+11B9;;;HANGUL JONGSEONG PIEUP-SIOS
+11BA;;;HANGUL JONGSEONG SIOS
+11BB;;;HANGUL JONGSEONG SSANGSIOS
+11BC;;;HANGUL JONGSEONG IEUNG
+11BD;;;HANGUL JONGSEONG CIEUC
+11BE;;;HANGUL JONGSEONG CHIEUCH
+11BF;;;HANGUL JONGSEONG KHIEUKH
+#
+11C0;;;HANGUL JONGSEONG THIEUTH
+11C1;;;HANGUL JONGSEONG PHIEUPH
+11C2;;;HANGUL JONGSEONG HIEUH
+11C3;;;HANGUL JONGSEONG KIYEOK-RIEUL
+11C4;;;HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK
+11C5;;;HANGUL JONGSEONG NIEUN-KIYEOK
+11C6;;;HANGUL JONGSEONG NIEUN-TIKEUT
+11C7;;;HANGUL JONGSEONG NIEUN-SIOS
+11C8;;;HANGUL JONGSEONG NIEUN-PANSIOS
+11C9;;;HANGUL JONGSEONG NIEUN-THIEUTH
+11CA;;;HANGUL JONGSEONG TIKEUT-KIYEOK
+11CB;;;HANGUL JONGSEONG TIKEUT-RIEUL
+11CC;;;HANGUL JONGSEONG RIEUL-KIYEOK-SIOS
+11CD;;;HANGUL JONGSEONG RIEUL-NIEUN
+11CE;;;HANGUL JONGSEONG RIEUL-TIKEUT
+11CF;;;HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH
+#
+11D0;;;HANGUL JONGSEONG SSANGRIEUL
+11D1;;;HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK
+11D2;;;HANGUL JONGSEONG RIEUL-MIEUM-SIOS
+11D3;;;HANGUL JONGSEONG RIEUL-PIEUP-SIOS
+11D4;;;HANGUL JONGSEONG RIEUL-PIEUP-HIEUH
+11D5;;;HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP
+11D6;;;HANGUL JONGSEONG RIEUL-SSANGSIOS
+11D7;;;HANGUL JONGSEONG RIEUL-PANSIOS
+11D8;;;HANGUL JONGSEONG RIEUL-KHIEUKH
+11D9;;;HANGUL JONGSEONG RIEUL-YEORINHIEUH
+11DA;;;HANGUL JONGSEONG MIEUM-KIYEOK
+11DB;;;HANGUL JONGSEONG MIEUM-RIEUL
+11DC;;;HANGUL JONGSEONG MIEUM-PIEUP
+11DD;;;HANGUL JONGSEONG MIEUM-SIOS
+11DE;;;HANGUL JONGSEONG MIEUM-SSANGSIOS
+11DF;;;HANGUL JONGSEONG MIEUM-PANSIOS
+#
+11E0;;;HANGUL JONGSEONG MIEUM-CHIEUCH
+11E1;;;HANGUL JONGSEONG MIEUM-HIEUH
+11E2;;;HANGUL JONGSEONG KAPYEOUNMIEUM
+11E3;;;HANGUL JONGSEONG PIEUP-RIEUL
+11E4;;;HANGUL JONGSEONG PIEUP-PHIEUPH
+11E5;;;HANGUL JONGSEONG PIEUP-HIEUH
+11E6;;;HANGUL JONGSEONG KAPYEOUNPIEUP
+11E7;;;HANGUL JONGSEONG SIOS-KIYEOK
+11E8;;;HANGUL JONGSEONG SIOS-TIKEUT
+11E9;;;HANGUL JONGSEONG SIOS-RIEUL
+11EA;;;HANGUL JONGSEONG SIOS-PIEUP
+11EB;;;HANGUL JONGSEONG PANSIOS
+11EC;;;HANGUL JONGSEONG IEUNG-KIYEOK
+11ED;;;HANGUL JONGSEONG IEUNG-SSANGKIYEOK
+11EE;;;HANGUL JONGSEONG SSANGIEUNG
+11EF;;;HANGUL JONGSEONG IEUNG-KHIEUKH
+#
+11F0;;;HANGUL JONGSEONG YESIEUNG
+11F1;;;HANGUL JONGSEONG YESIEUNG-SIOS
+11F2;;;HANGUL JONGSEONG YESIEUNG-PANSIOS
+11F3;;;HANGUL JONGSEONG PHIEUPH-PIEUP
+11F4;;;HANGUL JONGSEONG KAPYEOUNPHIEUPH
+11F5;;;HANGUL JONGSEONG HIEUH-NIEUN
+11F6;;;HANGUL JONGSEONG HIEUH-RIEUL
+11F7;;;HANGUL JONGSEONG HIEUH-MIEUM
+11F8;;;HANGUL JONGSEONG HIEUH-PIEUP
+11F9;;;HANGUL JONGSEONG YEORINHIEUH
+#
+# Ethiopipc
+#
+1200;;;ETHIOPIC SYLLABLE HA
+1201;;;ETHIOPIC SYLLABLE HU
+1202;;;ETHIOPIC SYLLABLE HI
+1203;;;ETHIOPIC SYLLABLE HAA
+1204;;;ETHIOPIC SYLLABLE HEE
+1205;;;ETHIOPIC SYLLABLE HE
+1206;;;ETHIOPIC SYLLABLE HO
+1207;;;ETHIOPIC SYLLABLE HOA
+1208;;;ETHIOPIC SYLLABLE LA
+1209;;;ETHIOPIC SYLLABLE LU
+120A;;;ETHIOPIC SYLLABLE LI
+120B;;;ETHIOPIC SYLLABLE LAA
+120C;;;ETHIOPIC SYLLABLE LEE
+120D;;;ETHIOPIC SYLLABLE LE
+120E;;;ETHIOPIC SYLLABLE LO
+120F;;;ETHIOPIC SYLLABLE LWA
+#
+1210;;;ETHIOPIC SYLLABLE HHA
+1211;;;ETHIOPIC SYLLABLE HHU
+1212;;;ETHIOPIC SYLLABLE HHI
+1213;;;ETHIOPIC SYLLABLE HHAA
+1214;;;ETHIOPIC SYLLABLE HHEE
+1215;;;ETHIOPIC SYLLABLE HHE
+1216;;;ETHIOPIC SYLLABLE HHO
+1217;;;ETHIOPIC SYLLABLE HHWA
+1218;;;ETHIOPIC SYLLABLE MA
+1219;;;ETHIOPIC SYLLABLE MU
+121A;;;ETHIOPIC SYLLABLE MI
+121B;;;ETHIOPIC SYLLABLE MAA
+121C;;;ETHIOPIC SYLLABLE MEE
+121D;;;ETHIOPIC SYLLABLE ME
+121E;;;ETHIOPIC SYLLABLE MO
+121F;;;ETHIOPIC SYLLABLE MWA
+#
+1220;;;ETHIOPIC SYLLABLE SZA
+1221;;;ETHIOPIC SYLLABLE SZU
+1222;;;ETHIOPIC SYLLABLE SZI
+1223;;;ETHIOPIC SYLLABLE SZAA
+1224;;;ETHIOPIC SYLLABLE SZEE
+1225;;;ETHIOPIC SYLLABLE SZE
+1226;;;ETHIOPIC SYLLABLE SZO
+1227;;;ETHIOPIC SYLLABLE SZWA
+1228;;;ETHIOPIC SYLLABLE RA
+1229;;;ETHIOPIC SYLLABLE RU
+122A;;;ETHIOPIC SYLLABLE RI
+122B;;;ETHIOPIC SYLLABLE RAA
+122C;;;ETHIOPIC SYLLABLE REE
+122D;;;ETHIOPIC SYLLABLE RE
+122E;;;ETHIOPIC SYLLABLE RO
+122F;;;ETHIOPIC SYLLABLE RWA
+#
+1230;;;ETHIOPIC SYLLABLE SA
+1231;;;ETHIOPIC SYLLABLE SU
+1232;;;ETHIOPIC SYLLABLE SI
+1233;;;ETHIOPIC SYLLABLE SAA
+1234;;;ETHIOPIC SYLLABLE SEE
+1235;;;ETHIOPIC SYLLABLE SE
+1236;;;ETHIOPIC SYLLABLE SO
+1237;;;ETHIOPIC SYLLABLE SWA
+1238;;;ETHIOPIC SYLLABLE SHA
+1239;;;ETHIOPIC SYLLABLE SHU
+123A;;;ETHIOPIC SYLLABLE SHI
+123B;;;ETHIOPIC SYLLABLE SHAA
+123C;;;ETHIOPIC SYLLABLE SHEE
+123D;;;ETHIOPIC SYLLABLE SHE
+123E;;;ETHIOPIC SYLLABLE SHO
+123F;;;ETHIOPIC SYLLABLE SHWA
+#
+1240;;;ETHIOPIC SYLLABLE QA
+1241;;;ETHIOPIC SYLLABLE QU
+1242;;;ETHIOPIC SYLLABLE QI
+1243;;;ETHIOPIC SYLLABLE QAA
+1244;;;ETHIOPIC SYLLABLE QEE
+1245;;;ETHIOPIC SYLLABLE QE
+1246;;;ETHIOPIC SYLLABLE QO
+1247;;;ETHIOPIC SYLLABLE QOA
+1248;;;ETHIOPIC SYLLABLE QWA
+124A;;;ETHIOPIC SYLLABLE QWI
+124B;;;ETHIOPIC SYLLABLE QWAA
+124C;;;ETHIOPIC SYLLABLE QWEE
+124D;;;ETHIOPIC SYLLABLE QWE
+#
+1250;;;ETHIOPIC SYLLABLE QHA
+1251;;;ETHIOPIC SYLLABLE QHU
+1252;;;ETHIOPIC SYLLABLE QHI
+1253;;;ETHIOPIC SYLLABLE QHAA
+1254;;;ETHIOPIC SYLLABLE QHEE
+1255;;;ETHIOPIC SYLLABLE QHE
+1256;;;ETHIOPIC SYLLABLE QHO
+1258;;;ETHIOPIC SYLLABLE QHWA
+125A;;;ETHIOPIC SYLLABLE QHWI
+125B;;;ETHIOPIC SYLLABLE QHWAA
+125C;;;ETHIOPIC SYLLABLE QHWEE
+125D;;;ETHIOPIC SYLLABLE QHWE
+#
+1260;;;ETHIOPIC SYLLABLE BA
+1261;;;ETHIOPIC SYLLABLE BU
+1262;;;ETHIOPIC SYLLABLE BI
+1263;;;ETHIOPIC SYLLABLE BAA
+1264;;;ETHIOPIC SYLLABLE BEE
+1265;;;ETHIOPIC SYLLABLE BE
+1266;;;ETHIOPIC SYLLABLE BO
+1267;;;ETHIOPIC SYLLABLE BWA
+1268;;;ETHIOPIC SYLLABLE VA
+1269;;;ETHIOPIC SYLLABLE VU
+126A;;;ETHIOPIC SYLLABLE VI
+126B;;;ETHIOPIC SYLLABLE VAA
+126C;;;ETHIOPIC SYLLABLE VEE
+126D;;;ETHIOPIC SYLLABLE VE
+126E;;;ETHIOPIC SYLLABLE VO
+126F;;;ETHIOPIC SYLLABLE VWA
+#
+1270;;;ETHIOPIC SYLLABLE TA
+1271;;;ETHIOPIC SYLLABLE TU
+1272;;;ETHIOPIC SYLLABLE TI
+1273;;;ETHIOPIC SYLLABLE TAA
+1274;;;ETHIOPIC SYLLABLE TEE
+1275;;;ETHIOPIC SYLLABLE TE
+1276;;;ETHIOPIC SYLLABLE TO
+1277;;;ETHIOPIC SYLLABLE TWA
+1278;;;ETHIOPIC SYLLABLE CA
+1279;;;ETHIOPIC SYLLABLE CU
+127A;;;ETHIOPIC SYLLABLE CI
+127B;;;ETHIOPIC SYLLABLE CAA
+127C;;;ETHIOPIC SYLLABLE CEE
+127D;;;ETHIOPIC SYLLABLE CE
+127E;;;ETHIOPIC SYLLABLE CO
+127F;;;ETHIOPIC SYLLABLE CWA
+#
+1280;;;ETHIOPIC SYLLABLE XA
+1281;;;ETHIOPIC SYLLABLE XU
+1282;;;ETHIOPIC SYLLABLE XI
+1283;;;ETHIOPIC SYLLABLE XAA
+1284;;;ETHIOPIC SYLLABLE XEE
+1285;;;ETHIOPIC SYLLABLE XE
+1286;;;ETHIOPIC SYLLABLE XO
+1287;;;ETHIOPIC SYLLABLE XOA
+1288;;;ETHIOPIC SYLLABLE XWA
+128A;;;ETHIOPIC SYLLABLE XWI
+128B;;;ETHIOPIC SYLLABLE XWAA
+128C;;;ETHIOPIC SYLLABLE XWEE
+128D;;;ETHIOPIC SYLLABLE XWE
+#
+1290;;;ETHIOPIC SYLLABLE NA
+1291;;;ETHIOPIC SYLLABLE NU
+1292;;;ETHIOPIC SYLLABLE NI
+1293;;;ETHIOPIC SYLLABLE NAA
+1294;;;ETHIOPIC SYLLABLE NEE
+1295;;;ETHIOPIC SYLLABLE NE
+1296;;;ETHIOPIC SYLLABLE NO
+1297;;;ETHIOPIC SYLLABLE NWA
+1298;;;ETHIOPIC SYLLABLE NYA
+1299;;;ETHIOPIC SYLLABLE NYU
+129A;;;ETHIOPIC SYLLABLE NYI
+129B;;;ETHIOPIC SYLLABLE NYAA
+129C;;;ETHIOPIC SYLLABLE NYEE
+129D;;;ETHIOPIC SYLLABLE NYE
+129E;;;ETHIOPIC SYLLABLE NYO
+129F;;;ETHIOPIC SYLLABLE NYWA
+#
+12A0;;;ETHIOPIC SYLLABLE GLOTTAL A
+12A1;;;ETHIOPIC SYLLABLE GLOTTAL U
+12A2;;;ETHIOPIC SYLLABLE GLOTTAL I
+12A3;;;ETHIOPIC SYLLABLE GLOTTAL AA
+12A4;;;ETHIOPIC SYLLABLE GLOTTAL EE
+12A5;;;ETHIOPIC SYLLABLE GLOTTAL E
+12A6;;;ETHIOPIC SYLLABLE GLOTTAL O
+12A7;;;ETHIOPIC SYLLABLE GLOTTAL WA
+12A8;;;ETHIOPIC SYLLABLE KA
+12A9;;;ETHIOPIC SYLLABLE KU
+12AA;;;ETHIOPIC SYLLABLE KI
+12AB;;;ETHIOPIC SYLLABLE KAA
+12AC;;;ETHIOPIC SYLLABLE KEE
+12AD;;;ETHIOPIC SYLLABLE KE
+12AE;;;ETHIOPIC SYLLABLE KO
+12AF;;;ETHIOPIC SYLLABLE KOA
+#
+12B0;;;ETHIOPIC SYLLABLE KWA
+12B2;;;ETHIOPIC SYLLABLE KWI
+12B3;;;ETHIOPIC SYLLABLE KWAA
+12B4;;;ETHIOPIC SYLLABLE KWEE
+12B5;;;ETHIOPIC SYLLABLE KWE
+12B8;;;ETHIOPIC SYLLABLE KXA
+12B9;;;ETHIOPIC SYLLABLE KXU
+12BA;;;ETHIOPIC SYLLABLE KXI
+12BB;;;ETHIOPIC SYLLABLE KXAA
+12BC;;;ETHIOPIC SYLLABLE KXEE
+12BD;;;ETHIOPIC SYLLABLE KXE
+12BE;;;ETHIOPIC SYLLABLE KXO
+#
+12C0;;;ETHIOPIC SYLLABLE KXWA
+12C2;;;ETHIOPIC SYLLABLE KXWI
+12C3;;;ETHIOPIC SYLLABLE KXWAA
+12C4;;;ETHIOPIC SYLLABLE KXWEE
+12C5;;;ETHIOPIC SYLLABLE KXWE
+12C8;;;ETHIOPIC SYLLABLE WA
+12C9;;;ETHIOPIC SYLLABLE WU
+12CA;;;ETHIOPIC SYLLABLE WI
+12CB;;;ETHIOPIC SYLLABLE WAA
+12CC;;;ETHIOPIC SYLLABLE WEE
+12CD;;;ETHIOPIC SYLLABLE WE
+12CE;;;ETHIOPIC SYLLABLE WO
+12CF;;;ETHIOPIC SYLLABLE WOA
+#
+12D0;;;ETHIOPIC SYLLABLE PHARYNGEAL A
+12D1;;;ETHIOPIC SYLLABLE PHARYNGEAL U
+12D2;;;ETHIOPIC SYLLABLE PHARYNGEAL I
+12D3;;;ETHIOPIC SYLLABLE PHARYNGEAL AA
+12D4;;;ETHIOPIC SYLLABLE PHARYNGEAL EE
+12D5;;;ETHIOPIC SYLLABLE PHARYNGEAL E
+12D6;;;ETHIOPIC SYLLABLE PHARYNGEAL O
+12D8;;;ETHIOPIC SYLLABLE ZA
+12D9;;;ETHIOPIC SYLLABLE ZU
+12DA;;;ETHIOPIC SYLLABLE ZI
+12DB;;;ETHIOPIC SYLLABLE ZAA
+12DC;;;ETHIOPIC SYLLABLE ZEE
+12DD;;;ETHIOPIC SYLLABLE ZE
+12DE;;;ETHIOPIC SYLLABLE ZO
+12DF;;;ETHIOPIC SYLLABLE ZWA
+#
+12E0;;;ETHIOPIC SYLLABLE ZHA
+12E1;;;ETHIOPIC SYLLABLE ZHU
+12E2;;;ETHIOPIC SYLLABLE ZHI
+12E3;;;ETHIOPIC SYLLABLE ZHAA
+12E4;;;ETHIOPIC SYLLABLE ZHEE
+12E5;;;ETHIOPIC SYLLABLE ZHE
+12E6;;;ETHIOPIC SYLLABLE ZHO
+12E7;;;ETHIOPIC SYLLABLE ZHWA
+12E8;;;ETHIOPIC SYLLABLE YA
+12E9;;;ETHIOPIC SYLLABLE YU
+12EA;;;ETHIOPIC SYLLABLE YI
+12EB;;;ETHIOPIC SYLLABLE YAA
+12EC;;;ETHIOPIC SYLLABLE YEE
+12ED;;;ETHIOPIC SYLLABLE YE
+12EE;;;ETHIOPIC SYLLABLE YO
+12EF;;;ETHIOPIC SYLLABLE YOA
+#
+12F0;;;ETHIOPIC SYLLABLE DA
+12F1;;;ETHIOPIC SYLLABLE DU
+12F2;;;ETHIOPIC SYLLABLE DI
+12F3;;;ETHIOPIC SYLLABLE DAA
+12F4;;;ETHIOPIC SYLLABLE DEE
+12F5;;;ETHIOPIC SYLLABLE DE
+12F6;;;ETHIOPIC SYLLABLE DO
+12F7;;;ETHIOPIC SYLLABLE DWA
+12F8;;;ETHIOPIC SYLLABLE DDA
+12F9;;;ETHIOPIC SYLLABLE DDU
+12FA;;;ETHIOPIC SYLLABLE DDI
+12FB;;;ETHIOPIC SYLLABLE DDAA
+12FC;;;ETHIOPIC SYLLABLE DDEE
+12FD;;;ETHIOPIC SYLLABLE DDE
+12FE;;;ETHIOPIC SYLLABLE DDO
+12FF;;;ETHIOPIC SYLLABLE DDWA
+#
+1300;;;ETHIOPIC SYLLABLE JA
+1301;;;ETHIOPIC SYLLABLE JU
+1302;;;ETHIOPIC SYLLABLE JI
+1303;;;ETHIOPIC SYLLABLE JAA
+1304;;;ETHIOPIC SYLLABLE JEE
+1305;;;ETHIOPIC SYLLABLE JE
+1306;;;ETHIOPIC SYLLABLE JO
+1307;;;ETHIOPIC SYLLABLE JWA
+1308;;;ETHIOPIC SYLLABLE GA
+1309;;;ETHIOPIC SYLLABLE GU
+130A;;;ETHIOPIC SYLLABLE GI
+130B;;;ETHIOPIC SYLLABLE GAA
+130C;;;ETHIOPIC SYLLABLE GEE
+130D;;;ETHIOPIC SYLLABLE GE
+130E;;;ETHIOPIC SYLLABLE GO
+130F;;;ETHIOPIC SYLLABLE GOA
+#
+1310;;;ETHIOPIC SYLLABLE GWA
+1312;;;ETHIOPIC SYLLABLE GWI
+1313;;;ETHIOPIC SYLLABLE GWAA
+1314;;;ETHIOPIC SYLLABLE GWEE
+1315;;;ETHIOPIC SYLLABLE GWE
+1318;;;ETHIOPIC SYLLABLE GGA
+1319;;;ETHIOPIC SYLLABLE GGU
+131A;;;ETHIOPIC SYLLABLE GGI
+131B;;;ETHIOPIC SYLLABLE GGAA
+131C;;;ETHIOPIC SYLLABLE GGEE
+131D;;;ETHIOPIC SYLLABLE GGE
+131E;;;ETHIOPIC SYLLABLE GGO
+131F;;;ETHIOPIC SYLLABLE GGWAA
+#
+1320;;;ETHIOPIC SYLLABLE THA
+1321;;;ETHIOPIC SYLLABLE THU
+1322;;;ETHIOPIC SYLLABLE THI
+1323;;;ETHIOPIC SYLLABLE THAA
+1324;;;ETHIOPIC SYLLABLE THEE
+1325;;;ETHIOPIC SYLLABLE THE
+1326;;;ETHIOPIC SYLLABLE THO
+1327;;;ETHIOPIC SYLLABLE THWA
+1328;;;ETHIOPIC SYLLABLE CHA
+1329;;;ETHIOPIC SYLLABLE CHU
+132A;;;ETHIOPIC SYLLABLE CHI
+132B;;;ETHIOPIC SYLLABLE CHAA
+132C;;;ETHIOPIC SYLLABLE CHEE
+132D;;;ETHIOPIC SYLLABLE CHE
+132E;;;ETHIOPIC SYLLABLE CHO
+132F;;;ETHIOPIC SYLLABLE CHWA
+#
+1330;;;ETHIOPIC SYLLABLE PHA
+1331;;;ETHIOPIC SYLLABLE PHU
+1332;;;ETHIOPIC SYLLABLE PHI
+1333;;;ETHIOPIC SYLLABLE PHAA
+1334;;;ETHIOPIC SYLLABLE PHEE
+1335;;;ETHIOPIC SYLLABLE PHE
+1336;;;ETHIOPIC SYLLABLE PHO
+1337;;;ETHIOPIC SYLLABLE PHWA
+1338;;;ETHIOPIC SYLLABLE TSA
+1339;;;ETHIOPIC SYLLABLE TSU
+133A;;;ETHIOPIC SYLLABLE TSI
+133B;;;ETHIOPIC SYLLABLE TSAA
+133C;;;ETHIOPIC SYLLABLE TSEE
+133D;;;ETHIOPIC SYLLABLE TSE
+133E;;;ETHIOPIC SYLLABLE TSO
+133F;;;ETHIOPIC SYLLABLE TSWA
+#
+1340;;;ETHIOPIC SYLLABLE TZA
+1341;;;ETHIOPIC SYLLABLE TZU
+1342;;;ETHIOPIC SYLLABLE TZI
+1343;;;ETHIOPIC SYLLABLE TZAA
+1344;;;ETHIOPIC SYLLABLE TZEE
+1345;;;ETHIOPIC SYLLABLE TZE
+1346;;;ETHIOPIC SYLLABLE TZO
+1347;;;ETHIOPIC SYLLABLE TZOA
+1348;;;ETHIOPIC SYLLABLE FA
+1349;;;ETHIOPIC SYLLABLE FU
+134A;;;ETHIOPIC SYLLABLE FI
+134B;;;ETHIOPIC SYLLABLE FAA
+134C;;;ETHIOPIC SYLLABLE FEE
+134D;;;ETHIOPIC SYLLABLE FE
+134E;;;ETHIOPIC SYLLABLE FO
+134F;;;ETHIOPIC SYLLABLE FWA
+#
+1350;;;ETHIOPIC SYLLABLE PA
+1351;;;ETHIOPIC SYLLABLE PU
+1352;;;ETHIOPIC SYLLABLE PI
+1353;;;ETHIOPIC SYLLABLE PAA
+1354;;;ETHIOPIC SYLLABLE PEE
+1355;;;ETHIOPIC SYLLABLE PE
+1356;;;ETHIOPIC SYLLABLE PO
+1357;;;ETHIOPIC SYLLABLE PWA
+1358;;;ETHIOPIC SYLLABLE RYA
+1359;;;ETHIOPIC SYLLABLE MYA
+135A;;;ETHIOPIC SYLLABLE FYA
+135F;;;ETHIOPIC COMBINING GEMINATION MARK
+#
+1360;;;ETHIOPIC SECTION MARK
+1361;;;ETHIOPIC WORDSPACE
+1362;;;ETHIOPIC FULL STOP
+1363;;;ETHIOPIC COMMA
+1364;;;ETHIOPIC SEMICOLON
+1365;;;ETHIOPIC COLON
+1366;;;ETHIOPIC PREFACE COLON
+1367;;;ETHIOPIC QUESTION MARK
+1368;;;ETHIOPIC PARAGRAPH SEPARATOR
+1369;;;ETHIOPIC DIGIT ONE
+136A;;;ETHIOPIC DIGIT TWO
+136B;;;ETHIOPIC DIGIT THREE
+136C;;;ETHIOPIC DIGIT FOUR
+136D;;;ETHIOPIC DIGIT FIVE
+136E;;;ETHIOPIC DIGIT SIX
+136F;;;ETHIOPIC DIGIT SEVEN
+#
+1370;;;ETHIOPIC DIGIT EIGHT
+1371;;;ETHIOPIC DIGIT NINE
+1372;;;ETHIOPIC NUMBER TEN
+1373;;;ETHIOPIC NUMBER TWENTY
+1374;;;ETHIOPIC NUMBER THIRTY
+1375;;;ETHIOPIC NUMBER FORTY
+1376;;;ETHIOPIC NUMBER FIFTY
+1377;;;ETHIOPIC NUMBER SIXTY
+1378;;;ETHIOPIC NUMBER SEVENTY
+1379;;;ETHIOPIC NUMBER EIGHTY
+137A;;;ETHIOPIC NUMBER NINETY
+137B;;;ETHIOPIC NUMBER HUNDRED
+137C;;;ETHIOPIC NUMBER TEN THOUSAND
+#
+1380;;;ETHIOPIC SYLLABLE SEBATBEIT MWA
+1381;;;ETHIOPIC SYLLABLE MWI
+1382;;;ETHIOPIC SYLLABLE MWEE
+1383;;;ETHIOPIC SYLLABLE MWE
+1384;;;ETHIOPIC SYLLABLE SEBATBEIT BWA
+1385;;;ETHIOPIC SYLLABLE BWI
+1386;;;ETHIOPIC SYLLABLE BWEE
+1387;;;ETHIOPIC SYLLABLE BWE
+1388;;;ETHIOPIC SYLLABLE SEBATBEIT FWA
+1389;;;ETHIOPIC SYLLABLE FWI
+138A;;;ETHIOPIC SYLLABLE FWEE
+138B;;;ETHIOPIC SYLLABLE FWE
+138C;;;ETHIOPIC SYLLABLE SEBATBEIT PWA
+138D;;;ETHIOPIC SYLLABLE PWI
+138E;;;ETHIOPIC SYLLABLE PWEE
+138F;;;ETHIOPIC SYLLABLE PWE
+#
+1390;;;ETHIOPIC TONAL MARK YIZET
+1391;;;ETHIOPIC TONAL MARK DERET
+1392;;;ETHIOPIC TONAL MARK RIKRIK
+1393;;;ETHIOPIC TONAL MARK SHORT RIKRIK
+1394;;;ETHIOPIC TONAL MARK DIFAT
+1395;;;ETHIOPIC TONAL MARK KENAT
+1396;;;ETHIOPIC TONAL MARK CHIRET
+1397;;;ETHIOPIC TONAL MARK HIDET
+1398;;;ETHIOPIC TONAL MARK DERET-HIDET
+1399;;;ETHIOPIC TONAL MARK KURT
+#
+# Cherokee
+#
+13A0;;;CHEROKEE LETTER A
+13A1;;;CHEROKEE LETTER E
+13A2;;;CHEROKEE LETTER I
+13A3;;;CHEROKEE LETTER O
+13A4;;;CHEROKEE LETTER U
+13A5;;;CHEROKEE LETTER V
+13A6;;;CHEROKEE LETTER GA
+13A7;;;CHEROKEE LETTER KA
+13A8;;;CHEROKEE LETTER GE
+13A9;;;CHEROKEE LETTER GI
+13AA;;;CHEROKEE LETTER GO
+13AB;;;CHEROKEE LETTER GU
+13AC;;;CHEROKEE LETTER GV
+13AD;;;CHEROKEE LETTER HA
+13AE;;;CHEROKEE LETTER HE
+13AF;;;CHEROKEE LETTER HI
+#
+13B0;;;CHEROKEE LETTER HO
+13B1;;;CHEROKEE LETTER HU
+13B2;;;CHEROKEE LETTER HV
+13B3;;;CHEROKEE LETTER LA
+13B4;;;CHEROKEE LETTER LE
+13B5;;;CHEROKEE LETTER LI
+13B6;;;CHEROKEE LETTER LO
+13B7;;;CHEROKEE LETTER LU
+13B8;;;CHEROKEE LETTER LV
+13B9;;;CHEROKEE LETTER MA
+13BA;;;CHEROKEE LETTER ME
+13BB;;;CHEROKEE LETTER MI
+13BC;;;CHEROKEE LETTER MO
+13BD;;;CHEROKEE LETTER MU
+13BE;;;CHEROKEE LETTER NA
+13BF;;;CHEROKEE LETTER HNA
+#
+13C0;;;CHEROKEE LETTER NAH
+13C1;;;CHEROKEE LETTER NE
+13C2;;;CHEROKEE LETTER NI
+13C3;;;CHEROKEE LETTER NO
+13C4;;;CHEROKEE LETTER NU
+13C5;;;CHEROKEE LETTER NV
+13C6;;;CHEROKEE LETTER QUA
+13C7;;;CHEROKEE LETTER QUE
+13C8;;;CHEROKEE LETTER QUI
+13C9;;;CHEROKEE LETTER QUO
+13CA;;;CHEROKEE LETTER QUU
+13CB;;;CHEROKEE LETTER QUV
+13CC;;;CHEROKEE LETTER SA
+13CD;;;CHEROKEE LETTER S
+13CE;;;CHEROKEE LETTER SE
+13CF;;;CHEROKEE LETTER SI
+#
+13D0;;;CHEROKEE LETTER SO
+13D1;;;CHEROKEE LETTER SU
+13D2;;;CHEROKEE LETTER SV
+13D3;;;CHEROKEE LETTER DA
+13D4;;;CHEROKEE LETTER TA
+13D5;;;CHEROKEE LETTER DE
+13D6;;;CHEROKEE LETTER TE
+13D7;;;CHEROKEE LETTER DI
+13D8;;;CHEROKEE LETTER TI
+13D9;;;CHEROKEE LETTER DO
+13DA;;;CHEROKEE LETTER DU
+13DB;;;CHEROKEE LETTER DV
+13DC;;;CHEROKEE LETTER DLA
+13DD;;;CHEROKEE LETTER TLA
+13DE;;;CHEROKEE LETTER TLE
+13DF;;;CHEROKEE LETTER TLI
+#
+13E0;;;CHEROKEE LETTER TLO
+13E1;;;CHEROKEE LETTER TLU
+13E2;;;CHEROKEE LETTER TLV
+13E3;;;CHEROKEE LETTER TSA
+13E4;;;CHEROKEE LETTER TSE
+13E5;;;CHEROKEE LETTER TSI
+13E6;;;CHEROKEE LETTER TSO
+13E7;;;CHEROKEE LETTER TSU
+13E8;;;CHEROKEE LETTER TSV
+13E9;;;CHEROKEE LETTER WA
+13EA;;;CHEROKEE LETTER WE
+13EB;;;CHEROKEE LETTER WI
+13EC;;;CHEROKEE LETTER WO
+13ED;;;CHEROKEE LETTER WU
+13EE;;;CHEROKEE LETTER WV
+13EF;;;CHEROKEE LETTER YA
+#
+13F0;;;CHEROKEE LETTER YE
+13F1;;;CHEROKEE LETTER YI
+13F2;;;CHEROKEE LETTER YO
+13F3;;;CHEROKEE LETTER YU
+13F4;;;CHEROKEE LETTER YV
+1401;;;CANADIAN SYLLABICS E
+1402;;;CANADIAN SYLLABICS AAI
+1403;;;CANADIAN SYLLABICS I
+1404;;;CANADIAN SYLLABICS II
+1405;;;CANADIAN SYLLABICS O
+1406;;;CANADIAN SYLLABICS OO
+1407;;;CANADIAN SYLLABICS Y-CREE OO
+1408;;;CANADIAN SYLLABICS CARRIER EE
+1409;;;CANADIAN SYLLABICS CARRIER I
+140A;;;CANADIAN SYLLABICS A
+140B;;;CANADIAN SYLLABICS AA
+140C;;;CANADIAN SYLLABICS WE
+140D;;;CANADIAN SYLLABICS WEST-CREE WE
+140E;;;CANADIAN SYLLABICS WI
+140F;;;CANADIAN SYLLABICS WEST-CREE WI
+#
+1410;;;CANADIAN SYLLABICS WII
+1411;;;CANADIAN SYLLABICS WEST-CREE WII
+1412;;;CANADIAN SYLLABICS WO
+1413;;;CANADIAN SYLLABICS WEST-CREE WO
+1414;;;CANADIAN SYLLABICS WOO
+1415;;;CANADIAN SYLLABICS WEST-CREE WOO
+1416;;;CANADIAN SYLLABICS NASKAPI WOO
+1417;;;CANADIAN SYLLABICS WA
+1418;;;CANADIAN SYLLABICS WEST-CREE WA
+1419;;;CANADIAN SYLLABICS WAA
+141A;;;CANADIAN SYLLABICS WEST-CREE WAA
+141B;;;CANADIAN SYLLABICS NASKAPI WAA
+141C;;;CANADIAN SYLLABICS AI
+141D;;;CANADIAN SYLLABICS Y-CREE W
+141E;;;CANADIAN SYLLABICS GLOTTAL STOP
+141F;;;CANADIAN SYLLABICS FINAL ACUTE
+#
+1420;;;CANADIAN SYLLABICS FINAL GRAVE
+1421;;;CANADIAN SYLLABICS FINAL BOTTOM HALF RING
+1422;;;CANADIAN SYLLABICS FINAL TOP HALF RING
+1423;;;CANADIAN SYLLABICS FINAL RIGHT HALF RING
+1424;;;CANADIAN SYLLABICS FINAL RING
+1425;;;CANADIAN SYLLABICS FINAL DOUBLE ACUTE
+1426;;;CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES
+1427;;;CANADIAN SYLLABICS FINAL MIDDLE DOT
+1428;;;CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE
+1429;;;CANADIAN SYLLABICS FINAL PLUS
+142A;;;CANADIAN SYLLABICS FINAL DOWN TACK
+142B;;;CANADIAN SYLLABICS EN
+142C;;;CANADIAN SYLLABICS IN
+142D;;;CANADIAN SYLLABICS ON
+142E;;;CANADIAN SYLLABICS AN
+142F;;;CANADIAN SYLLABICS PE
+#
+1430;;;CANADIAN SYLLABICS PAAI
+1431;;;CANADIAN SYLLABICS PI
+1432;;;CANADIAN SYLLABICS PII
+1433;;;CANADIAN SYLLABICS PO
+1434;;;CANADIAN SYLLABICS POO
+1435;;;CANADIAN SYLLABICS Y-CREE POO
+1436;;;CANADIAN SYLLABICS CARRIER HEE
+1437;;;CANADIAN SYLLABICS CARRIER HI
+1438;;;CANADIAN SYLLABICS PA
+1439;;;CANADIAN SYLLABICS PAA
+143A;;;CANADIAN SYLLABICS PWE
+143B;;;CANADIAN SYLLABICS WEST-CREE PWE
+143C;;;CANADIAN SYLLABICS PWI
+143D;;;CANADIAN SYLLABICS WEST-CREE PWI
+143E;;;CANADIAN SYLLABICS PWII
+143F;;;CANADIAN SYLLABICS WEST-CREE PWII
+#
+1440;;;CANADIAN SYLLABICS PWO
+1441;;;CANADIAN SYLLABICS WEST-CREE PWO
+1442;;;CANADIAN SYLLABICS PWOO
+1443;;;CANADIAN SYLLABICS WEST-CREE PWOO
+1444;;;CANADIAN SYLLABICS PWA
+1445;;;CANADIAN SYLLABICS WEST-CREE PWA
+1446;;;CANADIAN SYLLABICS PWAA
+1447;;;CANADIAN SYLLABICS WEST-CREE PWAA
+1448;;;CANADIAN SYLLABICS Y-CREE PWAA
+1449;;;CANADIAN SYLLABICS P
+144A;;;CANADIAN SYLLABICS WEST-CREE P
+144B;;;CANADIAN SYLLABICS CARRIER H
+144C;;;CANADIAN SYLLABICS TE
+144D;;;CANADIAN SYLLABICS TAAI
+144E;;;CANADIAN SYLLABICS TI
+144F;;;CANADIAN SYLLABICS TII
+#
+1450;;;CANADIAN SYLLABICS TO
+1451;;;CANADIAN SYLLABICS TOO
+1452;;;CANADIAN SYLLABICS Y-CREE TOO
+1453;;;CANADIAN SYLLABICS CARRIER DEE
+1454;;;CANADIAN SYLLABICS CARRIER DI
+1455;;;CANADIAN SYLLABICS TA
+1456;;;CANADIAN SYLLABICS TAA
+1457;;;CANADIAN SYLLABICS TWE
+1458;;;CANADIAN SYLLABICS WEST-CREE TWE
+1459;;;CANADIAN SYLLABICS TWI
+145A;;;CANADIAN SYLLABICS WEST-CREE TWI
+145B;;;CANADIAN SYLLABICS TWII
+145C;;;CANADIAN SYLLABICS WEST-CREE TWII
+145D;;;CANADIAN SYLLABICS TWO
+145E;;;CANADIAN SYLLABICS WEST-CREE TWO
+145F;;;CANADIAN SYLLABICS TWOO
+#
+1460;;;CANADIAN SYLLABICS WEST-CREE TWOO
+1461;;;CANADIAN SYLLABICS TWA
+1462;;;CANADIAN SYLLABICS WEST-CREE TWA
+1463;;;CANADIAN SYLLABICS TWAA
+1464;;;CANADIAN SYLLABICS WEST-CREE TWAA
+1465;;;CANADIAN SYLLABICS NASKAPI TWAA
+1466;;;CANADIAN SYLLABICS T
+1467;;;CANADIAN SYLLABICS TTE
+1468;;;CANADIAN SYLLABICS TTI
+1469;;;CANADIAN SYLLABICS TTO
+146A;;;CANADIAN SYLLABICS TTA
+146B;;;CANADIAN SYLLABICS KE
+146C;;;CANADIAN SYLLABICS KAAI
+146D;;;CANADIAN SYLLABICS KI
+146E;;;CANADIAN SYLLABICS KII
+146F;;;CANADIAN SYLLABICS KO
+#
+1470;;;CANADIAN SYLLABICS KOO
+1471;;;CANADIAN SYLLABICS Y-CREE KOO
+1472;;;CANADIAN SYLLABICS KA
+1473;;;CANADIAN SYLLABICS KAA
+1474;;;CANADIAN SYLLABICS KWE
+1475;;;CANADIAN SYLLABICS WEST-CREE KWE
+1476;;;CANADIAN SYLLABICS KWI
+1477;;;CANADIAN SYLLABICS WEST-CREE KWI
+1478;;;CANADIAN SYLLABICS KWII
+1479;;;CANADIAN SYLLABICS WEST-CREE KWII
+147A;;;CANADIAN SYLLABICS KWO
+147B;;;CANADIAN SYLLABICS WEST-CREE KWO
+147C;;;CANADIAN SYLLABICS KWOO
+147D;;;CANADIAN SYLLABICS WEST-CREE KWOO
+147E;;;CANADIAN SYLLABICS KWA
+147F;;;CANADIAN SYLLABICS WEST-CREE KWA
+#
+1480;;;CANADIAN SYLLABICS KWAA
+1481;;;CANADIAN SYLLABICS WEST-CREE KWAA
+1482;;;CANADIAN SYLLABICS NASKAPI KWAA
+1483;;;CANADIAN SYLLABICS K
+1484;;;CANADIAN SYLLABICS KW
+1485;;;CANADIAN SYLLABICS SOUTH-SLAVEY KEH
+1486;;;CANADIAN SYLLABICS SOUTH-SLAVEY KIH
+1487;;;CANADIAN SYLLABICS SOUTH-SLAVEY KOH
+1488;;;CANADIAN SYLLABICS SOUTH-SLAVEY KAH
+1489;;;CANADIAN SYLLABICS CE
+148A;;;CANADIAN SYLLABICS CAAI
+148B;;;CANADIAN SYLLABICS CI
+148C;;;CANADIAN SYLLABICS CII
+148D;;;CANADIAN SYLLABICS CO
+148E;;;CANADIAN SYLLABICS COO
+148F;;;CANADIAN SYLLABICS Y-CREE COO
+#
+1490;;;CANADIAN SYLLABICS CA
+1491;;;CANADIAN SYLLABICS CAA
+1492;;;CANADIAN SYLLABICS CWE
+1493;;;CANADIAN SYLLABICS WEST-CREE CWE
+1494;;;CANADIAN SYLLABICS CWI
+1495;;;CANADIAN SYLLABICS WEST-CREE CWI
+1496;;;CANADIAN SYLLABICS CWII
+1497;;;CANADIAN SYLLABICS WEST-CREE CWII
+1498;;;CANADIAN SYLLABICS CWO
+1499;;;CANADIAN SYLLABICS WEST-CREE CWO
+149A;;;CANADIAN SYLLABICS CWOO
+149B;;;CANADIAN SYLLABICS WEST-CREE CWOO
+149C;;;CANADIAN SYLLABICS CWA
+149D;;;CANADIAN SYLLABICS WEST-CREE CWA
+149E;;;CANADIAN SYLLABICS CWAA
+149F;;;CANADIAN SYLLABICS WEST-CREE CWAA
+#
+14A0;;;CANADIAN SYLLABICS NASKAPI CWAA
+14A1;;;CANADIAN SYLLABICS C
+14A2;;;CANADIAN SYLLABICS SAYISI TH
+14A3;;;CANADIAN SYLLABICS ME
+14A4;;;CANADIAN SYLLABICS MAAI
+14A5;;;CANADIAN SYLLABICS MI
+14A6;;;CANADIAN SYLLABICS MII
+14A7;;;CANADIAN SYLLABICS MO
+14A8;;;CANADIAN SYLLABICS MOO
+14A9;;;CANADIAN SYLLABICS Y-CREE MOO
+14AA;;;CANADIAN SYLLABICS MA
+14AB;;;CANADIAN SYLLABICS MAA
+14AC;;;CANADIAN SYLLABICS MWE
+14AD;;;CANADIAN SYLLABICS WEST-CREE MWE
+14AE;;;CANADIAN SYLLABICS MWI
+14AF;;;CANADIAN SYLLABICS WEST-CREE MWI
+#
+14B0;;;CANADIAN SYLLABICS MWII
+14B1;;;CANADIAN SYLLABICS WEST-CREE MWII
+14B2;;;CANADIAN SYLLABICS MWO
+14B3;;;CANADIAN SYLLABICS WEST-CREE MWO
+14B4;;;CANADIAN SYLLABICS MWOO
+14B5;;;CANADIAN SYLLABICS WEST-CREE MWOO
+14B6;;;CANADIAN SYLLABICS MWA
+14B7;;;CANADIAN SYLLABICS WEST-CREE MWA
+14B8;;;CANADIAN SYLLABICS MWAA
+14B9;;;CANADIAN SYLLABICS WEST-CREE MWAA
+14BA;;;CANADIAN SYLLABICS NASKAPI MWAA
+14BB;;;CANADIAN SYLLABICS M
+14BC;;;CANADIAN SYLLABICS WEST-CREE M
+14BD;;;CANADIAN SYLLABICS MH
+14BE;;;CANADIAN SYLLABICS ATHAPASCAN M
+14BF;;;CANADIAN SYLLABICS SAYISI M
+#
+14C0;;;CANADIAN SYLLABICS NE
+14C1;;;CANADIAN SYLLABICS NAAI
+14C2;;;CANADIAN SYLLABICS NI
+14C3;;;CANADIAN SYLLABICS NII
+14C4;;;CANADIAN SYLLABICS NO
+14C5;;;CANADIAN SYLLABICS NOO
+14C6;;;CANADIAN SYLLABICS Y-CREE NOO
+14C7;;;CANADIAN SYLLABICS NA
+14C8;;;CANADIAN SYLLABICS NAA
+14C9;;;CANADIAN SYLLABICS NWE
+14CA;;;CANADIAN SYLLABICS WEST-CREE NWE
+14CB;;;CANADIAN SYLLABICS NWA
+14CC;;;CANADIAN SYLLABICS WEST-CREE NWA
+14CD;;;CANADIAN SYLLABICS NWAA
+14CE;;;CANADIAN SYLLABICS WEST-CREE NWAA
+14CF;;;CANADIAN SYLLABICS NASKAPI NWAA
+#
+14D0;;;CANADIAN SYLLABICS N
+14D1;;;CANADIAN SYLLABICS CARRIER NG
+14D2;;;CANADIAN SYLLABICS NH
+14D3;;;CANADIAN SYLLABICS LE
+14D4;;;CANADIAN SYLLABICS LAAI
+14D5;;;CANADIAN SYLLABICS LI
+14D6;;;CANADIAN SYLLABICS LII
+14D7;;;CANADIAN SYLLABICS LO
+14D8;;;CANADIAN SYLLABICS LOO
+14D9;;;CANADIAN SYLLABICS Y-CREE LOO
+14DA;;;CANADIAN SYLLABICS LA
+14DB;;;CANADIAN SYLLABICS LAA
+14DC;;;CANADIAN SYLLABICS LWE
+14DD;;;CANADIAN SYLLABICS WEST-CREE LWE
+14DE;;;CANADIAN SYLLABICS LWI
+14DF;;;CANADIAN SYLLABICS WEST-CREE LWI
+#
+14E0;;;CANADIAN SYLLABICS LWII
+14E1;;;CANADIAN SYLLABICS WEST-CREE LWII
+14E2;;;CANADIAN SYLLABICS LWO
+14E3;;;CANADIAN SYLLABICS WEST-CREE LWO
+14E4;;;CANADIAN SYLLABICS LWOO
+14E5;;;CANADIAN SYLLABICS WEST-CREE LWOO
+14E6;;;CANADIAN SYLLABICS LWA
+14E7;;;CANADIAN SYLLABICS WEST-CREE LWA
+14E8;;;CANADIAN SYLLABICS LWAA
+14E9;;;CANADIAN SYLLABICS WEST-CREE LWAA
+14EA;;;CANADIAN SYLLABICS L
+14EB;;;CANADIAN SYLLABICS WEST-CREE L
+14EC;;;CANADIAN SYLLABICS MEDIAL L
+14ED;;;CANADIAN SYLLABICS SE
+14EE;;;CANADIAN SYLLABICS SAAI
+14EF;;;CANADIAN SYLLABICS SI
+#
+14F0;;;CANADIAN SYLLABICS SII
+14F1;;;CANADIAN SYLLABICS SO
+14F2;;;CANADIAN SYLLABICS SOO
+14F3;;;CANADIAN SYLLABICS Y-CREE SOO
+14F4;;;CANADIAN SYLLABICS SA
+14F5;;;CANADIAN SYLLABICS SAA
+14F6;;;CANADIAN SYLLABICS SWE
+14F7;;;CANADIAN SYLLABICS WEST-CREE SWE
+14F8;;;CANADIAN SYLLABICS SWI
+14F9;;;CANADIAN SYLLABICS WEST-CREE SWI
+14FA;;;CANADIAN SYLLABICS SWII
+14FB;;;CANADIAN SYLLABICS WEST-CREE SWII
+14FC;;;CANADIAN SYLLABICS SWO
+14FD;;;CANADIAN SYLLABICS WEST-CREE SWO
+14FE;;;CANADIAN SYLLABICS SWOO
+14FF;;;CANADIAN SYLLABICS WEST-CREE SWOO
+#
+1500;;;CANADIAN SYLLABICS SWA
+1501;;;CANADIAN SYLLABICS WEST-CREE SWA
+1502;;;CANADIAN SYLLABICS SWAA
+1503;;;CANADIAN SYLLABICS WEST-CREE SWAA
+1504;;;CANADIAN SYLLABICS NASKAPI SWAA
+1505;;;CANADIAN SYLLABICS S
+1506;;;CANADIAN SYLLABICS ATHAPASCAN S
+1507;;;CANADIAN SYLLABICS SW
+1508;;;CANADIAN SYLLABICS BLACKFOOT S
+1509;;;CANADIAN SYLLABICS MOOSE-CREE SK
+150A;;;CANADIAN SYLLABICS NASKAPI SKW
+150B;;;CANADIAN SYLLABICS NASKAPI S-W
+150C;;;CANADIAN SYLLABICS NASKAPI SPWA
+150D;;;CANADIAN SYLLABICS NASKAPI STWA
+150E;;;CANADIAN SYLLABICS NASKAPI SKWA
+150F;;;CANADIAN SYLLABICS NASKAPI SCWA
+#
+1510;;;CANADIAN SYLLABICS SHE
+1511;;;CANADIAN SYLLABICS SHI
+1512;;;CANADIAN SYLLABICS SHII
+1513;;;CANADIAN SYLLABICS SHO
+1514;;;CANADIAN SYLLABICS SHOO
+1515;;;CANADIAN SYLLABICS SHA
+1516;;;CANADIAN SYLLABICS SHAA
+1517;;;CANADIAN SYLLABICS SHWE
+1518;;;CANADIAN SYLLABICS WEST-CREE SHWE
+1519;;;CANADIAN SYLLABICS SHWI
+151A;;;CANADIAN SYLLABICS WEST-CREE SHWI
+151B;;;CANADIAN SYLLABICS SHWII
+151C;;;CANADIAN SYLLABICS WEST-CREE SHWII
+151D;;;CANADIAN SYLLABICS SHWO
+151E;;;CANADIAN SYLLABICS WEST-CREE SHWO
+151F;;;CANADIAN SYLLABICS SHWOO
+#
+1520;;;CANADIAN SYLLABICS WEST-CREE SHWOO
+1521;;;CANADIAN SYLLABICS SHWA
+1522;;;CANADIAN SYLLABICS WEST-CREE SHWA
+1523;;;CANADIAN SYLLABICS SHWAA
+1524;;;CANADIAN SYLLABICS WEST-CREE SHWAA
+1525;;;CANADIAN SYLLABICS SH
+1526;;;CANADIAN SYLLABICS YE
+1527;;;CANADIAN SYLLABICS YAAI
+1528;;;CANADIAN SYLLABICS YI
+1529;;;CANADIAN SYLLABICS YII
+152A;;;CANADIAN SYLLABICS YO
+152B;;;CANADIAN SYLLABICS YOO
+152C;;;CANADIAN SYLLABICS Y-CREE YOO
+152D;;;CANADIAN SYLLABICS YA
+152E;;;CANADIAN SYLLABICS YAA
+152F;;;CANADIAN SYLLABICS YWE
+#
+1530;;;CANADIAN SYLLABICS WEST-CREE YWE
+1531;;;CANADIAN SYLLABICS YWI
+1532;;;CANADIAN SYLLABICS WEST-CREE YWI
+1533;;;CANADIAN SYLLABICS YWII
+1534;;;CANADIAN SYLLABICS WEST-CREE YWII
+1535;;;CANADIAN SYLLABICS YWO
+1536;;;CANADIAN SYLLABICS WEST-CREE YWO
+1537;;;CANADIAN SYLLABICS YWOO
+1538;;;CANADIAN SYLLABICS WEST-CREE YWOO
+1539;;;CANADIAN SYLLABICS YWA
+153A;;;CANADIAN SYLLABICS WEST-CREE YWA
+153B;;;CANADIAN SYLLABICS YWAA
+153C;;;CANADIAN SYLLABICS WEST-CREE YWAA
+153D;;;CANADIAN SYLLABICS NASKAPI YWAA
+153E;;;CANADIAN SYLLABICS Y
+153F;;;CANADIAN SYLLABICS BIBLE-CREE Y
+#
+1540;;;CANADIAN SYLLABICS WEST-CREE Y
+1541;;;CANADIAN SYLLABICS SAYISI YI
+1542;;;CANADIAN SYLLABICS RE
+1543;;;CANADIAN SYLLABICS R-CREE RE
+1544;;;CANADIAN SYLLABICS WEST-CREE LE
+1545;;;CANADIAN SYLLABICS RAAI
+1546;;;CANADIAN SYLLABICS RI
+1547;;;CANADIAN SYLLABICS RII
+1548;;;CANADIAN SYLLABICS RO
+1549;;;CANADIAN SYLLABICS ROO
+154A;;;CANADIAN SYLLABICS WEST-CREE LO
+154B;;;CANADIAN SYLLABICS RA
+154C;;;CANADIAN SYLLABICS RAA
+154D;;;CANADIAN SYLLABICS WEST-CREE LA
+154E;;;CANADIAN SYLLABICS RWAA
+154F;;;CANADIAN SYLLABICS WEST-CREE RWAA
+#
+1550;;;CANADIAN SYLLABICS R
+1551;;;CANADIAN SYLLABICS WEST-CREE R
+1552;;;CANADIAN SYLLABICS MEDIAL R
+1553;;;CANADIAN SYLLABICS FE
+1554;;;CANADIAN SYLLABICS FAAI
+1555;;;CANADIAN SYLLABICS FI
+1556;;;CANADIAN SYLLABICS FII
+1557;;;CANADIAN SYLLABICS FO
+1558;;;CANADIAN SYLLABICS FOO
+1559;;;CANADIAN SYLLABICS FA
+155A;;;CANADIAN SYLLABICS FAA
+155B;;;CANADIAN SYLLABICS FWAA
+155C;;;CANADIAN SYLLABICS WEST-CREE FWAA
+155D;;;CANADIAN SYLLABICS F
+155E;;;CANADIAN SYLLABICS THE
+155F;;;CANADIAN SYLLABICS N-CREE THE
+#
+1560;;;CANADIAN SYLLABICS THI
+1561;;;CANADIAN SYLLABICS N-CREE THI
+1562;;;CANADIAN SYLLABICS THII
+1563;;;CANADIAN SYLLABICS N-CREE THII
+1564;;;CANADIAN SYLLABICS THO
+1565;;;CANADIAN SYLLABICS THOO
+1566;;;CANADIAN SYLLABICS THA
+1567;;;CANADIAN SYLLABICS THAA
+1568;;;CANADIAN SYLLABICS THWAA
+1569;;;CANADIAN SYLLABICS WEST-CREE THWAA
+156A;;;CANADIAN SYLLABICS TH
+156B;;;CANADIAN SYLLABICS TTHE
+156C;;;CANADIAN SYLLABICS TTHI
+156D;;;CANADIAN SYLLABICS TTHO
+156E;;;CANADIAN SYLLABICS TTHA
+156F;;;CANADIAN SYLLABICS TTH
+#
+1570;;;CANADIAN SYLLABICS TYE
+1571;;;CANADIAN SYLLABICS TYI
+1572;;;CANADIAN SYLLABICS TYO
+1573;;;CANADIAN SYLLABICS TYA
+1574;;;CANADIAN SYLLABICS NUNAVIK HE
+1575;;;CANADIAN SYLLABICS NUNAVIK HI
+1576;;;CANADIAN SYLLABICS NUNAVIK HII
+1577;;;CANADIAN SYLLABICS NUNAVIK HO
+1578;;;CANADIAN SYLLABICS NUNAVIK HOO
+1579;;;CANADIAN SYLLABICS NUNAVIK HA
+157A;;;CANADIAN SYLLABICS NUNAVIK HAA
+157B;;;CANADIAN SYLLABICS NUNAVIK H
+157C;;;CANADIAN SYLLABICS NUNAVUT H
+157D;;;CANADIAN SYLLABICS HK
+157E;;;CANADIAN SYLLABICS QAAI
+157F;;;CANADIAN SYLLABICS QI
+#
+1580;;;CANADIAN SYLLABICS QII
+1581;;;CANADIAN SYLLABICS QO
+1582;;;CANADIAN SYLLABICS QOO
+1583;;;CANADIAN SYLLABICS QA
+1584;;;CANADIAN SYLLABICS QAA
+1585;;;CANADIAN SYLLABICS Q
+1586;;;CANADIAN SYLLABICS TLHE
+1587;;;CANADIAN SYLLABICS TLHI
+1588;;;CANADIAN SYLLABICS TLHO
+1589;;;CANADIAN SYLLABICS TLHA
+158A;;;CANADIAN SYLLABICS WEST-CREE RE
+158B;;;CANADIAN SYLLABICS WEST-CREE RI
+158C;;;CANADIAN SYLLABICS WEST-CREE RO
+158D;;;CANADIAN SYLLABICS WEST-CREE RA
+158E;;;CANADIAN SYLLABICS NGAAI
+158F;;;CANADIAN SYLLABICS NGI
+#
+1590;;;CANADIAN SYLLABICS NGII
+1591;;;CANADIAN SYLLABICS NGO
+1592;;;CANADIAN SYLLABICS NGOO
+1593;;;CANADIAN SYLLABICS NGA
+1594;;;CANADIAN SYLLABICS NGAA
+1595;;;CANADIAN SYLLABICS NG
+1596;;;CANADIAN SYLLABICS NNG
+1597;;;CANADIAN SYLLABICS SAYISI SHE
+1598;;;CANADIAN SYLLABICS SAYISI SHI
+1599;;;CANADIAN SYLLABICS SAYISI SHO
+159A;;;CANADIAN SYLLABICS SAYISI SHA
+159B;;;CANADIAN SYLLABICS WOODS-CREE THE
+159C;;;CANADIAN SYLLABICS WOODS-CREE THI
+159D;;;CANADIAN SYLLABICS WOODS-CREE THO
+159E;;;CANADIAN SYLLABICS WOODS-CREE THA
+159F;;;CANADIAN SYLLABICS WOODS-CREE TH
+#
+15A0;;;CANADIAN SYLLABICS LHI
+15A1;;;CANADIAN SYLLABICS LHII
+15A2;;;CANADIAN SYLLABICS LHO
+15A3;;;CANADIAN SYLLABICS LHOO
+15A4;;;CANADIAN SYLLABICS LHA
+15A5;;;CANADIAN SYLLABICS LHAA
+15A6;;;CANADIAN SYLLABICS LH
+15A7;;;CANADIAN SYLLABICS TH-CREE THE
+15A8;;;CANADIAN SYLLABICS TH-CREE THI
+15A9;;;CANADIAN SYLLABICS TH-CREE THII
+15AA;;;CANADIAN SYLLABICS TH-CREE THO
+15AB;;;CANADIAN SYLLABICS TH-CREE THOO
+15AC;;;CANADIAN SYLLABICS TH-CREE THA
+15AD;;;CANADIAN SYLLABICS TH-CREE THAA
+15AE;;;CANADIAN SYLLABICS TH-CREE TH
+15AF;;;CANADIAN SYLLABICS AIVILIK B
+#
+15B0;;;CANADIAN SYLLABICS BLACKFOOT E
+15B1;;;CANADIAN SYLLABICS BLACKFOOT I
+15B2;;;CANADIAN SYLLABICS BLACKFOOT O
+15B3;;;CANADIAN SYLLABICS BLACKFOOT A
+15B4;;;CANADIAN SYLLABICS BLACKFOOT WE
+15B5;;;CANADIAN SYLLABICS BLACKFOOT WI
+15B6;;;CANADIAN SYLLABICS BLACKFOOT WO
+15B7;;;CANADIAN SYLLABICS BLACKFOOT WA
+15B8;;;CANADIAN SYLLABICS BLACKFOOT NE
+15B9;;;CANADIAN SYLLABICS BLACKFOOT NI
+15BA;;;CANADIAN SYLLABICS BLACKFOOT NO
+15BB;;;CANADIAN SYLLABICS BLACKFOOT NA
+15BC;;;CANADIAN SYLLABICS BLACKFOOT KE
+15BD;;;CANADIAN SYLLABICS BLACKFOOT KI
+15BE;;;CANADIAN SYLLABICS BLACKFOOT KO
+15BF;;;CANADIAN SYLLABICS BLACKFOOT KA
+#
+15C0;;;CANADIAN SYLLABICS SAYISI HE
+15C1;;;CANADIAN SYLLABICS SAYISI HI
+15C2;;;CANADIAN SYLLABICS SAYISI HO
+15C3;;;CANADIAN SYLLABICS SAYISI HA
+15C4;;;CANADIAN SYLLABICS CARRIER GHU
+15C5;;;CANADIAN SYLLABICS CARRIER GHO
+15C6;;;CANADIAN SYLLABICS CARRIER GHE
+15C7;;;CANADIAN SYLLABICS CARRIER GHEE
+15C8;;;CANADIAN SYLLABICS CARRIER GHI
+15C9;;;CANADIAN SYLLABICS CARRIER GHA
+15CA;;;CANADIAN SYLLABICS CARRIER RU
+15CB;;;CANADIAN SYLLABICS CARRIER RO
+15CC;;;CANADIAN SYLLABICS CARRIER RE
+15CD;;;CANADIAN SYLLABICS CARRIER REE
+15CE;;;CANADIAN SYLLABICS CARRIER RI
+15CF;;;CANADIAN SYLLABICS CARRIER RA
+#
+15D0;;;CANADIAN SYLLABICS CARRIER WU
+15D1;;;CANADIAN SYLLABICS CARRIER WO
+15D2;;;CANADIAN SYLLABICS CARRIER WE
+15D3;;;CANADIAN SYLLABICS CARRIER WEE
+15D4;;;CANADIAN SYLLABICS CARRIER WI
+15D5;;;CANADIAN SYLLABICS CARRIER WA
+15D6;;;CANADIAN SYLLABICS CARRIER HWU
+15D7;;;CANADIAN SYLLABICS CARRIER HWO
+15D8;;;CANADIAN SYLLABICS CARRIER HWE
+15D9;;;CANADIAN SYLLABICS CARRIER HWEE
+15DA;;;CANADIAN SYLLABICS CARRIER HWI
+15DB;;;CANADIAN SYLLABICS CARRIER HWA
+15DC;;;CANADIAN SYLLABICS CARRIER THU
+15DD;;;CANADIAN SYLLABICS CARRIER THO
+15DE;;;CANADIAN SYLLABICS CARRIER THE
+15DF;;;CANADIAN SYLLABICS CARRIER THEE
+#
+15E0;;;CANADIAN SYLLABICS CARRIER THI
+15E1;;;CANADIAN SYLLABICS CARRIER THA
+15E2;;;CANADIAN SYLLABICS CARRIER TTU
+15E3;;;CANADIAN SYLLABICS CARRIER TTO
+15E4;;;CANADIAN SYLLABICS CARRIER TTE
+15E5;;;CANADIAN SYLLABICS CARRIER TTEE
+15E6;;;CANADIAN SYLLABICS CARRIER TTI
+15E7;;;CANADIAN SYLLABICS CARRIER TTA
+15E8;;;CANADIAN SYLLABICS CARRIER PU
+15E9;;;CANADIAN SYLLABICS CARRIER PO
+15EA;;;CANADIAN SYLLABICS CARRIER PE
+15EB;;;CANADIAN SYLLABICS CARRIER PEE
+15EC;;;CANADIAN SYLLABICS CARRIER PI
+15ED;;;CANADIAN SYLLABICS CARRIER PA
+15EE;;;CANADIAN SYLLABICS CARRIER P
+15EF;;;CANADIAN SYLLABICS CARRIER GU
+#
+15F0;;;CANADIAN SYLLABICS CARRIER GO
+15F1;;;CANADIAN SYLLABICS CARRIER GE
+15F2;;;CANADIAN SYLLABICS CARRIER GEE
+15F3;;;CANADIAN SYLLABICS CARRIER GI
+15F4;;;CANADIAN SYLLABICS CARRIER GA
+15F5;;;CANADIAN SYLLABICS CARRIER KHU
+15F6;;;CANADIAN SYLLABICS CARRIER KHO
+15F7;;;CANADIAN SYLLABICS CARRIER KHE
+15F8;;;CANADIAN SYLLABICS CARRIER KHEE
+15F9;;;CANADIAN SYLLABICS CARRIER KHI
+15FA;;;CANADIAN SYLLABICS CARRIER KHA
+15FB;;;CANADIAN SYLLABICS CARRIER KKU
+15FC;;;CANADIAN SYLLABICS CARRIER KKO
+15FD;;;CANADIAN SYLLABICS CARRIER KKE
+15FE;;;CANADIAN SYLLABICS CARRIER KKEE
+15FF;;;CANADIAN SYLLABICS CARRIER KKI
+#
+1600;;;CANADIAN SYLLABICS CARRIER KKA
+1601;;;CANADIAN SYLLABICS CARRIER KK
+1602;;;CANADIAN SYLLABICS CARRIER NU
+1603;;;CANADIAN SYLLABICS CARRIER NO
+1604;;;CANADIAN SYLLABICS CARRIER NE
+1605;;;CANADIAN SYLLABICS CARRIER NEE
+1606;;;CANADIAN SYLLABICS CARRIER NI
+1607;;;CANADIAN SYLLABICS CARRIER NA
+1608;;;CANADIAN SYLLABICS CARRIER MU
+1609;;;CANADIAN SYLLABICS CARRIER MO
+160A;;;CANADIAN SYLLABICS CARRIER ME
+160B;;;CANADIAN SYLLABICS CARRIER MEE
+160C;;;CANADIAN SYLLABICS CARRIER MI
+160D;;;CANADIAN SYLLABICS CARRIER MA
+160E;;;CANADIAN SYLLABICS CARRIER YU
+160F;;;CANADIAN SYLLABICS CARRIER YO
+#
+1610;;;CANADIAN SYLLABICS CARRIER YE
+1611;;;CANADIAN SYLLABICS CARRIER YEE
+1612;;;CANADIAN SYLLABICS CARRIER YI
+1613;;;CANADIAN SYLLABICS CARRIER YA
+1614;;;CANADIAN SYLLABICS CARRIER JU
+1615;;;CANADIAN SYLLABICS SAYISI JU
+1616;;;CANADIAN SYLLABICS CARRIER JO
+1617;;;CANADIAN SYLLABICS CARRIER JE
+1618;;;CANADIAN SYLLABICS CARRIER JEE
+1619;;;CANADIAN SYLLABICS CARRIER JI
+161A;;;CANADIAN SYLLABICS SAYISI JI
+161B;;;CANADIAN SYLLABICS CARRIER JA
+161C;;;CANADIAN SYLLABICS CARRIER JJU
+161D;;;CANADIAN SYLLABICS CARRIER JJO
+161E;;;CANADIAN SYLLABICS CARRIER JJE
+161F;;;CANADIAN SYLLABICS CARRIER JJEE
+#
+1620;;;CANADIAN SYLLABICS CARRIER JJI
+1621;;;CANADIAN SYLLABICS CARRIER JJA
+1622;;;CANADIAN SYLLABICS CARRIER LU
+1623;;;CANADIAN SYLLABICS CARRIER LO
+1624;;;CANADIAN SYLLABICS CARRIER LE
+1625;;;CANADIAN SYLLABICS CARRIER LEE
+1626;;;CANADIAN SYLLABICS CARRIER LI
+1627;;;CANADIAN SYLLABICS CARRIER LA
+1628;;;CANADIAN SYLLABICS CARRIER DLU
+1629;;;CANADIAN SYLLABICS CARRIER DLO
+162A;;;CANADIAN SYLLABICS CARRIER DLE
+162B;;;CANADIAN SYLLABICS CARRIER DLEE
+162C;;;CANADIAN SYLLABICS CARRIER DLI
+162D;;;CANADIAN SYLLABICS CARRIER DLA
+162E;;;CANADIAN SYLLABICS CARRIER LHU
+162F;;;CANADIAN SYLLABICS CARRIER LHO
+#
+1630;;;CANADIAN SYLLABICS CARRIER LHE
+1631;;;CANADIAN SYLLABICS CARRIER LHEE
+1632;;;CANADIAN SYLLABICS CARRIER LHI
+1633;;;CANADIAN SYLLABICS CARRIER LHA
+1634;;;CANADIAN SYLLABICS CARRIER TLHU
+1635;;;CANADIAN SYLLABICS CARRIER TLHO
+1636;;;CANADIAN SYLLABICS CARRIER TLHE
+1637;;;CANADIAN SYLLABICS CARRIER TLHEE
+1638;;;CANADIAN SYLLABICS CARRIER TLHI
+1639;;;CANADIAN SYLLABICS CARRIER TLHA
+163A;;;CANADIAN SYLLABICS CARRIER TLU
+163B;;;CANADIAN SYLLABICS CARRIER TLO
+163C;;;CANADIAN SYLLABICS CARRIER TLE
+163D;;;CANADIAN SYLLABICS CARRIER TLEE
+163E;;;CANADIAN SYLLABICS CARRIER TLI
+163F;;;CANADIAN SYLLABICS CARRIER TLA
+#
+1640;;;CANADIAN SYLLABICS CARRIER ZU
+1641;;;CANADIAN SYLLABICS CARRIER ZO
+1642;;;CANADIAN SYLLABICS CARRIER ZE
+1643;;;CANADIAN SYLLABICS CARRIER ZEE
+1644;;;CANADIAN SYLLABICS CARRIER ZI
+1645;;;CANADIAN SYLLABICS CARRIER ZA
+1646;;;CANADIAN SYLLABICS CARRIER Z
+1647;;;CANADIAN SYLLABICS CARRIER INITIAL Z
+1648;;;CANADIAN SYLLABICS CARRIER DZU
+1649;;;CANADIAN SYLLABICS CARRIER DZO
+164A;;;CANADIAN SYLLABICS CARRIER DZE
+164B;;;CANADIAN SYLLABICS CARRIER DZEE
+164C;;;CANADIAN SYLLABICS CARRIER DZI
+164D;;;CANADIAN SYLLABICS CARRIER DZA
+164E;;;CANADIAN SYLLABICS CARRIER SU
+164F;;;CANADIAN SYLLABICS CARRIER SO
+#
+1650;;;CANADIAN SYLLABICS CARRIER SE
+1651;;;CANADIAN SYLLABICS CARRIER SEE
+1652;;;CANADIAN SYLLABICS CARRIER SI
+1653;;;CANADIAN SYLLABICS CARRIER SA
+1654;;;CANADIAN SYLLABICS CARRIER SHU
+1655;;;CANADIAN SYLLABICS CARRIER SHO
+1656;;;CANADIAN SYLLABICS CARRIER SHE
+1657;;;CANADIAN SYLLABICS CARRIER SHEE
+1658;;;CANADIAN SYLLABICS CARRIER SHI
+1659;;;CANADIAN SYLLABICS CARRIER SHA
+165A;;;CANADIAN SYLLABICS CARRIER SH
+165B;;;CANADIAN SYLLABICS CARRIER TSU
+165C;;;CANADIAN SYLLABICS CARRIER TSO
+165D;;;CANADIAN SYLLABICS CARRIER TSE
+165E;;;CANADIAN SYLLABICS CARRIER TSEE
+165F;;;CANADIAN SYLLABICS CARRIER TSI
+#
+1660;;;CANADIAN SYLLABICS CARRIER TSA
+1661;;;CANADIAN SYLLABICS CARRIER CHU
+1662;;;CANADIAN SYLLABICS CARRIER CHO
+1663;;;CANADIAN SYLLABICS CARRIER CHE
+1664;;;CANADIAN SYLLABICS CARRIER CHEE
+1665;;;CANADIAN SYLLABICS CARRIER CHI
+1666;;;CANADIAN SYLLABICS CARRIER CHA
+1667;;;CANADIAN SYLLABICS CARRIER TTSU
+1668;;;CANADIAN SYLLABICS CARRIER TTSO
+1669;;;CANADIAN SYLLABICS CARRIER TTSE
+166A;;;CANADIAN SYLLABICS CARRIER TTSEE
+166B;;;CANADIAN SYLLABICS CARRIER TTSI
+166C;;;CANADIAN SYLLABICS CARRIER TTSA
+166D;;;CANADIAN SYLLABICS CHI SIGN
+166E;;;CANADIAN SYLLABICS FULL STOP
+166F;;;CANADIAN SYLLABICS QAI
+#
+1670;;;CANADIAN SYLLABICS NGAI
+1671;;;CANADIAN SYLLABICS NNGI
+1672;;;CANADIAN SYLLABICS NNGII
+1673;;;CANADIAN SYLLABICS NNGO
+1674;;;CANADIAN SYLLABICS NNGOO
+1675;;;CANADIAN SYLLABICS NNGA
+1676;;;CANADIAN SYLLABICS NNGAA
+#
+# Ogham
+#
+1680;;;OGHAM SPACE MARK
+1681;;;OGHAM LETTER BEITH
+1682;;;OGHAM LETTER LUIS
+1683;;;OGHAM LETTER FEARN
+1684;;;OGHAM LETTER SAIL
+1685;;;OGHAM LETTER NION
+1686;;;OGHAM LETTER UATH
+1687;;;OGHAM LETTER DAIR
+1688;;;OGHAM LETTER TINNE
+1689;;;OGHAM LETTER COLL
+168A;;;OGHAM LETTER CEIRT
+168B;;;OGHAM LETTER MUIN
+168C;;;OGHAM LETTER GORT
+168D;;;OGHAM LETTER NGEADAL
+168E;;;OGHAM LETTER STRAIF
+168F;;;OGHAM LETTER RUIS
+#
+1690;;;OGHAM LETTER AILM
+1691;;;OGHAM LETTER ONN
+1692;;;OGHAM LETTER UR
+1693;;;OGHAM LETTER EADHADH
+1694;;;OGHAM LETTER IODHADH
+1695;;;OGHAM LETTER EABHADH
+1696;;;OGHAM LETTER OR
+1697;;;OGHAM LETTER UILLEANN
+1698;;;OGHAM LETTER IFIN
+1699;;;OGHAM LETTER EAMHANCHOLL
+169A;;;OGHAM LETTER PEITH
+169B;;;OGHAM FEATHER MARK
+169C;;;OGHAM REVERSED FEATHER MARK
+#
+# Runic
+#
+16A0;;;RUNIC LETTER FEHU FEOH FE F
+16A1;;;RUNIC LETTER V
+16A2;;;RUNIC LETTER URUZ UR U
+16A3;;;RUNIC LETTER YR
+16A4;;;RUNIC LETTER Y
+16A5;;;RUNIC LETTER W
+16A6;;;RUNIC LETTER THURISAZ THURS THORN
+16A7;;;RUNIC LETTER ETH
+16A8;;;RUNIC LETTER ANSUZ A
+16A9;;;RUNIC LETTER OS O
+16AA;;;RUNIC LETTER AC A
+16AB;;;RUNIC LETTER AESC
+16AC;;;RUNIC LETTER LONG-BRANCH-OSS O
+16AD;;;RUNIC LETTER SHORT-TWIG-OSS O
+16AE;;;RUNIC LETTER O
+16AF;;;RUNIC LETTER OE
+#
+16B0;;;RUNIC LETTER ON
+16B1;;;RUNIC LETTER RAIDO RAD REID R
+16B2;;;RUNIC LETTER KAUNA
+16B3;;;RUNIC LETTER CEN
+16B4;;;RUNIC LETTER KAUN K
+16B5;;;RUNIC LETTER G
+16B6;;;RUNIC LETTER ENG
+16B7;;;RUNIC LETTER GEBO GYFU G
+16B8;;;RUNIC LETTER GAR
+16B9;;;RUNIC LETTER WUNJO WYNN W
+16BA;;;RUNIC LETTER HAGLAZ H
+16BB;;;RUNIC LETTER HAEGL H
+16BC;;;RUNIC LETTER LONG-BRANCH-HAGALL H
+16BD;;;RUNIC LETTER SHORT-TWIG-HAGALL H
+16BE;;;RUNIC LETTER NAUDIZ NYD NAUD N
+16BF;;;RUNIC LETTER SHORT-TWIG-NAUD N
+#
+16C0;;;RUNIC LETTER DOTTED-N
+16C1;;;RUNIC LETTER ISAZ IS ISS I
+16C2;;;RUNIC LETTER E
+16C3;;;RUNIC LETTER JERAN J
+16C4;;;RUNIC LETTER GER
+16C5;;;RUNIC LETTER LONG-BRANCH-AR AE
+16C6;;;RUNIC LETTER SHORT-TWIG-AR A
+16C7;;;RUNIC LETTER IWAZ EOH
+16C8;;;RUNIC LETTER PERTHO PEORTH P
+16C9;;;RUNIC LETTER ALGIZ EOLHX
+16CA;;;RUNIC LETTER SOWILO S
+16CB;;;RUNIC LETTER SIGEL LONG-BRANCH-SOL S
+16CC;;;RUNIC LETTER SHORT-TWIG-SOL S
+16CD;;;RUNIC LETTER C
+16CE;;;RUNIC LETTER Z
+16CF;;;RUNIC LETTER TIWAZ TIR TYR T
+#
+16D0;;;RUNIC LETTER SHORT-TWIG-TYR T
+16D1;;;RUNIC LETTER D
+16D2;;;RUNIC LETTER BERKANAN BEORC BJARKAN B
+16D3;;;RUNIC LETTER SHORT-TWIG-BJARKAN B
+16D4;;;RUNIC LETTER DOTTED-P
+16D5;;;RUNIC LETTER OPEN-P
+16D6;;;RUNIC LETTER EHWAZ EH E
+16D7;;;RUNIC LETTER MANNAZ MAN M
+16D8;;;RUNIC LETTER LONG-BRANCH-MADR M
+16D9;;;RUNIC LETTER SHORT-TWIG-MADR M
+16DA;;;RUNIC LETTER LAUKAZ LAGU LOGR L
+16DB;;;RUNIC LETTER DOTTED-L
+16DC;;;RUNIC LETTER INGWAZ
+16DD;;;RUNIC LETTER ING
+16DE;;;RUNIC LETTER DAGAZ DAEG D
+16DF;;;RUNIC LETTER OTHALAN ETHEL O
+#
+16E0;;;RUNIC LETTER EAR
+16E1;;;RUNIC LETTER IOR
+16E2;;;RUNIC LETTER CWEORTH
+16E3;;;RUNIC LETTER CALC
+16E4;;;RUNIC LETTER CEALC
+16E5;;;RUNIC LETTER STAN
+16E6;;;RUNIC LETTER LONG-BRANCH-YR
+16E7;;;RUNIC LETTER SHORT-TWIG-YR
+16E8;;;RUNIC LETTER ICELANDIC-YR
+16E9;;;RUNIC LETTER Q
+16EA;;;RUNIC LETTER X
+16EB;;;RUNIC SINGLE PUNCTUATION
+16EC;;;RUNIC MULTIPLE PUNCTUATION
+16ED;;;RUNIC CROSS PUNCTUATION
+16EE;;;RUNIC ARLAUG SYMBOL
+16EF;;;RUNIC TVIMADUR SYMBOL
+#
+16F0;;;RUNIC BELGTHOR SYMBOL
+#
+# Tagalog
+#
+1700;;;TAGALOG LETTER A
+1701;;;TAGALOG LETTER I
+1702;;;TAGALOG LETTER U
+1703;;;TAGALOG LETTER KA
+1704;;;TAGALOG LETTER GA
+1705;;;TAGALOG LETTER NGA
+1706;;;TAGALOG LETTER TA
+1707;;;TAGALOG LETTER DA
+1708;;;TAGALOG LETTER NA
+1709;;;TAGALOG LETTER PA
+170A;;;TAGALOG LETTER BA
+170B;;;TAGALOG LETTER MA
+170C;;;TAGALOG LETTER YA
+170E;;;TAGALOG LETTER LA
+170F;;;TAGALOG LETTER WA
+#
+1710;;;TAGALOG LETTER SA
+1711;;;TAGALOG LETTER HA
+1712;;;TAGALOG VOWEL SIGN I
+1713;;;TAGALOG VOWEL SIGN U
+1714;;;TAGALOG SIGN VIRAMA
+#
+# Hanunoo
+#
+1720;;;HANUNOO LETTER A
+1721;;;HANUNOO LETTER I
+1722;;;HANUNOO LETTER U
+1723;;;HANUNOO LETTER KA
+1724;;;HANUNOO LETTER GA
+1725;;;HANUNOO LETTER NGA
+1726;;;HANUNOO LETTER TA
+1727;;;HANUNOO LETTER DA
+1728;;;HANUNOO LETTER NA
+1729;;;HANUNOO LETTER PA
+172A;;;HANUNOO LETTER BA
+172B;;;HANUNOO LETTER MA
+172C;;;HANUNOO LETTER YA
+172D;;;HANUNOO LETTER RA
+172E;;;HANUNOO LETTER LA
+172F;;;HANUNOO LETTER WA
+#
+1730;;;HANUNOO LETTER SA
+1731;;;HANUNOO LETTER HA
+1732;;;HANUNOO VOWEL SIGN I
+1733;;;HANUNOO VOWEL SIGN U
+1734;;;HANUNOO SIGN PAMUDPOD
+1735;;;PHILIPPINE SINGLE PUNCTUATION
+1736;;;PHILIPPINE DOUBLE PUNCTUATION
+#
+# Buhid
+#
+1740;;;BUHID LETTER A
+1741;;;BUHID LETTER I
+1742;;;BUHID LETTER U
+1743;;;BUHID LETTER KA
+1744;;;BUHID LETTER GA
+1745;;;BUHID LETTER NGA
+1746;;;BUHID LETTER TA
+1747;;;BUHID LETTER DA
+1748;;;BUHID LETTER NA
+1749;;;BUHID LETTER PA
+174A;;;BUHID LETTER BA
+174B;;;BUHID LETTER MA
+174C;;;BUHID LETTER YA
+174D;;;BUHID LETTER RA
+174E;;;BUHID LETTER LA
+174F;;;BUHID LETTER WA
+#
+1750;;;BUHID LETTER SA
+1751;;;BUHID LETTER HA
+1752;;;BUHID VOWEL SIGN I
+1753;;;BUHID VOWEL SIGN U
+#
+# Tagbanwa
+#
+1760;;;TAGBANWA LETTER A
+1761;;;TAGBANWA LETTER I
+1762;;;TAGBANWA LETTER U
+1763;;;TAGBANWA LETTER KA
+1764;;;TAGBANWA LETTER GA
+1765;;;TAGBANWA LETTER NGA
+1766;;;TAGBANWA LETTER TA
+1767;;;TAGBANWA LETTER DA
+1768;;;TAGBANWA LETTER NA
+1769;;;TAGBANWA LETTER PA
+176A;;;TAGBANWA LETTER BA
+176B;;;TAGBANWA LETTER MA
+176C;;;TAGBANWA LETTER YA
+176E;;;TAGBANWA LETTER LA
+176F;;;TAGBANWA LETTER WA
+#
+1770;;;TAGBANWA LETTER SA
+1772;;;TAGBANWA VOWEL SIGN I
+1773;;;TAGBANWA VOWEL SIGN U
+#
+# Khmer
+#
+1780;;;KHMER LETTER KA
+1781;;;KHMER LETTER KHA
+1782;;;KHMER LETTER KO
+1783;;;KHMER LETTER KHO
+1784;;;KHMER LETTER NGO
+1785;;;KHMER LETTER CA
+1786;;;KHMER LETTER CHA
+1787;;;KHMER LETTER CO
+1788;;;KHMER LETTER CHO
+1789;;;KHMER LETTER NYO
+178A;;;KHMER LETTER DA
+178B;;;KHMER LETTER TTHA
+178C;;;KHMER LETTER DO
+178D;;;KHMER LETTER TTHO
+178E;;;KHMER LETTER NNO
+178F;;;KHMER LETTER TA
+#
+1790;;;KHMER LETTER THA
+1791;;;KHMER LETTER TO
+1792;;;KHMER LETTER THO
+1793;;;KHMER LETTER NO
+1794;;;KHMER LETTER BA
+1795;;;KHMER LETTER PHA
+1796;;;KHMER LETTER PO
+1797;;;KHMER LETTER PHO
+1798;;;KHMER LETTER MO
+1799;;;KHMER LETTER YO
+179A;;;KHMER LETTER RO
+179B;;;KHMER LETTER LO
+179C;;;KHMER LETTER VO
+179D;;;KHMER LETTER SHA
+179E;;;KHMER LETTER SSO
+179F;;;KHMER LETTER SA
+#
+17A0;;;KHMER LETTER HA
+17A1;;;KHMER LETTER LA
+17A2;;;KHMER LETTER QA
+17A3;;;KHMER INDEPENDENT VOWEL QAQ
+17A4;;;KHMER INDEPENDENT VOWEL QAA
+17A5;;;KHMER INDEPENDENT VOWEL QI
+17A6;;;KHMER INDEPENDENT VOWEL QII
+17A7;;;KHMER INDEPENDENT VOWEL QU
+17A8;;;KHMER INDEPENDENT VOWEL QUK
+17A9;;;KHMER INDEPENDENT VOWEL QUU
+17AA;;;KHMER INDEPENDENT VOWEL QUUV
+17AB;;;KHMER INDEPENDENT VOWEL RY
+17AC;;;KHMER INDEPENDENT VOWEL RYY
+17AD;;;KHMER INDEPENDENT VOWEL LY
+17AE;;;KHMER INDEPENDENT VOWEL LYY
+17AF;;;KHMER INDEPENDENT VOWEL QE
+#
+17B0;;;KHMER INDEPENDENT VOWEL QAI
+17B1;;;KHMER INDEPENDENT VOWEL QOO TYPE ONE
+17B2;;;KHMER INDEPENDENT VOWEL QOO TYPE TWO
+17B3;;;KHMER INDEPENDENT VOWEL QAU
+17B4;;;KHMER VOWEL INHERENT AQ
+17B5;;;KHMER VOWEL INHERENT AA
+17B6;;;KHMER VOWEL SIGN AA
+17B7;;;KHMER VOWEL SIGN I
+17B8;;;KHMER VOWEL SIGN II
+17B9;;;KHMER VOWEL SIGN Y
+17BA;;;KHMER VOWEL SIGN YY
+17BB;;;KHMER VOWEL SIGN U
+17BC;;;KHMER VOWEL SIGN UU
+17BD;;;KHMER VOWEL SIGN UA
+17BE;;;KHMER VOWEL SIGN OE
+17BF;;;KHMER VOWEL SIGN YA
+#
+17C0;;;KHMER VOWEL SIGN IE
+17C1;;;KHMER VOWEL SIGN E
+17C2;;;KHMER VOWEL SIGN AE
+17C3;;;KHMER VOWEL SIGN AI
+17C4;;;KHMER VOWEL SIGN OO
+17C5;;;KHMER VOWEL SIGN AU
+17C6;;;KHMER SIGN NIKAHIT
+17C7;;;KHMER SIGN REAHMUK
+17C8;;;KHMER SIGN YUUKALEAPINTU
+17C9;;;KHMER SIGN MUUSIKATOAN
+17CA;;;KHMER SIGN TRIISAP
+17CB;;;KHMER SIGN BANTOC
+17CC;;;KHMER SIGN ROBAT
+17CD;;;KHMER SIGN TOANDAKHIAT
+17CE;;;KHMER SIGN KAKABAT
+17CF;;;KHMER SIGN AHSDA
+#
+17D0;;;KHMER SIGN SAMYOK SANNYA
+17D1;;;KHMER SIGN VIRIAM
+17D2;;;KHMER SIGN COENG
+17D3;;;KHMER SIGN BATHAMASAT
+17D4;;;KHMER SIGN KHAN
+17D5;;;KHMER SIGN BARIYOOSAN
+17D6;;;KHMER SIGN CAMNUC PII KUUH
+17D7;;;KHMER SIGN LEK TOO
+17D8;;;KHMER SIGN BEYYAL
+17D9;;;KHMER SIGN PHNAEK MUAN
+17DA;;;KHMER SIGN KOOMUUT
+17DB;;;KHMER CURRENCY SYMBOL RIEL
+17DC;;;KHMER SIGN AVAKRAHASANYA
+17DD;;;KHMER SIGN ATTHACAN
+#
+17E0;;;KHMER DIGIT ZERO
+17E1;;;KHMER DIGIT ONE
+17E2;;;KHMER DIGIT TWO
+17E3;;;KHMER DIGIT THREE
+17E4;;;KHMER DIGIT FOUR
+17E5;;;KHMER DIGIT FIVE
+17E6;;;KHMER DIGIT SIX
+17E7;;;KHMER DIGIT SEVEN
+17E8;;;KHMER DIGIT EIGHT
+17E9;;;KHMER DIGIT NINE
+#
+17F0;;;KHMER SYMBOL LEK ATTAK SON
+17F1;;;KHMER SYMBOL LEK ATTAK MUOY
+17F2;;;KHMER SYMBOL LEK ATTAK PII
+17F3;;;KHMER SYMBOL LEK ATTAK BEI
+17F4;;;KHMER SYMBOL LEK ATTAK BUON
+17F5;;;KHMER SYMBOL LEK ATTAK PRAM
+17F6;;;KHMER SYMBOL LEK ATTAK PRAM-MUOY
+17F7;;;KHMER SYMBOL LEK ATTAK PRAM-PII
+17F8;;;KHMER SYMBOL LEK ATTAK PRAM-BEI
+17F9;;;KHMER SYMBOL LEK ATTAK PRAM-BUON
+#
+# Mongolian
+#
+1800;;;MONGOLIAN BIRGA
+1801;;;MONGOLIAN ELLIPSIS
+1802;;;MONGOLIAN COMMA
+1803;;;MONGOLIAN FULL STOP
+1804;;;MONGOLIAN COLON
+1805;;;MONGOLIAN FOUR DOTS
+1806;;;MONGOLIAN TODO SOFT HYPHEN
+1807;;;MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER
+1808;;;MONGOLIAN MANCHU COMMA
+1809;;;MONGOLIAN MANCHU FULL STOP
+180A;;;MONGOLIAN NIRUGU
+180B;;;MONGOLIAN FREE VARIATION SELECTOR ONE
+180C;;;MONGOLIAN FREE VARIATION SELECTOR TWO
+180D;;;MONGOLIAN FREE VARIATION SELECTOR THREE
+180E;;;MONGOLIAN VOWEL SEPARATOR
+#
+1810;;;MONGOLIAN DIGIT ZERO
+1811;;;MONGOLIAN DIGIT ONE
+1812;;;MONGOLIAN DIGIT TWO
+1813;;;MONGOLIAN DIGIT THREE
+1814;;;MONGOLIAN DIGIT FOUR
+1815;;;MONGOLIAN DIGIT FIVE
+1816;;;MONGOLIAN DIGIT SIX
+1817;;;MONGOLIAN DIGIT SEVEN
+1818;;;MONGOLIAN DIGIT EIGHT
+1819;;;MONGOLIAN DIGIT NINE
+#
+1820;;;MONGOLIAN LETTER A
+1821;;;MONGOLIAN LETTER E
+1822;;;MONGOLIAN LETTER I
+1823;;;MONGOLIAN LETTER O
+1824;;;MONGOLIAN LETTER U
+1825;;;MONGOLIAN LETTER OE
+1826;;;MONGOLIAN LETTER UE
+1827;;;MONGOLIAN LETTER EE
+1828;;;MONGOLIAN LETTER NA
+1829;;;MONGOLIAN LETTER ANG
+182A;;;MONGOLIAN LETTER BA
+182B;;;MONGOLIAN LETTER PA
+182C;;;MONGOLIAN LETTER QA
+182D;;;MONGOLIAN LETTER GA
+182E;;;MONGOLIAN LETTER MA
+182F;;;MONGOLIAN LETTER LA
+#
+1830;;;MONGOLIAN LETTER SA
+1831;;;MONGOLIAN LETTER SHA
+1832;;;MONGOLIAN LETTER TA
+1833;;;MONGOLIAN LETTER DA
+1834;;;MONGOLIAN LETTER CHA
+1835;;;MONGOLIAN LETTER JA
+1836;;;MONGOLIAN LETTER YA
+1837;;;MONGOLIAN LETTER RA
+1838;;;MONGOLIAN LETTER WA
+1839;;;MONGOLIAN LETTER FA
+183A;;;MONGOLIAN LETTER KA
+183B;;;MONGOLIAN LETTER KHA
+183C;;;MONGOLIAN LETTER TSA
+183D;;;MONGOLIAN LETTER ZA
+183E;;;MONGOLIAN LETTER HAA
+183F;;;MONGOLIAN LETTER ZRA
+#
+1840;;;MONGOLIAN LETTER LHA
+1841;;;MONGOLIAN LETTER ZHI
+1842;;;MONGOLIAN LETTER CHI
+1843;;;MONGOLIAN LETTER TODO LONG VOWEL SIGN
+1844;;;MONGOLIAN LETTER TODO E
+1845;;;MONGOLIAN LETTER TODO I
+1846;;;MONGOLIAN LETTER TODO O
+1847;;;MONGOLIAN LETTER TODO U
+1848;;;MONGOLIAN LETTER TODO OE
+1849;;;MONGOLIAN LETTER TODO UE
+184A;;;MONGOLIAN LETTER TODO ANG
+184B;;;MONGOLIAN LETTER TODO BA
+184C;;;MONGOLIAN LETTER TODO PA
+184D;;;MONGOLIAN LETTER TODO QA
+184E;;;MONGOLIAN LETTER TODO GA
+184F;;;MONGOLIAN LETTER TODO MA
+#
+1850;;;MONGOLIAN LETTER TODO TA
+1851;;;MONGOLIAN LETTER TODO DA
+1852;;;MONGOLIAN LETTER TODO CHA
+1853;;;MONGOLIAN LETTER TODO JA
+1854;;;MONGOLIAN LETTER TODO TSA
+1855;;;MONGOLIAN LETTER TODO YA
+1856;;;MONGOLIAN LETTER TODO WA
+1857;;;MONGOLIAN LETTER TODO KA
+1858;;;MONGOLIAN LETTER TODO GAA
+1859;;;MONGOLIAN LETTER TODO HAA
+185A;;;MONGOLIAN LETTER TODO JIA
+185B;;;MONGOLIAN LETTER TODO NIA
+185C;;;MONGOLIAN LETTER TODO DZA
+185D;;;MONGOLIAN LETTER SIBE E
+185E;;;MONGOLIAN LETTER SIBE I
+185F;;;MONGOLIAN LETTER SIBE IY
+#
+1860;;;MONGOLIAN LETTER SIBE UE
+1861;;;MONGOLIAN LETTER SIBE U
+1862;;;MONGOLIAN LETTER SIBE ANG
+1863;;;MONGOLIAN LETTER SIBE KA
+1864;;;MONGOLIAN LETTER SIBE GA
+1865;;;MONGOLIAN LETTER SIBE HA
+1866;;;MONGOLIAN LETTER SIBE PA
+1867;;;MONGOLIAN LETTER SIBE SHA
+1868;;;MONGOLIAN LETTER SIBE TA
+1869;;;MONGOLIAN LETTER SIBE DA
+186A;;;MONGOLIAN LETTER SIBE JA
+186B;;;MONGOLIAN LETTER SIBE FA
+186C;;;MONGOLIAN LETTER SIBE GAA
+186D;;;MONGOLIAN LETTER SIBE HAA
+186E;;;MONGOLIAN LETTER SIBE TSA
+186F;;;MONGOLIAN LETTER SIBE ZA
+#
+1870;;;MONGOLIAN LETTER SIBE RAA
+1871;;;MONGOLIAN LETTER SIBE CHA
+1872;;;MONGOLIAN LETTER SIBE ZHA
+1873;;;MONGOLIAN LETTER MANCHU I
+1874;;;MONGOLIAN LETTER MANCHU KA
+1875;;;MONGOLIAN LETTER MANCHU RA
+1876;;;MONGOLIAN LETTER MANCHU FA
+1877;;;MONGOLIAN LETTER MANCHU ZHA
+#
+1880;;;MONGOLIAN LETTER ALI GALI ANUSVARA ONE
+1881;;;MONGOLIAN LETTER ALI GALI VISARGA ONE
+1882;;;MONGOLIAN LETTER ALI GALI DAMARU
+1883;;;MONGOLIAN LETTER ALI GALI UBADAMA
+1884;;;MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
+1885;;;MONGOLIAN LETTER ALI GALI BALUDA
+1886;;;MONGOLIAN LETTER ALI GALI THREE BALUDA
+1887;;;MONGOLIAN LETTER ALI GALI A
+1888;;;MONGOLIAN LETTER ALI GALI I
+1889;;;MONGOLIAN LETTER ALI GALI KA
+188A;;;MONGOLIAN LETTER ALI GALI NGA
+188B;;;MONGOLIAN LETTER ALI GALI CA
+188C;;;MONGOLIAN LETTER ALI GALI TTA
+188D;;;MONGOLIAN LETTER ALI GALI TTHA
+188E;;;MONGOLIAN LETTER ALI GALI DDA
+188F;;;MONGOLIAN LETTER ALI GALI NNA
+#
+1890;;;MONGOLIAN LETTER ALI GALI TA
+1891;;;MONGOLIAN LETTER ALI GALI DA
+1892;;;MONGOLIAN LETTER ALI GALI PA
+1893;;;MONGOLIAN LETTER ALI GALI PHA
+1894;;;MONGOLIAN LETTER ALI GALI SSA
+1895;;;MONGOLIAN LETTER ALI GALI ZHA
+1896;;;MONGOLIAN LETTER ALI GALI ZA
+1897;;;MONGOLIAN LETTER ALI GALI AH
+1898;;;MONGOLIAN LETTER TODO ALI GALI TA
+1899;;;MONGOLIAN LETTER TODO ALI GALI ZHA
+189A;;;MONGOLIAN LETTER MANCHU ALI GALI GHA
+189B;;;MONGOLIAN LETTER MANCHU ALI GALI NGA
+189C;;;MONGOLIAN LETTER MANCHU ALI GALI CA
+189D;;;MONGOLIAN LETTER MANCHU ALI GALI JHA
+189E;;;MONGOLIAN LETTER MANCHU ALI GALI TTA
+189F;;;MONGOLIAN LETTER MANCHU ALI GALI DDHA
+#
+18A0;;;MONGOLIAN LETTER MANCHU ALI GALI TA
+18A1;;;MONGOLIAN LETTER MANCHU ALI GALI DHA
+18A2;;;MONGOLIAN LETTER MANCHU ALI GALI SSA
+18A3;;;MONGOLIAN LETTER MANCHU ALI GALI CYA
+18A4;;;MONGOLIAN LETTER MANCHU ALI GALI ZHA
+18A5;;;MONGOLIAN LETTER MANCHU ALI GALI ZA
+18A6;;;MONGOLIAN LETTER ALI GALI HALF U
+18A7;;;MONGOLIAN LETTER ALI GALI HALF YA
+18A8;;;MONGOLIAN LETTER MANCHU ALI GALI BHA
+18A9;;;MONGOLIAN LETTER ALI GALI DAGALGA
+#
+# Limbu
+#
+1900;;;LIMBU VOWEL-CARRIER LETTER
+1901;;;LIMBU LETTER KA
+1902;;;LIMBU LETTER KHA
+1903;;;LIMBU LETTER GA
+1904;;;LIMBU LETTER GHA
+1905;;;LIMBU LETTER NGA
+1906;;;LIMBU LETTER CA
+1907;;;LIMBU LETTER CHA
+1908;;;LIMBU LETTER JA
+1909;;;LIMBU LETTER JHA
+190A;;;LIMBU LETTER YAN
+190B;;;LIMBU LETTER TA
+190C;;;LIMBU LETTER THA
+190D;;;LIMBU LETTER DA
+190E;;;LIMBU LETTER DHA
+190F;;;LIMBU LETTER NA
+#
+1910;;;LIMBU LETTER PA
+1911;;;LIMBU LETTER PHA
+1912;;;LIMBU LETTER BA
+1913;;;LIMBU LETTER BHA
+1914;;;LIMBU LETTER MA
+1915;;;LIMBU LETTER YA
+1916;;;LIMBU LETTER RA
+1917;;;LIMBU LETTER LA
+1918;;;LIMBU LETTER WA
+1919;;;LIMBU LETTER SHA
+191A;;;LIMBU LETTER SSA
+191B;;;LIMBU LETTER SA
+191C;;;LIMBU LETTER HA
+#
+1920;;;LIMBU VOWEL SIGN A
+1921;;;LIMBU VOWEL SIGN I
+1922;;;LIMBU VOWEL SIGN U
+1923;;;LIMBU VOWEL SIGN EE
+1924;;;LIMBU VOWEL SIGN AI
+1925;;;LIMBU VOWEL SIGN OO
+1926;;;LIMBU VOWEL SIGN AU
+1927;;;LIMBU VOWEL SIGN E
+1928;;;LIMBU VOWEL SIGN O
+1929;;;LIMBU SUBJOINED LETTER YA
+192A;;;LIMBU SUBJOINED LETTER RA
+192B;;;LIMBU SUBJOINED LETTER WA
+#
+1930;;;LIMBU SMALL LETTER KA
+1931;;;LIMBU SMALL LETTER NGA
+1932;;;LIMBU SMALL LETTER ANUSVARA
+1933;;;LIMBU SMALL LETTER TA
+1934;;;LIMBU SMALL LETTER NA
+1935;;;LIMBU SMALL LETTER PA
+1936;;;LIMBU SMALL LETTER MA
+1937;;;LIMBU SMALL LETTER RA
+1938;;;LIMBU SMALL LETTER LA
+1939;;;LIMBU SIGN MUKPHRENG
+193A;;;LIMBU SIGN KEMPHRENG
+193B;;;LIMBU SIGN SA-I
+#
+1940;;;LIMBU SIGN LOO
+1944;;;LIMBU EXCLAMATION MARK
+1945;;;LIMBU QUESTION MARK
+1946;;;LIMBU DIGIT ZERO
+1947;;;LIMBU DIGIT ONE
+1948;;;LIMBU DIGIT TWO
+1949;;;LIMBU DIGIT THREE
+194A;;;LIMBU DIGIT FOUR
+194B;;;LIMBU DIGIT FIVE
+194C;;;LIMBU DIGIT SIX
+194D;;;LIMBU DIGIT SEVEN
+194E;;;LIMBU DIGIT EIGHT
+194F;;;LIMBU DIGIT NINE
+#
+# Tai Le
+#
+1950;;;TAI LE LETTER KA
+1951;;;TAI LE LETTER XA
+1952;;;TAI LE LETTER NGA
+1953;;;TAI LE LETTER TSA
+1954;;;TAI LE LETTER SA
+1955;;;TAI LE LETTER YA
+1956;;;TAI LE LETTER TA
+1957;;;TAI LE LETTER THA
+1958;;;TAI LE LETTER LA
+1959;;;TAI LE LETTER PA
+195A;;;TAI LE LETTER PHA
+195B;;;TAI LE LETTER MA
+195C;;;TAI LE LETTER FA
+195D;;;TAI LE LETTER VA
+195E;;;TAI LE LETTER HA
+195F;;;TAI LE LETTER QA
+#
+1960;;;TAI LE LETTER KHA
+1961;;;TAI LE LETTER TSHA
+1962;;;TAI LE LETTER NA
+1963;;;TAI LE LETTER A
+1964;;;TAI LE LETTER I
+1965;;;TAI LE LETTER EE
+1966;;;TAI LE LETTER EH
+1967;;;TAI LE LETTER U
+1968;;;TAI LE LETTER OO
+1969;;;TAI LE LETTER O
+196A;;;TAI LE LETTER UE
+196B;;;TAI LE LETTER E
+196C;;;TAI LE LETTER AUE
+196D;;;TAI LE LETTER AI
+#
+1970;;;TAI LE LETTER TONE-2
+1971;;;TAI LE LETTER TONE-3
+1972;;;TAI LE LETTER TONE-4
+1973;;;TAI LE LETTER TONE-5
+1974;;;TAI LE LETTER TONE-6
+#
+1980;;;NEW TAI LUE LETTER HIGH QA
+1981;;;NEW TAI LUE LETTER LOW QA
+1982;;;NEW TAI LUE LETTER HIGH KA
+1983;;;NEW TAI LUE LETTER HIGH XA
+1984;;;NEW TAI LUE LETTER HIGH NGA
+1985;;;NEW TAI LUE LETTER LOW KA
+1986;;;NEW TAI LUE LETTER LOW XA
+1987;;;NEW TAI LUE LETTER LOW NGA
+1988;;;NEW TAI LUE LETTER HIGH TSA
+1989;;;NEW TAI LUE LETTER HIGH SA
+198A;;;NEW TAI LUE LETTER HIGH YA
+198B;;;NEW TAI LUE LETTER LOW TSA
+198C;;;NEW TAI LUE LETTER LOW SA
+198D;;;NEW TAI LUE LETTER LOW YA
+198E;;;NEW TAI LUE LETTER HIGH TA
+198F;;;NEW TAI LUE LETTER HIGH THA
+#
+1990;;;NEW TAI LUE LETTER HIGH NA
+1991;;;NEW TAI LUE LETTER LOW TA
+1992;;;NEW TAI LUE LETTER LOW THA
+1993;;;NEW TAI LUE LETTER LOW NA
+1994;;;NEW TAI LUE LETTER HIGH PA
+1995;;;NEW TAI LUE LETTER HIGH PHA
+1996;;;NEW TAI LUE LETTER HIGH MA
+1997;;;NEW TAI LUE LETTER LOW PA
+1998;;;NEW TAI LUE LETTER LOW PHA
+1999;;;NEW TAI LUE LETTER LOW MA
+199A;;;NEW TAI LUE LETTER HIGH FA
+199B;;;NEW TAI LUE LETTER HIGH VA
+199C;;;NEW TAI LUE LETTER HIGH LA
+199D;;;NEW TAI LUE LETTER LOW FA
+199E;;;NEW TAI LUE LETTER LOW VA
+199F;;;NEW TAI LUE LETTER LOW LA
+#
+19A0;;;NEW TAI LUE LETTER HIGH HA
+19A1;;;NEW TAI LUE LETTER HIGH DA
+19A2;;;NEW TAI LUE LETTER HIGH BA
+19A3;;;NEW TAI LUE LETTER LOW HA
+19A4;;;NEW TAI LUE LETTER LOW DA
+19A5;;;NEW TAI LUE LETTER LOW BA
+19A6;;;NEW TAI LUE LETTER HIGH KVA
+19A7;;;NEW TAI LUE LETTER HIGH XVA
+19A8;;;NEW TAI LUE LETTER LOW KVA
+19A9;;;NEW TAI LUE LETTER LOW XVA
+#
+19B0;;;NEW TAI LUE VOWEL SIGN VOWEL SHORTENER
+19B1;;;NEW TAI LUE VOWEL SIGN AA
+19B2;;;NEW TAI LUE VOWEL SIGN II
+19B3;;;NEW TAI LUE VOWEL SIGN U
+19B4;;;NEW TAI LUE VOWEL SIGN UU
+19B5;;;NEW TAI LUE VOWEL SIGN E
+19B6;;;NEW TAI LUE VOWEL SIGN AE
+19B7;;;NEW TAI LUE VOWEL SIGN O
+19B8;;;NEW TAI LUE VOWEL SIGN OA
+19B9;;;NEW TAI LUE VOWEL SIGN UE
+19BA;;;NEW TAI LUE VOWEL SIGN AY
+19BB;;;NEW TAI LUE VOWEL SIGN AAY
+19BC;;;NEW TAI LUE VOWEL SIGN UY
+19BD;;;NEW TAI LUE VOWEL SIGN OY
+19BE;;;NEW TAI LUE VOWEL SIGN OAY
+19BF;;;NEW TAI LUE VOWEL SIGN UEY
+#
+19C0;;;NEW TAI LUE VOWEL SIGN IY
+19C1;;;NEW TAI LUE LETTER FINAL V
+19C2;;;NEW TAI LUE LETTER FINAL NG
+19C3;;;NEW TAI LUE LETTER FINAL N
+19C4;;;NEW TAI LUE LETTER FINAL M
+19C5;;;NEW TAI LUE LETTER FINAL K
+19C6;;;NEW TAI LUE LETTER FINAL D
+19C7;;;NEW TAI LUE LETTER FINAL B
+19C8;;;NEW TAI LUE TONE MARK-1
+19C9;;;NEW TAI LUE TONE MARK-2
+#
+19D0;;;NEW TAI LUE DIGIT ZERO
+19D1;;;NEW TAI LUE DIGIT ONE
+19D2;;;NEW TAI LUE DIGIT TWO
+19D3;;;NEW TAI LUE DIGIT THREE
+19D4;;;NEW TAI LUE DIGIT FOUR
+19D5;;;NEW TAI LUE DIGIT FIVE
+19D6;;;NEW TAI LUE DIGIT SIX
+19D7;;;NEW TAI LUE DIGIT SEVEN
+19D8;;;NEW TAI LUE DIGIT EIGHT
+19D9;;;NEW TAI LUE DIGIT NINE
+19DE;;;NEW TAI LUE SIGN LAE
+19DF;;;NEW TAI LUE SIGN LAEV
+#
+# Khmer Symbols
+#
+19E0;;;KHMER SYMBOL PATHAMASAT
+19E1;;;KHMER SYMBOL MUOY KOET
+19E2;;;KHMER SYMBOL PII KOET
+19E3;;;KHMER SYMBOL BEI KOET
+19E4;;;KHMER SYMBOL BUON KOET
+19E5;;;KHMER SYMBOL PRAM KOET
+19E6;;;KHMER SYMBOL PRAM-MUOY KOET
+19E7;;;KHMER SYMBOL PRAM-PII KOET
+19E8;;;KHMER SYMBOL PRAM-BEI KOET
+19E9;;;KHMER SYMBOL PRAM-BUON KOET
+19EA;;;KHMER SYMBOL DAP KOET
+19EB;;;KHMER SYMBOL DAP-MUOY KOET
+19EC;;;KHMER SYMBOL DAP-PII KOET
+19ED;;;KHMER SYMBOL DAP-BEI KOET
+19EE;;;KHMER SYMBOL DAP-BUON KOET
+19EF;;;KHMER SYMBOL DAP-PRAM KOET
+#
+19F0;;;KHMER SYMBOL TUTEYASAT
+19F1;;;KHMER SYMBOL MUOY ROC
+19F2;;;KHMER SYMBOL PII ROC
+19F3;;;KHMER SYMBOL BEI ROC
+19F4;;;KHMER SYMBOL BUON ROC
+19F5;;;KHMER SYMBOL PRAM ROC
+19F6;;;KHMER SYMBOL PRAM-MUOY ROC
+19F7;;;KHMER SYMBOL PRAM-PII ROC
+19F8;;;KHMER SYMBOL PRAM-BEI ROC
+19F9;;;KHMER SYMBOL PRAM-BUON ROC
+19FA;;;KHMER SYMBOL DAP ROC
+19FB;;;KHMER SYMBOL DAP-MUOY ROC
+19FC;;;KHMER SYMBOL DAP-PII ROC
+19FD;;;KHMER SYMBOL DAP-BEI ROC
+19FE;;;KHMER SYMBOL DAP-BUON ROC
+19FF;;;KHMER SYMBOL DAP-PRAM ROC
+#
+1A00;;;BUGINESE LETTER KA
+1A01;;;BUGINESE LETTER GA
+1A02;;;BUGINESE LETTER NGA
+1A03;;;BUGINESE LETTER NGKA
+1A04;;;BUGINESE LETTER PA
+1A05;;;BUGINESE LETTER BA
+1A06;;;BUGINESE LETTER MA
+1A07;;;BUGINESE LETTER MPA
+1A08;;;BUGINESE LETTER TA
+1A09;;;BUGINESE LETTER DA
+1A0A;;;BUGINESE LETTER NA
+1A0B;;;BUGINESE LETTER NRA
+1A0C;;;BUGINESE LETTER CA
+1A0D;;;BUGINESE LETTER JA
+1A0E;;;BUGINESE LETTER NYA
+1A0F;;;BUGINESE LETTER NYCA
+#
+1A10;;;BUGINESE LETTER YA
+1A11;;;BUGINESE LETTER RA
+1A12;;;BUGINESE LETTER LA
+1A13;;;BUGINESE LETTER VA
+1A14;;;BUGINESE LETTER SA
+1A15;;;BUGINESE LETTER A
+1A16;;;BUGINESE LETTER HA
+1A17;;;BUGINESE VOWEL SIGN I
+1A18;;;BUGINESE VOWEL SIGN U
+1A19;;;BUGINESE VOWEL SIGN E
+1A1A;;;BUGINESE VOWEL SIGN O
+1A1B;;;BUGINESE VOWEL SIGN AE
+1A1E;;;BUGINESE PALLAWA
+1A1F;;;BUGINESE END OF SECTION
+#
+# Phonetic Extensions
+#
+1D00;;;LATIN LETTER SMALL CAPITAL A
+1D01;;;LATIN LETTER SMALL CAPITAL AE
+1D02;;;LATIN SMALL LETTER TURNED AE
+1D03;;;LATIN LETTER SMALL CAPITAL BARRED B
+1D04;;;LATIN LETTER SMALL CAPITAL C
+1D05;;;LATIN LETTER SMALL CAPITAL D
+1D06;;;LATIN LETTER SMALL CAPITAL ETH
+1D07;;;LATIN LETTER SMALL CAPITAL E
+1D08;;;LATIN SMALL LETTER TURNED OPEN E
+1D09;;;LATIN SMALL LETTER TURNED I
+1D0A;;;LATIN LETTER SMALL CAPITAL J
+1D0B;;;LATIN LETTER SMALL CAPITAL K
+1D0C;;;LATIN LETTER SMALL CAPITAL L WITH STROKE
+1D0D;;;LATIN LETTER SMALL CAPITAL M
+1D0E;;;LATIN LETTER SMALL CAPITAL REVERSED N
+1D0F;;;LATIN LETTER SMALL CAPITAL O
+#
+1D10;;;LATIN LETTER SMALL CAPITAL OPEN O
+1D11;;;LATIN SMALL LETTER SIDEWAYS O
+1D12;;;LATIN SMALL LETTER SIDEWAYS OPEN O
+1D13;;;LATIN SMALL LETTER SIDEWAYS O WITH STROKE
+1D14;;;LATIN SMALL LETTER TURNED OE
+1D15;;;LATIN LETTER SMALL CAPITAL OU
+1D16;;;LATIN SMALL LETTER TOP HALF O
+1D17;;;LATIN SMALL LETTER BOTTOM HALF O
+1D18;;;LATIN LETTER SMALL CAPITAL P
+1D19;;;LATIN LETTER SMALL CAPITAL REVERSED R
+1D1A;;;LATIN LETTER SMALL CAPITAL TURNED R
+1D1B;;;LATIN LETTER SMALL CAPITAL T
+1D1C;;;LATIN LETTER SMALL CAPITAL U
+1D1D;;;LATIN SMALL LETTER SIDEWAYS U
+1D1E;;;LATIN SMALL LETTER SIDEWAYS DIAERESIZED U
+1D1F;;;LATIN SMALL LETTER SIDEWAYS TURNED M
+#
+1D20;;;LATIN LETTER SMALL CAPITAL V
+1D21;;;LATIN LETTER SMALL CAPITAL W
+1D22;;;LATIN LETTER SMALL CAPITAL Z
+1D23;;;LATIN LETTER SMALL CAPITAL EZH
+1D24;;;LATIN LETTER VOICED LARYNGEAL SPIRANT
+1D25;;;LATIN LETTER AIN
+1D26;;;GREEK LETTER SMALL CAPITAL GAMMA
+1D27;;;GREEK LETTER SMALL CAPITAL LAMDA
+1D28;;;GREEK LETTER SMALL CAPITAL PI
+1D29;;;GREEK LETTER SMALL CAPITAL RHO
+1D2A;;;GREEK LETTER SMALL CAPITAL PSI
+1D2B;;;CYRILLIC LETTER SMALL CAPITAL EL
+1D2C;;;MODIFIER LETTER CAPITAL A
+1D2D;;;MODIFIER LETTER CAPITAL AE
+1D2E;;;MODIFIER LETTER CAPITAL B
+1D2F;;;MODIFIER LETTER CAPITAL BARRED B
+#
+1D30;;;MODIFIER LETTER CAPITAL D
+1D31;;;MODIFIER LETTER CAPITAL E
+1D32;;;MODIFIER LETTER CAPITAL REVERSED E
+1D33;;;MODIFIER LETTER CAPITAL G
+1D34;;;MODIFIER LETTER CAPITAL H
+1D35;;;MODIFIER LETTER CAPITAL I
+1D36;;;MODIFIER LETTER CAPITAL J
+1D37;;;MODIFIER LETTER CAPITAL K
+1D38;;;MODIFIER LETTER CAPITAL L
+1D39;;;MODIFIER LETTER CAPITAL M
+1D3A;;;MODIFIER LETTER CAPITAL N
+1D3B;;;MODIFIER LETTER CAPITAL REVERSED N
+1D3C;;;MODIFIER LETTER CAPITAL O
+1D3D;;;MODIFIER LETTER CAPITAL OU
+1D3E;;;MODIFIER LETTER CAPITAL P
+1D3F;;;MODIFIER LETTER CAPITAL R
+#
+1D40;;;MODIFIER LETTER CAPITAL T
+1D41;;;MODIFIER LETTER CAPITAL U
+1D42;;;MODIFIER LETTER CAPITAL W
+1D43;;;MODIFIER LETTER SMALL A
+1D44;;;MODIFIER LETTER SMALL TURNED A
+1D45;;;MODIFIER LETTER SMALL ALPHA
+1D46;;;MODIFIER LETTER SMALL TURNED AE
+1D47;;;MODIFIER LETTER SMALL B
+1D48;;;MODIFIER LETTER SMALL D
+1D49;;;MODIFIER LETTER SMALL E
+1D4A;;;MODIFIER LETTER SMALL SCHWA
+1D4B;;;MODIFIER LETTER SMALL OPEN E
+1D4C;;;MODIFIER LETTER SMALL TURNED OPEN E
+1D4D;;;MODIFIER LETTER SMALL G
+1D4E;;;MODIFIER LETTER SMALL TURNED I
+1D4F;;;MODIFIER LETTER SMALL K
+#
+1D50;;;MODIFIER LETTER SMALL M
+1D51;;;MODIFIER LETTER SMALL ENG
+1D52;;;MODIFIER LETTER SMALL O
+1D53;;;MODIFIER LETTER SMALL OPEN O
+1D54;;;MODIFIER LETTER SMALL TOP HALF O
+1D55;;;MODIFIER LETTER SMALL BOTTOM HALF O
+1D56;;;MODIFIER LETTER SMALL P
+1D57;;;MODIFIER LETTER SMALL T
+1D58;;;MODIFIER LETTER SMALL U
+1D59;;;MODIFIER LETTER SMALL SIDEWAYS U
+1D5A;;;MODIFIER LETTER SMALL TURNED M
+1D5B;;;MODIFIER LETTER SMALL V
+1D5C;;;MODIFIER LETTER SMALL AIN
+1D5D;;;MODIFIER LETTER SMALL BETA
+1D5E;;;MODIFIER LETTER SMALL GREEK GAMMA
+1D5F;;;MODIFIER LETTER SMALL DELTA
+#
+1D60;;;MODIFIER LETTER SMALL GREEK PHI
+1D61;;;MODIFIER LETTER SMALL CHI
+1D62;;;LATIN SUBSCRIPT SMALL LETTER I
+1D63;;;LATIN SUBSCRIPT SMALL LETTER R
+1D64;;;LATIN SUBSCRIPT SMALL LETTER U
+1D65;;;LATIN SUBSCRIPT SMALL LETTER V
+1D66;;;GREEK SUBSCRIPT SMALL LETTER BETA
+1D67;;;GREEK SUBSCRIPT SMALL LETTER GAMMA
+1D68;;;GREEK SUBSCRIPT SMALL LETTER RHO
+1D69;;;GREEK SUBSCRIPT SMALL LETTER PHI
+1D6A;;;GREEK SUBSCRIPT SMALL LETTER CHI
+1D6B;;;LATIN SMALL LETTER UE
+1D6C;;;LATIN SMALL LETTER B WITH MIDDLE TILDE
+1D6D;;;LATIN SMALL LETTER D WITH MIDDLE TILDE
+1D6E;;;LATIN SMALL LETTER F WITH MIDDLE TILDE
+1D6F;;;LATIN SMALL LETTER M WITH MIDDLE TILDE
+#
+1D70;;;LATIN SMALL LETTER N WITH MIDDLE TILDE
+1D71;;;LATIN SMALL LETTER P WITH MIDDLE TILDE
+1D72;;;LATIN SMALL LETTER R WITH MIDDLE TILDE
+1D73;;;LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE
+1D74;;;LATIN SMALL LETTER S WITH MIDDLE TILDE
+1D75;;;LATIN SMALL LETTER T WITH MIDDLE TILDE
+1D76;;;LATIN SMALL LETTER Z WITH MIDDLE TILDE
+1D77;;;LATIN SMALL LETTER TURNED G
+1D78;;;MODIFIER LETTER CYRILLIC EN
+1D79;;;LATIN SMALL LETTER INSULAR G
+1D7A;;;LATIN SMALL LETTER TH WITH STRIKETHROUGH
+1D7B;;;LATIN SMALL CAPITAL LETTER I WITH STROKE
+1D7C;;;LATIN SMALL LETTER IOTA WITH STROKE
+1D7D;;;LATIN SMALL LETTER P WITH STROKE
+1D7E;;;LATIN SMALL CAPITAL LETTER U WITH STROKE
+1D7F;;;LATIN SMALL LETTER UPSILON WITH STROKE
+#
+1D80;;;LATIN SMALL LETTER B WITH PALATAL HOOK
+1D81;;;LATIN SMALL LETTER D WITH PALATAL HOOK
+1D82;;;LATIN SMALL LETTER F WITH PALATAL HOOK
+1D83;;;LATIN SMALL LETTER G WITH PALATAL HOOK
+1D84;;;LATIN SMALL LETTER K WITH PALATAL HOOK
+1D85;;;LATIN SMALL LETTER L WITH PALATAL HOOK
+1D86;;;LATIN SMALL LETTER M WITH PALATAL HOOK
+1D87;;;LATIN SMALL LETTER N WITH PALATAL HOOK
+1D88;;;LATIN SMALL LETTER P WITH PALATAL HOOK
+1D89;;;LATIN SMALL LETTER R WITH PALATAL HOOK
+1D8A;;;LATIN SMALL LETTER S WITH PALATAL HOOK
+1D8B;;;LATIN SMALL LETTER ESH WITH PALATAL HOOK
+1D8C;;;LATIN SMALL LETTER V WITH PALATAL HOOK
+1D8D;;;LATIN SMALL LETTER X WITH PALATAL HOOK
+1D8E;;;LATIN SMALL LETTER Z WITH PALATAL HOOK
+1D8F;;;LATIN SMALL LETTER A WITH RETROFLEX HOOK
+#
+1D90;;;LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK
+1D91;;;LATIN SMALL LETTER D WITH HOOK AND TAIL
+1D92;;;LATIN SMALL LETTER E WITH RETROFLEX HOOK
+1D93;;;LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK
+1D94;;;LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK
+1D95;;;LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK
+1D96;;;LATIN SMALL LETTER I WITH RETROFLEX HOOK
+1D97;;;LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK
+1D98;;;LATIN SMALL LETTER ESH WITH RETROFLEX HOOK
+1D99;;;LATIN SMALL LETTER U WITH RETROFLEX HOOK
+1D9A;;;LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
+1D9B;;;MODIFIER LETTER SMALL TURNED ALPHA
+1D9C;;;MODIFIER LETTER SMALL C
+1D9D;;;MODIFIER LETTER SMALL C WITH CURL
+1D9E;;;MODIFIER LETTER SMALL ETH
+1D9F;;;MODIFIER LETTER SMALL REVERSED OPEN E
+#
+1DA0;;;MODIFIER LETTER SMALL F
+1DA1;;;MODIFIER LETTER SMALL DOTLESS J WITH STROKE
+1DA2;;;MODIFIER LETTER SMALL SCRIPT G
+1DA3;;;MODIFIER LETTER SMALL TURNED H
+1DA4;;;MODIFIER LETTER SMALL I WITH STROKE
+1DA5;;;MODIFIER LETTER SMALL IOTA
+1DA6;;;MODIFIER LETTER SMALL CAPITAL I
+1DA7;;;MODIFIER LETTER SMALL CAPITAL I WITH STROKE
+1DA8;;;MODIFIER LETTER SMALL J WITH CROSSED-TAIL
+1DA9;;;MODIFIER LETTER SMALL L WITH RETROFLEX HOOK
+1DAA;;;MODIFIER LETTER SMALL L WITH PALATAL HOOK
+1DAB;;;MODIFIER LETTER SMALL CAPITAL L
+1DAC;;;MODIFIER LETTER SMALL M WITH HOOK
+1DAD;;;MODIFIER LETTER SMALL TURNED M WITH LONG LEG
+1DAE;;;MODIFIER LETTER SMALL N WITH LEFT HOOK
+1DAF;;;MODIFIER LETTER SMALL N WITH RETROFLEX HOOK
+#
+1DB0;;;MODIFIER LETTER SMALL CAPITAL N
+1DB1;;;MODIFIER LETTER SMALL BARRED O
+1DB2;;;MODIFIER LETTER SMALL PHI
+1DB3;;;MODIFIER LETTER SMALL S WITH HOOK
+1DB4;;;MODIFIER LETTER SMALL ESH
+1DB5;;;MODIFIER LETTER SMALL T WITH PALATAL HOOK
+1DB6;;;MODIFIER LETTER SMALL U BAR
+1DB7;;;MODIFIER LETTER SMALL UPSILON
+1DB8;;;MODIFIER LETTER SMALL CAPITAL U
+1DB9;;;MODIFIER LETTER SMALL V WITH HOOK
+1DBA;;;MODIFIER LETTER SMALL TURNED V
+1DBB;;;MODIFIER LETTER SMALL Z
+1DBC;;;MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK
+1DBD;;;MODIFIER LETTER SMALL Z WITH CURL
+1DBE;;;MODIFIER LETTER SMALL EZH
+1DBF;;;MODIFIER LETTER SMALL THETA
+#
+1DC0;;;COMBINING DOTTED GRAVE ACCENT
+1DC1;;;COMBINING DOTTED ACUTE ACCENT
+1DC2;;;COMBINING SNAKE BELOW
+1DC3;;;COMBINING SUSPENSION MARK
+#
+# Latin Extended Additional
+#
+1E00;;;LATIN CAPITAL LETTER A WITH RING BELOW
+1E01;;;LATIN SMALL LETTER A WITH RING BELOW
+1E02;;;LATIN CAPITAL LETTER B WITH DOT ABOVE
+1E03;;;LATIN SMALL LETTER B WITH DOT ABOVE
+1E04;;;LATIN CAPITAL LETTER B WITH DOT BELOW
+1E05;;;LATIN SMALL LETTER B WITH DOT BELOW
+1E06;;;LATIN CAPITAL LETTER B WITH LINE BELOW
+1E07;;;LATIN SMALL LETTER B WITH LINE BELOW
+1E08;;;LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+1E09;;;LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+1E0A;;;LATIN CAPITAL LETTER D WITH DOT ABOVE
+1E0B;;;LATIN SMALL LETTER D WITH DOT ABOVE
+1E0C;;;LATIN CAPITAL LETTER D WITH DOT BELOW
+1E0D;;;LATIN SMALL LETTER D WITH DOT BELOW
+1E0E;;;LATIN CAPITAL LETTER D WITH LINE BELOW
+1E0F;;;LATIN SMALL LETTER D WITH LINE BELOW
+#
+1E10;;;LATIN CAPITAL LETTER D WITH CEDILLA
+1E11;;;LATIN SMALL LETTER D WITH CEDILLA
+1E12;;;LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
+1E13;;;LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
+1E14;;;LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+1E15;;;LATIN SMALL LETTER E WITH MACRON AND GRAVE
+1E16;;;LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+1E17;;;LATIN SMALL LETTER E WITH MACRON AND ACUTE
+1E18;;;LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
+1E19;;;LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
+1E1A;;;LATIN CAPITAL LETTER E WITH TILDE BELOW
+1E1B;;;LATIN SMALL LETTER E WITH TILDE BELOW
+1E1C;;;LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+1E1D;;;LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+1E1E;;;LATIN CAPITAL LETTER F WITH DOT ABOVE
+1E1F;;;LATIN SMALL LETTER F WITH DOT ABOVE
+#
+1E20;;;LATIN CAPITAL LETTER G WITH MACRON
+1E21;;;LATIN SMALL LETTER G WITH MACRON
+1E22;;;LATIN CAPITAL LETTER H WITH DOT ABOVE
+1E23;;;LATIN SMALL LETTER H WITH DOT ABOVE
+1E24;;;LATIN CAPITAL LETTER H WITH DOT BELOW
+1E25;;;LATIN SMALL LETTER H WITH DOT BELOW
+1E26;;;LATIN CAPITAL LETTER H WITH DIAERESIS
+1E27;;;LATIN SMALL LETTER H WITH DIAERESIS
+1E28;;;LATIN CAPITAL LETTER H WITH CEDILLA
+1E29;;;LATIN SMALL LETTER H WITH CEDILLA
+1E2A;;;LATIN CAPITAL LETTER H WITH BREVE BELOW
+1E2B;;;LATIN SMALL LETTER H WITH BREVE BELOW
+1E2C;;;LATIN CAPITAL LETTER I WITH TILDE BELOW
+1E2D;;;LATIN SMALL LETTER I WITH TILDE BELOW
+1E2E;;;LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+1E2F;;;LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+#
+1E30;;;LATIN CAPITAL LETTER K WITH ACUTE
+1E31;;;LATIN SMALL LETTER K WITH ACUTE
+1E32;;;LATIN CAPITAL LETTER K WITH DOT BELOW
+1E33;;;LATIN SMALL LETTER K WITH DOT BELOW
+1E34;;;LATIN CAPITAL LETTER K WITH LINE BELOW
+1E35;;;LATIN SMALL LETTER K WITH LINE BELOW
+1E36;;;LATIN CAPITAL LETTER L WITH DOT BELOW
+1E37;;;LATIN SMALL LETTER L WITH DOT BELOW
+1E38;;;LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+1E39;;;LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+1E3A;;;LATIN CAPITAL LETTER L WITH LINE BELOW
+1E3B;;;LATIN SMALL LETTER L WITH LINE BELOW
+1E3C;;;LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
+1E3D;;;LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
+1E3E;;;LATIN CAPITAL LETTER M WITH ACUTE
+1E3F;;;LATIN SMALL LETTER M WITH ACUTE
+#
+1E40;;;LATIN CAPITAL LETTER M WITH DOT ABOVE
+1E41;;;LATIN SMALL LETTER M WITH DOT ABOVE
+1E42;;;LATIN CAPITAL LETTER M WITH DOT BELOW
+1E43;;;LATIN SMALL LETTER M WITH DOT BELOW
+1E44;;;LATIN CAPITAL LETTER N WITH DOT ABOVE
+1E45;;;LATIN SMALL LETTER N WITH DOT ABOVE
+1E46;;;LATIN CAPITAL LETTER N WITH DOT BELOW
+1E47;;;LATIN SMALL LETTER N WITH DOT BELOW
+1E48;;;LATIN CAPITAL LETTER N WITH LINE BELOW
+1E49;;;LATIN SMALL LETTER N WITH LINE BELOW
+1E4A;;;LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
+1E4B;;;LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
+1E4C;;;LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+1E4D;;;LATIN SMALL LETTER O WITH TILDE AND ACUTE
+1E4E;;;LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+1E4F;;;LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+#
+1E50;;;LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+1E51;;;LATIN SMALL LETTER O WITH MACRON AND GRAVE
+1E52;;;LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+1E53;;;LATIN SMALL LETTER O WITH MACRON AND ACUTE
+1E54;;;LATIN CAPITAL LETTER P WITH ACUTE
+1E55;;;LATIN SMALL LETTER P WITH ACUTE
+1E56;;;LATIN CAPITAL LETTER P WITH DOT ABOVE
+1E57;;;LATIN SMALL LETTER P WITH DOT ABOVE
+1E58;;;LATIN CAPITAL LETTER R WITH DOT ABOVE
+1E59;;;LATIN SMALL LETTER R WITH DOT ABOVE
+1E5A;;;LATIN CAPITAL LETTER R WITH DOT BELOW
+1E5B;;;LATIN SMALL LETTER R WITH DOT BELOW
+1E5C;;;LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+1E5D;;;LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+1E5E;;;LATIN CAPITAL LETTER R WITH LINE BELOW
+1E5F;;;LATIN SMALL LETTER R WITH LINE BELOW
+#
+1E60;;;LATIN CAPITAL LETTER S WITH DOT ABOVE
+1E61;;;LATIN SMALL LETTER S WITH DOT ABOVE
+1E62;;;LATIN CAPITAL LETTER S WITH DOT BELOW
+1E63;;;LATIN SMALL LETTER S WITH DOT BELOW
+1E64;;;LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+1E65;;;LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+1E66;;;LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+1E67;;;LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+1E68;;;LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+1E69;;;LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+1E6A;;;LATIN CAPITAL LETTER T WITH DOT ABOVE
+1E6B;;;LATIN SMALL LETTER T WITH DOT ABOVE
+1E6C;;;LATIN CAPITAL LETTER T WITH DOT BELOW
+1E6D;;;LATIN SMALL LETTER T WITH DOT BELOW
+1E6E;;;LATIN CAPITAL LETTER T WITH LINE BELOW
+1E6F;;;LATIN SMALL LETTER T WITH LINE BELOW
+#
+1E70;;;LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
+1E71;;;LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
+1E72;;;LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
+1E73;;;LATIN SMALL LETTER U WITH DIAERESIS BELOW
+1E74;;;LATIN CAPITAL LETTER U WITH TILDE BELOW
+1E75;;;LATIN SMALL LETTER U WITH TILDE BELOW
+1E76;;;LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
+1E77;;;LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
+1E78;;;LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+1E79;;;LATIN SMALL LETTER U WITH TILDE AND ACUTE
+1E7A;;;LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+1E7B;;;LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+1E7C;;;LATIN CAPITAL LETTER V WITH TILDE
+1E7D;;;LATIN SMALL LETTER V WITH TILDE
+1E7E;;;LATIN CAPITAL LETTER V WITH DOT BELOW
+1E7F;;;LATIN SMALL LETTER V WITH DOT BELOW
+#
+1E80;Wgrave;;LATIN CAPITAL LETTER W WITH GRAVE
+1E81;wgrave;;LATIN SMALL LETTER W WITH GRAVE
+1E82;Wacute;;LATIN CAPITAL LETTER W WITH ACUTE
+1E83;wacute;;LATIN SMALL LETTER W WITH ACUTE
+1E84;Wdieresis;;LATIN CAPITAL LETTER W WITH DIAERESIS
+1E85;wdieresis;;LATIN SMALL LETTER W WITH DIAERESIS
+1E86;;;LATIN CAPITAL LETTER W WITH DOT ABOVE
+1E87;;;LATIN SMALL LETTER W WITH DOT ABOVE
+1E88;;;LATIN CAPITAL LETTER W WITH DOT BELOW
+1E89;;;LATIN SMALL LETTER W WITH DOT BELOW
+1E8A;;;LATIN CAPITAL LETTER X WITH DOT ABOVE
+1E8B;;;LATIN SMALL LETTER X WITH DOT ABOVE
+1E8C;;;LATIN CAPITAL LETTER X WITH DIAERESIS
+1E8D;;;LATIN SMALL LETTER X WITH DIAERESIS
+1E8E;;;LATIN CAPITAL LETTER Y WITH DOT ABOVE
+1E8F;;;LATIN SMALL LETTER Y WITH DOT ABOVE
+#
+1E90;;;LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
+1E91;;;LATIN SMALL LETTER Z WITH CIRCUMFLEX
+1E92;;;LATIN CAPITAL LETTER Z WITH DOT BELOW
+1E93;;;LATIN SMALL LETTER Z WITH DOT BELOW
+1E94;;;LATIN CAPITAL LETTER Z WITH LINE BELOW
+1E95;;;LATIN SMALL LETTER Z WITH LINE BELOW
+1E96;;;LATIN SMALL LETTER H WITH LINE BELOW
+1E97;;;LATIN SMALL LETTER T WITH DIAERESIS
+1E98;;;LATIN SMALL LETTER W WITH RING ABOVE
+1E99;;;LATIN SMALL LETTER Y WITH RING ABOVE
+1E9A;;;LATIN SMALL LETTER A WITH RIGHT HALF RING
+1E9B;;;LATIN SMALL LETTER LONG S WITH DOT ABOVE
+#
+1EA0;;Adotbelow;LATIN CAPITAL LETTER A WITH DOT BELOW
+1EA1;;adotbelow;LATIN SMALL LETTER A WITH DOT BELOW
+1EA2;;Ahook;LATIN CAPITAL LETTER A WITH HOOK ABOVE
+1EA3;;ahook;LATIN SMALL LETTER A WITH HOOK ABOVE
+1EA4;;Acircumflexacute;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA5;;acircumflexacute;LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA6;;Acircumflexgrave;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA7;;acircumflexgrave;LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA8;;Acircumflexhook;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EA9;;acircumflexhook;LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EAA;;Acircumflextilde;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAB;;acircumflextilde;LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAC;;Acircumflexdotbelow;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAD;;acircumflexdotbelow;LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAE;;Abreveacute;LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+1EAF;;abreveacute;LATIN SMALL LETTER A WITH BREVE AND ACUTE
+#
+1EB0;;Abrevegrave;LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+1EB1;;abrevegrave;LATIN SMALL LETTER A WITH BREVE AND GRAVE
+1EB2;;Abrevehook;LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+1EB3;;abrevehook;LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+1EB4;;Abrevetilde;LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+1EB5;;abrevetilde;LATIN SMALL LETTER A WITH BREVE AND TILDE
+1EB6;;Abrevedotbelow;LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+1EB7;;abrevedotbelow;LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+1EB8;;Edotbelow;LATIN CAPITAL LETTER E WITH DOT BELOW
+1EB9;;edotbelow;LATIN SMALL LETTER E WITH DOT BELOW
+1EBA;;Ehook;LATIN CAPITAL LETTER E WITH HOOK ABOVE
+1EBB;;ehook;LATIN SMALL LETTER E WITH HOOK ABOVE
+1EBC;;Etilde;LATIN CAPITAL LETTER E WITH TILDE
+1EBD;;etilde;LATIN SMALL LETTER E WITH TILDE
+1EBE;;Ecircumflexacute;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBF;;ecircumflexacute;LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+#
+1EC0;;Ecircumflexgrave;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC1;;ecircumflexgrave;LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC2;;Ecircumflexhook;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC3;;ecircumflexhook;LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC4;;Ecircumflextilde;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC5;;ecircumflextilde;LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC6;;Ecircumflexdotbelow;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC7;;ecircumflexdotbelow;LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC8;;Ihook;LATIN CAPITAL LETTER I WITH HOOK ABOVE
+1EC9;;ihook;LATIN SMALL LETTER I WITH HOOK ABOVE
+1ECA;;Idotbelow;LATIN CAPITAL LETTER I WITH DOT BELOW
+1ECB;;idotbelow;LATIN SMALL LETTER I WITH DOT BELOW
+1ECC;;Odotbelow;LATIN CAPITAL LETTER O WITH DOT BELOW
+1ECD;;odotbelow;LATIN SMALL LETTER O WITH DOT BELOW
+1ECE;;Ohook;LATIN CAPITAL LETTER O WITH HOOK ABOVE
+1ECF;;ohook;LATIN SMALL LETTER O WITH HOOK ABOVE
+#
+1ED0;;Ocircumflexacute;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED1;;ocircumflexacute;LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED2;;Ocircumflexgrave;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED3;;ocircumflexgrave;LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED4;;Ocircumflexhook;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED5;;ocircumflexhook;LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED6;;Ocircumflextilde;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED7;;ocircumflextilde;LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED8;;Ocircumflexdotbelow;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED9;;ocircumflexdotbelow;LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1EDA;;Ohornacute;LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+1EDB;;ohornacute;LATIN SMALL LETTER O WITH HORN AND ACUTE
+1EDC;;Ohorngrave;LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+1EDD;;ohorngrave;LATIN SMALL LETTER O WITH HORN AND GRAVE
+1EDE;;Ohornhook;LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+1EDF;;ohornhook;LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+#
+1EE0;;Ohorntilde;LATIN CAPITAL LETTER O WITH HORN AND TILDE
+1EE1;;ohorntilde;LATIN SMALL LETTER O WITH HORN AND TILDE
+1EE2;;Ohorndotbelow;LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+1EE3;;ohorndotbelow;LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+1EE4;;Udotbelow;LATIN CAPITAL LETTER U WITH DOT BELOW
+1EE5;;udotbelow;LATIN SMALL LETTER U WITH DOT BELOW
+1EE6;;Uhook;LATIN CAPITAL LETTER U WITH HOOK ABOVE
+1EE7;;uhook;LATIN SMALL LETTER U WITH HOOK ABOVE
+1EE8;;Uhornacute;LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+1EE9;;uhornacute;LATIN SMALL LETTER U WITH HORN AND ACUTE
+1EEA;;Uhorngrave;LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+1EEB;;uhorngrave;LATIN SMALL LETTER U WITH HORN AND GRAVE
+1EEC;;Uhornhook;LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+1EED;;uhornhook;LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+1EEE;;Uhorntilde;LATIN CAPITAL LETTER U WITH HORN AND TILDE
+1EEF;;uhorntilde;LATIN SMALL LETTER U WITH HORN AND TILDE
+#
+1EF0;;Uhorndotbelow;LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+1EF1;;uhorndotbelow;LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+1EF2;Ygrave;Ygrave;LATIN CAPITAL LETTER Y WITH GRAVE
+1EF3;ygrave;ygrave;LATIN SMALL LETTER Y WITH GRAVE
+1EF4;;Ydotbelow;LATIN CAPITAL LETTER Y WITH DOT BELOW
+1EF5;;ydotbelow;LATIN SMALL LETTER Y WITH DOT BELOW
+1EF6;;Yhook;LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+1EF7;;yhook;LATIN SMALL LETTER Y WITH HOOK ABOVE
+1EF8;;Ytilde;LATIN CAPITAL LETTER Y WITH TILDE
+1EF9;;ytilde;LATIN SMALL LETTER Y WITH TILDE
+#
+# Greek Extended
+#
+1F00;;greekalphapsili;GREEK SMALL LETTER ALPHA WITH PSILI
+1F01;;greekalphadasia;GREEK SMALL LETTER ALPHA WITH DASIA
+1F02;;greekalphapsilivaria;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+1F03;;greekalphadasiavaria;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+1F04;;greekalphapsilitonos;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+1F05;;greekalphadasiatonos;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+1F06;;greekalphapsiliperispomeni;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+1F07;;greekalphadasiaperispomeni;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+1F08;;greekAlphapsili;GREEK CAPITAL LETTER ALPHA WITH PSILI
+1F09;;greekAlphadasia;GREEK CAPITAL LETTER ALPHA WITH DASIA
+1F0A;;greekAlphapsilivaria;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+1F0B;;greekAlphadasiavaria;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+1F0C;;greekAlphapsilitonos;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+1F0D;;greekAlphadasiatonos;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+1F0E;;greekAlphapsiliperispomeni;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+1F0F;;greekAlphadasiaperispomeni;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+#
+1F10;;greekepsilonpsili;GREEK SMALL LETTER EPSILON WITH PSILI
+1F11;;greekepsilondasia;GREEK SMALL LETTER EPSILON WITH DASIA
+1F12;;greekepsilonpsilivaria;GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+1F13;;greekepsilondasiavaria;GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
+1F14;;greekepsilonpsilitonos;GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+1F15;;greekepsilondasiatonos;GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F18;;greekEpsilonpsili;GREEK CAPITAL LETTER EPSILON WITH PSILI
+1F19;;greekEpsilondasia;GREEK CAPITAL LETTER EPSILON WITH DASIA
+1F1A;;greekEpsilonpsilivaria;GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+1F1B;;greekEpsilondasiavaria;GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+1F1C;;greekEpsilonpsilitonos;GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+1F1D;;greekEpsilondasiatonos;GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+#
+1F20;;greeketapsili;GREEK SMALL LETTER ETA WITH PSILI
+1F21;;greeketadasia;GREEK SMALL LETTER ETA WITH DASIA
+1F22;;greeketapsilivaria;GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+1F23;;greeketadasiavaria;GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+1F24;;greeketapsilitonos;GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+1F25;;greeketadasiatonos;GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+1F26;;greeketapsiliperispomeni;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+1F27;;greeketadasiaperispomeni;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+1F28;;greekEtapsili;GREEK CAPITAL LETTER ETA WITH PSILI
+1F29;;greekEtadasia;GREEK CAPITAL LETTER ETA WITH DASIA
+1F2A;;greekEtapsilivaria;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+1F2B;;greekEtadasiavaria;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+1F2C;;greekEtapsilitonos;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+1F2D;;greekEtadasiatonos;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+1F2E;;greekEtapsiliperispomeni;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+1F2F;;greekEtadasiaperispomeni;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+#
+1F30;;greekiotapsili;GREEK SMALL LETTER IOTA WITH PSILI
+1F31;;greekiotadasia;GREEK SMALL LETTER IOTA WITH DASIA
+1F32;;greekiotapsilivaria;GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+1F33;;greekiotadasiavaria;GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+1F34;;greekiotapsilitonos;GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+1F35;;greekiotadasiatonos;GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+1F36;;greekiotapsiliperispomeni;GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+1F37;;greekiotadasiaperispomeni;GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+1F38;;greekIotapsili;GREEK CAPITAL LETTER IOTA WITH PSILI
+1F39;;greekIotadasia;GREEK CAPITAL LETTER IOTA WITH DASIA
+1F3A;;greekIotapsilivaria;GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+1F3B;;greekIotadasiavaria;GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+1F3C;;greekIotapsilitonos;GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+1F3D;;greekIotadasiatonos;GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+1F3E;;greekIotapsiliperispomeni;GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+1F3F;;greekIotadasiaperispomeni;GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+#
+1F40;;greekomicronpsili;GREEK SMALL LETTER OMICRON WITH PSILI
+1F41;;greekomicrondasia;GREEK SMALL LETTER OMICRON WITH DASIA
+1F42;;greekomicronpsilivaria;GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+1F43;;greekomicrondasiavaria;GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
+1F44;;greekomicronpsilitonos;GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+1F45;;greekomicrondasiatonos;GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F48;;greekOmicronpsili;GREEK CAPITAL LETTER OMICRON WITH PSILI
+1F49;;greekOmicrondasia;GREEK CAPITAL LETTER OMICRON WITH DASIA
+1F4A;;greekOmicronpsilivaria;GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+1F4B;;greekOmicrondasiavaria;GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+1F4C;;greekOmicronpsilitonos;GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+1F4D;;greekOmicrondasiatonos;GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+#
+1F50;;greekupsilonpsili;GREEK SMALL LETTER UPSILON WITH PSILI
+1F51;;greekupsilondasia;GREEK SMALL LETTER UPSILON WITH DASIA
+1F52;;greekupsilonpsilivaria;GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+1F53;;greekupsilondasiavaria;GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+1F54;;greekupsilonpsilitonos;GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+1F55;;greekupsilondasiatonos;GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+1F56;;greekupsilonpsiliperispomeni;GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+1F57;;greekupsilondasiaperispomeni;GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F59;;greekUpsilondasia;GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F5B;;greekUpsilondasiavaria;GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F5D;;greekUpsilondasiatonos;GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F5F;;greekUpsilondasiaperispomeni;GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+#
+1F60;;greekomegapsili;GREEK SMALL LETTER OMEGA WITH PSILI
+1F61;;greekomegadasia;GREEK SMALL LETTER OMEGA WITH DASIA
+1F62;;greekomegapsilivaria;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+1F63;;greekomegadasiavaria;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+1F64;;greekomegapsilitonos;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+1F65;;greekomegadasiatonos;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+1F66;;greekomegapsiliperispomeni;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+1F67;;greekomegadasiaperispomeni;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+1F68;;greekOmegapsili;GREEK CAPITAL LETTER OMEGA WITH PSILI
+1F69;;greekOmegadasia;GREEK CAPITAL LETTER OMEGA WITH DASIA
+1F6A;;greekOmegapsilivaria;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+1F6B;;greekOmegadasiavaria;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+1F6C;;greekOmegapsilitonos;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+1F6D;;greekOmegadasiatonos;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+1F6E;;greekOmegapsiliperispomeni;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+1F6F;;greekOmegadasiaperispomeni;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+#
+1F70;;greekalphavaria;GREEK SMALL LETTER ALPHA WITH VARIA
+1F71;;greekalphaoxia;GREEK SMALL LETTER ALPHA WITH OXIA
+1F72;;greekepsilonvaria;GREEK SMALL LETTER EPSILON WITH VARIA
+1F73;;greekepsilonoxia;GREEK SMALL LETTER EPSILON WITH OXIA
+1F74;;greeketavaria;GREEK SMALL LETTER ETA WITH VARIA
+1F75;;greeketaoxia;GREEK SMALL LETTER ETA WITH OXIA
+1F76;;greekiotavaria;GREEK SMALL LETTER IOTA WITH VARIA
+1F77;;greekiotaoxia;GREEK SMALL LETTER IOTA WITH OXIA
+1F78;;greekomicronvaria;GREEK SMALL LETTER OMICRON WITH VARIA
+1F79;;greekomicronoxia;GREEK SMALL LETTER OMICRON WITH OXIA
+1F7A;;greekupsilonvaria;GREEK SMALL LETTER UPSILON WITH VARIA
+1F7B;;greekupsilonoxia;GREEK SMALL LETTER UPSILON WITH OXIA
+1F7C;;greekomegavaria;GREEK SMALL LETTER OMEGA WITH VARIA
+1F7D;;greekomegaoxia;GREEK SMALL LETTER OMEGA WITH OXIA
+#
+1F80;;greekalphaiotasubpsili;GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+1F81;;greekalphaiotasubdasia;GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+1F82;;greekalphaiotasubpsilivaria;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1F83;;greekalphaiotasubdasiavaria;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1F84;;greekalphaiotasubpsilitonos;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1F85;;greekalphaiotasubdasiatonos;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1F86;;greekalphaiotasubpsiliperispomeni;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1F87;;greekalphaiotasubdasiaperispomeni;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1F88;;greekAlphaiotasubpsili;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+1F89;;greekAlphaiotasubdasia;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+1F8A;;greekAlphaiotasubpsilivaria;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1F8B;;greekAlphaiotasubdasiavaria;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1F8C;;greekAlphaiotasubpsilitonos;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1F8D;;greekAlphaiotasubdasiatonos;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1F8E;;greekAlphaiotasubpsiliperispomeni;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1F8F;;greekAlphaiotasubdasiaperispomeni;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+#
+1F90;;greeketaiotasubpsili;GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+1F91;;greeketaiotasubdasia;GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+1F92;;greeketaiotasubpsilivaria;GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1F93;;greeketaiotasubdasiavaria;GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1F94;;greeketaiotasubpsilitonos;GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1F95;;greeketaiotasubdasiatonos;GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1F96;;greeketaiotasubpsiliperispomeni;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1F97;;greeketaiotasubdasiaperispomeni;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1F98;;greekEtaiotasubpsili;GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+1F99;;greekEtaiotasubdasia;GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+1F9A;;greekEtaiotasubpsilivaria;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1F9B;;greekEtaiotasubdasiavaria;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1F9C;;greekEtaiotasubpsilitonos;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1F9D;;greekEtaiotasubdasiatonos;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1F9E;;greekEtaiotasubpsiliperispomeni;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1F9F;;greekEtaiotasubdasiaperispomeni;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+#
+1FA0;;greekomegaiotasubpsili;GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+1FA1;;greekomegaiotasubdasia;GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+1FA2;;greekomegaiotasubpsilivaria;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1FA3;;greekomegaiotasubdasiavaria;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1FA4;;greekomegaiotasubpsilitonos;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1FA5;;greekomegaiotasubdasiatonos;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1FA6;;greekomegaiotasubpsiliperispomeni;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1FA7;;greekomegaiotasubdasiaperispomeni;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1FA8;;greekOmegaiotasubpsili;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+1FA9;;greekOmegaiotasubdasia;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+1FAA;;greekOmegaiotasubpsilivaria;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1FAB;;greekOmegaiotasubdasiavaria;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1FAC;;greekOmegaiotasubpsilitonos;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1FAD;;greekOmegaiotasubdasiatonos;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1FAE;;greekOmegaiotasubpsiliperispomeni;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1FAF;;greekOmegaiotasubdasiaperispomeni;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+#
+1FB0;;greekalphavrachy;GREEK SMALL LETTER ALPHA WITH VRACHY
+1FB1;;greekalphamacron;GREEK SMALL LETTER ALPHA WITH MACRON
+1FB2;;greekalphaiotasubvaria;GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+1FB3;;greekalphaiotasub;GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
+1FB4;;greekalphaiotasubtonos;GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FB6;;greekalphaperispomeni;GREEK SMALL LETTER ALPHA WITH PERISPOMENI
+1FB7;;greekalphaiotasubperispomeni;GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FB8;;greekAlphavrachy;GREEK CAPITAL LETTER ALPHA WITH VRACHY
+1FB9;;greekAlphamacron;GREEK CAPITAL LETTER ALPHA WITH MACRON
+1FBA;;greekAlphavaria;GREEK CAPITAL LETTER ALPHA WITH VARIA
+1FBB;;greekAlphatonos;GREEK CAPITAL LETTER ALPHA WITH OXIA
+1FBC;;greekAlphaiotasub;GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+1FBD;;greekCoronis;GREEK KORONIS
+1FBE;;greekprosgegrammeni;GREEK PROSGEGRAMMENI
+1FBF;;greekpsili;GREEK PSILI
+#
+1FC0;;greekperispomeni;GREEK PERISPOMENI
+1FC1;;greekdialytikaperispomeni;GREEK DIALYTIKA AND PERISPOMENI
+1FC2;;greeketaiotasubvaria;GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+1FC3;;greeketaiotasub;GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
+1FC4;;greeketaiotasubtonos;GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FC6;;greeketaperispomeni;GREEK SMALL LETTER ETA WITH PERISPOMENI
+1FC7;;greeketaiotasubperispomeni;GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FC8;;greekEpsilonvaria;GREEK CAPITAL LETTER EPSILON WITH VARIA
+1FC9;;greekEpsilontonos;GREEK CAPITAL LETTER EPSILON WITH OXIA
+1FCA;;greekEtavaria;GREEK CAPITAL LETTER ETA WITH VARIA
+1FCB;;greekEtatonos;GREEK CAPITAL LETTER ETA WITH OXIA
+1FCC;;greekEtaiotasub;GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+1FCD;;greekpsilivaria;GREEK PSILI AND VARIA
+1FCE;;greekpsilitonos;GREEK PSILI AND OXIA
+1FCF;;greekpsiliperispomeni;GREEK PSILI AND PERISPOMENI
+#
+1FD0;;greekiotavrachy;GREEK SMALL LETTER IOTA WITH VRACHY
+1FD1;;greekiotamacron;GREEK SMALL LETTER IOTA WITH MACRON
+1FD2;;greekiotadialytikavaria;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+1FD3;;greekiotadialytikatonos;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD6;;greekiotaperispomeni;GREEK SMALL LETTER IOTA WITH PERISPOMENI
+1FD7;;greekiotadialytikaperispomeni;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+1FD8;;greekIotavrachy;GREEK CAPITAL LETTER IOTA WITH VRACHY
+1FD9;;greekIotamacron;GREEK CAPITAL LETTER IOTA WITH MACRON
+1FDA;;greekIotavaria;GREEK CAPITAL LETTER IOTA WITH VARIA
+1FDB;;greekIotatonos;GREEK CAPITAL LETTER IOTA WITH OXIA
+1FDD;;greekdasiavaria;GREEK DASIA AND VARIA
+1FDE;;greekdasiatonos;GREEK DASIA AND OXIA
+1FDF;;greekdasiaperispomeni;GREEK DASIA AND PERISPOMENI
+#
+1FE0;;greekupsilonvrachy;GREEK SMALL LETTER UPSILON WITH VRACHY
+1FE1;;greekupsilonmacron;GREEK SMALL LETTER UPSILON WITH MACRON
+1FE2;;greekupsilondialytikavaria;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+1FE3;;greekupsilondialytikatonos;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
+1FE4;;greekrhopsili;GREEK SMALL LETTER RHO WITH PSILI
+1FE5;;greekrhodasia;GREEK SMALL LETTER RHO WITH DASIA
+1FE6;;greekupsilonperispomeni;GREEK SMALL LETTER UPSILON WITH PERISPOMENI
+1FE7;;greekupsilondialytikaperispomeni;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+1FE8;;greekUpsilonvrachy;GREEK CAPITAL LETTER UPSILON WITH VRACHY
+1FE9;;greekUpsilonmacron;GREEK CAPITAL LETTER UPSILON WITH MACRON
+1FEA;;greekUpsilonvaria;GREEK CAPITAL LETTER UPSILON WITH VARIA
+1FEB;;greekUpsilontonos;GREEK CAPITAL LETTER UPSILON WITH OXIA
+1FEC;;greekRhodasia;GREEK CAPITAL LETTER RHO WITH DASIA
+1FED;;greekdialytikavaria;GREEK DIALYTIKA AND VARIA
+1FEE;;greekdialytikatonos;GREEK DIALYTIKA AND OXIA
+1FEF;;greekvaria;GREEK VARIA
+1FF2;;greekomegaiotasubvaria;GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+1FF3;;greekomegaiotasub;GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
+1FF4;;greekomegaiotasubtonos;GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1FF6;;greekomegaperispomeni;GREEK SMALL LETTER OMEGA WITH PERISPOMENI
+1FF7;;greekomegaiotasubperispomeni;GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FF8;;greekOmicronvaria;GREEK CAPITAL LETTER OMICRON WITH VARIA
+1FF9;;greekOmicrontonos;GREEK CAPITAL LETTER OMICRON WITH OXIA
+1FFA;;greekOmegavaria;GREEK CAPITAL LETTER OMEGA WITH VARIA
+1FFB;;greekOmegatonos;GREEK CAPITAL LETTER OMEGA WITH OXIA
+1FFC;;greekOmegaiotasub;GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+1FFD;;greekoxia;GREEK OXIA
+1FFE;;greekdasia;GREEK DASIA
+#
+# General Punctuation
+#
+2000;;;EN QUAD
+2001;;;EM QUAD
+2002;;;EN SPACE
+2003;;;EM SPACE
+2004;;;THREE-PER-EM SPACE
+2005;;;FOUR-PER-EM SPACE
+2006;;;SIX-PER-EM SPACE
+2007;;;FIGURE SPACE
+2008;;;PUNCTUATION SPACE
+2009;;;THIN SPACE
+200A;;;HAIR SPACE
+200B;;;ZERO WIDTH SPACE
+200C;afii61664;;ZERO WIDTH NON-JOINER
+200D;afii301;;ZERO WIDTH JOINER
+200E;afii299;;LEFT-TO-RIGHT MARK
+200F;afii300;;RIGHT-TO-LEFT MARK
+#
+2010;;;HYPHEN
+2011;;;NON-BREAKING HYPHEN
+2012;figuredash;textminus;FIGURE DASH
+2013;endash;endash;EN DASH
+2014;emdash;emdash;EM DASH
+2015;afii00208;texthorizontalbar;HORIZONTAL BAR
+2016;;;DOUBLE VERTICAL LINE
+2017;underscoredbl;;DOUBLE LOW LINE
+2018;quoteleft;quoteleft;LEFT SINGLE QUOTATION MARK
+2019;quoteright;quoteright;RIGHT SINGLE QUOTATION MARK
+201A;quotesinglbase;quotesinglebase;SINGLE LOW-9 QUOTATION MARK
+201B;quotereversed;;SINGLE HIGH-REVERSED-9 QUOTATION MARK
+201C;quotedblleft;quotedblleft;LEFT DOUBLE QUOTATION MARK
+201D;quotedblright;quotedblright;RIGHT DOUBLE QUOTATION MARK
+201E;quotedblbase;quotedblbase;DOUBLE LOW-9 QUOTATION MARK
+201F;;;DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+#
+2020;dagger;textdag;DAGGER
+2021;daggerdbl;textddag;DOUBLE DAGGER
+2022;bullet;textbullet;BULLET
+2023;;;TRIANGULAR BULLET
+2024;onedotenleader;;ONE DOT LEADER
+2025;twodotenleader;;TWO DOT LEADER
+2026;ellipsis;textellipsis;HORIZONTAL ELLIPSIS
+2027;;;HYPHENATION POINT
+2028;;;LINE SEPARATOR
+2029;;;PARAGRAPH SEPARATOR
+202A;;;LEFT-TO-RIGHT EMBEDDING
+202B;;;RIGHT-TO-LEFT EMBEDDING
+202C;afii61573;;POP DIRECTIONAL FORMATTING
+202D;afii61574;;LEFT-TO-RIGHT OVERRIDE
+202E;afii61575;;RIGHT-TO-LEFT OVERRIDE
+202F;;;NARROW NO-BREAK SPACE
+#
+2030;perthousand;perthousand;PER MILLE SIGN
+2031;;;PER TEN THOUSAND SIGN
+2032;minute;;PRIME
+2033;second;;DOUBLE PRIME
+2034;;;TRIPLE PRIME
+2035;;;REVERSED PRIME
+2036;;;REVERSED DOUBLE PRIME
+2037;;;REVERSED TRIPLE PRIME
+2038;;;CARET
+2039;guilsinglleft;guilsingleleft;SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+203A;guilsinglright;guilsingleright;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+203B;;;REFERENCE MARK
+203C;exclamdbl;;DOUBLE EXCLAMATION MARK
+203D;;;INTERROBANG
+203E;;;OVERLINE
+203F;;;UNDERTIE
+#
+2040;;;CHARACTER TIE
+2041;;;CARET INSERTION POINT
+2042;;;ASTERISM
+2043;;;HYPHEN BULLET
+2044;fraction;;FRACTION SLASH
+2045;;;LEFT SQUARE BRACKET WITH QUILL
+2046;;;RIGHT SQUARE BRACKET WITH QUILL
+2047;;;DOUBLE QUESTION MARK
+2048;;;QUESTION EXCLAMATION MARK
+2049;;;EXCLAMATION QUESTION MARK
+204A;;;TIRONIAN SIGN ET
+204B;;;REVERSED PILCROW SIGN
+204C;;;BLACK LEFTWARDS BULLET
+204D;;;BLACK RIGHTWARDS BULLET
+204E;;;LOW ASTERISK
+204F;;;REVERSED SEMICOLON
+#
+2050;;;CLOSE UP
+2051;;;TWO ASTERISKS ALIGNED VERTICALLY
+2052;;;COMMERCIAL MINUS SIGN
+2053;;;SWUNG DASH
+2054;;;INVERTED UNDERTIE
+2055;;;FLOWER PUNCTUATION MARK
+2056;;;THREE DOT PUNCTUATION
+2057;;;QUADRUPLE PRIME
+2058;;;FOUR DOT PUNCTUATION
+2059;;;FIVE DOT PUNCTUATION
+205A;;;TWO DOT PUNCTUATION
+205B;;;FOUR DOT MARK
+205C;;;DOTTED CROSS
+205D;;;TRICOLON
+205E;;;VERTICAL FOUR DOTS
+205F;;;MEDIUM MATHEMATICAL SPACE
+#
+2060;;;WORD JOINER
+2061;;;FUNCTION APPLICATION
+2062;;;INVISIBLE TIMES
+2063;;;INVISIBLE SEPARATOR
+206A;;;INHIBIT SYMMETRIC SWAPPING
+206B;;;ACTIVATE SYMMETRIC SWAPPING
+206C;;;INHIBIT ARABIC FORM SHAPING
+206D;;;ACTIVATE ARABIC FORM SHAPING
+206E;;;NATIONAL DIGIT SHAPES
+206F;;;NOMINAL DIGIT SHAPES
+#
+# Superscripts and Subscripts
+#
+2070;;;SUPERSCRIPT ZERO
+2071;;;SUPERSCRIPT LATIN SMALL LETTER I
+2074;;;SUPERSCRIPT FOUR
+2075;;;SUPERSCRIPT FIVE
+2076;;;SUPERSCRIPT SIX
+2077;;;SUPERSCRIPT SEVEN
+2078;;;SUPERSCRIPT EIGHT
+2079;;;SUPERSCRIPT NINE
+207A;;;SUPERSCRIPT PLUS SIGN
+207B;;;SUPERSCRIPT MINUS
+207C;;;SUPERSCRIPT EQUALS SIGN
+207D;;;SUPERSCRIPT LEFT PARENTHESIS
+207E;;;SUPERSCRIPT RIGHT PARENTHESIS
+207F;;;SUPERSCRIPT LATIN SMALL LETTER N
+#
+2080;;;SUBSCRIPT ZERO
+2081;;;SUBSCRIPT ONE
+2082;;;SUBSCRIPT TWO
+2083;;;SUBSCRIPT THREE
+2084;;;SUBSCRIPT FOUR
+2085;;;SUBSCRIPT FIVE
+2086;;;SUBSCRIPT SIX
+2087;;;SUBSCRIPT SEVEN
+2088;;;SUBSCRIPT EIGHT
+2089;;;SUBSCRIPT NINE
+208A;;;SUBSCRIPT PLUS SIGN
+208B;;;SUBSCRIPT MINUS
+208C;;;SUBSCRIPT EQUALS SIGN
+208D;;;SUBSCRIPT LEFT PARENTHESIS
+208E;;;SUBSCRIPT RIGHT PARENTHESIS
+#
+2090;;;LATIN SUBSCRIPT SMALL LETTER A
+2091;;;LATIN SUBSCRIPT SMALL LETTER E
+2092;;;LATIN SUBSCRIPT SMALL LETTER O
+2093;;;LATIN SUBSCRIPT SMALL LETTER X
+2094;;;LATIN SUBSCRIPT SMALL LETTER SCHWA
+#
+# Currency Symbols
+#
+20A0;;;EURO-CURRENCY SIGN
+20A1;colonmonetary;;COLON SIGN
+20A2;;;CRUZEIRO SIGN
+20A3;franc;;FRENCH FRANC SIGN
+20A4;lira;;LIRA SIGN
+20A5;;;MILL SIGN
+20A6;;;NAIRA SIGN
+20A7;peseta;;PESETA SIGN
+20A8;;;RUPEE SIGN
+20A9;;;WON SIGN
+20AA;afii57636;;NEW SHEQEL SIGN
+20AB;dong;textdong;DONG SIGN
+20AC;Euro;texteuro;EURO SIGN
+20AD;;;KIP SIGN
+20AE;;;TUGRIK SIGN
+20AF;;;DRACHMA SIGN
+#
+20B0;;;GERMAN PENNY SIGN
+20B1;;;PESO SIGN
+20B2;;;GUARANI SIGN
+20B3;;;AUSTRAL SIGN
+20B4;;;HRYVNIA SIGN
+20B5;;;CEDI SIGN
+#
+# Combining Marks for Symbols
+#
+20D0;;;COMBINING LEFT HARPOON ABOVE
+20D1;;;COMBINING RIGHT HARPOON ABOVE
+20D2;;;COMBINING LONG VERTICAL LINE OVERLAY
+20D3;;;COMBINING SHORT VERTICAL LINE OVERLAY
+20D4;;;COMBINING ANTICLOCKWISE ARROW ABOVE
+20D5;;;COMBINING CLOCKWISE ARROW ABOVE
+20D6;;;COMBINING LEFT ARROW ABOVE
+20D7;;;COMBINING RIGHT ARROW ABOVE
+20D8;;;COMBINING RING OVERLAY
+20D9;;;COMBINING CLOCKWISE RING OVERLAY
+20DA;;;COMBINING ANTICLOCKWISE RING OVERLAY
+20DB;;;COMBINING THREE DOTS ABOVE
+20DC;;;COMBINING FOUR DOTS ABOVE
+20DD;;;COMBINING ENCLOSING CIRCLE
+20DE;;;COMBINING ENCLOSING SQUARE
+20DF;;;COMBINING ENCLOSING DIAMOND
+#
+20E0;;;COMBINING ENCLOSING CIRCLE BACKSLASH
+20E1;;;COMBINING LEFT RIGHT ARROW ABOVE
+20E2;;;COMBINING ENCLOSING SCREEN
+20E3;;;COMBINING ENCLOSING KEYCAP
+20E4;;;COMBINING ENCLOSING UPWARD POINTING TRIANGLE
+20E5;;;COMBINING REVERSE SOLIDUS OVERLAY
+20E6;;;COMBINING DOUBLE VERTICAL STROKE OVERLAY
+20E7;;;COMBINING ANNUITY SYMBOL
+20E8;;;COMBINING TRIPLE UNDERDOT
+20E9;;;COMBINING WIDE BRIDGE ABOVE
+20EA;;;COMBINING LEFTWARDS ARROW OVERLAY
+20EB;;;COMBINING LONG DOUBLE SOLIDUS OVERLAY
+#
+# Letterlike Symbols
+#
+2100;;;ACCOUNT OF
+2101;;;ADDRESSED TO THE SUBJECT
+2102;;;DOUBLE-STRUCK CAPITAL C
+2103;;;DEGREE CELSIUS
+2104;;;CENTRE LINE SYMBOL
+2105;afii61248;;CARE OF
+2106;;;CADA UNA
+2107;;;EULER CONSTANT
+2108;;;SCRUPLE
+2109;;;DEGREE FAHRENHEIT
+210A;;;SCRIPT SMALL G
+210B;;;SCRIPT CAPITAL H
+210C;;;BLACK-LETTER CAPITAL H
+210D;;;DOUBLE-STRUCK CAPITAL H
+210E;;;PLANCK CONSTANT
+210F;;;PLANCK CONSTANT OVER TWO PI
+#
+2110;;;SCRIPT CAPITAL I
+2111;Ifraktur;;BLACK-LETTER CAPITAL I
+2112;;;SCRIPT CAPITAL L
+2113;afii61289;;SCRIPT SMALL L
+2114;;;L B BAR SYMBOL
+2115;;;DOUBLE-STRUCK CAPITAL N
+2116;afii61352;textnumero;NUMERO SIGN
+2117;;;SOUND RECORDING COPYRIGHT
+2118;weierstrass;;SCRIPT CAPITAL P
+2119;;;DOUBLE-STRUCK CAPITAL P
+211A;;;DOUBLE-STRUCK CAPITAL Q
+211B;;;SCRIPT CAPITAL R
+211C;Rfraktur;;BLACK-LETTER CAPITAL R
+211D;;;DOUBLE-STRUCK CAPITAL R
+211E;prescription;;PRESCRIPTION TAKE
+211F;;;RESPONSE
+#
+2120;;;SERVICE MARK
+2121;;;TELEPHONE SIGN
+2122;trademark;trademark;TRADE MARK SIGN
+2123;;;VERSICLE
+2124;;;DOUBLE-STRUCK CAPITAL Z
+2125;;;OUNCE SIGN
+2126;Omega;;OHM SIGN
+2127;;;INVERTED OHM SIGN
+2128;;;BLACK-LETTER CAPITAL Z
+2129;;;TURNED GREEK SMALL LETTER IOTA
+212A;;;KELVIN SIGN
+212B;;;ANGSTROM SIGN
+212C;;;SCRIPT CAPITAL B
+212D;;;BLACK-LETTER CAPITAL C
+212E;estimated;;ESTIMATED SYMBOL
+212F;;;SCRIPT SMALL E
+#
+2130;;;SCRIPT CAPITAL E
+2131;;;SCRIPT CAPITAL F
+2132;;;TURNED CAPITAL F
+2133;;;SCRIPT CAPITAL M
+2134;;;SCRIPT SMALL O
+2135;aleph;;ALEF SYMBOL
+2136;;;BET SYMBOL
+2137;;;GIMEL SYMBOL
+2138;;;DALET SYMBOL
+2139;;;INFORMATION SOURCE
+213A;;;ROTATED CAPITAL Q
+213B;;;FACSIMILE SIGN
+213C;;;DOUBLE-STRUCK SMALL PI
+213D;;;DOUBLE-STRUCK SMALL GAMMA
+213E;;;DOUBLE-STRUCK CAPITAL GAMMA
+213F;;;DOUBLE-STRUCK CAPITAL PI
+#
+2140;;;DOUBLE-STRUCK N-ARY SUMMATION
+2141;;;TURNED SANS-SERIF CAPITAL G
+2142;;;TURNED SANS-SERIF CAPITAL L
+2143;;;REVERSED SANS-SERIF CAPITAL L
+2144;;;TURNED SANS-SERIF CAPITAL Y
+2145;;;DOUBLE-STRUCK ITALIC CAPITAL D
+2146;;;DOUBLE-STRUCK ITALIC SMALL D
+2147;;;DOUBLE-STRUCK ITALIC SMALL E
+2148;;;DOUBLE-STRUCK ITALIC SMALL I
+2149;;;DOUBLE-STRUCK ITALIC SMALL J
+214A;;;PROPERTY LINE
+214B;;;TURNED AMPERSAND
+214C;;;PER SIGN
+2153;onethird;onethird;VULGAR FRACTION ONE THIRD
+2154;twothirds;twothirds;VULGAR FRACTION TWO THIRDS
+2155;;onefifth;VULGAR FRACTION ONE FIFTH
+2156;;twofifths;VULGAR FRACTION TWO FIFTHS
+2157;;threefifths;VULGAR FRACTION THREE FIFTHS
+2158;;fourfifths;VULGAR FRACTION FOUR FIFTHS
+2159;;onesixth;VULGAR FRACTION ONE SIXTH
+215A;;fivesixths;VULGAR FRACTION FIVE SIXTHS
+215B;oneeighth;oneeighth;VULGAR FRACTION ONE EIGHTH
+215C;threeeighths;threeeighths;VULGAR FRACTION THREE EIGHTHS
+215D;fiveeighths;fiveeighths;VULGAR FRACTION FIVE EIGHTHS
+215E;seveneighths;seveneighths;VULGAR FRACTION SEVEN EIGHTHS
+215F;;;FRACTION NUMERATOR ONE
+#
+2160;;romanI;ROMAN NUMERAL ONE
+2161;;romanII;ROMAN NUMERAL TWO
+2162;;romanIII;ROMAN NUMERAL THREE
+2163;;romanIV;ROMAN NUMERAL FOUR
+2164;;romanV;ROMAN NUMERAL FIVE
+2165;;romanVI;ROMAN NUMERAL SIX
+2166;;romanVII;ROMAN NUMERAL SEVEN
+2167;;romanVIII;ROMAN NUMERAL EIGHT
+2168;;romanIX;ROMAN NUMERAL NINE
+2169;;romanX;ROMAN NUMERAL TEN
+216A;;romanXI;ROMAN NUMERAL ELEVEN
+216B;;romanXII;ROMAN NUMERAL TWELVE
+216C;;romanL;ROMAN NUMERAL FIFTY
+216D;;romanC;ROMAN NUMERAL ONE HUNDRED
+216E;;romanD;ROMAN NUMERAL FIVE HUNDRED
+216F;;romanM;ROMAN NUMERAL ONE THOUSAND
+#
+2170;;romani;SMALL ROMAN NUMERAL ONE
+2171;;romanii;SMALL ROMAN NUMERAL TWO
+2172;;romaniii;SMALL ROMAN NUMERAL THREE
+2173;;romaniv;SMALL ROMAN NUMERAL FOUR
+2174;;romanv;SMALL ROMAN NUMERAL FIVE
+2175;;romanvi;SMALL ROMAN NUMERAL SIX
+2176;;romanvii;SMALL ROMAN NUMERAL SEVEN
+2177;;romanviii;SMALL ROMAN NUMERAL EIGHT
+2178;;romanix;SMALL ROMAN NUMERAL NINE
+2179;;romanx;SMALL ROMAN NUMERAL TEN
+217A;;romanxi;SMALL ROMAN NUMERAL ELEVEN
+217B;;romanxii;SMALL ROMAN NUMERAL TWELVE
+217C;;romanl;SMALL ROMAN NUMERAL FIFTY
+217D;;romanc;SMALL ROMAN NUMERAL ONE HUNDRED
+217E;;romand;SMALL ROMAN NUMERAL FIVE HUNDRED
+217F;;romanm;SMALL ROMAN NUMERAL ONE THOUSAND
+#
+2180;;;ROMAN NUMERAL ONE THOUSAND C D
+2181;;;ROMAN NUMERAL FIVE THOUSAND
+2182;;;ROMAN NUMERAL TEN THOUSAND
+2183;;;ROMAN NUMERAL REVERSED ONE HUNDRED
+#
+# Arrows
+#
+2190;arrowleft;;LEFTWARDS ARROW
+2191;arrowup;;UPWARDS ARROW
+2192;arrowright;;RIGHTWARDS ARROW
+2193;arrowdown;;DOWNWARDS ARROW
+2194;arrowboth;;LEFT RIGHT ARROW
+2195;arrowupdn;;UP DOWN ARROW
+2196;;;NORTH WEST ARROW
+2197;;;NORTH EAST ARROW
+2198;;;SOUTH EAST ARROW
+2199;;;SOUTH WEST ARROW
+219A;;;LEFTWARDS ARROW WITH STROKE
+219B;;;RIGHTWARDS ARROW WITH STROKE
+219C;;;LEFTWARDS WAVE ARROW
+219D;;;RIGHTWARDS WAVE ARROW
+219E;;;LEFTWARDS TWO HEADED ARROW
+219F;;;UPWARDS TWO HEADED ARROW
+#
+21A0;;;RIGHTWARDS TWO HEADED ARROW
+21A1;;;DOWNWARDS TWO HEADED ARROW
+21A2;;;LEFTWARDS ARROW WITH TAIL
+21A3;;;RIGHTWARDS ARROW WITH TAIL
+21A4;;;LEFTWARDS ARROW FROM BAR
+21A5;;;UPWARDS ARROW FROM BAR
+21A6;;;RIGHTWARDS ARROW FROM BAR
+21A7;;;DOWNWARDS ARROW FROM BAR
+21A8;arrowupdnbse;;UP DOWN ARROW WITH BASE
+21A9;;;LEFTWARDS ARROW WITH HOOK
+21AA;;;RIGHTWARDS ARROW WITH HOOK
+21AB;;;LEFTWARDS ARROW WITH LOOP
+21AC;;;RIGHTWARDS ARROW WITH LOOP
+21AD;;;LEFT RIGHT WAVE ARROW
+21AE;;;LEFT RIGHT ARROW WITH STROKE
+21AF;;;DOWNWARDS ZIGZAG ARROW
+#
+21B0;;;UPWARDS ARROW WITH TIP LEFTWARDS
+21B1;;;UPWARDS ARROW WITH TIP RIGHTWARDS
+21B2;;;DOWNWARDS ARROW WITH TIP LEFTWARDS
+21B3;;;DOWNWARDS ARROW WITH TIP RIGHTWARDS
+21B4;;;RIGHTWARDS ARROW WITH CORNER DOWNWARDS
+21B5;carriagereturn;;DOWNWARDS ARROW WITH CORNER LEFTWARDS
+21B6;;;ANTICLOCKWISE TOP SEMICIRCLE ARROW
+21B7;;;CLOCKWISE TOP SEMICIRCLE ARROW
+21B8;;;NORTH WEST ARROW TO LONG BAR
+21B9;;;LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
+21BA;;;ANTICLOCKWISE OPEN CIRCLE ARROW
+21BB;;;CLOCKWISE OPEN CIRCLE ARROW
+21BC;;;LEFTWARDS HARPOON WITH BARB UPWARDS
+21BD;;;LEFTWARDS HARPOON WITH BARB DOWNWARDS
+21BE;;;UPWARDS HARPOON WITH BARB RIGHTWARDS
+21BF;;;UPWARDS HARPOON WITH BARB LEFTWARDS
+#
+21C0;;;RIGHTWARDS HARPOON WITH BARB UPWARDS
+21C1;;;RIGHTWARDS HARPOON WITH BARB DOWNWARDS
+21C2;;;DOWNWARDS HARPOON WITH BARB RIGHTWARDS
+21C3;;;DOWNWARDS HARPOON WITH BARB LEFTWARDS
+21C4;;;RIGHTWARDS ARROW OVER LEFTWARDS ARROW
+21C5;;;UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
+21C6;;;LEFTWARDS ARROW OVER RIGHTWARDS ARROW
+21C7;;;LEFTWARDS PAIRED ARROWS
+21C8;;;UPWARDS PAIRED ARROWS
+21C9;;;RIGHTWARDS PAIRED ARROWS
+21CA;;;DOWNWARDS PAIRED ARROWS
+21CB;;;LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
+21CC;;;RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
+21CD;;;LEFTWARDS DOUBLE ARROW WITH STROKE
+21CE;;;LEFT RIGHT DOUBLE ARROW WITH STROKE
+21CF;;;RIGHTWARDS DOUBLE ARROW WITH STROKE
+#
+21D0;arrowdblleft;;LEFTWARDS DOUBLE ARROW
+21D1;arrowdblup;;UPWARDS DOUBLE ARROW
+21D2;arrowdblright;;RIGHTWARDS DOUBLE ARROW
+21D3;arrowdbldown;;DOWNWARDS DOUBLE ARROW
+21D4;arrowdblboth;;LEFT RIGHT DOUBLE ARROW
+21D5;;;UP DOWN DOUBLE ARROW
+21D6;;;NORTH WEST DOUBLE ARROW
+21D7;;;NORTH EAST DOUBLE ARROW
+21D8;;;SOUTH EAST DOUBLE ARROW
+21D9;;;SOUTH WEST DOUBLE ARROW
+21DA;;;LEFTWARDS TRIPLE ARROW
+21DB;;;RIGHTWARDS TRIPLE ARROW
+21DC;;;LEFTWARDS SQUIGGLE ARROW
+21DD;;;RIGHTWARDS SQUIGGLE ARROW
+21DE;;;UPWARDS ARROW WITH DOUBLE STROKE
+21DF;;;DOWNWARDS ARROW WITH DOUBLE STROKE
+#
+21E0;;;LEFTWARDS DASHED ARROW
+21E1;;;UPWARDS DASHED ARROW
+21E2;;;RIGHTWARDS DASHED ARROW
+21E3;;;DOWNWARDS DASHED ARROW
+21E4;;;LEFTWARDS ARROW TO BAR
+21E5;;;RIGHTWARDS ARROW TO BAR
+21E6;;;LEFTWARDS WHITE ARROW
+21E7;;;UPWARDS WHITE ARROW
+21E8;;;RIGHTWARDS WHITE ARROW
+21E9;;;DOWNWARDS WHITE ARROW
+21EA;;;UPWARDS WHITE ARROW FROM BAR
+21EB;;;UPWARDS WHITE ARROW ON PEDESTAL
+21EC;;;UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR
+21ED;;;UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR
+21EE;;;UPWARDS WHITE DOUBLE ARROW
+21EF;;;UPWARDS WHITE DOUBLE ARROW ON PEDESTAL
+#
+21F0;;;RIGHTWARDS WHITE ARROW FROM WALL
+21F1;;;NORTH WEST ARROW TO CORNER
+21F2;;;SOUTH EAST ARROW TO CORNER
+21F3;;;UP DOWN WHITE ARROW
+21F4;;;RIGHT ARROW WITH SMALL CIRCLE
+21F5;;;DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
+21F6;;;THREE RIGHTWARDS ARROWS
+21F7;;;LEFTWARDS ARROW WITH VERTICAL STROKE
+21F8;;;RIGHTWARDS ARROW WITH VERTICAL STROKE
+21F9;;;LEFT RIGHT ARROW WITH VERTICAL STROKE
+21FA;;;LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE
+21FB;;;RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE
+21FC;;;LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE
+21FD;;;LEFTWARDS OPEN-HEADED ARROW
+21FE;;;RIGHTWARDS OPEN-HEADED ARROW
+21FF;;;LEFT RIGHT OPEN-HEADED ARROW
+#
+# Mathematical Operators
+#
+2200;universal;;FOR ALL
+2201;;;COMPLEMENT
+2202;partialdiff;;PARTIAL DIFFERENTIAL
+2203;existential;;THERE EXISTS
+2204;;;THERE DOES NOT EXIST
+2205;emptyset;;EMPTY SET
+2206;Delta;;INCREMENT
+2207;gradient;;NABLA
+2208;element;;ELEMENT OF
+2209;notelement;;NOT AN ELEMENT OF
+220A;;;SMALL ELEMENT OF
+220B;suchthat;;CONTAINS AS MEMBER
+220C;;;DOES NOT CONTAIN AS MEMBER
+220D;;;SMALL CONTAINS AS MEMBER
+220E;;;END OF PROOF
+220F;product;;N-ARY PRODUCT
+#
+2210;;;N-ARY COPRODUCT
+2211;summation;;N-ARY SUMMATION
+2212;minus;;MINUS SIGN
+2213;;;MINUS-OR-PLUS SIGN
+2214;;;DOT PLUS
+2215;;;DIVISION SLASH
+2216;;;SET MINUS
+2217;asteriskmath;;ASTERISK OPERATOR
+2218;;;RING OPERATOR
+2219;;;BULLET OPERATOR
+221A;radical;;SQUARE ROOT
+221B;;;CUBE ROOT
+221C;;;FOURTH ROOT
+221D;proportional;;PROPORTIONAL TO
+221E;infinity;;INFINITY
+221F;orthogonal;;RIGHT ANGLE
+#
+2220;angle;;ANGLE
+2221;;;MEASURED ANGLE
+2222;;;SPHERICAL ANGLE
+2223;;;DIVIDES
+2224;;;DOES NOT DIVIDE
+2225;;;PARALLEL TO
+2226;;;NOT PARALLEL TO
+2227;logicaland;;LOGICAL AND
+2228;logicalor;;LOGICAL OR
+2229;intersection;;INTERSECTION
+222A;union;;UNION
+222B;integral;;INTEGRAL
+222C;;;DOUBLE INTEGRAL
+222D;;;TRIPLE INTEGRAL
+222E;;;CONTOUR INTEGRAL
+222F;;;SURFACE INTEGRAL
+#
+2230;;;VOLUME INTEGRAL
+2231;;;CLOCKWISE INTEGRAL
+2232;;;CLOCKWISE CONTOUR INTEGRAL
+2233;;;ANTICLOCKWISE CONTOUR INTEGRAL
+2234;therefore;;THEREFORE
+2235;;;BECAUSE
+2236;;;RATIO
+2237;;;PROPORTION
+2238;;;DOT MINUS
+2239;;;EXCESS
+223A;;;GEOMETRIC PROPORTION
+223B;;;HOMOTHETIC
+223C;similar;;TILDE OPERATOR
+223D;;;REVERSED TILDE
+223E;;;INVERTED LAZY S
+223F;;;SINE WAVE
+#
+2240;;;WREATH PRODUCT
+2241;;;NOT TILDE
+2242;;;MINUS TILDE
+2243;;;ASYMPTOTICALLY EQUAL TO
+2244;;;NOT ASYMPTOTICALLY EQUAL TO
+2245;congruent;;APPROXIMATELY EQUAL TO
+2246;;;APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
+2247;;;NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+2248;approxequal;;ALMOST EQUAL TO
+2249;;;NOT ALMOST EQUAL TO
+224A;;;ALMOST EQUAL OR EQUAL TO
+224B;;;TRIPLE TILDE
+224C;;;ALL EQUAL TO
+224D;;;EQUIVALENT TO
+224E;;;GEOMETRICALLY EQUIVALENT TO
+224F;;;DIFFERENCE BETWEEN
+#
+2250;;;APPROACHES THE LIMIT
+2251;;;GEOMETRICALLY EQUAL TO
+2252;;;APPROXIMATELY EQUAL TO OR THE IMAGE OF
+2253;;;IMAGE OF OR APPROXIMATELY EQUAL TO
+2254;;;COLON EQUALS
+2255;;;EQUALS COLON
+2256;;;RING IN EQUAL TO
+2257;;;RING EQUAL TO
+2258;;;CORRESPONDS TO
+2259;;;ESTIMATES
+225A;;;EQUIANGULAR TO
+225B;;;STAR EQUALS
+225C;;;DELTA EQUAL TO
+225D;;;EQUAL TO BY DEFINITION
+225E;;;MEASURED BY
+225F;;;QUESTIONED EQUAL TO
+#
+2260;notequal;;NOT EQUAL TO
+2261;equivalence;;IDENTICAL TO
+2262;;;NOT IDENTICAL TO
+2263;;;STRICTLY EQUIVALENT TO
+2264;lessequal;;LESS-THAN OR EQUAL TO
+2265;greaterequal;;GREATER-THAN OR EQUAL TO
+2266;;;LESS-THAN OVER EQUAL TO
+2267;;;GREATER-THAN OVER EQUAL TO
+2268;;;LESS-THAN BUT NOT EQUAL TO
+2269;;;GREATER-THAN BUT NOT EQUAL TO
+226A;;;MUCH LESS-THAN
+226B;;;MUCH GREATER-THAN
+226C;;;BETWEEN
+226D;;;NOT EQUIVALENT TO
+226E;;;NOT LESS-THAN
+226F;;;NOT GREATER-THAN
+#
+2270;;;NEITHER LESS-THAN NOR EQUAL TO
+2271;;;NEITHER GREATER-THAN NOR EQUAL TO
+2272;;;LESS-THAN OR EQUIVALENT TO
+2273;;;GREATER-THAN OR EQUIVALENT TO
+2274;;;NEITHER LESS-THAN NOR EQUIVALENT TO
+2275;;;NEITHER GREATER-THAN NOR EQUIVALENT TO
+2276;;;LESS-THAN OR GREATER-THAN
+2277;;;GREATER-THAN OR LESS-THAN
+2278;;;NEITHER LESS-THAN NOR GREATER-THAN
+2279;;;NEITHER GREATER-THAN NOR LESS-THAN
+227A;;;PRECEDES
+227B;;;SUCCEEDS
+227C;;;PRECEDES OR EQUAL TO
+227D;;;SUCCEEDS OR EQUAL TO
+227E;;;PRECEDES OR EQUIVALENT TO
+227F;;;SUCCEEDS OR EQUIVALENT TO
+#
+2280;;;DOES NOT PRECEDE
+2281;;;DOES NOT SUCCEED
+2282;propersubset;;SUBSET OF
+2283;propersuperset;;SUPERSET OF
+2284;notsubset;;NOT A SUBSET OF
+2285;;;NOT A SUPERSET OF
+2286;reflexsubset;;SUBSET OF OR EQUAL TO
+2287;reflexsuperset;;SUPERSET OF OR EQUAL TO
+2288;;;NEITHER A SUBSET OF NOR EQUAL TO
+2289;;;NEITHER A SUPERSET OF NOR EQUAL TO
+228A;;;SUBSET OF WITH NOT EQUAL TO
+228B;;;SUPERSET OF WITH NOT EQUAL TO
+228C;;;MULTISET
+228D;;;MULTISET MULTIPLICATION
+228E;;;MULTISET UNION
+228F;;;SQUARE IMAGE OF
+#
+2290;;;SQUARE ORIGINAL OF
+2291;;;SQUARE IMAGE OF OR EQUAL TO
+2292;;;SQUARE ORIGINAL OF OR EQUAL TO
+2293;;;SQUARE CAP
+2294;;;SQUARE CUP
+2295;circleplus;;CIRCLED PLUS
+2296;;;CIRCLED MINUS
+2297;circlemultiply;;CIRCLED TIMES
+2298;;;CIRCLED DIVISION SLASH
+2299;;;CIRCLED DOT OPERATOR
+229A;;;CIRCLED RING OPERATOR
+229B;;;CIRCLED ASTERISK OPERATOR
+229C;;;CIRCLED EQUALS
+229D;;;CIRCLED DASH
+229E;;;SQUARED PLUS
+229F;;;SQUARED MINUS
+#
+22A0;;;SQUARED TIMES
+22A1;;;SQUARED DOT OPERATOR
+22A2;;;RIGHT TACK
+22A3;;;LEFT TACK
+22A4;;;DOWN TACK
+22A5;perpendicular;;UP TACK
+22A6;;;ASSERTION
+22A7;;;MODELS
+22A8;;;TRUE
+22A9;;;FORCES
+22AA;;;TRIPLE VERTICAL BAR RIGHT TURNSTILE
+22AB;;;DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+22AC;;;DOES NOT PROVE
+22AD;;;NOT TRUE
+22AE;;;DOES NOT FORCE
+22AF;;;NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+#
+22B0;;;PRECEDES UNDER RELATION
+22B1;;;SUCCEEDS UNDER RELATION
+22B2;;;NORMAL SUBGROUP OF
+22B3;;;CONTAINS AS NORMAL SUBGROUP
+22B4;;;NORMAL SUBGROUP OF OR EQUAL TO
+22B5;;;CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
+22B6;;;ORIGINAL OF
+22B7;;;IMAGE OF
+22B8;;;MULTIMAP
+22B9;;;HERMITIAN CONJUGATE MATRIX
+22BA;;;INTERCALATE
+22BB;;;XOR
+22BC;;;NAND
+22BD;;;NOR
+22BE;;;RIGHT ANGLE WITH ARC
+22BF;;;RIGHT TRIANGLE
+#
+22C0;;;N-ARY LOGICAL AND
+22C1;;;N-ARY LOGICAL OR
+22C2;;;N-ARY INTERSECTION
+22C3;;;N-ARY UNION
+22C4;;;DIAMOND OPERATOR
+22C5;dotmath;;DOT OPERATOR
+22C6;;;STAR OPERATOR
+22C7;;;DIVISION TIMES
+22C8;;;BOWTIE
+22C9;;;LEFT NORMAL FACTOR SEMIDIRECT PRODUCT
+22CA;;;RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT
+22CB;;;LEFT SEMIDIRECT PRODUCT
+22CC;;;RIGHT SEMIDIRECT PRODUCT
+22CD;;;REVERSED TILDE EQUALS
+22CE;;;CURLY LOGICAL OR
+22CF;;;CURLY LOGICAL AND
+#
+22D0;;;DOUBLE SUBSET
+22D1;;;DOUBLE SUPERSET
+22D2;;;DOUBLE INTERSECTION
+22D3;;;DOUBLE UNION
+22D4;;;PITCHFORK
+22D5;;;EQUAL AND PARALLEL TO
+22D6;;;LESS-THAN WITH DOT
+22D7;;;GREATER-THAN WITH DOT
+22D8;;;VERY MUCH LESS-THAN
+22D9;;;VERY MUCH GREATER-THAN
+22DA;;;LESS-THAN EQUAL TO OR GREATER-THAN
+22DB;;;GREATER-THAN EQUAL TO OR LESS-THAN
+22DC;;;EQUAL TO OR LESS-THAN
+22DD;;;EQUAL TO OR GREATER-THAN
+22DE;;;EQUAL TO OR PRECEDES
+22DF;;;EQUAL TO OR SUCCEEDS
+#
+22E0;;;DOES NOT PRECEDE OR EQUAL
+22E1;;;DOES NOT SUCCEED OR EQUAL
+22E2;;;NOT SQUARE IMAGE OF OR EQUAL TO
+22E3;;;NOT SQUARE ORIGINAL OF OR EQUAL TO
+22E4;;;SQUARE IMAGE OF OR NOT EQUAL TO
+22E5;;;SQUARE ORIGINAL OF OR NOT EQUAL TO
+22E6;;;LESS-THAN BUT NOT EQUIVALENT TO
+22E7;;;GREATER-THAN BUT NOT EQUIVALENT TO
+22E8;;;PRECEDES BUT NOT EQUIVALENT TO
+22E9;;;SUCCEEDS BUT NOT EQUIVALENT TO
+22EA;;;NOT NORMAL SUBGROUP OF
+22EB;;;DOES NOT CONTAIN AS NORMAL SUBGROUP
+22EC;;;NOT NORMAL SUBGROUP OF OR EQUAL TO
+22ED;;;DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
+22EE;;;VERTICAL ELLIPSIS
+22EF;;;MIDLINE HORIZONTAL ELLIPSIS
+#
+22F0;;;UP RIGHT DIAGONAL ELLIPSIS
+22F1;;;DOWN RIGHT DIAGONAL ELLIPSIS
+22F2;;;ELEMENT OF WITH LONG HORIZONTAL STROKE
+22F3;;;ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+22F4;;;SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+22F5;;;ELEMENT OF WITH DOT ABOVE
+22F6;;;ELEMENT OF WITH OVERBAR
+22F7;;;SMALL ELEMENT OF WITH OVERBAR
+22F8;;;ELEMENT OF WITH UNDERBAR
+22F9;;;ELEMENT OF WITH TWO HORIZONTAL STROKES
+22FA;;;CONTAINS WITH LONG HORIZONTAL STROKE
+22FB;;;CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+22FC;;;SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+22FD;;;CONTAINS WITH OVERBAR
+22FE;;;SMALL CONTAINS WITH OVERBAR
+22FF;;;Z NOTATION BAG MEMBERSHIP
+#
+# Miscellaneous Technical
+#
+2300;;;DIAMETER SIGN
+2301;;;ELECTRIC ARROW
+2302;house;;HOUSE
+2303;;;UP ARROWHEAD
+2304;;;DOWN ARROWHEAD
+2305;;;PROJECTIVE
+2306;;;PERSPECTIVE
+2307;;;WAVY LINE
+2308;;;LEFT CEILING
+2309;;;RIGHT CEILING
+230A;;;LEFT FLOOR
+230B;;;RIGHT FLOOR
+230C;;;BOTTOM RIGHT CROP
+230D;;;BOTTOM LEFT CROP
+230E;;;TOP RIGHT CROP
+230F;;;TOP LEFT CROP
+#
+2310;revlogicalnot;;REVERSED NOT SIGN
+2311;;;SQUARE LOZENGE
+2312;;;ARC
+2313;;;SEGMENT
+2314;;;SECTOR
+2315;;;TELEPHONE RECORDER
+2316;;;POSITION INDICATOR
+2317;;;VIEWDATA SQUARE
+2318;;;PLACE OF INTEREST SIGN
+2319;;;TURNED NOT SIGN
+231A;;;WATCH
+231B;;;HOURGLASS
+231C;;;TOP LEFT CORNER
+231D;;;TOP RIGHT CORNER
+231E;;;BOTTOM LEFT CORNER
+231F;;;BOTTOM RIGHT CORNER
+#
+2320;integraltp;;TOP HALF INTEGRAL
+2321;integralbt;;BOTTOM HALF INTEGRAL
+2322;;;FROWN
+2323;;;SMILE
+2324;;;UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS
+2325;;;OPTION KEY
+2326;;;ERASE TO THE RIGHT
+2327;;;X IN A RECTANGLE BOX
+2328;;;KEYBOARD
+2329;angleleft;;LEFT-POINTING ANGLE BRACKET
+232A;angleright;;RIGHT-POINTING ANGLE BRACKET
+232B;;;ERASE TO THE LEFT
+232C;;;BENZENE RING
+232D;;;CYLINDRICITY
+232E;;;ALL AROUND-PROFILE
+232F;;;SYMMETRY
+#
+2330;;;TOTAL RUNOUT
+2331;;;DIMENSION ORIGIN
+2332;;;CONICAL TAPER
+2333;;;SLOPE
+2334;;;COUNTERBORE
+2335;;;COUNTERSINK
+2336;;;APL FUNCTIONAL SYMBOL I-BEAM
+2337;;;APL FUNCTIONAL SYMBOL SQUISH QUAD
+2338;;;APL FUNCTIONAL SYMBOL QUAD EQUAL
+2339;;;APL FUNCTIONAL SYMBOL QUAD DIVIDE
+233A;;;APL FUNCTIONAL SYMBOL QUAD DIAMOND
+233B;;;APL FUNCTIONAL SYMBOL QUAD JOT
+233C;;;APL FUNCTIONAL SYMBOL QUAD CIRCLE
+233D;;;APL FUNCTIONAL SYMBOL CIRCLE STILE
+233E;;;APL FUNCTIONAL SYMBOL CIRCLE JOT
+233F;;;APL FUNCTIONAL SYMBOL SLASH BAR
+#
+2340;;;APL FUNCTIONAL SYMBOL BACKSLASH BAR
+2341;;;APL FUNCTIONAL SYMBOL QUAD SLASH
+2342;;;APL FUNCTIONAL SYMBOL QUAD BACKSLASH
+2343;;;APL FUNCTIONAL SYMBOL QUAD LESS-THAN
+2344;;;APL FUNCTIONAL SYMBOL QUAD GREATER-THAN
+2345;;;APL FUNCTIONAL SYMBOL LEFTWARDS VANE
+2346;;;APL FUNCTIONAL SYMBOL RIGHTWARDS VANE
+2347;;;APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW
+2348;;;APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW
+2349;;;APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH
+234A;;;APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR
+234B;;;APL FUNCTIONAL SYMBOL DELTA STILE
+234C;;;APL FUNCTIONAL SYMBOL QUAD DOWN CARET
+234D;;;APL FUNCTIONAL SYMBOL QUAD DELTA
+234E;;;APL FUNCTIONAL SYMBOL DOWN TACK JOT
+234F;;;APL FUNCTIONAL SYMBOL UPWARDS VANE
+#
+2350;;;APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW
+2351;;;APL FUNCTIONAL SYMBOL UP TACK OVERBAR
+2352;;;APL FUNCTIONAL SYMBOL DEL STILE
+2353;;;APL FUNCTIONAL SYMBOL QUAD UP CARET
+2354;;;APL FUNCTIONAL SYMBOL QUAD DEL
+2355;;;APL FUNCTIONAL SYMBOL UP TACK JOT
+2356;;;APL FUNCTIONAL SYMBOL DOWNWARDS VANE
+2357;;;APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW
+2358;;;APL FUNCTIONAL SYMBOL QUOTE UNDERBAR
+2359;;;APL FUNCTIONAL SYMBOL DELTA UNDERBAR
+235A;;;APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR
+235B;;;APL FUNCTIONAL SYMBOL JOT UNDERBAR
+235C;;;APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR
+235D;;;APL FUNCTIONAL SYMBOL UP SHOE JOT
+235E;;;APL FUNCTIONAL SYMBOL QUOTE QUAD
+235F;;;APL FUNCTIONAL SYMBOL CIRCLE STAR
+#
+2360;;;APL FUNCTIONAL SYMBOL QUAD COLON
+2361;;;APL FUNCTIONAL SYMBOL UP TACK DIAERESIS
+2362;;;APL FUNCTIONAL SYMBOL DEL DIAERESIS
+2363;;;APL FUNCTIONAL SYMBOL STAR DIAERESIS
+2364;;;APL FUNCTIONAL SYMBOL JOT DIAERESIS
+2365;;;APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS
+2366;;;APL FUNCTIONAL SYMBOL DOWN SHOE STILE
+2367;;;APL FUNCTIONAL SYMBOL LEFT SHOE STILE
+2368;;;APL FUNCTIONAL SYMBOL TILDE DIAERESIS
+2369;;;APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS
+236A;;;APL FUNCTIONAL SYMBOL COMMA BAR
+236B;;;APL FUNCTIONAL SYMBOL DEL TILDE
+236C;;;APL FUNCTIONAL SYMBOL ZILDE
+236D;;;APL FUNCTIONAL SYMBOL STILE TILDE
+236E;;;APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR
+236F;;;APL FUNCTIONAL SYMBOL QUAD NOT EQUAL
+#
+2370;;;APL FUNCTIONAL SYMBOL QUAD QUESTION
+2371;;;APL FUNCTIONAL SYMBOL DOWN CARET TILDE
+2372;;;APL FUNCTIONAL SYMBOL UP CARET TILDE
+2373;;;APL FUNCTIONAL SYMBOL IOTA
+2374;;;APL FUNCTIONAL SYMBOL RHO
+2375;;;APL FUNCTIONAL SYMBOL OMEGA
+2376;;;APL FUNCTIONAL SYMBOL ALPHA UNDERBAR
+2377;;;APL FUNCTIONAL SYMBOL EPSILON UNDERBAR
+2378;;;APL FUNCTIONAL SYMBOL IOTA UNDERBAR
+2379;;;APL FUNCTIONAL SYMBOL OMEGA UNDERBAR
+237A;;;APL FUNCTIONAL SYMBOL ALPHA
+237B;;;NOT CHECK MARK
+237C;;;RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
+237D;;;SHOULDERED OPEN BOX
+237E;;;BELL SYMBOL
+237F;;;VERTICAL LINE WITH MIDDLE DOT
+#
+2380;;;INSERTION SYMBOL
+2381;;;CONTINUOUS UNDERLINE SYMBOL
+2382;;;DISCONTINUOUS UNDERLINE SYMBOL
+2383;;;EMPHASIS SYMBOL
+2384;;;COMPOSITION SYMBOL
+2385;;;WHITE SQUARE WITH CENTRE VERTICAL LINE
+2386;;;ENTER SYMBOL
+2387;;;ALTERNATIVE KEY SYMBOL
+2388;;;HELM SYMBOL
+2389;;;CIRCLED HORIZONTAL BAR WITH NOTCH
+238A;;;CIRCLED TRIANGLE DOWN
+238B;;;BROKEN CIRCLE WITH NORTHWEST ARROW
+238C;;;UNDO SYMBOL
+238D;;;MONOSTABLE SYMBOL
+238E;;;HYSTERESIS SYMBOL
+238F;;;OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL
+#
+2390;;;OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL
+2391;;;PASSIVE-PULL-DOWN-OUTPUT SYMBOL
+2392;;;PASSIVE-PULL-UP-OUTPUT SYMBOL
+2393;;;DIRECT CURRENT SYMBOL FORM TWO
+2394;;;SOFTWARE-FUNCTION SYMBOL
+2395;;;APL FUNCTIONAL SYMBOL QUAD
+2396;;;DECIMAL SEPARATOR KEY SYMBOL
+2397;;;PREVIOUS PAGE
+2398;;;NEXT PAGE
+2399;;;PRINT SCREEN SYMBOL
+239A;;;CLEAR SCREEN SYMBOL
+239B;;;LEFT PARENTHESIS UPPER HOOK
+239C;;;LEFT PARENTHESIS EXTENSION
+239D;;;LEFT PARENTHESIS LOWER HOOK
+239E;;;RIGHT PARENTHESIS UPPER HOOK
+239F;;;RIGHT PARENTHESIS EXTENSION
+#
+23A0;;;RIGHT PARENTHESIS LOWER HOOK
+23A1;;;LEFT SQUARE BRACKET UPPER CORNER
+23A2;;;LEFT SQUARE BRACKET EXTENSION
+23A3;;;LEFT SQUARE BRACKET LOWER CORNER
+23A4;;;RIGHT SQUARE BRACKET UPPER CORNER
+23A5;;;RIGHT SQUARE BRACKET EXTENSION
+23A6;;;RIGHT SQUARE BRACKET LOWER CORNER
+23A7;;;LEFT CURLY BRACKET UPPER HOOK
+23A8;;;LEFT CURLY BRACKET MIDDLE PIECE
+23A9;;;LEFT CURLY BRACKET LOWER HOOK
+23AA;;;CURLY BRACKET EXTENSION
+23AB;;;RIGHT CURLY BRACKET UPPER HOOK
+23AC;;;RIGHT CURLY BRACKET MIDDLE PIECE
+23AD;;;RIGHT CURLY BRACKET LOWER HOOK
+23AE;;;INTEGRAL EXTENSION
+23AF;;;HORIZONTAL LINE EXTENSION
+#
+23B0;;;UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION
+23B1;;;UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION
+23B2;;;SUMMATION TOP
+23B3;;;SUMMATION BOTTOM
+23B4;;;TOP SQUARE BRACKET
+23B5;;;BOTTOM SQUARE BRACKET
+23B6;;;BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET
+23B7;;;RADICAL SYMBOL BOTTOM
+23B8;;;LEFT VERTICAL BOX LINE
+23B9;;;RIGHT VERTICAL BOX LINE
+23BA;;;HORIZONTAL SCAN LINE-1
+23BB;;;HORIZONTAL SCAN LINE-3
+23BC;;;HORIZONTAL SCAN LINE-7
+23BD;;;HORIZONTAL SCAN LINE-9
+23BE;;;DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT
+23BF;;;DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT
+#
+23C0;;;DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE
+23C1;;;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE
+23C2;;;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE
+23C3;;;DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE
+23C4;;;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE
+23C5;;;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE
+23C6;;;DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE
+23C7;;;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE
+23C8;;;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE
+23C9;;;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL
+23CA;;;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL
+23CB;;;DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT
+23CC;;;DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT
+23CD;;;SQUARE FOOT
+23CE;;;RETURN SYMBOL
+23CF;;;EJECT SYMBOL
+#
+23D0;;;VERTICAL LINE EXTENSION
+23D1;;;METRICAL BREVE
+23D2;;;METRICAL LONG OVER SHORT
+23D3;;;METRICAL SHORT OVER LONG
+23D4;;;METRICAL LONG OVER TWO SHORTS
+23D5;;;METRICAL TWO SHORTS OVER LONG
+23D6;;;METRICAL TWO SHORTS JOINED
+23D7;;;METRICAL TRISEME
+23D8;;;METRICAL TETRASEME
+23D9;;;METRICAL PENTASEME
+23DA;;;EARTH GROUND
+23DB;;;FUSE
+#
+# Control Pictures
+#
+2400;;;SYMBOL FOR NULL
+2401;;;SYMBOL FOR START OF HEADING
+2402;;;SYMBOL FOR START OF TEXT
+2403;;;SYMBOL FOR END OF TEXT
+2404;;;SYMBOL FOR END OF TRANSMISSION
+2405;;;SYMBOL FOR ENQUIRY
+2406;;;SYMBOL FOR ACKNOWLEDGE
+2407;;;SYMBOL FOR BELL
+2408;;;SYMBOL FOR BACKSPACE
+2409;;;SYMBOL FOR HORIZONTAL TABULATION
+240A;;;SYMBOL FOR LINE FEED
+240B;;;SYMBOL FOR VERTICAL TABULATION
+240C;;;SYMBOL FOR FORM FEED
+240D;;;SYMBOL FOR CARRIAGE RETURN
+240E;;;SYMBOL FOR SHIFT OUT
+240F;;;SYMBOL FOR SHIFT IN
+#
+2410;;;SYMBOL FOR DATA LINK ESCAPE
+2411;;;SYMBOL FOR DEVICE CONTROL ONE
+2412;;;SYMBOL FOR DEVICE CONTROL TWO
+2413;;;SYMBOL FOR DEVICE CONTROL THREE
+2414;;;SYMBOL FOR DEVICE CONTROL FOUR
+2415;;;SYMBOL FOR NEGATIVE ACKNOWLEDGE
+2416;;;SYMBOL FOR SYNCHRONOUS IDLE
+2417;;;SYMBOL FOR END OF TRANSMISSION BLOCK
+2418;;;SYMBOL FOR CANCEL
+2419;;;SYMBOL FOR END OF MEDIUM
+241A;;;SYMBOL FOR SUBSTITUTE
+241B;;;SYMBOL FOR ESCAPE
+241C;;;SYMBOL FOR FILE SEPARATOR
+241D;;;SYMBOL FOR GROUP SEPARATOR
+241E;;;SYMBOL FOR RECORD SEPARATOR
+241F;;;SYMBOL FOR UNIT SEPARATOR
+#
+2420;;;SYMBOL FOR SPACE
+2421;;;SYMBOL FOR DELETE
+2422;;;BLANK SYMBOL
+2423;;;OPEN BOX
+2424;;;SYMBOL FOR NEWLINE
+2425;;;SYMBOL FOR DELETE FORM TWO
+2426;;;SYMBOL FOR SUBSTITUTE FORM TWO
+#
+# Optical Character Recognition
+#
+2440;;;OCR HOOK
+2441;;;OCR CHAIR
+2442;;;OCR FORK
+2443;;;OCR INVERTED FORK
+2444;;;OCR BELT BUCKLE
+2445;;;OCR BOW TIE
+2446;;;OCR BRANCH BANK IDENTIFICATION
+2447;;;OCR AMOUNT OF CHECK
+2448;;;OCR DASH
+2449;;;OCR CUSTOMER ACCOUNT NUMBER
+244A;;;OCR DOUBLE BACKSLASH
+#
+# Enclosed Alphanumerics
+#
+2460;;;CIRCLED DIGIT ONE
+2461;;;CIRCLED DIGIT TWO
+2462;;;CIRCLED DIGIT THREE
+2463;;;CIRCLED DIGIT FOUR
+2464;;;CIRCLED DIGIT FIVE
+2465;;;CIRCLED DIGIT SIX
+2466;;;CIRCLED DIGIT SEVEN
+2467;;;CIRCLED DIGIT EIGHT
+2468;;;CIRCLED DIGIT NINE
+2469;;;CIRCLED NUMBER TEN
+246A;;;CIRCLED NUMBER ELEVEN
+246B;;;CIRCLED NUMBER TWELVE
+246C;;;CIRCLED NUMBER THIRTEEN
+246D;;;CIRCLED NUMBER FOURTEEN
+246E;;;CIRCLED NUMBER FIFTEEN
+246F;;;CIRCLED NUMBER SIXTEEN
+#
+2470;;;CIRCLED NUMBER SEVENTEEN
+2471;;;CIRCLED NUMBER EIGHTEEN
+2472;;;CIRCLED NUMBER NINETEEN
+2473;;;CIRCLED NUMBER TWENTY
+2474;;;PARENTHESIZED DIGIT ONE
+2475;;;PARENTHESIZED DIGIT TWO
+2476;;;PARENTHESIZED DIGIT THREE
+2477;;;PARENTHESIZED DIGIT FOUR
+2478;;;PARENTHESIZED DIGIT FIVE
+2479;;;PARENTHESIZED DIGIT SIX
+247A;;;PARENTHESIZED DIGIT SEVEN
+247B;;;PARENTHESIZED DIGIT EIGHT
+247C;;;PARENTHESIZED DIGIT NINE
+247D;;;PARENTHESIZED NUMBER TEN
+247E;;;PARENTHESIZED NUMBER ELEVEN
+247F;;;PARENTHESIZED NUMBER TWELVE
+#
+2480;;;PARENTHESIZED NUMBER THIRTEEN
+2481;;;PARENTHESIZED NUMBER FOURTEEN
+2482;;;PARENTHESIZED NUMBER FIFTEEN
+2483;;;PARENTHESIZED NUMBER SIXTEEN
+2484;;;PARENTHESIZED NUMBER SEVENTEEN
+2485;;;PARENTHESIZED NUMBER EIGHTEEN
+2486;;;PARENTHESIZED NUMBER NINETEEN
+2487;;;PARENTHESIZED NUMBER TWENTY
+2488;;;DIGIT ONE FULL STOP
+2489;;;DIGIT TWO FULL STOP
+248A;;;DIGIT THREE FULL STOP
+248B;;;DIGIT FOUR FULL STOP
+248C;;;DIGIT FIVE FULL STOP
+248D;;;DIGIT SIX FULL STOP
+248E;;;DIGIT SEVEN FULL STOP
+248F;;;DIGIT EIGHT FULL STOP
+#
+2490;;;DIGIT NINE FULL STOP
+2491;;;NUMBER TEN FULL STOP
+2492;;;NUMBER ELEVEN FULL STOP
+2493;;;NUMBER TWELVE FULL STOP
+2494;;;NUMBER THIRTEEN FULL STOP
+2495;;;NUMBER FOURTEEN FULL STOP
+2496;;;NUMBER FIFTEEN FULL STOP
+2497;;;NUMBER SIXTEEN FULL STOP
+2498;;;NUMBER SEVENTEEN FULL STOP
+2499;;;NUMBER EIGHTEEN FULL STOP
+249A;;;NUMBER NINETEEN FULL STOP
+249B;;;NUMBER TWENTY FULL STOP
+249C;;;PARENTHESIZED LATIN SMALL LETTER A
+249D;;;PARENTHESIZED LATIN SMALL LETTER B
+249E;;;PARENTHESIZED LATIN SMALL LETTER C
+249F;;;PARENTHESIZED LATIN SMALL LETTER D
+#
+24A0;;;PARENTHESIZED LATIN SMALL LETTER E
+24A1;;;PARENTHESIZED LATIN SMALL LETTER F
+24A2;;;PARENTHESIZED LATIN SMALL LETTER G
+24A3;;;PARENTHESIZED LATIN SMALL LETTER H
+24A4;;;PARENTHESIZED LATIN SMALL LETTER I
+24A5;;;PARENTHESIZED LATIN SMALL LETTER J
+24A6;;;PARENTHESIZED LATIN SMALL LETTER K
+24A7;;;PARENTHESIZED LATIN SMALL LETTER L
+24A8;;;PARENTHESIZED LATIN SMALL LETTER M
+24A9;;;PARENTHESIZED LATIN SMALL LETTER N
+24AA;;;PARENTHESIZED LATIN SMALL LETTER O
+24AB;;;PARENTHESIZED LATIN SMALL LETTER P
+24AC;;;PARENTHESIZED LATIN SMALL LETTER Q
+24AD;;;PARENTHESIZED LATIN SMALL LETTER R
+24AE;;;PARENTHESIZED LATIN SMALL LETTER S
+24AF;;;PARENTHESIZED LATIN SMALL LETTER T
+#
+24B0;;;PARENTHESIZED LATIN SMALL LETTER U
+24B1;;;PARENTHESIZED LATIN SMALL LETTER V
+24B2;;;PARENTHESIZED LATIN SMALL LETTER W
+24B3;;;PARENTHESIZED LATIN SMALL LETTER X
+24B4;;;PARENTHESIZED LATIN SMALL LETTER Y
+24B5;;;PARENTHESIZED LATIN SMALL LETTER Z
+24B6;;;CIRCLED LATIN CAPITAL LETTER A
+24B7;;;CIRCLED LATIN CAPITAL LETTER B
+24B8;;;CIRCLED LATIN CAPITAL LETTER C
+24B9;;;CIRCLED LATIN CAPITAL LETTER D
+24BA;;;CIRCLED LATIN CAPITAL LETTER E
+24BB;;;CIRCLED LATIN CAPITAL LETTER F
+24BC;;;CIRCLED LATIN CAPITAL LETTER G
+24BD;;;CIRCLED LATIN CAPITAL LETTER H
+24BE;;;CIRCLED LATIN CAPITAL LETTER I
+24BF;;;CIRCLED LATIN CAPITAL LETTER J
+#
+24C0;;;CIRCLED LATIN CAPITAL LETTER K
+24C1;;;CIRCLED LATIN CAPITAL LETTER L
+24C2;;;CIRCLED LATIN CAPITAL LETTER M
+24C3;;;CIRCLED LATIN CAPITAL LETTER N
+24C4;;;CIRCLED LATIN CAPITAL LETTER O
+24C5;;;CIRCLED LATIN CAPITAL LETTER P
+24C6;;;CIRCLED LATIN CAPITAL LETTER Q
+24C7;;;CIRCLED LATIN CAPITAL LETTER R
+24C8;;;CIRCLED LATIN CAPITAL LETTER S
+24C9;;;CIRCLED LATIN CAPITAL LETTER T
+24CA;;;CIRCLED LATIN CAPITAL LETTER U
+24CB;;;CIRCLED LATIN CAPITAL LETTER V
+24CC;;;CIRCLED LATIN CAPITAL LETTER W
+24CD;;;CIRCLED LATIN CAPITAL LETTER X
+24CE;;;CIRCLED LATIN CAPITAL LETTER Y
+24CF;;;CIRCLED LATIN CAPITAL LETTER Z
+#
+24D0;;;CIRCLED LATIN SMALL LETTER A
+24D1;;;CIRCLED LATIN SMALL LETTER B
+24D2;;;CIRCLED LATIN SMALL LETTER C
+24D3;;;CIRCLED LATIN SMALL LETTER D
+24D4;;;CIRCLED LATIN SMALL LETTER E
+24D5;;;CIRCLED LATIN SMALL LETTER F
+24D6;;;CIRCLED LATIN SMALL LETTER G
+24D7;;;CIRCLED LATIN SMALL LETTER H
+24D8;;;CIRCLED LATIN SMALL LETTER I
+24D9;;;CIRCLED LATIN SMALL LETTER J
+24DA;;;CIRCLED LATIN SMALL LETTER K
+24DB;;;CIRCLED LATIN SMALL LETTER L
+24DC;;;CIRCLED LATIN SMALL LETTER M
+24DD;;;CIRCLED LATIN SMALL LETTER N
+24DE;;;CIRCLED LATIN SMALL LETTER O
+24DF;;;CIRCLED LATIN SMALL LETTER P
+#
+24E0;;;CIRCLED LATIN SMALL LETTER Q
+24E1;;;CIRCLED LATIN SMALL LETTER R
+24E2;;;CIRCLED LATIN SMALL LETTER S
+24E3;;;CIRCLED LATIN SMALL LETTER T
+24E4;;;CIRCLED LATIN SMALL LETTER U
+24E5;;;CIRCLED LATIN SMALL LETTER V
+24E6;;;CIRCLED LATIN SMALL LETTER W
+24E7;;;CIRCLED LATIN SMALL LETTER X
+24E8;;;CIRCLED LATIN SMALL LETTER Y
+24E9;;;CIRCLED LATIN SMALL LETTER Z
+24EA;;;CIRCLED DIGIT ZERO
+24EB;;;NEGATIVE CIRCLED NUMBER ELEVEN
+24EC;;;NEGATIVE CIRCLED NUMBER TWELVE
+24ED;;;NEGATIVE CIRCLED NUMBER THIRTEEN
+24EE;;;NEGATIVE CIRCLED NUMBER FOURTEEN
+24EF;;;NEGATIVE CIRCLED NUMBER FIFTEEN
+#
+24F0;;;NEGATIVE CIRCLED NUMBER SIXTEEN
+24F1;;;NEGATIVE CIRCLED NUMBER SEVENTEEN
+24F2;;;NEGATIVE CIRCLED NUMBER EIGHTEEN
+24F3;;;NEGATIVE CIRCLED NUMBER NINETEEN
+24F4;;;NEGATIVE CIRCLED NUMBER TWENTY
+24F5;;;DOUBLE CIRCLED DIGIT ONE
+24F6;;;DOUBLE CIRCLED DIGIT TWO
+24F7;;;DOUBLE CIRCLED DIGIT THREE
+24F8;;;DOUBLE CIRCLED DIGIT FOUR
+24F9;;;DOUBLE CIRCLED DIGIT FIVE
+24FA;;;DOUBLE CIRCLED DIGIT SIX
+24FB;;;DOUBLE CIRCLED DIGIT SEVEN
+24FC;;;DOUBLE CIRCLED DIGIT EIGHT
+24FD;;;DOUBLE CIRCLED DIGIT NINE
+24FE;;;DOUBLE CIRCLED NUMBER TEN
+24FF;;;NEGATIVE CIRCLED DIGIT ZERO
+#
+# Box Drawing
+#
+2500;SF100000;;BOX DRAWINGS LIGHT HORIZONTAL
+2501;;;BOX DRAWINGS HEAVY HORIZONTAL
+2502;SF110000;;BOX DRAWINGS LIGHT VERTICAL
+2503;;;BOX DRAWINGS HEAVY VERTICAL
+2504;;;BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL
+2505;;;BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL
+2506;;;BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL
+2507;;;BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL
+2508;;;BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL
+2509;;;BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL
+250A;;;BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL
+250B;;;BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL
+250C;SF010000;;BOX DRAWINGS LIGHT DOWN AND RIGHT
+250D;;;BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY
+250E;;;BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT
+250F;;;BOX DRAWINGS HEAVY DOWN AND RIGHT
+#
+2510;SF030000;;BOX DRAWINGS LIGHT DOWN AND LEFT
+2511;;;BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY
+2512;;;BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT
+2513;;;BOX DRAWINGS HEAVY DOWN AND LEFT
+2514;SF020000;;BOX DRAWINGS LIGHT UP AND RIGHT
+2515;;;BOX DRAWINGS UP LIGHT AND RIGHT HEAVY
+2516;;;BOX DRAWINGS UP HEAVY AND RIGHT LIGHT
+2517;;;BOX DRAWINGS HEAVY UP AND RIGHT
+2518;SF040000;;BOX DRAWINGS LIGHT UP AND LEFT
+2519;;;BOX DRAWINGS UP LIGHT AND LEFT HEAVY
+251A;;;BOX DRAWINGS UP HEAVY AND LEFT LIGHT
+251B;;;BOX DRAWINGS HEAVY UP AND LEFT
+251C;SF080000;;BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+251D;;;BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY
+251E;;;BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT
+251F;;;BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT
+#
+2520;;;BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT
+2521;;;BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY
+2522;;;BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY
+2523;;;BOX DRAWINGS HEAVY VERTICAL AND RIGHT
+2524;SF090000;;BOX DRAWINGS LIGHT VERTICAL AND LEFT
+2525;;;BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY
+2526;;;BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT
+2527;;;BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT
+2528;;;BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT
+2529;;;BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY
+252A;;;BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY
+252B;;;BOX DRAWINGS HEAVY VERTICAL AND LEFT
+252C;SF060000;;BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+252D;;;BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT
+252E;;;BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT
+252F;;;BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY
+#
+2530;;;BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT
+2531;;;BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY
+2532;;;BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY
+2533;;;BOX DRAWINGS HEAVY DOWN AND HORIZONTAL
+2534;SF070000;;BOX DRAWINGS LIGHT UP AND HORIZONTAL
+2535;;;BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT
+2536;;;BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT
+2537;;;BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY
+2538;;;BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT
+2539;;;BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY
+253A;;;BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY
+253B;;;BOX DRAWINGS HEAVY UP AND HORIZONTAL
+253C;SF050000;;BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+253D;;;BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT
+253E;;;BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT
+253F;;;BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY
+#
+2540;;;BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT
+2541;;;BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT
+2542;;;BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT
+2543;;;BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT
+2544;;;BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT
+2545;;;BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT
+2546;;;BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT
+2547;;;BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY
+2548;;;BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY
+2549;;;BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY
+254A;;;BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY
+254B;;;BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
+254C;;;BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL
+254D;;;BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL
+254E;;;BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL
+254F;;;BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
+#
+2550;SF430000;;BOX DRAWINGS DOUBLE HORIZONTAL
+2551;SF240000;;BOX DRAWINGS DOUBLE VERTICAL
+2552;SF510000;;BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+2553;SF520000;;BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+2554;SF390000;;BOX DRAWINGS DOUBLE DOWN AND RIGHT
+2555;SF220000;;BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+2556;SF210000;;BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+2557;SF250000;;BOX DRAWINGS DOUBLE DOWN AND LEFT
+2558;SF500000;;BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+2559;SF490000;;BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+255A;SF380000;;BOX DRAWINGS DOUBLE UP AND RIGHT
+255B;SF280000;;BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+255C;SF270000;;BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+255D;SF260000;;BOX DRAWINGS DOUBLE UP AND LEFT
+255E;SF360000;;BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+255F;SF370000;;BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+#
+2560;SF420000;;BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+2561;SF190000;;BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+2562;SF200000;;BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+2563;SF230000;;BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+2564;SF470000;;BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+2565;SF480000;;BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+2566;SF410000;;BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+2567;SF450000;;BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+2568;SF460000;;BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+2569;SF400000;;BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+256A;SF540000;;BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+256B;SF530000;;BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+256C;SF440000;;BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+256D;;;BOX DRAWINGS LIGHT ARC DOWN AND RIGHT
+256E;;;BOX DRAWINGS LIGHT ARC DOWN AND LEFT
+256F;;;BOX DRAWINGS LIGHT ARC UP AND LEFT
+#
+2570;;;BOX DRAWINGS LIGHT ARC UP AND RIGHT
+2571;;;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
+2572;;;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
+2573;;;BOX DRAWINGS LIGHT DIAGONAL CROSS
+2574;;;BOX DRAWINGS LIGHT LEFT
+2575;;;BOX DRAWINGS LIGHT UP
+2576;;;BOX DRAWINGS LIGHT RIGHT
+2577;;;BOX DRAWINGS LIGHT DOWN
+2578;;;BOX DRAWINGS HEAVY LEFT
+2579;;;BOX DRAWINGS HEAVY UP
+257A;;;BOX DRAWINGS HEAVY RIGHT
+257B;;;BOX DRAWINGS HEAVY DOWN
+257C;;;BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT
+257D;;;BOX DRAWINGS LIGHT UP AND HEAVY DOWN
+257E;;;BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT
+257F;;;BOX DRAWINGS HEAVY UP AND LIGHT DOWN
+#
+# Block Elements
+#
+2580;upblock;;UPPER HALF BLOCK
+2581;;;LOWER ONE EIGHTH BLOCK
+2582;;;LOWER ONE QUARTER BLOCK
+2583;;;LOWER THREE EIGHTHS BLOCK
+2584;dnblock;;LOWER HALF BLOCK
+2585;;;LOWER FIVE EIGHTHS BLOCK
+2586;;;LOWER THREE QUARTERS BLOCK
+2587;;;LOWER SEVEN EIGHTHS BLOCK
+2588;block;;FULL BLOCK
+2589;;;LEFT SEVEN EIGHTHS BLOCK
+258A;;;LEFT THREE QUARTERS BLOCK
+258B;;;LEFT FIVE EIGHTHS BLOCK
+258C;lfblock;;LEFT HALF BLOCK
+258D;;;LEFT THREE EIGHTHS BLOCK
+258E;;;LEFT ONE QUARTER BLOCK
+258F;;;LEFT ONE EIGHTH BLOCK
+#
+2590;rtblock;;RIGHT HALF BLOCK
+2591;ltshade;;LIGHT SHADE
+2592;shade;;MEDIUM SHADE
+2593;dkshade;;DARK SHADE
+2594;;;UPPER ONE EIGHTH BLOCK
+2595;;;RIGHT ONE EIGHTH BLOCK
+2596;;;QUADRANT LOWER LEFT
+2597;;;QUADRANT LOWER RIGHT
+2598;;;QUADRANT UPPER LEFT
+2599;;;QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT
+259A;;;QUADRANT UPPER LEFT AND LOWER RIGHT
+259B;;;QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT
+259C;;;QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT
+259D;;;QUADRANT UPPER RIGHT
+259E;;;QUADRANT UPPER RIGHT AND LOWER LEFT
+259F;;;QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
+#
+# Geometric Shapes
+#
+25A0;filledbox;;BLACK SQUARE
+25A1;H22073;;WHITE SQUARE
+25A2;;;WHITE SQUARE WITH ROUNDED CORNERS
+25A3;;;WHITE SQUARE CONTAINING BLACK SMALL SQUARE
+25A4;;;SQUARE WITH HORIZONTAL FILL
+25A5;;;SQUARE WITH VERTICAL FILL
+25A6;;;SQUARE WITH ORTHOGONAL CROSSHATCH FILL
+25A7;;;SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL
+25A8;;;SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL
+25A9;;;SQUARE WITH DIAGONAL CROSSHATCH FILL
+25AA;H18543;;BLACK SMALL SQUARE
+25AB;H18551;;WHITE SMALL SQUARE
+25AC;filledrect;;BLACK RECTANGLE
+25AD;;;WHITE RECTANGLE
+25AE;;;BLACK VERTICAL RECTANGLE
+25AF;;;WHITE VERTICAL RECTANGLE
+#
+25B0;;;BLACK PARALLELOGRAM
+25B1;;;WHITE PARALLELOGRAM
+25B2;triagup;;BLACK UP-POINTING TRIANGLE
+25B3;;;WHITE UP-POINTING TRIANGLE
+25B4;;;BLACK UP-POINTING SMALL TRIANGLE
+25B5;;;WHITE UP-POINTING SMALL TRIANGLE
+25B6;;;BLACK RIGHT-POINTING TRIANGLE
+25B7;;;WHITE RIGHT-POINTING TRIANGLE
+25B8;;;BLACK RIGHT-POINTING SMALL TRIANGLE
+25B9;;;WHITE RIGHT-POINTING SMALL TRIANGLE
+25BA;triagrt;;BLACK RIGHT-POINTING POINTER
+25BB;;;WHITE RIGHT-POINTING POINTER
+25BC;triagdn;;BLACK DOWN-POINTING TRIANGLE
+25BD;;;WHITE DOWN-POINTING TRIANGLE
+25BE;;;BLACK DOWN-POINTING SMALL TRIANGLE
+25BF;;;WHITE DOWN-POINTING SMALL TRIANGLE
+#
+25C0;;;BLACK LEFT-POINTING TRIANGLE
+25C1;;;WHITE LEFT-POINTING TRIANGLE
+25C2;;;BLACK LEFT-POINTING SMALL TRIANGLE
+25C3;;;WHITE LEFT-POINTING SMALL TRIANGLE
+25C4;triaglf;;BLACK LEFT-POINTING POINTER
+25C5;;;WHITE LEFT-POINTING POINTER
+25C6;;;BLACK DIAMOND
+25C7;;;WHITE DIAMOND
+25C8;;;WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
+25C9;;;FISHEYE
+25CA;lozenge;;LOZENGE
+25CB;circle;;WHITE CIRCLE
+25CC;;;DOTTED CIRCLE
+25CD;;;CIRCLE WITH VERTICAL FILL
+25CE;;;BULLSEYE
+25CF;H18533;;BLACK CIRCLE
+#
+25D0;;;CIRCLE WITH LEFT HALF BLACK
+25D1;;;CIRCLE WITH RIGHT HALF BLACK
+25D2;;;CIRCLE WITH LOWER HALF BLACK
+25D3;;;CIRCLE WITH UPPER HALF BLACK
+25D4;;;CIRCLE WITH UPPER RIGHT QUADRANT BLACK
+25D5;;;CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK
+25D6;;;LEFT HALF BLACK CIRCLE
+25D7;;;RIGHT HALF BLACK CIRCLE
+25D8;invbullet;;INVERSE BULLET
+25D9;invcircle;;INVERSE WHITE CIRCLE
+25DA;;;UPPER HALF INVERSE WHITE CIRCLE
+25DB;;;LOWER HALF INVERSE WHITE CIRCLE
+25DC;;;UPPER LEFT QUADRANT CIRCULAR ARC
+25DD;;;UPPER RIGHT QUADRANT CIRCULAR ARC
+25DE;;;LOWER RIGHT QUADRANT CIRCULAR ARC
+25DF;;;LOWER LEFT QUADRANT CIRCULAR ARC
+#
+25E0;;;UPPER HALF CIRCLE
+25E1;;;LOWER HALF CIRCLE
+25E2;;;BLACK LOWER RIGHT TRIANGLE
+25E3;;;BLACK LOWER LEFT TRIANGLE
+25E4;;;BLACK UPPER LEFT TRIANGLE
+25E5;;;BLACK UPPER RIGHT TRIANGLE
+25E6;openbullet;;WHITE BULLET
+25E7;;;SQUARE WITH LEFT HALF BLACK
+25E8;;;SQUARE WITH RIGHT HALF BLACK
+25E9;;;SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK
+25EA;;;SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK
+25EB;;;WHITE SQUARE WITH VERTICAL BISECTING LINE
+25EC;;;WHITE UP-POINTING TRIANGLE WITH DOT
+25ED;;;UP-POINTING TRIANGLE WITH LEFT HALF BLACK
+25EE;;;UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
+25EF;;;LARGE CIRCLE
+#
+25F0;;;WHITE SQUARE WITH UPPER LEFT QUADRANT
+25F1;;;WHITE SQUARE WITH LOWER LEFT QUADRANT
+25F2;;;WHITE SQUARE WITH LOWER RIGHT QUADRANT
+25F3;;;WHITE SQUARE WITH UPPER RIGHT QUADRANT
+25F4;;;WHITE CIRCLE WITH UPPER LEFT QUADRANT
+25F5;;;WHITE CIRCLE WITH LOWER LEFT QUADRANT
+25F6;;;WHITE CIRCLE WITH LOWER RIGHT QUADRANT
+25F7;;;WHITE CIRCLE WITH UPPER RIGHT QUADRANT
+25F8;;;UPPER LEFT TRIANGLE
+25F9;;;UPPER RIGHT TRIANGLE
+25FA;;;LOWER LEFT TRIANGLE
+25FB;;;WHITE MEDIUM SQUARE
+25FC;;;BLACK MEDIUM SQUARE
+25FD;;;WHITE MEDIUM SMALL SQUARE
+25FE;;;BLACK MEDIUM SMALL SQUARE
+25FF;;;LOWER RIGHT TRIANGLE
+#
+# Miscellaneous Symbols
+#
+2600;;;BLACK SUN WITH RAYS
+2601;;;CLOUD
+2602;;;UMBRELLA
+2603;;;SNOWMAN
+2604;;;COMET
+2605;;;BLACK STAR
+2606;;;WHITE STAR
+2607;;;LIGHTNING
+2608;;;THUNDERSTORM
+2609;;;SUN
+260A;;;ASCENDING NODE
+260B;;;DESCENDING NODE
+260C;;;CONJUNCTION
+260D;;;OPPOSITION
+260E;;;BLACK TELEPHONE
+260F;;;WHITE TELEPHONE
+#
+2610;;;BALLOT BOX
+2611;;;BALLOT BOX WITH CHECK
+2612;;;BALLOT BOX WITH X
+2613;;;SALTIRE
+2614;;;UMBRELLA WITH RAIN DROPS
+2615;;;HOT BEVERAGE
+2616;;;WHITE SHOGI PIECE
+2617;;;BLACK SHOGI PIECE
+2618;;;SHAMROCK
+2619;;;REVERSED ROTATED FLORAL HEART BULLET
+261A;;;BLACK LEFT POINTING INDEX
+261B;;;BLACK RIGHT POINTING INDEX
+261C;;;WHITE LEFT POINTING INDEX
+261D;;;WHITE UP POINTING INDEX
+261E;;;WHITE RIGHT POINTING INDEX
+261F;;;WHITE DOWN POINTING INDEX
+#
+2620;;;SKULL AND CROSSBONES
+2621;;;CAUTION SIGN
+2622;;;RADIOACTIVE SIGN
+2623;;;BIOHAZARD SIGN
+2624;;;CADUCEUS
+2625;;;ANKH
+2626;;;ORTHODOX CROSS
+2627;;;CHI RHO
+2628;;;CROSS OF LORRAINE
+2629;;;CROSS OF JERUSALEM
+262A;;;STAR AND CRESCENT
+262B;;;FARSI SYMBOL
+262C;;;ADI SHAKTI
+262D;;;HAMMER AND SICKLE
+262E;;;PEACE SYMBOL
+262F;;;YIN YANG
+#
+2630;;;TRIGRAM FOR HEAVEN
+2631;;;TRIGRAM FOR LAKE
+2632;;;TRIGRAM FOR FIRE
+2633;;;TRIGRAM FOR THUNDER
+2634;;;TRIGRAM FOR WIND
+2635;;;TRIGRAM FOR WATER
+2636;;;TRIGRAM FOR MOUNTAIN
+2637;;;TRIGRAM FOR EARTH
+2638;;;WHEEL OF DHARMA
+2639;;;WHITE FROWNING FACE
+263A;smileface;;WHITE SMILING FACE
+263B;invsmileface;;BLACK SMILING FACE
+263C;sun;;WHITE SUN WITH RAYS
+263D;;;FIRST QUARTER MOON
+263E;;;LAST QUARTER MOON
+263F;;;MERCURY
+#
+2640;female;;FEMALE SIGN
+2641;;;EARTH
+2642;male;;MALE SIGN
+2643;;;JUPITER
+2644;;;SATURN
+2645;;;URANUS
+2646;;;NEPTUNE
+2647;;;PLUTO
+2648;;;ARIES
+2649;;;TAURUS
+264A;;;GEMINI
+264B;;;CANCER
+264C;;;LEO
+264D;;;VIRGO
+264E;;;LIBRA
+264F;;;SCORPIUS
+#
+2650;;;SAGITTARIUS
+2651;;;CAPRICORN
+2652;;;AQUARIUS
+2653;;;PISCES
+2654;;;WHITE CHESS KING
+2655;;;WHITE CHESS QUEEN
+2656;;;WHITE CHESS ROOK
+2657;;;WHITE CHESS BISHOP
+2658;;;WHITE CHESS KNIGHT
+2659;;;WHITE CHESS PAWN
+265A;;;BLACK CHESS KING
+265B;;;BLACK CHESS QUEEN
+265C;;;BLACK CHESS ROOK
+265D;;;BLACK CHESS BISHOP
+265E;;;BLACK CHESS KNIGHT
+265F;;;BLACK CHESS PAWN
+#
+2660;spade;;BLACK SPADE SUIT
+2661;;;WHITE HEART SUIT
+2662;;;WHITE DIAMOND SUIT
+2663;club;;BLACK CLUB SUIT
+2664;;;WHITE SPADE SUIT
+2665;heart;;BLACK HEART SUIT
+2666;diamond;;BLACK DIAMOND SUIT
+2667;;;WHITE CLUB SUIT
+2668;;;HOT SPRINGS
+2669;;;QUARTER NOTE
+266A;musicalnote;;EIGHTH NOTE
+266B;musicalnotedbl;;BEAMED EIGHTH NOTES
+266C;;;BEAMED SIXTEENTH NOTES
+266D;;;MUSIC FLAT SIGN
+266E;;;MUSIC NATURAL SIGN
+266F;;;MUSIC SHARP SIGN
+#
+2670;;;WEST SYRIAC CROSS
+2671;;;EAST SYRIAC CROSS
+2672;;;UNIVERSAL RECYCLING SYMBOL
+2673;;;RECYCLING SYMBOL FOR TYPE-1 PLASTICS
+2674;;;RECYCLING SYMBOL FOR TYPE-2 PLASTICS
+2675;;;RECYCLING SYMBOL FOR TYPE-3 PLASTICS
+2676;;;RECYCLING SYMBOL FOR TYPE-4 PLASTICS
+2677;;;RECYCLING SYMBOL FOR TYPE-5 PLASTICS
+2678;;;RECYCLING SYMBOL FOR TYPE-6 PLASTICS
+2679;;;RECYCLING SYMBOL FOR TYPE-7 PLASTICS
+267A;;;RECYCLING SYMBOL FOR GENERIC MATERIALS
+267B;;;BLACK UNIVERSAL RECYCLING SYMBOL
+267C;;;RECYCLED PAPER SYMBOL
+267D;;;PARTIALLY-RECYCLED PAPER SYMBOL
+267E;;;PERMANENT PAPER SIGN
+267F;;;WHEELCHAIR SYMBOL
+#
+2680;;;DIE FACE-1
+2681;;;DIE FACE-2
+2682;;;DIE FACE-3
+2683;;;DIE FACE-4
+2684;;;DIE FACE-5
+2685;;;DIE FACE-6
+2686;;;WHITE CIRCLE WITH DOT RIGHT
+2687;;;WHITE CIRCLE WITH TWO DOTS
+2688;;;BLACK CIRCLE WITH WHITE DOT RIGHT
+2689;;;BLACK CIRCLE WITH TWO WHITE DOTS
+268A;;;MONOGRAM FOR YANG
+268B;;;MONOGRAM FOR YIN
+268C;;;DIGRAM FOR GREATER YANG
+268D;;;DIGRAM FOR LESSER YIN
+268E;;;DIGRAM FOR LESSER YANG
+268F;;;DIGRAM FOR GREATER YIN
+#
+2690;;;WHITE FLAG
+2691;;;BLACK FLAG
+2692;;;HAMMER AND PICK
+2693;;;ANCHOR
+2694;;;CROSSED SWORDS
+2695;;;STAFF OF AESCULAPIUS
+2696;;;SCALES
+2697;;;ALEMBIC
+2698;;;FLOWER
+2699;;;GEAR
+269A;;;STAFF OF HERMES
+269B;;;ATOM SYMBOL
+269C;;;FLEUR-DE-LIS
+#
+26A0;;;WARNING SIGN
+26A1;;;HIGH VOLTAGE SIGN
+26A2;;;DOUBLED FEMALE SIGN
+26A3;;;DOUBLED MALE SIGN
+26A4;;;INTERLOCKED FEMALE AND MALE SIGN
+26A5;;;MALE AND FEMALE SIGN
+26A6;;;MALE WITH STROKE SIGN
+26A7;;;MALE WITH STROKE AND MALE AND FEMALE SIGN
+26A8;;;VERTICAL MALE WITH STROKE SIGN
+26A9;;;HORIZONTAL MALE WITH STROKE SIGN
+26AA;;;MEDIUM WHITE CIRCLE
+26AB;;;MEDIUM BLACK CIRCLE
+26AC;;;MEDIUM SMALL WHITE CIRCLE
+26AD;;;MARRIAGE SYMBOL
+26AE;;;DIVORCE SYMBOL
+26AF;;;UNMARRIED PARTNERSHIP SYMBOL
+#
+26B0;;;COFFIN
+26B1;;;FUNERAL URN
+2701;;;UPPER BLADE SCISSORS
+2702;;;BLACK SCISSORS
+2703;;;LOWER BLADE SCISSORS
+2704;;;WHITE SCISSORS
+2706;;;TELEPHONE LOCATION SIGN
+2707;;;TAPE DRIVE
+2708;;;AIRPLANE
+2709;;;ENVELOPE
+270C;;;VICTORY HAND
+270D;;;WRITING HAND
+270E;;;LOWER RIGHT PENCIL
+270F;;;PENCIL
+#
+2710;;;UPPER RIGHT PENCIL
+2711;;;WHITE NIB
+2712;;;BLACK NIB
+2713;;;CHECK MARK
+2714;;;HEAVY CHECK MARK
+2715;;;MULTIPLICATION X
+2716;;;HEAVY MULTIPLICATION X
+2717;;;BALLOT X
+2718;;;HEAVY BALLOT X
+2719;;;OUTLINED GREEK CROSS
+271A;;;HEAVY GREEK CROSS
+271B;;;OPEN CENTRE CROSS
+271C;;;HEAVY OPEN CENTRE CROSS
+271D;;;LATIN CROSS
+271E;;;SHADOWED WHITE LATIN CROSS
+271F;;;OUTLINED LATIN CROSS
+#
+2720;;;MALTESE CROSS
+2721;;;STAR OF DAVID
+2722;;;FOUR TEARDROP-SPOKED ASTERISK
+2723;;;FOUR BALLOON-SPOKED ASTERISK
+2724;;;HEAVY FOUR BALLOON-SPOKED ASTERISK
+2725;;;FOUR CLUB-SPOKED ASTERISK
+2726;;;BLACK FOUR POINTED STAR
+2727;;;WHITE FOUR POINTED STAR
+2729;;;STRESS OUTLINED WHITE STAR
+272A;;;CIRCLED WHITE STAR
+272B;;;OPEN CENTRE BLACK STAR
+272C;;;BLACK CENTRE WHITE STAR
+272D;;;OUTLINED BLACK STAR
+272E;;;HEAVY OUTLINED BLACK STAR
+272F;;;PINWHEEL STAR
+#
+2730;;;SHADOWED WHITE STAR
+2731;;;HEAVY ASTERISK
+2732;;;OPEN CENTRE ASTERISK
+2733;;;EIGHT SPOKED ASTERISK
+2734;;;EIGHT POINTED BLACK STAR
+2735;;;EIGHT POINTED PINWHEEL STAR
+2736;;;SIX POINTED BLACK STAR
+2737;;;EIGHT POINTED RECTILINEAR BLACK STAR
+2738;;;HEAVY EIGHT POINTED RECTILINEAR BLACK STAR
+2739;;;TWELVE POINTED BLACK STAR
+273A;;;SIXTEEN POINTED ASTERISK
+273B;;;TEARDROP-SPOKED ASTERISK
+273C;;;OPEN CENTRE TEARDROP-SPOKED ASTERISK
+273D;;;HEAVY TEARDROP-SPOKED ASTERISK
+273E;;;SIX PETALLED BLACK AND WHITE FLORETTE
+273F;;;BLACK FLORETTE
+#
+2740;;;WHITE FLORETTE
+2741;;;EIGHT PETALLED OUTLINED BLACK FLORETTE
+2742;;;CIRCLED OPEN CENTRE EIGHT POINTED STAR
+2743;;;HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK
+2744;;;SNOWFLAKE
+2745;;;TIGHT TRIFOLIATE SNOWFLAKE
+2746;;;HEAVY CHEVRON SNOWFLAKE
+2747;;;SPARKLE
+2748;;;HEAVY SPARKLE
+2749;;;BALLOON-SPOKED ASTERISK
+274A;;;EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
+274B;;;HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
+274D;;;SHADOWED WHITE CIRCLE
+274F;;;LOWER RIGHT DROP-SHADOWED WHITE SQUARE
+#
+2750;;;UPPER RIGHT DROP-SHADOWED WHITE SQUARE
+2751;;;LOWER RIGHT SHADOWED WHITE SQUARE
+2752;;;UPPER RIGHT SHADOWED WHITE SQUARE
+2756;;;BLACK DIAMOND MINUS WHITE X
+2758;;;LIGHT VERTICAL BAR
+2759;;;MEDIUM VERTICAL BAR
+275A;;;HEAVY VERTICAL BAR
+275B;;;HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT
+275C;;;HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT
+275D;;;HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
+275E;;;HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
+2761;;;CURVED STEM PARAGRAPH SIGN ORNAMENT
+2762;;;HEAVY EXCLAMATION MARK ORNAMENT
+2763;;;HEAVY HEART EXCLAMATION MARK ORNAMENT
+2764;;;HEAVY BLACK HEART
+2765;;;ROTATED HEAVY BLACK HEART BULLET
+2766;;;FLORAL HEART
+2767;;;ROTATED FLORAL HEART BULLET
+2768;;;MEDIUM LEFT PARENTHESIS ORNAMENT
+2769;;;MEDIUM RIGHT PARENTHESIS ORNAMENT
+276A;;;MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
+276B;;;MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
+276C;;;MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
+276D;;;MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
+276E;;;HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
+276F;;;HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
+#
+2770;;;HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
+2771;;;HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
+2772;;;LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
+2773;;;LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
+2774;;;MEDIUM LEFT CURLY BRACKET ORNAMENT
+2775;;;MEDIUM RIGHT CURLY BRACKET ORNAMENT
+2776;;;DINGBAT NEGATIVE CIRCLED DIGIT ONE
+2777;;;DINGBAT NEGATIVE CIRCLED DIGIT TWO
+2778;;;DINGBAT NEGATIVE CIRCLED DIGIT THREE
+2779;;;DINGBAT NEGATIVE CIRCLED DIGIT FOUR
+277A;;;DINGBAT NEGATIVE CIRCLED DIGIT FIVE
+277B;;;DINGBAT NEGATIVE CIRCLED DIGIT SIX
+277C;;;DINGBAT NEGATIVE CIRCLED DIGIT SEVEN
+277D;;;DINGBAT NEGATIVE CIRCLED DIGIT EIGHT
+277E;;;DINGBAT NEGATIVE CIRCLED DIGIT NINE
+277F;;;DINGBAT NEGATIVE CIRCLED NUMBER TEN
+#
+2780;;;DINGBAT CIRCLED SANS-SERIF DIGIT ONE
+2781;;;DINGBAT CIRCLED SANS-SERIF DIGIT TWO
+2782;;;DINGBAT CIRCLED SANS-SERIF DIGIT THREE
+2783;;;DINGBAT CIRCLED SANS-SERIF DIGIT FOUR
+2784;;;DINGBAT CIRCLED SANS-SERIF DIGIT FIVE
+2785;;;DINGBAT CIRCLED SANS-SERIF DIGIT SIX
+2786;;;DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN
+2787;;;DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT
+2788;;;DINGBAT CIRCLED SANS-SERIF DIGIT NINE
+2789;;;DINGBAT CIRCLED SANS-SERIF NUMBER TEN
+278A;;;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE
+278B;;;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO
+278C;;;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE
+278D;;;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR
+278E;;;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE
+278F;;;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX
+#
+2790;;;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN
+2791;;;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT
+2792;;;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE
+2793;;;DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
+2794;;;HEAVY WIDE-HEADED RIGHTWARDS ARROW
+2798;;;HEAVY SOUTH EAST ARROW
+2799;;;HEAVY RIGHTWARDS ARROW
+279A;;;HEAVY NORTH EAST ARROW
+279B;;;DRAFTING POINT RIGHTWARDS ARROW
+279C;;;HEAVY ROUND-TIPPED RIGHTWARDS ARROW
+279D;;;TRIANGLE-HEADED RIGHTWARDS ARROW
+279E;;;HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW
+279F;;;DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
+#
+27A0;;;HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
+27A1;;;BLACK RIGHTWARDS ARROW
+27A2;;;THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD
+27A3;;;THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD
+27A4;;;BLACK RIGHTWARDS ARROWHEAD
+27A5;;;HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW
+27A6;;;HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW
+27A7;;;SQUAT BLACK RIGHTWARDS ARROW
+27A8;;;HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW
+27A9;;;RIGHT-SHADED WHITE RIGHTWARDS ARROW
+27AA;;;LEFT-SHADED WHITE RIGHTWARDS ARROW
+27AB;;;BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW
+27AC;;;FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW
+27AD;;;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27AE;;;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27AF;;;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27B1;;;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27B2;;;CIRCLED HEAVY WHITE RIGHTWARDS ARROW
+27B3;;;WHITE-FEATHERED RIGHTWARDS ARROW
+27B4;;;BLACK-FEATHERED SOUTH EAST ARROW
+27B5;;;BLACK-FEATHERED RIGHTWARDS ARROW
+27B6;;;BLACK-FEATHERED NORTH EAST ARROW
+27B7;;;HEAVY BLACK-FEATHERED SOUTH EAST ARROW
+27B8;;;HEAVY BLACK-FEATHERED RIGHTWARDS ARROW
+27B9;;;HEAVY BLACK-FEATHERED NORTH EAST ARROW
+27BA;;;TEARDROP-BARBED RIGHTWARDS ARROW
+27BB;;;HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW
+27BC;;;WEDGE-TAILED RIGHTWARDS ARROW
+27BD;;;HEAVY WEDGE-TAILED RIGHTWARDS ARROW
+27BE;;;OPEN-OUTLINED RIGHTWARDS ARROW
+#
+# Miscellaneous Mathematica Symbols-A
+#
+27C0;;;THREE DIMENSIONAL ANGLE
+27C1;;;WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE
+27C2;;;PERPENDICULAR
+27C3;;;OPEN SUBSET
+27C4;;;OPEN SUPERSET
+27C5;;;LEFT S-SHAPED BAG DELIMITER
+27C6;;;RIGHT S-SHAPED BAG DELIMITER
+#
+27D0;;;WHITE DIAMOND WITH CENTRED DOT
+27D1;;;AND WITH DOT
+27D2;;;ELEMENT OF OPENING UPWARDS
+27D3;;;LOWER RIGHT CORNER WITH DOT
+27D4;;;UPPER LEFT CORNER WITH DOT
+27D5;;;LEFT OUTER JOIN
+27D6;;;RIGHT OUTER JOIN
+27D7;;;FULL OUTER JOIN
+27D8;;;LARGE UP TACK
+27D9;;;LARGE DOWN TACK
+27DA;;;LEFT AND RIGHT DOUBLE TURNSTILE
+27DB;;;LEFT AND RIGHT TACK
+27DC;;;LEFT MULTIMAP
+27DD;;;LONG RIGHT TACK
+27DE;;;LONG LEFT TACK
+27DF;;;UP TACK WITH CIRCLE ABOVE
+#
+27E0;;;LOZENGE DIVIDED BY HORIZONTAL RULE
+27E1;;;WHITE CONCAVE-SIDED DIAMOND
+27E2;;;WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK
+27E3;;;WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK
+27E4;;;WHITE SQUARE WITH LEFTWARDS TICK
+27E5;;;WHITE SQUARE WITH RIGHTWARDS TICK
+27E6;;;MATHEMATICAL LEFT WHITE SQUARE BRACKET
+27E7;;;MATHEMATICAL RIGHT WHITE SQUARE BRACKET
+27E8;;;MATHEMATICAL LEFT ANGLE BRACKET
+27E9;;;MATHEMATICAL RIGHT ANGLE BRACKET
+27EA;;;MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
+27EB;;;MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
+#
+# Supplemental Arrows-A
+#
+27F0;;;UPWARDS QUADRUPLE ARROW
+27F1;;;DOWNWARDS QUADRUPLE ARROW
+27F2;;;ANTICLOCKWISE GAPPED CIRCLE ARROW
+27F3;;;CLOCKWISE GAPPED CIRCLE ARROW
+27F4;;;RIGHT ARROW WITH CIRCLED PLUS
+27F5;;;LONG LEFTWARDS ARROW
+27F6;;;LONG RIGHTWARDS ARROW
+27F7;;;LONG LEFT RIGHT ARROW
+27F8;;;LONG LEFTWARDS DOUBLE ARROW
+27F9;;;LONG RIGHTWARDS DOUBLE ARROW
+27FA;;;LONG LEFT RIGHT DOUBLE ARROW
+27FB;;;LONG LEFTWARDS ARROW FROM BAR
+27FC;;;LONG RIGHTWARDS ARROW FROM BAR
+27FD;;;LONG LEFTWARDS DOUBLE ARROW FROM BAR
+27FE;;;LONG RIGHTWARDS DOUBLE ARROW FROM BAR
+27FF;;;LONG RIGHTWARDS SQUIGGLE ARROW
+#
+# Braille Patterns
+#
+2800;;;BRAILLE PATTERN BLANK
+2801;;;BRAILLE PATTERN DOTS-1
+2802;;;BRAILLE PATTERN DOTS-2
+2803;;;BRAILLE PATTERN DOTS-12
+2804;;;BRAILLE PATTERN DOTS-3
+2805;;;BRAILLE PATTERN DOTS-13
+2806;;;BRAILLE PATTERN DOTS-23
+2807;;;BRAILLE PATTERN DOTS-123
+2808;;;BRAILLE PATTERN DOTS-4
+2809;;;BRAILLE PATTERN DOTS-14
+280A;;;BRAILLE PATTERN DOTS-24
+280B;;;BRAILLE PATTERN DOTS-124
+280C;;;BRAILLE PATTERN DOTS-34
+280D;;;BRAILLE PATTERN DOTS-134
+280E;;;BRAILLE PATTERN DOTS-234
+280F;;;BRAILLE PATTERN DOTS-1234
+#
+2810;;;BRAILLE PATTERN DOTS-5
+2811;;;BRAILLE PATTERN DOTS-15
+2812;;;BRAILLE PATTERN DOTS-25
+2813;;;BRAILLE PATTERN DOTS-125
+2814;;;BRAILLE PATTERN DOTS-35
+2815;;;BRAILLE PATTERN DOTS-135
+2816;;;BRAILLE PATTERN DOTS-235
+2817;;;BRAILLE PATTERN DOTS-1235
+2818;;;BRAILLE PATTERN DOTS-45
+2819;;;BRAILLE PATTERN DOTS-145
+281A;;;BRAILLE PATTERN DOTS-245
+281B;;;BRAILLE PATTERN DOTS-1245
+281C;;;BRAILLE PATTERN DOTS-345
+281D;;;BRAILLE PATTERN DOTS-1345
+281E;;;BRAILLE PATTERN DOTS-2345
+281F;;;BRAILLE PATTERN DOTS-12345
+#
+2820;;;BRAILLE PATTERN DOTS-6
+2821;;;BRAILLE PATTERN DOTS-16
+2822;;;BRAILLE PATTERN DOTS-26
+2823;;;BRAILLE PATTERN DOTS-126
+2824;;;BRAILLE PATTERN DOTS-36
+2825;;;BRAILLE PATTERN DOTS-136
+2826;;;BRAILLE PATTERN DOTS-236
+2827;;;BRAILLE PATTERN DOTS-1236
+2828;;;BRAILLE PATTERN DOTS-46
+2829;;;BRAILLE PATTERN DOTS-146
+282A;;;BRAILLE PATTERN DOTS-246
+282B;;;BRAILLE PATTERN DOTS-1246
+282C;;;BRAILLE PATTERN DOTS-346
+282D;;;BRAILLE PATTERN DOTS-1346
+282E;;;BRAILLE PATTERN DOTS-2346
+282F;;;BRAILLE PATTERN DOTS-12346
+#
+2830;;;BRAILLE PATTERN DOTS-56
+2831;;;BRAILLE PATTERN DOTS-156
+2832;;;BRAILLE PATTERN DOTS-256
+2833;;;BRAILLE PATTERN DOTS-1256
+2834;;;BRAILLE PATTERN DOTS-356
+2835;;;BRAILLE PATTERN DOTS-1356
+2836;;;BRAILLE PATTERN DOTS-2356
+2837;;;BRAILLE PATTERN DOTS-12356
+2838;;;BRAILLE PATTERN DOTS-456
+2839;;;BRAILLE PATTERN DOTS-1456
+283A;;;BRAILLE PATTERN DOTS-2456
+283B;;;BRAILLE PATTERN DOTS-12456
+283C;;;BRAILLE PATTERN DOTS-3456
+283D;;;BRAILLE PATTERN DOTS-13456
+283E;;;BRAILLE PATTERN DOTS-23456
+283F;;;BRAILLE PATTERN DOTS-123456
+#
+2840;;;BRAILLE PATTERN DOTS-7
+2841;;;BRAILLE PATTERN DOTS-17
+2842;;;BRAILLE PATTERN DOTS-27
+2843;;;BRAILLE PATTERN DOTS-127
+2844;;;BRAILLE PATTERN DOTS-37
+2845;;;BRAILLE PATTERN DOTS-137
+2846;;;BRAILLE PATTERN DOTS-237
+2847;;;BRAILLE PATTERN DOTS-1237
+2848;;;BRAILLE PATTERN DOTS-47
+2849;;;BRAILLE PATTERN DOTS-147
+284A;;;BRAILLE PATTERN DOTS-247
+284B;;;BRAILLE PATTERN DOTS-1247
+284C;;;BRAILLE PATTERN DOTS-347
+284D;;;BRAILLE PATTERN DOTS-1347
+284E;;;BRAILLE PATTERN DOTS-2347
+284F;;;BRAILLE PATTERN DOTS-12347
+#
+2850;;;BRAILLE PATTERN DOTS-57
+2851;;;BRAILLE PATTERN DOTS-157
+2852;;;BRAILLE PATTERN DOTS-257
+2853;;;BRAILLE PATTERN DOTS-1257
+2854;;;BRAILLE PATTERN DOTS-357
+2855;;;BRAILLE PATTERN DOTS-1357
+2856;;;BRAILLE PATTERN DOTS-2357
+2857;;;BRAILLE PATTERN DOTS-12357
+2858;;;BRAILLE PATTERN DOTS-457
+2859;;;BRAILLE PATTERN DOTS-1457
+285A;;;BRAILLE PATTERN DOTS-2457
+285B;;;BRAILLE PATTERN DOTS-12457
+285C;;;BRAILLE PATTERN DOTS-3457
+285D;;;BRAILLE PATTERN DOTS-13457
+285E;;;BRAILLE PATTERN DOTS-23457
+285F;;;BRAILLE PATTERN DOTS-123457
+#
+2860;;;BRAILLE PATTERN DOTS-67
+2861;;;BRAILLE PATTERN DOTS-167
+2862;;;BRAILLE PATTERN DOTS-267
+2863;;;BRAILLE PATTERN DOTS-1267
+2864;;;BRAILLE PATTERN DOTS-367
+2865;;;BRAILLE PATTERN DOTS-1367
+2866;;;BRAILLE PATTERN DOTS-2367
+2867;;;BRAILLE PATTERN DOTS-12367
+2868;;;BRAILLE PATTERN DOTS-467
+2869;;;BRAILLE PATTERN DOTS-1467
+286A;;;BRAILLE PATTERN DOTS-2467
+286B;;;BRAILLE PATTERN DOTS-12467
+286C;;;BRAILLE PATTERN DOTS-3467
+286D;;;BRAILLE PATTERN DOTS-13467
+286E;;;BRAILLE PATTERN DOTS-23467
+286F;;;BRAILLE PATTERN DOTS-123467
+#
+2870;;;BRAILLE PATTERN DOTS-567
+2871;;;BRAILLE PATTERN DOTS-1567
+2872;;;BRAILLE PATTERN DOTS-2567
+2873;;;BRAILLE PATTERN DOTS-12567
+2874;;;BRAILLE PATTERN DOTS-3567
+2875;;;BRAILLE PATTERN DOTS-13567
+2876;;;BRAILLE PATTERN DOTS-23567
+2877;;;BRAILLE PATTERN DOTS-123567
+2878;;;BRAILLE PATTERN DOTS-4567
+2879;;;BRAILLE PATTERN DOTS-14567
+287A;;;BRAILLE PATTERN DOTS-24567
+287B;;;BRAILLE PATTERN DOTS-124567
+287C;;;BRAILLE PATTERN DOTS-34567
+287D;;;BRAILLE PATTERN DOTS-134567
+287E;;;BRAILLE PATTERN DOTS-234567
+287F;;;BRAILLE PATTERN DOTS-1234567
+#
+2880;;;BRAILLE PATTERN DOTS-8
+2881;;;BRAILLE PATTERN DOTS-18
+2882;;;BRAILLE PATTERN DOTS-28
+2883;;;BRAILLE PATTERN DOTS-128
+2884;;;BRAILLE PATTERN DOTS-38
+2885;;;BRAILLE PATTERN DOTS-138
+2886;;;BRAILLE PATTERN DOTS-238
+2887;;;BRAILLE PATTERN DOTS-1238
+2888;;;BRAILLE PATTERN DOTS-48
+2889;;;BRAILLE PATTERN DOTS-148
+288A;;;BRAILLE PATTERN DOTS-248
+288B;;;BRAILLE PATTERN DOTS-1248
+288C;;;BRAILLE PATTERN DOTS-348
+288D;;;BRAILLE PATTERN DOTS-1348
+288E;;;BRAILLE PATTERN DOTS-2348
+288F;;;BRAILLE PATTERN DOTS-12348
+#
+2890;;;BRAILLE PATTERN DOTS-58
+2891;;;BRAILLE PATTERN DOTS-158
+2892;;;BRAILLE PATTERN DOTS-258
+2893;;;BRAILLE PATTERN DOTS-1258
+2894;;;BRAILLE PATTERN DOTS-358
+2895;;;BRAILLE PATTERN DOTS-1358
+2896;;;BRAILLE PATTERN DOTS-2358
+2897;;;BRAILLE PATTERN DOTS-12358
+2898;;;BRAILLE PATTERN DOTS-458
+2899;;;BRAILLE PATTERN DOTS-1458
+289A;;;BRAILLE PATTERN DOTS-2458
+289B;;;BRAILLE PATTERN DOTS-12458
+289C;;;BRAILLE PATTERN DOTS-3458
+289D;;;BRAILLE PATTERN DOTS-13458
+289E;;;BRAILLE PATTERN DOTS-23458
+289F;;;BRAILLE PATTERN DOTS-123458
+#
+28A0;;;BRAILLE PATTERN DOTS-68
+28A1;;;BRAILLE PATTERN DOTS-168
+28A2;;;BRAILLE PATTERN DOTS-268
+28A3;;;BRAILLE PATTERN DOTS-1268
+28A4;;;BRAILLE PATTERN DOTS-368
+28A5;;;BRAILLE PATTERN DOTS-1368
+28A6;;;BRAILLE PATTERN DOTS-2368
+28A7;;;BRAILLE PATTERN DOTS-12368
+28A8;;;BRAILLE PATTERN DOTS-468
+28A9;;;BRAILLE PATTERN DOTS-1468
+28AA;;;BRAILLE PATTERN DOTS-2468
+28AB;;;BRAILLE PATTERN DOTS-12468
+28AC;;;BRAILLE PATTERN DOTS-3468
+28AD;;;BRAILLE PATTERN DOTS-13468
+28AE;;;BRAILLE PATTERN DOTS-23468
+28AF;;;BRAILLE PATTERN DOTS-123468
+#
+28B0;;;BRAILLE PATTERN DOTS-568
+28B1;;;BRAILLE PATTERN DOTS-1568
+28B2;;;BRAILLE PATTERN DOTS-2568
+28B3;;;BRAILLE PATTERN DOTS-12568
+28B4;;;BRAILLE PATTERN DOTS-3568
+28B5;;;BRAILLE PATTERN DOTS-13568
+28B6;;;BRAILLE PATTERN DOTS-23568
+28B7;;;BRAILLE PATTERN DOTS-123568
+28B8;;;BRAILLE PATTERN DOTS-4568
+28B9;;;BRAILLE PATTERN DOTS-14568
+28BA;;;BRAILLE PATTERN DOTS-24568
+28BB;;;BRAILLE PATTERN DOTS-124568
+28BC;;;BRAILLE PATTERN DOTS-34568
+28BD;;;BRAILLE PATTERN DOTS-134568
+28BE;;;BRAILLE PATTERN DOTS-234568
+28BF;;;BRAILLE PATTERN DOTS-1234568
+#
+28C0;;;BRAILLE PATTERN DOTS-78
+28C1;;;BRAILLE PATTERN DOTS-178
+28C2;;;BRAILLE PATTERN DOTS-278
+28C3;;;BRAILLE PATTERN DOTS-1278
+28C4;;;BRAILLE PATTERN DOTS-378
+28C5;;;BRAILLE PATTERN DOTS-1378
+28C6;;;BRAILLE PATTERN DOTS-2378
+28C7;;;BRAILLE PATTERN DOTS-12378
+28C8;;;BRAILLE PATTERN DOTS-478
+28C9;;;BRAILLE PATTERN DOTS-1478
+28CA;;;BRAILLE PATTERN DOTS-2478
+28CB;;;BRAILLE PATTERN DOTS-12478
+28CC;;;BRAILLE PATTERN DOTS-3478
+28CD;;;BRAILLE PATTERN DOTS-13478
+28CE;;;BRAILLE PATTERN DOTS-23478
+28CF;;;BRAILLE PATTERN DOTS-123478
+#
+28D0;;;BRAILLE PATTERN DOTS-578
+28D1;;;BRAILLE PATTERN DOTS-1578
+28D2;;;BRAILLE PATTERN DOTS-2578
+28D3;;;BRAILLE PATTERN DOTS-12578
+28D4;;;BRAILLE PATTERN DOTS-3578
+28D5;;;BRAILLE PATTERN DOTS-13578
+28D6;;;BRAILLE PATTERN DOTS-23578
+28D7;;;BRAILLE PATTERN DOTS-123578
+28D8;;;BRAILLE PATTERN DOTS-4578
+28D9;;;BRAILLE PATTERN DOTS-14578
+28DA;;;BRAILLE PATTERN DOTS-24578
+28DB;;;BRAILLE PATTERN DOTS-124578
+28DC;;;BRAILLE PATTERN DOTS-34578
+28DD;;;BRAILLE PATTERN DOTS-134578
+28DE;;;BRAILLE PATTERN DOTS-234578
+28DF;;;BRAILLE PATTERN DOTS-1234578
+#
+28E0;;;BRAILLE PATTERN DOTS-678
+28E1;;;BRAILLE PATTERN DOTS-1678
+28E2;;;BRAILLE PATTERN DOTS-2678
+28E3;;;BRAILLE PATTERN DOTS-12678
+28E4;;;BRAILLE PATTERN DOTS-3678
+28E5;;;BRAILLE PATTERN DOTS-13678
+28E6;;;BRAILLE PATTERN DOTS-23678
+28E7;;;BRAILLE PATTERN DOTS-123678
+28E8;;;BRAILLE PATTERN DOTS-4678
+28E9;;;BRAILLE PATTERN DOTS-14678
+28EA;;;BRAILLE PATTERN DOTS-24678
+28EB;;;BRAILLE PATTERN DOTS-124678
+28EC;;;BRAILLE PATTERN DOTS-34678
+28ED;;;BRAILLE PATTERN DOTS-134678
+28EE;;;BRAILLE PATTERN DOTS-234678
+28EF;;;BRAILLE PATTERN DOTS-1234678
+#
+28F0;;;BRAILLE PATTERN DOTS-5678
+28F1;;;BRAILLE PATTERN DOTS-15678
+28F2;;;BRAILLE PATTERN DOTS-25678
+28F3;;;BRAILLE PATTERN DOTS-125678
+28F4;;;BRAILLE PATTERN DOTS-35678
+28F5;;;BRAILLE PATTERN DOTS-135678
+28F6;;;BRAILLE PATTERN DOTS-235678
+28F7;;;BRAILLE PATTERN DOTS-1235678
+28F8;;;BRAILLE PATTERN DOTS-45678
+28F9;;;BRAILLE PATTERN DOTS-145678
+28FA;;;BRAILLE PATTERN DOTS-245678
+28FB;;;BRAILLE PATTERN DOTS-1245678
+28FC;;;BRAILLE PATTERN DOTS-345678
+28FD;;;BRAILLE PATTERN DOTS-1345678
+28FE;;;BRAILLE PATTERN DOTS-2345678
+28FF;;;BRAILLE PATTERN DOTS-12345678
+#
+# Supplemental Arrows-B
+#
+2900;;;RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE
+2901;;;RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE
+2902;;;LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE
+2903;;;RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE
+2904;;;LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE
+2905;;;RIGHTWARDS TWO-HEADED ARROW FROM BAR
+2906;;;LEFTWARDS DOUBLE ARROW FROM BAR
+2907;;;RIGHTWARDS DOUBLE ARROW FROM BAR
+2908;;;DOWNWARDS ARROW WITH HORIZONTAL STROKE
+2909;;;UPWARDS ARROW WITH HORIZONTAL STROKE
+290A;;;UPWARDS TRIPLE ARROW
+290B;;;DOWNWARDS TRIPLE ARROW
+290C;;;LEFTWARDS DOUBLE DASH ARROW
+290D;;;RIGHTWARDS DOUBLE DASH ARROW
+290E;;;LEFTWARDS TRIPLE DASH ARROW
+290F;;;RIGHTWARDS TRIPLE DASH ARROW
+#
+2910;;;RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW
+2911;;;RIGHTWARDS ARROW WITH DOTTED STEM
+2912;;;UPWARDS ARROW TO BAR
+2913;;;DOWNWARDS ARROW TO BAR
+2914;;;RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE
+2915;;;RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
+2916;;;RIGHTWARDS TWO-HEADED ARROW WITH TAIL
+2917;;;RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE
+2918;;;RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
+2919;;;LEFTWARDS ARROW-TAIL
+291A;;;RIGHTWARDS ARROW-TAIL
+291B;;;LEFTWARDS DOUBLE ARROW-TAIL
+291C;;;RIGHTWARDS DOUBLE ARROW-TAIL
+291D;;;LEFTWARDS ARROW TO BLACK DIAMOND
+291E;;;RIGHTWARDS ARROW TO BLACK DIAMOND
+291F;;;LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND
+#
+2920;;;RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND
+2921;;;NORTH WEST AND SOUTH EAST ARROW
+2922;;;NORTH EAST AND SOUTH WEST ARROW
+2923;;;NORTH WEST ARROW WITH HOOK
+2924;;;NORTH EAST ARROW WITH HOOK
+2925;;;SOUTH EAST ARROW WITH HOOK
+2926;;;SOUTH WEST ARROW WITH HOOK
+2927;;;NORTH WEST ARROW AND NORTH EAST ARROW
+2928;;;NORTH EAST ARROW AND SOUTH EAST ARROW
+2929;;;SOUTH EAST ARROW AND SOUTH WEST ARROW
+292A;;;SOUTH WEST ARROW AND NORTH WEST ARROW
+292B;;;RISING DIAGONAL CROSSING FALLING DIAGONAL
+292C;;;FALLING DIAGONAL CROSSING RISING DIAGONAL
+292D;;;SOUTH EAST ARROW CROSSING NORTH EAST ARROW
+292E;;;NORTH EAST ARROW CROSSING SOUTH EAST ARROW
+292F;;;FALLING DIAGONAL CROSSING NORTH EAST ARROW
+#
+2930;;;RISING DIAGONAL CROSSING SOUTH EAST ARROW
+2931;;;NORTH EAST ARROW CROSSING NORTH WEST ARROW
+2932;;;NORTH WEST ARROW CROSSING NORTH EAST ARROW
+2933;;;WAVE ARROW POINTING DIRECTLY RIGHT
+2934;;;ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS
+2935;;;ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
+2936;;;ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS
+2937;;;ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS
+2938;;;RIGHT-SIDE ARC CLOCKWISE ARROW
+2939;;;LEFT-SIDE ARC ANTICLOCKWISE ARROW
+293A;;;TOP ARC ANTICLOCKWISE ARROW
+293B;;;BOTTOM ARC ANTICLOCKWISE ARROW
+293C;;;TOP ARC CLOCKWISE ARROW WITH MINUS
+293D;;;TOP ARC ANTICLOCKWISE ARROW WITH PLUS
+293E;;;LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW
+293F;;;LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW
+#
+2940;;;ANTICLOCKWISE CLOSED CIRCLE ARROW
+2941;;;CLOCKWISE CLOSED CIRCLE ARROW
+2942;;;RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW
+2943;;;LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW
+2944;;;SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW
+2945;;;RIGHTWARDS ARROW WITH PLUS BELOW
+2946;;;LEFTWARDS ARROW WITH PLUS BELOW
+2947;;;RIGHTWARDS ARROW THROUGH X
+2948;;;LEFT RIGHT ARROW THROUGH SMALL CIRCLE
+2949;;;UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE
+294A;;;LEFT BARB UP RIGHT BARB DOWN HARPOON
+294B;;;LEFT BARB DOWN RIGHT BARB UP HARPOON
+294C;;;UP BARB RIGHT DOWN BARB LEFT HARPOON
+294D;;;UP BARB LEFT DOWN BARB RIGHT HARPOON
+294E;;;LEFT BARB UP RIGHT BARB UP HARPOON
+294F;;;UP BARB RIGHT DOWN BARB RIGHT HARPOON
+#
+2950;;;LEFT BARB DOWN RIGHT BARB DOWN HARPOON
+2951;;;UP BARB LEFT DOWN BARB LEFT HARPOON
+2952;;;LEFTWARDS HARPOON WITH BARB UP TO BAR
+2953;;;RIGHTWARDS HARPOON WITH BARB UP TO BAR
+2954;;;UPWARDS HARPOON WITH BARB RIGHT TO BAR
+2955;;;DOWNWARDS HARPOON WITH BARB RIGHT TO BAR
+2956;;;LEFTWARDS HARPOON WITH BARB DOWN TO BAR
+2957;;;RIGHTWARDS HARPOON WITH BARB DOWN TO BAR
+2958;;;UPWARDS HARPOON WITH BARB LEFT TO BAR
+2959;;;DOWNWARDS HARPOON WITH BARB LEFT TO BAR
+295A;;;LEFTWARDS HARPOON WITH BARB UP FROM BAR
+295B;;;RIGHTWARDS HARPOON WITH BARB UP FROM BAR
+295C;;;UPWARDS HARPOON WITH BARB RIGHT FROM BAR
+295D;;;DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR
+295E;;;LEFTWARDS HARPOON WITH BARB DOWN FROM BAR
+295F;;;RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR
+#
+2960;;;UPWARDS HARPOON WITH BARB LEFT FROM BAR
+2961;;;DOWNWARDS HARPOON WITH BARB LEFT FROM BAR
+2962;;;LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN
+2963;;;UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
+2964;;;RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
+2965;;;DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
+2966;;;LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP
+2967;;;LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
+2968;;;RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP
+2969;;;RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN
+296A;;;LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
+296B;;;LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
+296C;;;RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
+296D;;;RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
+296E;;;UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
+296F;;;DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
+#
+2970;;;RIGHT DOUBLE ARROW WITH ROUNDED HEAD
+2971;;;EQUALS SIGN ABOVE RIGHTWARDS ARROW
+2972;;;TILDE OPERATOR ABOVE RIGHTWARDS ARROW
+2973;;;LEFTWARDS ARROW ABOVE TILDE OPERATOR
+2974;;;RIGHTWARDS ARROW ABOVE TILDE OPERATOR
+2975;;;RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO
+2976;;;LESS-THAN ABOVE LEFTWARDS ARROW
+2977;;;LEFTWARDS ARROW THROUGH LESS-THAN
+2978;;;GREATER-THAN ABOVE RIGHTWARDS ARROW
+2979;;;SUBSET ABOVE RIGHTWARDS ARROW
+297A;;;LEFTWARDS ARROW THROUGH SUBSET
+297B;;;SUPERSET ABOVE LEFTWARDS ARROW
+297C;;;LEFT FISH TAIL
+297D;;;RIGHT FISH TAIL
+297E;;;UP FISH TAIL
+297F;;;DOWN FISH TAIL
+#
+# Miscellaneous Mathematical Symbols-B
+#
+2980;;;TRIPLE VERTICAL BAR DELIMITER
+2981;;;Z NOTATION SPOT
+2982;;;Z NOTATION TYPE COLON
+2983;;;LEFT WHITE CURLY BRACKET
+2984;;;RIGHT WHITE CURLY BRACKET
+2985;;;LEFT WHITE PARENTHESIS
+2986;;;RIGHT WHITE PARENTHESIS
+2987;;;Z NOTATION LEFT IMAGE BRACKET
+2988;;;Z NOTATION RIGHT IMAGE BRACKET
+2989;;;Z NOTATION LEFT BINDING BRACKET
+298A;;;Z NOTATION RIGHT BINDING BRACKET
+298B;;;LEFT SQUARE BRACKET WITH UNDERBAR
+298C;;;RIGHT SQUARE BRACKET WITH UNDERBAR
+298D;;;LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
+298E;;;RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+298F;;;LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+#
+2990;;;RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
+2991;;;LEFT ANGLE BRACKET WITH DOT
+2992;;;RIGHT ANGLE BRACKET WITH DOT
+2993;;;LEFT ARC LESS-THAN BRACKET
+2994;;;RIGHT ARC GREATER-THAN BRACKET
+2995;;;DOUBLE LEFT ARC GREATER-THAN BRACKET
+2996;;;DOUBLE RIGHT ARC LESS-THAN BRACKET
+2997;;;LEFT BLACK TORTOISE SHELL BRACKET
+2998;;;RIGHT BLACK TORTOISE SHELL BRACKET
+2999;;;DOTTED FENCE
+299A;;;VERTICAL ZIGZAG LINE
+299B;;;MEASURED ANGLE OPENING LEFT
+299C;;;RIGHT ANGLE VARIANT WITH SQUARE
+299D;;;MEASURED RIGHT ANGLE WITH DOT
+299E;;;ANGLE WITH S INSIDE
+299F;;;ACUTE ANGLE
+#
+29A0;;;SPHERICAL ANGLE OPENING LEFT
+29A1;;;SPHERICAL ANGLE OPENING UP
+29A2;;;TURNED ANGLE
+29A3;;;REVERSED ANGLE
+29A4;;;ANGLE WITH UNDERBAR
+29A5;;;REVERSED ANGLE WITH UNDERBAR
+29A6;;;OBLIQUE ANGLE OPENING UP
+29A7;;;OBLIQUE ANGLE OPENING DOWN
+29A8;;;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT
+29A9;;;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT
+29AA;;;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT
+29AB;;;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT
+29AC;;;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP
+29AD;;;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP
+29AE;;;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN
+29AF;;;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN
+#
+29B0;;;REVERSED EMPTY SET
+29B1;;;EMPTY SET WITH OVERBAR
+29B2;;;EMPTY SET WITH SMALL CIRCLE ABOVE
+29B3;;;EMPTY SET WITH RIGHT ARROW ABOVE
+29B4;;;EMPTY SET WITH LEFT ARROW ABOVE
+29B5;;;CIRCLE WITH HORIZONTAL BAR
+29B6;;;CIRCLED VERTICAL BAR
+29B7;;;CIRCLED PARALLEL
+29B8;;;CIRCLED REVERSE SOLIDUS
+29B9;;;CIRCLED PERPENDICULAR
+29BA;;;CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR
+29BB;;;CIRCLE WITH SUPERIMPOSED X
+29BC;;;CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN
+29BD;;;UP ARROW THROUGH CIRCLE
+29BE;;;CIRCLED WHITE BULLET
+29BF;;;CIRCLED BULLET
+#
+29C0;;;CIRCLED LESS-THAN
+29C1;;;CIRCLED GREATER-THAN
+29C2;;;CIRCLE WITH SMALL CIRCLE TO THE RIGHT
+29C3;;;CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT
+29C4;;;SQUARED RISING DIAGONAL SLASH
+29C5;;;SQUARED FALLING DIAGONAL SLASH
+29C6;;;SQUARED ASTERISK
+29C7;;;SQUARED SMALL CIRCLE
+29C8;;;SQUARED SQUARE
+29C9;;;TWO JOINED SQUARES
+29CA;;;TRIANGLE WITH DOT ABOVE
+29CB;;;TRIANGLE WITH UNDERBAR
+29CC;;;S IN TRIANGLE
+29CD;;;TRIANGLE WITH SERIFS AT BOTTOM
+29CE;;;RIGHT TRIANGLE ABOVE LEFT TRIANGLE
+29CF;;;LEFT TRIANGLE BESIDE VERTICAL BAR
+#
+29D0;;;VERTICAL BAR BESIDE RIGHT TRIANGLE
+29D1;;;BOWTIE WITH LEFT HALF BLACK
+29D2;;;BOWTIE WITH RIGHT HALF BLACK
+29D3;;;BLACK BOWTIE
+29D4;;;TIMES WITH LEFT HALF BLACK
+29D5;;;TIMES WITH RIGHT HALF BLACK
+29D6;;;WHITE HOURGLASS
+29D7;;;BLACK HOURGLASS
+29D8;;;LEFT WIGGLY FENCE
+29D9;;;RIGHT WIGGLY FENCE
+29DA;;;LEFT DOUBLE WIGGLY FENCE
+29DB;;;RIGHT DOUBLE WIGGLY FENCE
+29DC;;;INCOMPLETE INFINITY
+29DD;;;TIE OVER INFINITY
+29DE;;;INFINITY NEGATED WITH VERTICAL BAR
+29DF;;;DOUBLE-ENDED MULTIMAP
+#
+29E0;;;SQUARE WITH CONTOURED OUTLINE
+29E1;;;INCREASES AS
+29E2;;;SHUFFLE PRODUCT
+29E3;;;EQUALS SIGN AND SLANTED PARALLEL
+29E4;;;EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE
+29E5;;;IDENTICAL TO AND SLANTED PARALLEL
+29E6;;;GLEICH STARK
+29E7;;;THERMODYNAMIC
+29E8;;;DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK
+29E9;;;DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK
+29EA;;;BLACK DIAMOND WITH DOWN ARROW
+29EB;;;BLACK LOZENGE
+29EC;;;WHITE CIRCLE WITH DOWN ARROW
+29ED;;;BLACK CIRCLE WITH DOWN ARROW
+29EE;;;ERROR-BARRED WHITE SQUARE
+29EF;;;ERROR-BARRED BLACK SQUARE
+#
+29F0;;;ERROR-BARRED WHITE DIAMOND
+29F1;;;ERROR-BARRED BLACK DIAMOND
+29F2;;;ERROR-BARRED WHITE CIRCLE
+29F3;;;ERROR-BARRED BLACK CIRCLE
+29F4;;;RULE-DELAYED
+29F5;;;REVERSE SOLIDUS OPERATOR
+29F6;;;SOLIDUS WITH OVERBAR
+29F7;;;REVERSE SOLIDUS WITH HORIZONTAL STROKE
+29F8;;;BIG SOLIDUS
+29F9;;;BIG REVERSE SOLIDUS
+29FA;;;DOUBLE PLUS
+29FB;;;TRIPLE PLUS
+29FC;;;LEFT-POINTING CURVED ANGLE BRACKET
+29FD;;;RIGHT-POINTING CURVED ANGLE BRACKET
+29FE;;;TINY
+29FF;;;MINY
+#
+# Supplemental Mathematical Operators
+#
+2A00;;;N-ARY CIRCLED DOT OPERATOR
+2A01;;;N-ARY CIRCLED PLUS OPERATOR
+2A02;;;N-ARY CIRCLED TIMES OPERATOR
+2A03;;;N-ARY UNION OPERATOR WITH DOT
+2A04;;;N-ARY UNION OPERATOR WITH PLUS
+2A05;;;N-ARY SQUARE INTERSECTION OPERATOR
+2A06;;;N-ARY SQUARE UNION OPERATOR
+2A07;;;TWO LOGICAL AND OPERATOR
+2A08;;;TWO LOGICAL OR OPERATOR
+2A09;;;N-ARY TIMES OPERATOR
+2A0A;;;MODULO TWO SUM
+2A0B;;;SUMMATION WITH INTEGRAL
+2A0C;;;QUADRUPLE INTEGRAL OPERATOR
+2A0D;;;FINITE PART INTEGRAL
+2A0E;;;INTEGRAL WITH DOUBLE STROKE
+2A0F;;;INTEGRAL AVERAGE WITH SLASH
+#
+2A10;;;CIRCULATION FUNCTION
+2A11;;;ANTICLOCKWISE INTEGRATION
+2A12;;;LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE
+2A13;;;LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE
+2A14;;;LINE INTEGRATION NOT INCLUDING THE POLE
+2A15;;;INTEGRAL AROUND A POINT OPERATOR
+2A16;;;QUATERNION INTEGRAL OPERATOR
+2A17;;;INTEGRAL WITH LEFTWARDS ARROW WITH HOOK
+2A18;;;INTEGRAL WITH TIMES SIGN
+2A19;;;INTEGRAL WITH INTERSECTION
+2A1A;;;INTEGRAL WITH UNION
+2A1B;;;INTEGRAL WITH OVERBAR
+2A1C;;;INTEGRAL WITH UNDERBAR
+2A1D;;;JOIN
+2A1E;;;LARGE LEFT TRIANGLE OPERATOR
+2A1F;;;Z NOTATION SCHEMA COMPOSITION
+#
+2A20;;;Z NOTATION SCHEMA PIPING
+2A21;;;Z NOTATION SCHEMA PROJECTION
+2A22;;;PLUS SIGN WITH SMALL CIRCLE ABOVE
+2A23;;;PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE
+2A24;;;PLUS SIGN WITH TILDE ABOVE
+2A25;;;PLUS SIGN WITH DOT BELOW
+2A26;;;PLUS SIGN WITH TILDE BELOW
+2A27;;;PLUS SIGN WITH SUBSCRIPT TWO
+2A28;;;PLUS SIGN WITH BLACK TRIANGLE
+2A29;;;MINUS SIGN WITH COMMA ABOVE
+2A2A;;;MINUS SIGN WITH DOT BELOW
+2A2B;;;MINUS SIGN WITH FALLING DOTS
+2A2C;;;MINUS SIGN WITH RISING DOTS
+2A2D;;;PLUS SIGN IN LEFT HALF CIRCLE
+2A2E;;;PLUS SIGN IN RIGHT HALF CIRCLE
+2A2F;;;VECTOR OR CROSS PRODUCT
+#
+2A30;;;MULTIPLICATION SIGN WITH DOT ABOVE
+2A31;;;MULTIPLICATION SIGN WITH UNDERBAR
+2A32;;;SEMIDIRECT PRODUCT WITH BOTTOM CLOSED
+2A33;;;SMASH PRODUCT
+2A34;;;MULTIPLICATION SIGN IN LEFT HALF CIRCLE
+2A35;;;MULTIPLICATION SIGN IN RIGHT HALF CIRCLE
+2A36;;;CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT
+2A37;;;MULTIPLICATION SIGN IN DOUBLE CIRCLE
+2A38;;;CIRCLED DIVISION SIGN
+2A39;;;PLUS SIGN IN TRIANGLE
+2A3A;;;MINUS SIGN IN TRIANGLE
+2A3B;;;MULTIPLICATION SIGN IN TRIANGLE
+2A3C;;;INTERIOR PRODUCT
+2A3D;;;RIGHTHAND INTERIOR PRODUCT
+2A3E;;;Z NOTATION RELATIONAL COMPOSITION
+2A3F;;;AMALGAMATION OR COPRODUCT
+#
+2A40;;;INTERSECTION WITH DOT
+2A41;;;UNION WITH MINUS SIGN
+2A42;;;UNION WITH OVERBAR
+2A43;;;INTERSECTION WITH OVERBAR
+2A44;;;INTERSECTION WITH LOGICAL AND
+2A45;;;UNION WITH LOGICAL OR
+2A46;;;UNION ABOVE INTERSECTION
+2A47;;;INTERSECTION ABOVE UNION
+2A48;;;UNION ABOVE BAR ABOVE INTERSECTION
+2A49;;;INTERSECTION ABOVE BAR ABOVE UNION
+2A4A;;;UNION BESIDE AND JOINED WITH UNION
+2A4B;;;INTERSECTION BESIDE AND JOINED WITH INTERSECTION
+2A4C;;;CLOSED UNION WITH SERIFS
+2A4D;;;CLOSED INTERSECTION WITH SERIFS
+2A4E;;;DOUBLE SQUARE INTERSECTION
+2A4F;;;DOUBLE SQUARE UNION
+#
+2A50;;;CLOSED UNION WITH SERIFS AND SMASH PRODUCT
+2A51;;;LOGICAL AND WITH DOT ABOVE
+2A52;;;LOGICAL OR WITH DOT ABOVE
+2A53;;;DOUBLE LOGICAL AND
+2A54;;;DOUBLE LOGICAL OR
+2A55;;;TWO INTERSECTING LOGICAL AND
+2A56;;;TWO INTERSECTING LOGICAL OR
+2A57;;;SLOPING LARGE OR
+2A58;;;SLOPING LARGE AND
+2A59;;;LOGICAL OR OVERLAPPING LOGICAL AND
+2A5A;;;LOGICAL AND WITH MIDDLE STEM
+2A5B;;;LOGICAL OR WITH MIDDLE STEM
+2A5C;;;LOGICAL AND WITH HORIZONTAL DASH
+2A5D;;;LOGICAL OR WITH HORIZONTAL DASH
+2A5E;;;LOGICAL AND WITH DOUBLE OVERBAR
+2A5F;;;LOGICAL AND WITH UNDERBAR
+#
+2A60;;;LOGICAL AND WITH DOUBLE UNDERBAR
+2A61;;;SMALL VEE WITH UNDERBAR
+2A62;;;LOGICAL OR WITH DOUBLE OVERBAR
+2A63;;;LOGICAL OR WITH DOUBLE UNDERBAR
+2A64;;;Z NOTATION DOMAIN ANTIRESTRICTION
+2A65;;;Z NOTATION RANGE ANTIRESTRICTION
+2A66;;;EQUALS SIGN WITH DOT BELOW
+2A67;;;IDENTICAL WITH DOT ABOVE
+2A68;;;TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE
+2A69;;;TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE
+2A6A;;;TILDE OPERATOR WITH DOT ABOVE
+2A6B;;;TILDE OPERATOR WITH RISING DOTS
+2A6C;;;SIMILAR MINUS SIMILAR
+2A6D;;;CONGRUENT WITH DOT ABOVE
+2A6E;;;EQUALS WITH ASTERISK
+2A6F;;;ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT
+#
+2A70;;;APPROXIMATELY EQUAL OR EQUAL TO
+2A71;;;EQUALS SIGN ABOVE PLUS SIGN
+2A72;;;PLUS SIGN ABOVE EQUALS SIGN
+2A73;;;EQUALS SIGN ABOVE TILDE OPERATOR
+2A74;;;DOUBLE COLON EQUAL
+2A75;;;TWO CONSECUTIVE EQUALS SIGNS
+2A76;;;THREE CONSECUTIVE EQUALS SIGNS
+2A77;;;EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW
+2A78;;;EQUIVALENT WITH FOUR DOTS ABOVE
+2A79;;;LESS-THAN WITH CIRCLE INSIDE
+2A7A;;;GREATER-THAN WITH CIRCLE INSIDE
+2A7B;;;LESS-THAN WITH QUESTION MARK ABOVE
+2A7C;;;GREATER-THAN WITH QUESTION MARK ABOVE
+2A7D;;;LESS-THAN OR SLANTED EQUAL TO
+2A7E;;;GREATER-THAN OR SLANTED EQUAL TO
+2A7F;;;LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
+#
+2A80;;;GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
+2A81;;;LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
+2A82;;;GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
+2A83;;;LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT
+2A84;;;GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT
+2A85;;;LESS-THAN OR APPROXIMATE
+2A86;;;GREATER-THAN OR APPROXIMATE
+2A87;;;LESS-THAN AND SINGLE-LINE NOT EQUAL TO
+2A88;;;GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
+2A89;;;LESS-THAN AND NOT APPROXIMATE
+2A8A;;;GREATER-THAN AND NOT APPROXIMATE
+2A8B;;;LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN
+2A8C;;;GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN
+2A8D;;;LESS-THAN ABOVE SIMILAR OR EQUAL
+2A8E;;;GREATER-THAN ABOVE SIMILAR OR EQUAL
+2A8F;;;LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN
+#
+2A90;;;GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN
+2A91;;;LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL
+2A92;;;GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL
+2A93;;;LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL
+2A94;;;GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL
+2A95;;;SLANTED EQUAL TO OR LESS-THAN
+2A96;;;SLANTED EQUAL TO OR GREATER-THAN
+2A97;;;SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE
+2A98;;;SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE
+2A99;;;DOUBLE-LINE EQUAL TO OR LESS-THAN
+2A9A;;;DOUBLE-LINE EQUAL TO OR GREATER-THAN
+2A9B;;;DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN
+2A9C;;;DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN
+2A9D;;;SIMILAR OR LESS-THAN
+2A9E;;;SIMILAR OR GREATER-THAN
+2A9F;;;SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN
+#
+2AA0;;;SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN
+2AA1;;;DOUBLE NESTED LESS-THAN
+2AA2;;;DOUBLE NESTED GREATER-THAN
+2AA3;;;DOUBLE NESTED LESS-THAN WITH UNDERBAR
+2AA4;;;GREATER-THAN OVERLAPPING LESS-THAN
+2AA5;;;GREATER-THAN BESIDE LESS-THAN
+2AA6;;;LESS-THAN CLOSED BY CURVE
+2AA7;;;GREATER-THAN CLOSED BY CURVE
+2AA8;;;LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
+2AA9;;;GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
+2AAA;;;SMALLER THAN
+2AAB;;;LARGER THAN
+2AAC;;;SMALLER THAN OR EQUAL TO
+2AAD;;;LARGER THAN OR EQUAL TO
+2AAE;;;EQUALS SIGN WITH BUMPY ABOVE
+2AAF;;;PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
+#
+2AB0;;;SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
+2AB1;;;PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO
+2AB2;;;SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO
+2AB3;;;PRECEDES ABOVE EQUALS SIGN
+2AB4;;;SUCCEEDS ABOVE EQUALS SIGN
+2AB5;;;PRECEDES ABOVE NOT EQUAL TO
+2AB6;;;SUCCEEDS ABOVE NOT EQUAL TO
+2AB7;;;PRECEDES ABOVE ALMOST EQUAL TO
+2AB8;;;SUCCEEDS ABOVE ALMOST EQUAL TO
+2AB9;;;PRECEDES ABOVE NOT ALMOST EQUAL TO
+2ABA;;;SUCCEEDS ABOVE NOT ALMOST EQUAL TO
+2ABB;;;DOUBLE PRECEDES
+2ABC;;;DOUBLE SUCCEEDS
+2ABD;;;SUBSET WITH DOT
+2ABE;;;SUPERSET WITH DOT
+2ABF;;;SUBSET WITH PLUS SIGN BELOW
+#
+2AC0;;;SUPERSET WITH PLUS SIGN BELOW
+2AC1;;;SUBSET WITH MULTIPLICATION SIGN BELOW
+2AC2;;;SUPERSET WITH MULTIPLICATION SIGN BELOW
+2AC3;;;SUBSET OF OR EQUAL TO WITH DOT ABOVE
+2AC4;;;SUPERSET OF OR EQUAL TO WITH DOT ABOVE
+2AC5;;;SUBSET OF ABOVE EQUALS SIGN
+2AC6;;;SUPERSET OF ABOVE EQUALS SIGN
+2AC7;;;SUBSET OF ABOVE TILDE OPERATOR
+2AC8;;;SUPERSET OF ABOVE TILDE OPERATOR
+2AC9;;;SUBSET OF ABOVE ALMOST EQUAL TO
+2ACA;;;SUPERSET OF ABOVE ALMOST EQUAL TO
+2ACB;;;SUBSET OF ABOVE NOT EQUAL TO
+2ACC;;;SUPERSET OF ABOVE NOT EQUAL TO
+2ACD;;;SQUARE LEFT OPEN BOX OPERATOR
+2ACE;;;SQUARE RIGHT OPEN BOX OPERATOR
+2ACF;;;CLOSED SUBSET
+#
+2AD0;;;CLOSED SUPERSET
+2AD1;;;CLOSED SUBSET OR EQUAL TO
+2AD2;;;CLOSED SUPERSET OR EQUAL TO
+2AD3;;;SUBSET ABOVE SUPERSET
+2AD4;;;SUPERSET ABOVE SUBSET
+2AD5;;;SUBSET ABOVE SUBSET
+2AD6;;;SUPERSET ABOVE SUPERSET
+2AD7;;;SUPERSET BESIDE SUBSET
+2AD8;;;SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET
+2AD9;;;ELEMENT OF OPENING DOWNWARDS
+2ADA;;;PITCHFORK WITH TEE TOP
+2ADB;;;TRANSVERSAL INTERSECTION
+2ADC;;;FORKING
+2ADD;;;NONFORKING
+2ADE;;;SHORT LEFT TACK
+2ADF;;;SHORT DOWN TACK
+#
+2AE0;;;SHORT UP TACK
+2AE1;;;PERPENDICULAR WITH S
+2AE2;;;VERTICAL BAR TRIPLE RIGHT TURNSTILE
+2AE3;;;DOUBLE VERTICAL BAR LEFT TURNSTILE
+2AE4;;;VERTICAL BAR DOUBLE LEFT TURNSTILE
+2AE5;;;DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE
+2AE6;;;LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL
+2AE7;;;SHORT DOWN TACK WITH OVERBAR
+2AE8;;;SHORT UP TACK WITH UNDERBAR
+2AE9;;;SHORT UP TACK ABOVE SHORT DOWN TACK
+2AEA;;;DOUBLE DOWN TACK
+2AEB;;;DOUBLE UP TACK
+2AEC;;;DOUBLE STROKE NOT SIGN
+2AED;;;REVERSED DOUBLE STROKE NOT SIGN
+2AEE;;;DOES NOT DIVIDE WITH REVERSED NEGATION SLASH
+2AEF;;;VERTICAL LINE WITH CIRCLE ABOVE
+#
+2AF0;;;VERTICAL LINE WITH CIRCLE BELOW
+2AF1;;;DOWN TACK WITH CIRCLE BELOW
+2AF2;;;PARALLEL WITH HORIZONTAL STROKE
+2AF3;;;PARALLEL WITH TILDE OPERATOR
+2AF4;;;TRIPLE VERTICAL BAR BINARY RELATION
+2AF5;;;TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE
+2AF6;;;TRIPLE COLON OPERATOR
+2AF7;;;TRIPLE NESTED LESS-THAN
+2AF8;;;TRIPLE NESTED GREATER-THAN
+2AF9;;;DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO
+2AFA;;;DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO
+2AFB;;;TRIPLE SOLIDUS BINARY RELATION
+2AFC;;;LARGE TRIPLE VERTICAL BAR OPERATOR
+2AFD;;;DOUBLE SOLIDUS OPERATOR
+2AFE;;;WHITE VERTICAL BAR
+2AFF;;;N-ARY WHITE VERTICAL BAR
+#
+# Miscellaneous Symbols and Arrows
+#
+2B00;;;NORTH EAST WHITE ARROW
+2B01;;;NORTH WEST WHITE ARROW
+2B02;;;SOUTH EAST WHITE ARROW
+2B03;;;SOUTH WEST WHITE ARROW
+2B04;;;LEFT RIGHT WHITE ARROW
+2B05;;;LEFTWARDS BLACK ARROW
+2B06;;;UPWARDS BLACK ARROW
+2B07;;;DOWNWARDS BLACK ARROW
+2B08;;;NORTH EAST BLACK ARROW
+2B09;;;NORTH WEST BLACK ARROW
+2B0A;;;SOUTH EAST BLACK ARROW
+2B0B;;;SOUTH WEST BLACK ARROW
+2B0C;;;LEFT RIGHT BLACK ARROW
+2B0D;;;UP DOWN BLACK ARROW
+2B0E;;;RIGHTWARDS ARROW WITH TIP DOWNWARDS
+2B0F;;;RIGHTWARDS ARROW WITH TIP UPWARDS
+#
+2B10;;;LEFTWARDS ARROW WITH TIP DOWNWARDS
+2B11;;;LEFTWARDS ARROW WITH TIP UPWARDS
+2B12;;;SQUARE WITH TOP HALF BLACK
+2B13;;;SQUARE WITH BOTTOM HALF BLACK
+#
+2C00;;;GLAGOLITIC CAPITAL LETTER AZU
+2C01;;;GLAGOLITIC CAPITAL LETTER BUKY
+2C02;;;GLAGOLITIC CAPITAL LETTER VEDE
+2C03;;;GLAGOLITIC CAPITAL LETTER GLAGOLI
+2C04;;;GLAGOLITIC CAPITAL LETTER DOBRO
+2C05;;;GLAGOLITIC CAPITAL LETTER YESTU
+2C06;;;GLAGOLITIC CAPITAL LETTER ZHIVETE
+2C07;;;GLAGOLITIC CAPITAL LETTER DZELO
+2C08;;;GLAGOLITIC CAPITAL LETTER ZEMLJA
+2C09;;;GLAGOLITIC CAPITAL LETTER IZHE
+2C0A;;;GLAGOLITIC CAPITAL LETTER INITIAL IZHE
+2C0B;;;GLAGOLITIC CAPITAL LETTER I
+2C0C;;;GLAGOLITIC CAPITAL LETTER DJERVI
+2C0D;;;GLAGOLITIC CAPITAL LETTER KAKO
+2C0E;;;GLAGOLITIC CAPITAL LETTER LJUDIJE
+2C0F;;;GLAGOLITIC CAPITAL LETTER MYSLITE
+#
+2C10;;;GLAGOLITIC CAPITAL LETTER NASHI
+2C11;;;GLAGOLITIC CAPITAL LETTER ONU
+2C12;;;GLAGOLITIC CAPITAL LETTER POKOJI
+2C13;;;GLAGOLITIC CAPITAL LETTER RITSI
+2C14;;;GLAGOLITIC CAPITAL LETTER SLOVO
+2C15;;;GLAGOLITIC CAPITAL LETTER TVRIDO
+2C16;;;GLAGOLITIC CAPITAL LETTER UKU
+2C17;;;GLAGOLITIC CAPITAL LETTER FRITU
+2C18;;;GLAGOLITIC CAPITAL LETTER HERU
+2C19;;;GLAGOLITIC CAPITAL LETTER OTU
+2C1A;;;GLAGOLITIC CAPITAL LETTER PE
+2C1B;;;GLAGOLITIC CAPITAL LETTER SHTA
+2C1C;;;GLAGOLITIC CAPITAL LETTER TSI
+2C1D;;;GLAGOLITIC CAPITAL LETTER CHRIVI
+2C1E;;;GLAGOLITIC CAPITAL LETTER SHA
+2C1F;;;GLAGOLITIC CAPITAL LETTER YERU
+#
+2C20;;;GLAGOLITIC CAPITAL LETTER YERI
+2C21;;;GLAGOLITIC CAPITAL LETTER YATI
+2C22;;;GLAGOLITIC CAPITAL LETTER SPIDERY HA
+2C23;;;GLAGOLITIC CAPITAL LETTER YU
+2C24;;;GLAGOLITIC CAPITAL LETTER SMALL YUS
+2C25;;;GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL
+2C26;;;GLAGOLITIC CAPITAL LETTER YO
+2C27;;;GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS
+2C28;;;GLAGOLITIC CAPITAL LETTER BIG YUS
+2C29;;;GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS
+2C2A;;;GLAGOLITIC CAPITAL LETTER FITA
+2C2B;;;GLAGOLITIC CAPITAL LETTER IZHITSA
+2C2C;;;GLAGOLITIC CAPITAL LETTER SHTAPIC
+2C2D;;;GLAGOLITIC CAPITAL LETTER TROKUTASTI A
+2C2E;;;GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
+#
+2C30;;;GLAGOLITIC SMALL LETTER AZU
+2C31;;;GLAGOLITIC SMALL LETTER BUKY
+2C32;;;GLAGOLITIC SMALL LETTER VEDE
+2C33;;;GLAGOLITIC SMALL LETTER GLAGOLI
+2C34;;;GLAGOLITIC SMALL LETTER DOBRO
+2C35;;;GLAGOLITIC SMALL LETTER YESTU
+2C36;;;GLAGOLITIC SMALL LETTER ZHIVETE
+2C37;;;GLAGOLITIC SMALL LETTER DZELO
+2C38;;;GLAGOLITIC SMALL LETTER ZEMLJA
+2C39;;;GLAGOLITIC SMALL LETTER IZHE
+2C3A;;;GLAGOLITIC SMALL LETTER INITIAL IZHE
+2C3B;;;GLAGOLITIC SMALL LETTER I
+2C3C;;;GLAGOLITIC SMALL LETTER DJERVI
+2C3D;;;GLAGOLITIC SMALL LETTER KAKO
+2C3E;;;GLAGOLITIC SMALL LETTER LJUDIJE
+2C3F;;;GLAGOLITIC SMALL LETTER MYSLITE
+#
+2C40;;;GLAGOLITIC SMALL LETTER NASHI
+2C41;;;GLAGOLITIC SMALL LETTER ONU
+2C42;;;GLAGOLITIC SMALL LETTER POKOJI
+2C43;;;GLAGOLITIC SMALL LETTER RITSI
+2C44;;;GLAGOLITIC SMALL LETTER SLOVO
+2C45;;;GLAGOLITIC SMALL LETTER TVRIDO
+2C46;;;GLAGOLITIC SMALL LETTER UKU
+2C47;;;GLAGOLITIC SMALL LETTER FRITU
+2C48;;;GLAGOLITIC SMALL LETTER HERU
+2C49;;;GLAGOLITIC SMALL LETTER OTU
+2C4A;;;GLAGOLITIC SMALL LETTER PE
+2C4B;;;GLAGOLITIC SMALL LETTER SHTA
+2C4C;;;GLAGOLITIC SMALL LETTER TSI
+2C4D;;;GLAGOLITIC SMALL LETTER CHRIVI
+2C4E;;;GLAGOLITIC SMALL LETTER SHA
+2C4F;;;GLAGOLITIC SMALL LETTER YERU
+#
+2C50;;;GLAGOLITIC SMALL LETTER YERI
+2C51;;;GLAGOLITIC SMALL LETTER YATI
+2C52;;;GLAGOLITIC SMALL LETTER SPIDERY HA
+2C53;;;GLAGOLITIC SMALL LETTER YU
+2C54;;;GLAGOLITIC SMALL LETTER SMALL YUS
+2C55;;;GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL
+2C56;;;GLAGOLITIC SMALL LETTER YO
+2C57;;;GLAGOLITIC SMALL LETTER IOTATED SMALL YUS
+2C58;;;GLAGOLITIC SMALL LETTER BIG YUS
+2C59;;;GLAGOLITIC SMALL LETTER IOTATED BIG YUS
+2C5A;;;GLAGOLITIC SMALL LETTER FITA
+2C5B;;;GLAGOLITIC SMALL LETTER IZHITSA
+2C5C;;;GLAGOLITIC SMALL LETTER SHTAPIC
+2C5D;;;GLAGOLITIC SMALL LETTER TROKUTASTI A
+2C5E;;;GLAGOLITIC SMALL LETTER LATINATE MYSLITE
+#
+2C80;;;COPTIC CAPITAL LETTER ALFA
+2C81;;;COPTIC SMALL LETTER ALFA
+2C82;;;COPTIC CAPITAL LETTER VIDA
+2C83;;;COPTIC SMALL LETTER VIDA
+2C84;;;COPTIC CAPITAL LETTER GAMMA
+2C85;;;COPTIC SMALL LETTER GAMMA
+2C86;;;COPTIC CAPITAL LETTER DALDA
+2C87;;;COPTIC SMALL LETTER DALDA
+2C88;;;COPTIC CAPITAL LETTER EIE
+2C89;;;COPTIC SMALL LETTER EIE
+2C8A;;;COPTIC CAPITAL LETTER SOU
+2C8B;;;COPTIC SMALL LETTER SOU
+2C8C;;;COPTIC CAPITAL LETTER ZATA
+2C8D;;;COPTIC SMALL LETTER ZATA
+2C8E;;;COPTIC CAPITAL LETTER HATE
+2C8F;;;COPTIC SMALL LETTER HATE
+#
+2C90;;;COPTIC CAPITAL LETTER THETHE
+2C91;;;COPTIC SMALL LETTER THETHE
+2C92;;;COPTIC CAPITAL LETTER IAUDA
+2C93;;;COPTIC SMALL LETTER IAUDA
+2C94;;;COPTIC CAPITAL LETTER KAPA
+2C95;;;COPTIC SMALL LETTER KAPA
+2C96;;;COPTIC CAPITAL LETTER LAULA
+2C97;;;COPTIC SMALL LETTER LAULA
+2C98;;;COPTIC CAPITAL LETTER MI
+2C99;;;COPTIC SMALL LETTER MI
+2C9A;;;COPTIC CAPITAL LETTER NI
+2C9B;;;COPTIC SMALL LETTER NI
+2C9C;;;COPTIC CAPITAL LETTER KSI
+2C9D;;;COPTIC SMALL LETTER KSI
+2C9E;;;COPTIC CAPITAL LETTER O
+2C9F;;;COPTIC SMALL LETTER O
+#
+2CA0;;;COPTIC CAPITAL LETTER PI
+2CA1;;;COPTIC SMALL LETTER PI
+2CA2;;;COPTIC CAPITAL LETTER RO
+2CA3;;;COPTIC SMALL LETTER RO
+2CA4;;;COPTIC CAPITAL LETTER SIMA
+2CA5;;;COPTIC SMALL LETTER SIMA
+2CA6;;;COPTIC CAPITAL LETTER TAU
+2CA7;;;COPTIC SMALL LETTER TAU
+2CA8;;;COPTIC CAPITAL LETTER UA
+2CA9;;;COPTIC SMALL LETTER UA
+2CAA;;;COPTIC CAPITAL LETTER FI
+2CAB;;;COPTIC SMALL LETTER FI
+2CAC;;;COPTIC CAPITAL LETTER KHI
+2CAD;;;COPTIC SMALL LETTER KHI
+2CAE;;;COPTIC CAPITAL LETTER PSI
+2CAF;;;COPTIC SMALL LETTER PSI
+#
+2CB0;;;COPTIC CAPITAL LETTER OOU
+2CB1;;;COPTIC SMALL LETTER OOU
+2CB2;;;COPTIC CAPITAL LETTER DIALECT-P ALEF
+2CB3;;;COPTIC SMALL LETTER DIALECT-P ALEF
+2CB4;;;COPTIC CAPITAL LETTER OLD COPTIC AIN
+2CB5;;;COPTIC SMALL LETTER OLD COPTIC AIN
+2CB6;;;COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE
+2CB7;;;COPTIC SMALL LETTER CRYPTOGRAMMIC EIE
+2CB8;;;COPTIC CAPITAL LETTER DIALECT-P KAPA
+2CB9;;;COPTIC SMALL LETTER DIALECT-P KAPA
+2CBA;;;COPTIC CAPITAL LETTER DIALECT-P NI
+2CBB;;;COPTIC SMALL LETTER DIALECT-P NI
+2CBC;;;COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI
+2CBD;;;COPTIC SMALL LETTER CRYPTOGRAMMIC NI
+2CBE;;;COPTIC CAPITAL LETTER OLD COPTIC OOU
+2CBF;;;COPTIC SMALL LETTER OLD COPTIC OOU
+#
+2CC0;;;COPTIC CAPITAL LETTER SAMPI
+2CC1;;;COPTIC SMALL LETTER SAMPI
+2CC2;;;COPTIC CAPITAL LETTER CROSSED SHEI
+2CC3;;;COPTIC SMALL LETTER CROSSED SHEI
+2CC4;;;COPTIC CAPITAL LETTER OLD COPTIC SHEI
+2CC5;;;COPTIC SMALL LETTER OLD COPTIC SHEI
+2CC6;;;COPTIC CAPITAL LETTER OLD COPTIC ESH
+2CC7;;;COPTIC SMALL LETTER OLD COPTIC ESH
+2CC8;;;COPTIC CAPITAL LETTER AKHMIMIC KHEI
+2CC9;;;COPTIC SMALL LETTER AKHMIMIC KHEI
+2CCA;;;COPTIC CAPITAL LETTER DIALECT-P HORI
+2CCB;;;COPTIC SMALL LETTER DIALECT-P HORI
+2CCC;;;COPTIC CAPITAL LETTER OLD COPTIC HORI
+2CCD;;;COPTIC SMALL LETTER OLD COPTIC HORI
+2CCE;;;COPTIC CAPITAL LETTER OLD COPTIC HA
+2CCF;;;COPTIC SMALL LETTER OLD COPTIC HA
+#
+2CD0;;;COPTIC CAPITAL LETTER L-SHAPED HA
+2CD1;;;COPTIC SMALL LETTER L-SHAPED HA
+2CD2;;;COPTIC CAPITAL LETTER OLD COPTIC HEI
+2CD3;;;COPTIC SMALL LETTER OLD COPTIC HEI
+2CD4;;;COPTIC CAPITAL LETTER OLD COPTIC HAT
+2CD5;;;COPTIC SMALL LETTER OLD COPTIC HAT
+2CD6;;;COPTIC CAPITAL LETTER OLD COPTIC GANGIA
+2CD7;;;COPTIC SMALL LETTER OLD COPTIC GANGIA
+2CD8;;;COPTIC CAPITAL LETTER OLD COPTIC DJA
+2CD9;;;COPTIC SMALL LETTER OLD COPTIC DJA
+2CDA;;;COPTIC CAPITAL LETTER OLD COPTIC SHIMA
+2CDB;;;COPTIC SMALL LETTER OLD COPTIC SHIMA
+2CDC;;;COPTIC CAPITAL LETTER OLD NUBIAN SHIMA
+2CDD;;;COPTIC SMALL LETTER OLD NUBIAN SHIMA
+2CDE;;;COPTIC CAPITAL LETTER OLD NUBIAN NGI
+2CDF;;;COPTIC SMALL LETTER OLD NUBIAN NGI
+#
+2CE0;;;COPTIC CAPITAL LETTER OLD NUBIAN NYI
+2CE1;;;COPTIC SMALL LETTER OLD NUBIAN NYI
+2CE2;;;COPTIC CAPITAL LETTER OLD NUBIAN WAU
+2CE3;;;COPTIC SMALL LETTER OLD NUBIAN WAU
+2CE4;;;COPTIC SYMBOL KAI
+2CE5;;;COPTIC SYMBOL MI RO
+2CE6;;;COPTIC SYMBOL PI RO
+2CE7;;;COPTIC SYMBOL STAUROS
+2CE8;;;COPTIC SYMBOL TAU RO
+2CE9;;;COPTIC SYMBOL KHI RO
+2CEA;;;COPTIC SYMBOL SHIMA SIMA
+2CF9;;;COPTIC OLD NUBIAN FULL STOP
+2CFA;;;COPTIC OLD NUBIAN DIRECT QUESTION MARK
+2CFB;;;COPTIC OLD NUBIAN INDIRECT QUESTION MARK
+2CFC;;;COPTIC OLD NUBIAN VERSE DIVIDER
+2CFD;;;COPTIC FRACTION ONE HALF
+2CFE;;;COPTIC FULL STOP
+2CFF;;;COPTIC MORPHOLOGICAL DIVIDER
+#
+2D00;;;GEORGIAN SMALL LETTER AN
+2D01;;;GEORGIAN SMALL LETTER BAN
+2D02;;;GEORGIAN SMALL LETTER GAN
+2D03;;;GEORGIAN SMALL LETTER DON
+2D04;;;GEORGIAN SMALL LETTER EN
+2D05;;;GEORGIAN SMALL LETTER VIN
+2D06;;;GEORGIAN SMALL LETTER ZEN
+2D07;;;GEORGIAN SMALL LETTER TAN
+2D08;;;GEORGIAN SMALL LETTER IN
+2D09;;;GEORGIAN SMALL LETTER KAN
+2D0A;;;GEORGIAN SMALL LETTER LAS
+2D0B;;;GEORGIAN SMALL LETTER MAN
+2D0C;;;GEORGIAN SMALL LETTER NAR
+2D0D;;;GEORGIAN SMALL LETTER ON
+2D0E;;;GEORGIAN SMALL LETTER PAR
+2D0F;;;GEORGIAN SMALL LETTER ZHAR
+#
+2D10;;;GEORGIAN SMALL LETTER RAE
+2D11;;;GEORGIAN SMALL LETTER SAN
+2D12;;;GEORGIAN SMALL LETTER TAR
+2D13;;;GEORGIAN SMALL LETTER UN
+2D14;;;GEORGIAN SMALL LETTER PHAR
+2D15;;;GEORGIAN SMALL LETTER KHAR
+2D16;;;GEORGIAN SMALL LETTER GHAN
+2D17;;;GEORGIAN SMALL LETTER QAR
+2D18;;;GEORGIAN SMALL LETTER SHIN
+2D19;;;GEORGIAN SMALL LETTER CHIN
+2D1A;;;GEORGIAN SMALL LETTER CAN
+2D1B;;;GEORGIAN SMALL LETTER JIL
+2D1C;;;GEORGIAN SMALL LETTER CIL
+2D1D;;;GEORGIAN SMALL LETTER CHAR
+2D1E;;;GEORGIAN SMALL LETTER XAN
+2D1F;;;GEORGIAN SMALL LETTER JHAN
+#
+2D20;;;GEORGIAN SMALL LETTER HAE
+2D21;;;GEORGIAN SMALL LETTER HE
+2D22;;;GEORGIAN SMALL LETTER HIE
+2D23;;;GEORGIAN SMALL LETTER WE
+2D24;;;GEORGIAN SMALL LETTER HAR
+2D25;;;GEORGIAN SMALL LETTER HOE
+#
+2D30;;;TIFINAGH LETTER YA
+2D31;;;TIFINAGH LETTER YAB
+2D32;;;TIFINAGH LETTER YABH
+2D33;;;TIFINAGH LETTER YAG
+2D34;;;TIFINAGH LETTER YAGHH
+2D35;;;TIFINAGH LETTER BERBER ACADEMY YAJ
+2D36;;;TIFINAGH LETTER YAJ
+2D37;;;TIFINAGH LETTER YAD
+2D38;;;TIFINAGH LETTER YADH
+2D39;;;TIFINAGH LETTER YADD
+2D3A;;;TIFINAGH LETTER YADDH
+2D3B;;;TIFINAGH LETTER YEY
+2D3C;;;TIFINAGH LETTER YAF
+2D3D;;;TIFINAGH LETTER YAK
+2D3E;;;TIFINAGH LETTER TUAREG YAK
+2D3F;;;TIFINAGH LETTER YAKHH
+#
+2D40;;;TIFINAGH LETTER YAH
+2D41;;;TIFINAGH LETTER BERBER ACADEMY YAH
+2D42;;;TIFINAGH LETTER TUAREG YAH
+2D43;;;TIFINAGH LETTER YAHH
+2D44;;;TIFINAGH LETTER YAA
+2D45;;;TIFINAGH LETTER YAKH
+2D46;;;TIFINAGH LETTER TUAREG YAKH
+2D47;;;TIFINAGH LETTER YAQ
+2D48;;;TIFINAGH LETTER TUAREG YAQ
+2D49;;;TIFINAGH LETTER YI
+2D4A;;;TIFINAGH LETTER YAZH
+2D4B;;;TIFINAGH LETTER AHAGGAR YAZH
+2D4C;;;TIFINAGH LETTER TUAREG YAZH
+2D4D;;;TIFINAGH LETTER YAL
+2D4E;;;TIFINAGH LETTER YAM
+2D4F;;;TIFINAGH LETTER YAN
+#
+2D50;;;TIFINAGH LETTER TUAREG YAGN
+2D51;;;TIFINAGH LETTER TUAREG YANG
+2D52;;;TIFINAGH LETTER YAP
+2D53;;;TIFINAGH LETTER YU
+2D54;;;TIFINAGH LETTER YAR
+2D55;;;TIFINAGH LETTER YARR
+2D56;;;TIFINAGH LETTER YAGH
+2D57;;;TIFINAGH LETTER TUAREG YAGH
+2D58;;;TIFINAGH LETTER AYER YAGH
+2D59;;;TIFINAGH LETTER YAS
+2D5A;;;TIFINAGH LETTER YASS
+2D5B;;;TIFINAGH LETTER YASH
+2D5C;;;TIFINAGH LETTER YAT
+2D5D;;;TIFINAGH LETTER YATH
+2D5E;;;TIFINAGH LETTER YACH
+2D5F;;;TIFINAGH LETTER YATT
+#
+2D60;;;TIFINAGH LETTER YAV
+2D61;;;TIFINAGH LETTER YAW
+2D62;;;TIFINAGH LETTER YAY
+2D63;;;TIFINAGH LETTER YAZ
+2D64;;;TIFINAGH LETTER TAWELLEMET YAZ
+2D65;;;TIFINAGH LETTER YAZZ
+2D6F;;;TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+#
+2D80;;;ETHIOPIC SYLLABLE LOA
+2D81;;;ETHIOPIC SYLLABLE MOA
+2D82;;;ETHIOPIC SYLLABLE ROA
+2D83;;;ETHIOPIC SYLLABLE SOA
+2D84;;;ETHIOPIC SYLLABLE SHOA
+2D85;;;ETHIOPIC SYLLABLE BOA
+2D86;;;ETHIOPIC SYLLABLE TOA
+2D87;;;ETHIOPIC SYLLABLE COA
+2D88;;;ETHIOPIC SYLLABLE NOA
+2D89;;;ETHIOPIC SYLLABLE NYOA
+2D8A;;;ETHIOPIC SYLLABLE GLOTTAL OA
+2D8B;;;ETHIOPIC SYLLABLE ZOA
+2D8C;;;ETHIOPIC SYLLABLE DOA
+2D8D;;;ETHIOPIC SYLLABLE DDOA
+2D8E;;;ETHIOPIC SYLLABLE JOA
+2D8F;;;ETHIOPIC SYLLABLE THOA
+#
+2D90;;;ETHIOPIC SYLLABLE CHOA
+2D91;;;ETHIOPIC SYLLABLE PHOA
+2D92;;;ETHIOPIC SYLLABLE POA
+2D93;;;ETHIOPIC SYLLABLE GGWA
+2D94;;;ETHIOPIC SYLLABLE GGWI
+2D95;;;ETHIOPIC SYLLABLE GGWEE
+2D96;;;ETHIOPIC SYLLABLE GGWE
+#
+2DA0;;;ETHIOPIC SYLLABLE SSA
+2DA1;;;ETHIOPIC SYLLABLE SSU
+2DA2;;;ETHIOPIC SYLLABLE SSI
+2DA3;;;ETHIOPIC SYLLABLE SSAA
+2DA4;;;ETHIOPIC SYLLABLE SSEE
+2DA5;;;ETHIOPIC SYLLABLE SSE
+2DA6;;;ETHIOPIC SYLLABLE SSO
+2DA8;;;ETHIOPIC SYLLABLE CCA
+2DA9;;;ETHIOPIC SYLLABLE CCU
+2DAA;;;ETHIOPIC SYLLABLE CCI
+2DAB;;;ETHIOPIC SYLLABLE CCAA
+2DAC;;;ETHIOPIC SYLLABLE CCEE
+2DAD;;;ETHIOPIC SYLLABLE CCE
+2DAE;;;ETHIOPIC SYLLABLE CCO
+#
+2DB0;;;ETHIOPIC SYLLABLE ZZA
+2DB1;;;ETHIOPIC SYLLABLE ZZU
+2DB2;;;ETHIOPIC SYLLABLE ZZI
+2DB3;;;ETHIOPIC SYLLABLE ZZAA
+2DB4;;;ETHIOPIC SYLLABLE ZZEE
+2DB5;;;ETHIOPIC SYLLABLE ZZE
+2DB6;;;ETHIOPIC SYLLABLE ZZO
+2DB8;;;ETHIOPIC SYLLABLE CCHA
+2DB9;;;ETHIOPIC SYLLABLE CCHU
+2DBA;;;ETHIOPIC SYLLABLE CCHI
+2DBB;;;ETHIOPIC SYLLABLE CCHAA
+2DBC;;;ETHIOPIC SYLLABLE CCHEE
+2DBD;;;ETHIOPIC SYLLABLE CCHE
+2DBE;;;ETHIOPIC SYLLABLE CCHO
+#
+2DC0;;;ETHIOPIC SYLLABLE QYA
+2DC1;;;ETHIOPIC SYLLABLE QYU
+2DC2;;;ETHIOPIC SYLLABLE QYI
+2DC3;;;ETHIOPIC SYLLABLE QYAA
+2DC4;;;ETHIOPIC SYLLABLE QYEE
+2DC5;;;ETHIOPIC SYLLABLE QYE
+2DC6;;;ETHIOPIC SYLLABLE QYO
+2DC8;;;ETHIOPIC SYLLABLE KYA
+2DC9;;;ETHIOPIC SYLLABLE KYU
+2DCA;;;ETHIOPIC SYLLABLE KYI
+2DCB;;;ETHIOPIC SYLLABLE KYAA
+2DCC;;;ETHIOPIC SYLLABLE KYEE
+2DCD;;;ETHIOPIC SYLLABLE KYE
+2DCE;;;ETHIOPIC SYLLABLE KYO
+#
+2DD0;;;ETHIOPIC SYLLABLE XYA
+2DD1;;;ETHIOPIC SYLLABLE XYU
+2DD2;;;ETHIOPIC SYLLABLE XYI
+2DD3;;;ETHIOPIC SYLLABLE XYAA
+2DD4;;;ETHIOPIC SYLLABLE XYEE
+2DD5;;;ETHIOPIC SYLLABLE XYE
+2DD6;;;ETHIOPIC SYLLABLE XYO
+2DD8;;;ETHIOPIC SYLLABLE GYA
+2DD9;;;ETHIOPIC SYLLABLE GYU
+2DDA;;;ETHIOPIC SYLLABLE GYI
+2DDB;;;ETHIOPIC SYLLABLE GYAA
+2DDC;;;ETHIOPIC SYLLABLE GYEE
+2DDD;;;ETHIOPIC SYLLABLE GYE
+2DDE;;;ETHIOPIC SYLLABLE GYO
+#
+2E00;;;RIGHT ANGLE SUBSTITUTION MARKER
+2E01;;;RIGHT ANGLE DOTTED SUBSTITUTION MARKER
+2E02;;;LEFT SUBSTITUTION BRACKET
+2E03;;;RIGHT SUBSTITUTION BRACKET
+2E04;;;LEFT DOTTED SUBSTITUTION BRACKET
+2E05;;;RIGHT DOTTED SUBSTITUTION BRACKET
+2E06;;;RAISED INTERPOLATION MARKER
+2E07;;;RAISED DOTTED INTERPOLATION MARKER
+2E08;;;DOTTED TRANSPOSITION MARKER
+2E09;;;LEFT TRANSPOSITION BRACKET
+2E0A;;;RIGHT TRANSPOSITION BRACKET
+2E0B;;;RAISED SQUARE
+2E0C;;;LEFT RAISED OMISSION BRACKET
+2E0D;;;RIGHT RAISED OMISSION BRACKET
+2E0E;;;EDITORIAL CORONIS
+2E0F;;;PARAGRAPHOS
+#
+2E10;;;FORKED PARAGRAPHOS
+2E11;;;REVERSED FORKED PARAGRAPHOS
+2E12;;;HYPODIASTOLE
+2E13;;;DOTTED OBELOS
+2E14;;;DOWNWARDS ANCORA
+2E15;;;UPWARDS ANCORA
+2E16;;;DOTTED RIGHT-POINTING ANGLE
+2E17;;;DOUBLE OBLIQUE HYPHEN
+2E1C;;;LEFT LOW PARAPHRASE BRACKET
+2E1D;;;RIGHT LOW PARAPHRASE BRACKET
+#
+# CJK Radical Supplement
+#
+2E80;;;CJK RADICAL REPEAT
+2E81;;;CJK RADICAL CLIFF
+2E82;;;CJK RADICAL SECOND ONE
+2E83;;;CJK RADICAL SECOND TWO
+2E84;;;CJK RADICAL SECOND THREE
+2E85;;;CJK RADICAL PERSON
+2E86;;;CJK RADICAL BOX
+2E87;;;CJK RADICAL TABLE
+2E88;;;CJK RADICAL KNIFE ONE
+2E89;;;CJK RADICAL KNIFE TWO
+2E8A;;;CJK RADICAL DIVINATION
+2E8B;;;CJK RADICAL SEAL
+2E8C;;;CJK RADICAL SMALL ONE
+2E8D;;;CJK RADICAL SMALL TWO
+2E8E;;;CJK RADICAL LAME ONE
+2E8F;;;CJK RADICAL LAME TWO
+#
+2E90;;;CJK RADICAL LAME THREE
+2E91;;;CJK RADICAL LAME FOUR
+2E92;;;CJK RADICAL SNAKE
+2E93;;;CJK RADICAL THREAD
+2E94;;;CJK RADICAL SNOUT ONE
+2E95;;;CJK RADICAL SNOUT TWO
+2E96;;;CJK RADICAL HEART ONE
+2E97;;;CJK RADICAL HEART TWO
+2E98;;;CJK RADICAL HAND
+2E99;;;CJK RADICAL RAP
+2E9B;;;CJK RADICAL CHOKE
+2E9C;;;CJK RADICAL SUN
+2E9D;;;CJK RADICAL MOON
+2E9E;;;CJK RADICAL DEATH
+2E9F;;;CJK RADICAL MOTHER
+#
+2EA0;;;CJK RADICAL CIVILIAN
+2EA1;;;CJK RADICAL WATER ONE
+2EA2;;;CJK RADICAL WATER TWO
+2EA3;;;CJK RADICAL FIRE
+2EA4;;;CJK RADICAL PAW ONE
+2EA5;;;CJK RADICAL PAW TWO
+2EA6;;;CJK RADICAL SIMPLIFIED HALF TREE TRUNK
+2EA7;;;CJK RADICAL COW
+2EA8;;;CJK RADICAL DOG
+2EA9;;;CJK RADICAL JADE
+2EAA;;;CJK RADICAL BOLT OF CLOTH
+2EAB;;;CJK RADICAL EYE
+2EAC;;;CJK RADICAL SPIRIT ONE
+2EAD;;;CJK RADICAL SPIRIT TWO
+2EAE;;;CJK RADICAL BAMBOO
+2EAF;;;CJK RADICAL SILK
+#
+2EB0;;;CJK RADICAL C-SIMPLIFIED SILK
+2EB1;;;CJK RADICAL NET ONE
+2EB2;;;CJK RADICAL NET TWO
+2EB3;;;CJK RADICAL NET THREE
+2EB4;;;CJK RADICAL NET FOUR
+2EB5;;;CJK RADICAL MESH
+2EB6;;;CJK RADICAL SHEEP
+2EB7;;;CJK RADICAL RAM
+2EB8;;;CJK RADICAL EWE
+2EB9;;;CJK RADICAL OLD
+2EBA;;;CJK RADICAL BRUSH ONE
+2EBB;;;CJK RADICAL BRUSH TWO
+2EBC;;;CJK RADICAL MEAT
+2EBD;;;CJK RADICAL MORTAR
+2EBE;;;CJK RADICAL GRASS ONE
+2EBF;;;CJK RADICAL GRASS TWO
+#
+2EC0;;;CJK RADICAL GRASS THREE
+2EC1;;;CJK RADICAL TIGER
+2EC2;;;CJK RADICAL CLOTHES
+2EC3;;;CJK RADICAL WEST ONE
+2EC4;;;CJK RADICAL WEST TWO
+2EC5;;;CJK RADICAL C-SIMPLIFIED SEE
+2EC6;;;CJK RADICAL SIMPLIFIED HORN
+2EC7;;;CJK RADICAL HORN
+2EC8;;;CJK RADICAL C-SIMPLIFIED SPEECH
+2EC9;;;CJK RADICAL C-SIMPLIFIED SHELL
+2ECA;;;CJK RADICAL FOOT
+2ECB;;;CJK RADICAL C-SIMPLIFIED CART
+2ECC;;;CJK RADICAL SIMPLIFIED WALK
+2ECD;;;CJK RADICAL WALK ONE
+2ECE;;;CJK RADICAL WALK TWO
+2ECF;;;CJK RADICAL CITY
+#
+2ED0;;;CJK RADICAL C-SIMPLIFIED GOLD
+2ED1;;;CJK RADICAL LONG ONE
+2ED2;;;CJK RADICAL LONG TWO
+2ED3;;;CJK RADICAL C-SIMPLIFIED LONG
+2ED4;;;CJK RADICAL C-SIMPLIFIED GATE
+2ED5;;;CJK RADICAL MOUND ONE
+2ED6;;;CJK RADICAL MOUND TWO
+2ED7;;;CJK RADICAL RAIN
+2ED8;;;CJK RADICAL BLUE
+2ED9;;;CJK RADICAL C-SIMPLIFIED TANNED LEATHER
+2EDA;;;CJK RADICAL C-SIMPLIFIED LEAF
+2EDB;;;CJK RADICAL C-SIMPLIFIED WIND
+2EDC;;;CJK RADICAL C-SIMPLIFIED FLY
+2EDD;;;CJK RADICAL EAT ONE
+2EDE;;;CJK RADICAL EAT TWO
+2EDF;;;CJK RADICAL EAT THREE
+#
+2EE0;;;CJK RADICAL C-SIMPLIFIED EAT
+2EE1;;;CJK RADICAL HEAD
+2EE2;;;CJK RADICAL C-SIMPLIFIED HORSE
+2EE3;;;CJK RADICAL BONE
+2EE4;;;CJK RADICAL GHOST
+2EE5;;;CJK RADICAL C-SIMPLIFIED FISH
+2EE6;;;CJK RADICAL C-SIMPLIFIED BIRD
+2EE7;;;CJK RADICAL C-SIMPLIFIED SALT
+2EE8;;;CJK RADICAL SIMPLIFIED WHEAT
+2EE9;;;CJK RADICAL SIMPLIFIED YELLOW
+2EEA;;;CJK RADICAL C-SIMPLIFIED FROG
+2EEB;;;CJK RADICAL J-SIMPLIFIED EVEN
+2EEC;;;CJK RADICAL C-SIMPLIFIED EVEN
+2EED;;;CJK RADICAL J-SIMPLIFIED TOOTH
+2EEE;;;CJK RADICAL C-SIMPLIFIED TOOTH
+2EEF;;;CJK RADICAL J-SIMPLIFIED DRAGON
+#
+2EF0;;;CJK RADICAL C-SIMPLIFIED DRAGON
+2EF1;;;CJK RADICAL TURTLE
+2EF2;;;CJK RADICAL J-SIMPLIFIED TURTLE
+2EF3;;;CJK RADICAL C-SIMPLIFIED TURTLE
+#
+# Kangxi Radicals
+#
+2F00;;;KANGXI RADICAL ONE
+2F01;;;KANGXI RADICAL LINE
+2F02;;;KANGXI RADICAL DOT
+2F03;;;KANGXI RADICAL SLASH
+2F04;;;KANGXI RADICAL SECOND
+2F05;;;KANGXI RADICAL HOOK
+2F06;;;KANGXI RADICAL TWO
+2F07;;;KANGXI RADICAL LID
+2F08;;;KANGXI RADICAL MAN
+2F09;;;KANGXI RADICAL LEGS
+2F0A;;;KANGXI RADICAL ENTER
+2F0B;;;KANGXI RADICAL EIGHT
+2F0C;;;KANGXI RADICAL DOWN BOX
+2F0D;;;KANGXI RADICAL COVER
+2F0E;;;KANGXI RADICAL ICE
+2F0F;;;KANGXI RADICAL TABLE
+#
+2F10;;;KANGXI RADICAL OPEN BOX
+2F11;;;KANGXI RADICAL KNIFE
+2F12;;;KANGXI RADICAL POWER
+2F13;;;KANGXI RADICAL WRAP
+2F14;;;KANGXI RADICAL SPOON
+2F15;;;KANGXI RADICAL RIGHT OPEN BOX
+2F16;;;KANGXI RADICAL HIDING ENCLOSURE
+2F17;;;KANGXI RADICAL TEN
+2F18;;;KANGXI RADICAL DIVINATION
+2F19;;;KANGXI RADICAL SEAL
+2F1A;;;KANGXI RADICAL CLIFF
+2F1B;;;KANGXI RADICAL PRIVATE
+2F1C;;;KANGXI RADICAL AGAIN
+2F1D;;;KANGXI RADICAL MOUTH
+2F1E;;;KANGXI RADICAL ENCLOSURE
+2F1F;;;KANGXI RADICAL EARTH
+#
+2F20;;;KANGXI RADICAL SCHOLAR
+2F21;;;KANGXI RADICAL GO
+2F22;;;KANGXI RADICAL GO SLOWLY
+2F23;;;KANGXI RADICAL EVENING
+2F24;;;KANGXI RADICAL BIG
+2F25;;;KANGXI RADICAL WOMAN
+2F26;;;KANGXI RADICAL CHILD
+2F27;;;KANGXI RADICAL ROOF
+2F28;;;KANGXI RADICAL INCH
+2F29;;;KANGXI RADICAL SMALL
+2F2A;;;KANGXI RADICAL LAME
+2F2B;;;KANGXI RADICAL CORPSE
+2F2C;;;KANGXI RADICAL SPROUT
+2F2D;;;KANGXI RADICAL MOUNTAIN
+2F2E;;;KANGXI RADICAL RIVER
+2F2F;;;KANGXI RADICAL WORK
+#
+2F30;;;KANGXI RADICAL ONESELF
+2F31;;;KANGXI RADICAL TURBAN
+2F32;;;KANGXI RADICAL DRY
+2F33;;;KANGXI RADICAL SHORT THREAD
+2F34;;;KANGXI RADICAL DOTTED CLIFF
+2F35;;;KANGXI RADICAL LONG STRIDE
+2F36;;;KANGXI RADICAL TWO HANDS
+2F37;;;KANGXI RADICAL SHOOT
+2F38;;;KANGXI RADICAL BOW
+2F39;;;KANGXI RADICAL SNOUT
+2F3A;;;KANGXI RADICAL BRISTLE
+2F3B;;;KANGXI RADICAL STEP
+2F3C;;;KANGXI RADICAL HEART
+2F3D;;;KANGXI RADICAL HALBERD
+2F3E;;;KANGXI RADICAL DOOR
+2F3F;;;KANGXI RADICAL HAND
+#
+2F40;;;KANGXI RADICAL BRANCH
+2F41;;;KANGXI RADICAL RAP
+2F42;;;KANGXI RADICAL SCRIPT
+2F43;;;KANGXI RADICAL DIPPER
+2F44;;;KANGXI RADICAL AXE
+2F45;;;KANGXI RADICAL SQUARE
+2F46;;;KANGXI RADICAL NOT
+2F47;;;KANGXI RADICAL SUN
+2F48;;;KANGXI RADICAL SAY
+2F49;;;KANGXI RADICAL MOON
+2F4A;;;KANGXI RADICAL TREE
+2F4B;;;KANGXI RADICAL LACK
+2F4C;;;KANGXI RADICAL STOP
+2F4D;;;KANGXI RADICAL DEATH
+2F4E;;;KANGXI RADICAL WEAPON
+2F4F;;;KANGXI RADICAL DO NOT
+#
+2F50;;;KANGXI RADICAL COMPARE
+2F51;;;KANGXI RADICAL FUR
+2F52;;;KANGXI RADICAL CLAN
+2F53;;;KANGXI RADICAL STEAM
+2F54;;;KANGXI RADICAL WATER
+2F55;;;KANGXI RADICAL FIRE
+2F56;;;KANGXI RADICAL CLAW
+2F57;;;KANGXI RADICAL FATHER
+2F58;;;KANGXI RADICAL DOUBLE X
+2F59;;;KANGXI RADICAL HALF TREE TRUNK
+2F5A;;;KANGXI RADICAL SLICE
+2F5B;;;KANGXI RADICAL FANG
+2F5C;;;KANGXI RADICAL COW
+2F5D;;;KANGXI RADICAL DOG
+2F5E;;;KANGXI RADICAL PROFOUND
+2F5F;;;KANGXI RADICAL JADE
+#
+2F60;;;KANGXI RADICAL MELON
+2F61;;;KANGXI RADICAL TILE
+2F62;;;KANGXI RADICAL SWEET
+2F63;;;KANGXI RADICAL LIFE
+2F64;;;KANGXI RADICAL USE
+2F65;;;KANGXI RADICAL FIELD
+2F66;;;KANGXI RADICAL BOLT OF CLOTH
+2F67;;;KANGXI RADICAL SICKNESS
+2F68;;;KANGXI RADICAL DOTTED TENT
+2F69;;;KANGXI RADICAL WHITE
+2F6A;;;KANGXI RADICAL SKIN
+2F6B;;;KANGXI RADICAL DISH
+2F6C;;;KANGXI RADICAL EYE
+2F6D;;;KANGXI RADICAL SPEAR
+2F6E;;;KANGXI RADICAL ARROW
+2F6F;;;KANGXI RADICAL STONE
+#
+2F70;;;KANGXI RADICAL SPIRIT
+2F71;;;KANGXI RADICAL TRACK
+2F72;;;KANGXI RADICAL GRAIN
+2F73;;;KANGXI RADICAL CAVE
+2F74;;;KANGXI RADICAL STAND
+2F75;;;KANGXI RADICAL BAMBOO
+2F76;;;KANGXI RADICAL RICE
+2F77;;;KANGXI RADICAL SILK
+2F78;;;KANGXI RADICAL JAR
+2F79;;;KANGXI RADICAL NET
+2F7A;;;KANGXI RADICAL SHEEP
+2F7B;;;KANGXI RADICAL FEATHER
+2F7C;;;KANGXI RADICAL OLD
+2F7D;;;KANGXI RADICAL AND
+2F7E;;;KANGXI RADICAL PLOW
+2F7F;;;KANGXI RADICAL EAR
+#
+2F80;;;KANGXI RADICAL BRUSH
+2F81;;;KANGXI RADICAL MEAT
+2F82;;;KANGXI RADICAL MINISTER
+2F83;;;KANGXI RADICAL SELF
+2F84;;;KANGXI RADICAL ARRIVE
+2F85;;;KANGXI RADICAL MORTAR
+2F86;;;KANGXI RADICAL TONGUE
+2F87;;;KANGXI RADICAL OPPOSE
+2F88;;;KANGXI RADICAL BOAT
+2F89;;;KANGXI RADICAL STOPPING
+2F8A;;;KANGXI RADICAL COLOR
+2F8B;;;KANGXI RADICAL GRASS
+2F8C;;;KANGXI RADICAL TIGER
+2F8D;;;KANGXI RADICAL INSECT
+2F8E;;;KANGXI RADICAL BLOOD
+2F8F;;;KANGXI RADICAL WALK ENCLOSURE
+#
+2F90;;;KANGXI RADICAL CLOTHES
+2F91;;;KANGXI RADICAL WEST
+2F92;;;KANGXI RADICAL SEE
+2F93;;;KANGXI RADICAL HORN
+2F94;;;KANGXI RADICAL SPEECH
+2F95;;;KANGXI RADICAL VALLEY
+2F96;;;KANGXI RADICAL BEAN
+2F97;;;KANGXI RADICAL PIG
+2F98;;;KANGXI RADICAL BADGER
+2F99;;;KANGXI RADICAL SHELL
+2F9A;;;KANGXI RADICAL RED
+2F9B;;;KANGXI RADICAL RUN
+2F9C;;;KANGXI RADICAL FOOT
+2F9D;;;KANGXI RADICAL BODY
+2F9E;;;KANGXI RADICAL CART
+2F9F;;;KANGXI RADICAL BITTER
+#
+2FA0;;;KANGXI RADICAL MORNING
+2FA1;;;KANGXI RADICAL WALK
+2FA2;;;KANGXI RADICAL CITY
+2FA3;;;KANGXI RADICAL WINE
+2FA4;;;KANGXI RADICAL DISTINGUISH
+2FA5;;;KANGXI RADICAL VILLAGE
+2FA6;;;KANGXI RADICAL GOLD
+2FA7;;;KANGXI RADICAL LONG
+2FA8;;;KANGXI RADICAL GATE
+2FA9;;;KANGXI RADICAL MOUND
+2FAA;;;KANGXI RADICAL SLAVE
+2FAB;;;KANGXI RADICAL SHORT TAILED BIRD
+2FAC;;;KANGXI RADICAL RAIN
+2FAD;;;KANGXI RADICAL BLUE
+2FAE;;;KANGXI RADICAL WRONG
+2FAF;;;KANGXI RADICAL FACE
+#
+2FB0;;;KANGXI RADICAL LEATHER
+2FB1;;;KANGXI RADICAL TANNED LEATHER
+2FB2;;;KANGXI RADICAL LEEK
+2FB3;;;KANGXI RADICAL SOUND
+2FB4;;;KANGXI RADICAL LEAF
+2FB5;;;KANGXI RADICAL WIND
+2FB6;;;KANGXI RADICAL FLY
+2FB7;;;KANGXI RADICAL EAT
+2FB8;;;KANGXI RADICAL HEAD
+2FB9;;;KANGXI RADICAL FRAGRANT
+2FBA;;;KANGXI RADICAL HORSE
+2FBB;;;KANGXI RADICAL BONE
+2FBC;;;KANGXI RADICAL TALL
+2FBD;;;KANGXI RADICAL HAIR
+2FBE;;;KANGXI RADICAL FIGHT
+2FBF;;;KANGXI RADICAL SACRIFICIAL WINE
+#
+2FC0;;;KANGXI RADICAL CAULDRON
+2FC1;;;KANGXI RADICAL GHOST
+2FC2;;;KANGXI RADICAL FISH
+2FC3;;;KANGXI RADICAL BIRD
+2FC4;;;KANGXI RADICAL SALT
+2FC5;;;KANGXI RADICAL DEER
+2FC6;;;KANGXI RADICAL WHEAT
+2FC7;;;KANGXI RADICAL HEMP
+2FC8;;;KANGXI RADICAL YELLOW
+2FC9;;;KANGXI RADICAL MILLET
+2FCA;;;KANGXI RADICAL BLACK
+2FCB;;;KANGXI RADICAL EMBROIDERY
+2FCC;;;KANGXI RADICAL FROG
+2FCD;;;KANGXI RADICAL TRIPOD
+2FCE;;;KANGXI RADICAL DRUM
+2FCF;;;KANGXI RADICAL RAT
+#
+2FD0;;;KANGXI RADICAL NOSE
+2FD1;;;KANGXI RADICAL EVEN
+2FD2;;;KANGXI RADICAL TOOTH
+2FD3;;;KANGXI RADICAL DRAGON
+2FD4;;;KANGXI RADICAL TURTLE
+2FD5;;;KANGXI RADICAL FLUTE
+#
+# Ideographic Description Characters
+#
+2FF0;;;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT
+2FF1;;;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW
+2FF2;;;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT
+2FF3;;;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW
+2FF4;;;IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND
+2FF5;;;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE
+2FF6;;;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW
+2FF7;;;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT
+2FF8;;;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT
+2FF9;;;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT
+2FFA;;;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT
+2FFB;;;IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
+#
+# CJK Symbols and Punctuation
+#
+3000;;;IDEOGRAPHIC SPACE
+3001;;;IDEOGRAPHIC COMMA
+3002;;;IDEOGRAPHIC FULL STOP
+3003;;;DITTO MARK
+3004;;;JAPANESE INDUSTRIAL STANDARD SYMBOL
+3005;;;IDEOGRAPHIC ITERATION MARK
+3006;;;IDEOGRAPHIC CLOSING MARK
+3007;;;IDEOGRAPHIC NUMBER ZERO
+3008;;;LEFT ANGLE BRACKET
+3009;;;RIGHT ANGLE BRACKET
+300A;;;LEFT DOUBLE ANGLE BRACKET
+300B;;;RIGHT DOUBLE ANGLE BRACKET
+300C;;;LEFT CORNER BRACKET
+300D;;;RIGHT CORNER BRACKET
+300E;;;LEFT WHITE CORNER BRACKET
+300F;;;RIGHT WHITE CORNER BRACKET
+#
+3010;;;LEFT BLACK LENTICULAR BRACKET
+3011;;;RIGHT BLACK LENTICULAR BRACKET
+3012;;;POSTAL MARK
+3013;;;GETA MARK
+3014;;;LEFT TORTOISE SHELL BRACKET
+3015;;;RIGHT TORTOISE SHELL BRACKET
+3016;;;LEFT WHITE LENTICULAR BRACKET
+3017;;;RIGHT WHITE LENTICULAR BRACKET
+3018;;;LEFT WHITE TORTOISE SHELL BRACKET
+3019;;;RIGHT WHITE TORTOISE SHELL BRACKET
+301A;;;LEFT WHITE SQUARE BRACKET
+301B;;;RIGHT WHITE SQUARE BRACKET
+301C;;;WAVE DASH
+301D;;;REVERSED DOUBLE PRIME QUOTATION MARK
+301E;;;DOUBLE PRIME QUOTATION MARK
+301F;;;LOW DOUBLE PRIME QUOTATION MARK
+#
+3020;;;POSTAL MARK FACE
+3021;;;HANGZHOU NUMERAL ONE
+3022;;;HANGZHOU NUMERAL TWO
+3023;;;HANGZHOU NUMERAL THREE
+3024;;;HANGZHOU NUMERAL FOUR
+3025;;;HANGZHOU NUMERAL FIVE
+3026;;;HANGZHOU NUMERAL SIX
+3027;;;HANGZHOU NUMERAL SEVEN
+3028;;;HANGZHOU NUMERAL EIGHT
+3029;;;HANGZHOU NUMERAL NINE
+302A;;;IDEOGRAPHIC LEVEL TONE MARK
+302B;;;IDEOGRAPHIC RISING TONE MARK
+302C;;;IDEOGRAPHIC DEPARTING TONE MARK
+302D;;;IDEOGRAPHIC ENTERING TONE MARK
+302E;;;HANGUL SINGLE DOT TONE MARK
+302F;;;HANGUL DOUBLE DOT TONE MARK
+#
+3030;;;WAVY DASH
+3031;;;VERTICAL KANA REPEAT MARK
+3032;;;VERTICAL KANA REPEAT WITH VOICED SOUND MARK
+3033;;;VERTICAL KANA REPEAT MARK UPPER HALF
+3034;;;VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF
+3035;;;VERTICAL KANA REPEAT MARK LOWER HALF
+3036;;;CIRCLED POSTAL MARK
+3037;;;IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
+3038;;;HANGZHOU NUMERAL TEN
+3039;;;HANGZHOU NUMERAL TWENTY
+303A;;;HANGZHOU NUMERAL THIRTY
+303B;;;VERTICAL IDEOGRAPHIC ITERATION MARK
+303C;;;MASU MARK
+303D;;;PART ALTERNATION MARK
+303E;;;IDEOGRAPHIC VARIATION INDICATOR
+303F;;;IDEOGRAPHIC HALF FILL SPACE
+3041;;;HIRAGANA LETTER SMALL A
+3042;;;HIRAGANA LETTER A
+3043;;;HIRAGANA LETTER SMALL I
+3044;;;HIRAGANA LETTER I
+3045;;;HIRAGANA LETTER SMALL U
+3046;;;HIRAGANA LETTER U
+3047;;;HIRAGANA LETTER SMALL E
+3048;;;HIRAGANA LETTER E
+3049;;;HIRAGANA LETTER SMALL O
+304A;;;HIRAGANA LETTER O
+304B;;;HIRAGANA LETTER KA
+304C;;;HIRAGANA LETTER GA
+304D;;;HIRAGANA LETTER KI
+304E;;;HIRAGANA LETTER GI
+304F;;;HIRAGANA LETTER KU
+#
+3050;;;HIRAGANA LETTER GU
+3051;;;HIRAGANA LETTER KE
+3052;;;HIRAGANA LETTER GE
+3053;;;HIRAGANA LETTER KO
+3054;;;HIRAGANA LETTER GO
+3055;;;HIRAGANA LETTER SA
+3056;;;HIRAGANA LETTER ZA
+3057;;;HIRAGANA LETTER SI
+3058;;;HIRAGANA LETTER ZI
+3059;;;HIRAGANA LETTER SU
+305A;;;HIRAGANA LETTER ZU
+305B;;;HIRAGANA LETTER SE
+305C;;;HIRAGANA LETTER ZE
+305D;;;HIRAGANA LETTER SO
+305E;;;HIRAGANA LETTER ZO
+305F;;;HIRAGANA LETTER TA
+#
+3060;;;HIRAGANA LETTER DA
+3061;;;HIRAGANA LETTER TI
+3062;;;HIRAGANA LETTER DI
+3063;;;HIRAGANA LETTER SMALL TU
+3064;;;HIRAGANA LETTER TU
+3065;;;HIRAGANA LETTER DU
+3066;;;HIRAGANA LETTER TE
+3067;;;HIRAGANA LETTER DE
+3068;;;HIRAGANA LETTER TO
+3069;;;HIRAGANA LETTER DO
+306A;;;HIRAGANA LETTER NA
+306B;;;HIRAGANA LETTER NI
+306C;;;HIRAGANA LETTER NU
+306D;;;HIRAGANA LETTER NE
+306E;;;HIRAGANA LETTER NO
+306F;;;HIRAGANA LETTER HA
+#
+3070;;;HIRAGANA LETTER BA
+3071;;;HIRAGANA LETTER PA
+3072;;;HIRAGANA LETTER HI
+3073;;;HIRAGANA LETTER BI
+3074;;;HIRAGANA LETTER PI
+3075;;;HIRAGANA LETTER HU
+3076;;;HIRAGANA LETTER BU
+3077;;;HIRAGANA LETTER PU
+3078;;;HIRAGANA LETTER HE
+3079;;;HIRAGANA LETTER BE
+307A;;;HIRAGANA LETTER PE
+307B;;;HIRAGANA LETTER HO
+307C;;;HIRAGANA LETTER BO
+307D;;;HIRAGANA LETTER PO
+307E;;;HIRAGANA LETTER MA
+307F;;;HIRAGANA LETTER MI
+#
+3080;;;HIRAGANA LETTER MU
+3081;;;HIRAGANA LETTER ME
+3082;;;HIRAGANA LETTER MO
+3083;;;HIRAGANA LETTER SMALL YA
+3084;;;HIRAGANA LETTER YA
+3085;;;HIRAGANA LETTER SMALL YU
+3086;;;HIRAGANA LETTER YU
+3087;;;HIRAGANA LETTER SMALL YO
+3088;;;HIRAGANA LETTER YO
+3089;;;HIRAGANA LETTER RA
+308A;;;HIRAGANA LETTER RI
+308B;;;HIRAGANA LETTER RU
+308C;;;HIRAGANA LETTER RE
+308D;;;HIRAGANA LETTER RO
+308E;;;HIRAGANA LETTER SMALL WA
+308F;;;HIRAGANA LETTER WA
+#
+3090;;;HIRAGANA LETTER WI
+3091;;;HIRAGANA LETTER WE
+3092;;;HIRAGANA LETTER WO
+3093;;;HIRAGANA LETTER N
+3094;;;HIRAGANA LETTER VU
+3095;;;HIRAGANA LETTER SMALL KA
+3096;;;HIRAGANA LETTER SMALL KE
+3099;;;COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
+309A;;;COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309B;;;KATAKANA-HIRAGANA VOICED SOUND MARK
+309C;;;KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309D;;;HIRAGANA ITERATION MARK
+309E;;;HIRAGANA VOICED ITERATION MARK
+309F;;;HIRAGANA DIGRAPH YORI
+#
+# Katakana
+#
+30A0;;;KATAKANA-HIRAGANA DOUBLE HYPHEN
+30A1;;;KATAKANA LETTER SMALL A
+30A2;;;KATAKANA LETTER A
+30A3;;;KATAKANA LETTER SMALL I
+30A4;;;KATAKANA LETTER I
+30A5;;;KATAKANA LETTER SMALL U
+30A6;;;KATAKANA LETTER U
+30A7;;;KATAKANA LETTER SMALL E
+30A8;;;KATAKANA LETTER E
+30A9;;;KATAKANA LETTER SMALL O
+30AA;;;KATAKANA LETTER O
+30AB;;;KATAKANA LETTER KA
+30AC;;;KATAKANA LETTER GA
+30AD;;;KATAKANA LETTER KI
+30AE;;;KATAKANA LETTER GI
+30AF;;;KATAKANA LETTER KU
+#
+30B0;;;KATAKANA LETTER GU
+30B1;;;KATAKANA LETTER KE
+30B2;;;KATAKANA LETTER GE
+30B3;;;KATAKANA LETTER KO
+30B4;;;KATAKANA LETTER GO
+30B5;;;KATAKANA LETTER SA
+30B6;;;KATAKANA LETTER ZA
+30B7;;;KATAKANA LETTER SI
+30B8;;;KATAKANA LETTER ZI
+30B9;;;KATAKANA LETTER SU
+30BA;;;KATAKANA LETTER ZU
+30BB;;;KATAKANA LETTER SE
+30BC;;;KATAKANA LETTER ZE
+30BD;;;KATAKANA LETTER SO
+30BE;;;KATAKANA LETTER ZO
+30BF;;;KATAKANA LETTER TA
+#
+30C0;;;KATAKANA LETTER DA
+30C1;;;KATAKANA LETTER TI
+30C2;;;KATAKANA LETTER DI
+30C3;;;KATAKANA LETTER SMALL TU
+30C4;;;KATAKANA LETTER TU
+30C5;;;KATAKANA LETTER DU
+30C6;;;KATAKANA LETTER TE
+30C7;;;KATAKANA LETTER DE
+30C8;;;KATAKANA LETTER TO
+30C9;;;KATAKANA LETTER DO
+30CA;;;KATAKANA LETTER NA
+30CB;;;KATAKANA LETTER NI
+30CC;;;KATAKANA LETTER NU
+30CD;;;KATAKANA LETTER NE
+30CE;;;KATAKANA LETTER NO
+30CF;;;KATAKANA LETTER HA
+#
+30D0;;;KATAKANA LETTER BA
+30D1;;;KATAKANA LETTER PA
+30D2;;;KATAKANA LETTER HI
+30D3;;;KATAKANA LETTER BI
+30D4;;;KATAKANA LETTER PI
+30D5;;;KATAKANA LETTER HU
+30D6;;;KATAKANA LETTER BU
+30D7;;;KATAKANA LETTER PU
+30D8;;;KATAKANA LETTER HE
+30D9;;;KATAKANA LETTER BE
+30DA;;;KATAKANA LETTER PE
+30DB;;;KATAKANA LETTER HO
+30DC;;;KATAKANA LETTER BO
+30DD;;;KATAKANA LETTER PO
+30DE;;;KATAKANA LETTER MA
+30DF;;;KATAKANA LETTER MI
+#
+30E0;;;KATAKANA LETTER MU
+30E1;;;KATAKANA LETTER ME
+30E2;;;KATAKANA LETTER MO
+30E3;;;KATAKANA LETTER SMALL YA
+30E4;;;KATAKANA LETTER YA
+30E5;;;KATAKANA LETTER SMALL YU
+30E6;;;KATAKANA LETTER YU
+30E7;;;KATAKANA LETTER SMALL YO
+30E8;;;KATAKANA LETTER YO
+30E9;;;KATAKANA LETTER RA
+30EA;;;KATAKANA LETTER RI
+30EB;;;KATAKANA LETTER RU
+30EC;;;KATAKANA LETTER RE
+30ED;;;KATAKANA LETTER RO
+30EE;;;KATAKANA LETTER SMALL WA
+30EF;;;KATAKANA LETTER WA
+#
+30F0;;;KATAKANA LETTER WI
+30F1;;;KATAKANA LETTER WE
+30F2;;;KATAKANA LETTER WO
+30F3;;;KATAKANA LETTER N
+30F4;;;KATAKANA LETTER VU
+30F5;;;KATAKANA LETTER SMALL KA
+30F6;;;KATAKANA LETTER SMALL KE
+30F7;;;KATAKANA LETTER VA
+30F8;;;KATAKANA LETTER VI
+30F9;;;KATAKANA LETTER VE
+30FA;;;KATAKANA LETTER VO
+30FB;;;KATAKANA MIDDLE DOT
+30FC;;;KATAKANA-HIRAGANA PROLONGED SOUND MARK
+30FD;;;KATAKANA ITERATION MARK
+30FE;;;KATAKANA VOICED ITERATION MARK
+30FF;;;KATAKANA DIGRAPH KOTO
+3105;;;BOPOMOFO LETTER B
+3106;;;BOPOMOFO LETTER P
+3107;;;BOPOMOFO LETTER M
+3108;;;BOPOMOFO LETTER F
+3109;;;BOPOMOFO LETTER D
+310A;;;BOPOMOFO LETTER T
+310B;;;BOPOMOFO LETTER N
+310C;;;BOPOMOFO LETTER L
+310D;;;BOPOMOFO LETTER G
+310E;;;BOPOMOFO LETTER K
+310F;;;BOPOMOFO LETTER H
+#
+3110;;;BOPOMOFO LETTER J
+3111;;;BOPOMOFO LETTER Q
+3112;;;BOPOMOFO LETTER X
+3113;;;BOPOMOFO LETTER ZH
+3114;;;BOPOMOFO LETTER CH
+3115;;;BOPOMOFO LETTER SH
+3116;;;BOPOMOFO LETTER R
+3117;;;BOPOMOFO LETTER Z
+3118;;;BOPOMOFO LETTER C
+3119;;;BOPOMOFO LETTER S
+311A;;;BOPOMOFO LETTER A
+311B;;;BOPOMOFO LETTER O
+311C;;;BOPOMOFO LETTER E
+311D;;;BOPOMOFO LETTER EH
+311E;;;BOPOMOFO LETTER AI
+311F;;;BOPOMOFO LETTER EI
+#
+3120;;;BOPOMOFO LETTER AU
+3121;;;BOPOMOFO LETTER OU
+3122;;;BOPOMOFO LETTER AN
+3123;;;BOPOMOFO LETTER EN
+3124;;;BOPOMOFO LETTER ANG
+3125;;;BOPOMOFO LETTER ENG
+3126;;;BOPOMOFO LETTER ER
+3127;;;BOPOMOFO LETTER I
+3128;;;BOPOMOFO LETTER U
+3129;;;BOPOMOFO LETTER IU
+312A;;;BOPOMOFO LETTER V
+312B;;;BOPOMOFO LETTER NG
+312C;;;BOPOMOFO LETTER GN
+3131;;;HANGUL LETTER KIYEOK
+3132;;;HANGUL LETTER SSANGKIYEOK
+3133;;;HANGUL LETTER KIYEOK-SIOS
+3134;;;HANGUL LETTER NIEUN
+3135;;;HANGUL LETTER NIEUN-CIEUC
+3136;;;HANGUL LETTER NIEUN-HIEUH
+3137;;;HANGUL LETTER TIKEUT
+3138;;;HANGUL LETTER SSANGTIKEUT
+3139;;;HANGUL LETTER RIEUL
+313A;;;HANGUL LETTER RIEUL-KIYEOK
+313B;;;HANGUL LETTER RIEUL-MIEUM
+313C;;;HANGUL LETTER RIEUL-PIEUP
+313D;;;HANGUL LETTER RIEUL-SIOS
+313E;;;HANGUL LETTER RIEUL-THIEUTH
+313F;;;HANGUL LETTER RIEUL-PHIEUPH
+#
+3140;;;HANGUL LETTER RIEUL-HIEUH
+3141;;;HANGUL LETTER MIEUM
+3142;;;HANGUL LETTER PIEUP
+3143;;;HANGUL LETTER SSANGPIEUP
+3144;;;HANGUL LETTER PIEUP-SIOS
+3145;;;HANGUL LETTER SIOS
+3146;;;HANGUL LETTER SSANGSIOS
+3147;;;HANGUL LETTER IEUNG
+3148;;;HANGUL LETTER CIEUC
+3149;;;HANGUL LETTER SSANGCIEUC
+314A;;;HANGUL LETTER CHIEUCH
+314B;;;HANGUL LETTER KHIEUKH
+314C;;;HANGUL LETTER THIEUTH
+314D;;;HANGUL LETTER PHIEUPH
+314E;;;HANGUL LETTER HIEUH
+314F;;;HANGUL LETTER A
+#
+3150;;;HANGUL LETTER AE
+3151;;;HANGUL LETTER YA
+3152;;;HANGUL LETTER YAE
+3153;;;HANGUL LETTER EO
+3154;;;HANGUL LETTER E
+3155;;;HANGUL LETTER YEO
+3156;;;HANGUL LETTER YE
+3157;;;HANGUL LETTER O
+3158;;;HANGUL LETTER WA
+3159;;;HANGUL LETTER WAE
+315A;;;HANGUL LETTER OE
+315B;;;HANGUL LETTER YO
+315C;;;HANGUL LETTER U
+315D;;;HANGUL LETTER WEO
+315E;;;HANGUL LETTER WE
+315F;;;HANGUL LETTER WI
+#
+3160;;;HANGUL LETTER YU
+3161;;;HANGUL LETTER EU
+3162;;;HANGUL LETTER YI
+3163;;;HANGUL LETTER I
+3164;;;HANGUL FILLER
+3165;;;HANGUL LETTER SSANGNIEUN
+3166;;;HANGUL LETTER NIEUN-TIKEUT
+3167;;;HANGUL LETTER NIEUN-SIOS
+3168;;;HANGUL LETTER NIEUN-PANSIOS
+3169;;;HANGUL LETTER RIEUL-KIYEOK-SIOS
+316A;;;HANGUL LETTER RIEUL-TIKEUT
+316B;;;HANGUL LETTER RIEUL-PIEUP-SIOS
+316C;;;HANGUL LETTER RIEUL-PANSIOS
+316D;;;HANGUL LETTER RIEUL-YEORINHIEUH
+316E;;;HANGUL LETTER MIEUM-PIEUP
+316F;;;HANGUL LETTER MIEUM-SIOS
+#
+3170;;;HANGUL LETTER MIEUM-PANSIOS
+3171;;;HANGUL LETTER KAPYEOUNMIEUM
+3172;;;HANGUL LETTER PIEUP-KIYEOK
+3173;;;HANGUL LETTER PIEUP-TIKEUT
+3174;;;HANGUL LETTER PIEUP-SIOS-KIYEOK
+3175;;;HANGUL LETTER PIEUP-SIOS-TIKEUT
+3176;;;HANGUL LETTER PIEUP-CIEUC
+3177;;;HANGUL LETTER PIEUP-THIEUTH
+3178;;;HANGUL LETTER KAPYEOUNPIEUP
+3179;;;HANGUL LETTER KAPYEOUNSSANGPIEUP
+317A;;;HANGUL LETTER SIOS-KIYEOK
+317B;;;HANGUL LETTER SIOS-NIEUN
+317C;;;HANGUL LETTER SIOS-TIKEUT
+317D;;;HANGUL LETTER SIOS-PIEUP
+317E;;;HANGUL LETTER SIOS-CIEUC
+317F;;;HANGUL LETTER PANSIOS
+#
+3180;;;HANGUL LETTER SSANGIEUNG
+3181;;;HANGUL LETTER YESIEUNG
+3182;;;HANGUL LETTER YESIEUNG-SIOS
+3183;;;HANGUL LETTER YESIEUNG-PANSIOS
+3184;;;HANGUL LETTER KAPYEOUNPHIEUPH
+3185;;;HANGUL LETTER SSANGHIEUH
+3186;;;HANGUL LETTER YEORINHIEUH
+3187;;;HANGUL LETTER YO-YA
+3188;;;HANGUL LETTER YO-YAE
+3189;;;HANGUL LETTER YO-I
+318A;;;HANGUL LETTER YU-YEO
+318B;;;HANGUL LETTER YU-YE
+318C;;;HANGUL LETTER YU-I
+318D;;;HANGUL LETTER ARAEA
+318E;;;HANGUL LETTER ARAEAE
+#
+# Kanbun
+#
+3190;;;IDEOGRAPHIC ANNOTATION LINKING MARK
+3191;;;IDEOGRAPHIC ANNOTATION REVERSE MARK
+3192;;;IDEOGRAPHIC ANNOTATION ONE MARK
+3193;;;IDEOGRAPHIC ANNOTATION TWO MARK
+3194;;;IDEOGRAPHIC ANNOTATION THREE MARK
+3195;;;IDEOGRAPHIC ANNOTATION FOUR MARK
+3196;;;IDEOGRAPHIC ANNOTATION TOP MARK
+3197;;;IDEOGRAPHIC ANNOTATION MIDDLE MARK
+3198;;;IDEOGRAPHIC ANNOTATION BOTTOM MARK
+3199;;;IDEOGRAPHIC ANNOTATION FIRST MARK
+319A;;;IDEOGRAPHIC ANNOTATION SECOND MARK
+319B;;;IDEOGRAPHIC ANNOTATION THIRD MARK
+319C;;;IDEOGRAPHIC ANNOTATION FOURTH MARK
+319D;;;IDEOGRAPHIC ANNOTATION HEAVEN MARK
+319E;;;IDEOGRAPHIC ANNOTATION EARTH MARK
+319F;;;IDEOGRAPHIC ANNOTATION MAN MARK
+#
+# Bopomofo Extended
+#
+31A0;;;BOPOMOFO LETTER BU
+31A1;;;BOPOMOFO LETTER ZI
+31A2;;;BOPOMOFO LETTER JI
+31A3;;;BOPOMOFO LETTER GU
+31A4;;;BOPOMOFO LETTER EE
+31A5;;;BOPOMOFO LETTER ENN
+31A6;;;BOPOMOFO LETTER OO
+31A7;;;BOPOMOFO LETTER ONN
+31A8;;;BOPOMOFO LETTER IR
+31A9;;;BOPOMOFO LETTER ANN
+31AA;;;BOPOMOFO LETTER INN
+31AB;;;BOPOMOFO LETTER UNN
+31AC;;;BOPOMOFO LETTER IM
+31AD;;;BOPOMOFO LETTER NGG
+31AE;;;BOPOMOFO LETTER AINN
+31AF;;;BOPOMOFO LETTER AUNN
+#
+31B0;;;BOPOMOFO LETTER AM
+31B1;;;BOPOMOFO LETTER OM
+31B2;;;BOPOMOFO LETTER ONG
+31B3;;;BOPOMOFO LETTER INNN
+31B4;;;BOPOMOFO FINAL LETTER P
+31B5;;;BOPOMOFO FINAL LETTER T
+31B6;;;BOPOMOFO FINAL LETTER K
+31B7;;;BOPOMOFO FINAL LETTER H
+#
+31C0;;;CJK STROKE T
+31C1;;;CJK STROKE WG
+31C2;;;CJK STROKE XG
+31C3;;;CJK STROKE BXG
+31C4;;;CJK STROKE SW
+31C5;;;CJK STROKE HZZ
+31C6;;;CJK STROKE HZG
+31C7;;;CJK STROKE HP
+31C8;;;CJK STROKE HZWG
+31C9;;;CJK STROKE SZWG
+31CA;;;CJK STROKE HZT
+31CB;;;CJK STROKE HZZP
+31CC;;;CJK STROKE HPWG
+31CD;;;CJK STROKE HZW
+31CE;;;CJK STROKE HZZZ
+31CF;;;CJK STROKE N
+#
+# Katakana Phonetic Extensions
+#
+31F0;;;KATAKANA LETTER SMALL KU
+31F1;;;KATAKANA LETTER SMALL SI
+31F2;;;KATAKANA LETTER SMALL SU
+31F3;;;KATAKANA LETTER SMALL TO
+31F4;;;KATAKANA LETTER SMALL NU
+31F5;;;KATAKANA LETTER SMALL HA
+31F6;;;KATAKANA LETTER SMALL HI
+31F7;;;KATAKANA LETTER SMALL HU
+31F8;;;KATAKANA LETTER SMALL HE
+31F9;;;KATAKANA LETTER SMALL HO
+31FA;;;KATAKANA LETTER SMALL MU
+31FB;;;KATAKANA LETTER SMALL RA
+31FC;;;KATAKANA LETTER SMALL RI
+31FD;;;KATAKANA LETTER SMALL RU
+31FE;;;KATAKANA LETTER SMALL RE
+31FF;;;KATAKANA LETTER SMALL RO
+#
+# Enclosed CJK letters and Months
+#
+3200;;;PARENTHESIZED HANGUL KIYEOK
+3201;;;PARENTHESIZED HANGUL NIEUN
+3202;;;PARENTHESIZED HANGUL TIKEUT
+3203;;;PARENTHESIZED HANGUL RIEUL
+3204;;;PARENTHESIZED HANGUL MIEUM
+3205;;;PARENTHESIZED HANGUL PIEUP
+3206;;;PARENTHESIZED HANGUL SIOS
+3207;;;PARENTHESIZED HANGUL IEUNG
+3208;;;PARENTHESIZED HANGUL CIEUC
+3209;;;PARENTHESIZED HANGUL CHIEUCH
+320A;;;PARENTHESIZED HANGUL KHIEUKH
+320B;;;PARENTHESIZED HANGUL THIEUTH
+320C;;;PARENTHESIZED HANGUL PHIEUPH
+320D;;;PARENTHESIZED HANGUL HIEUH
+320E;;;PARENTHESIZED HANGUL KIYEOK A
+320F;;;PARENTHESIZED HANGUL NIEUN A
+#
+3210;;;PARENTHESIZED HANGUL TIKEUT A
+3211;;;PARENTHESIZED HANGUL RIEUL A
+3212;;;PARENTHESIZED HANGUL MIEUM A
+3213;;;PARENTHESIZED HANGUL PIEUP A
+3214;;;PARENTHESIZED HANGUL SIOS A
+3215;;;PARENTHESIZED HANGUL IEUNG A
+3216;;;PARENTHESIZED HANGUL CIEUC A
+3217;;;PARENTHESIZED HANGUL CHIEUCH A
+3218;;;PARENTHESIZED HANGUL KHIEUKH A
+3219;;;PARENTHESIZED HANGUL THIEUTH A
+321A;;;PARENTHESIZED HANGUL PHIEUPH A
+321B;;;PARENTHESIZED HANGUL HIEUH A
+321C;;;PARENTHESIZED HANGUL CIEUC U
+321D;;;PARENTHESIZED KOREAN CHARACTER OJEON
+321E;;;PARENTHESIZED KOREAN CHARACTER O HU
+#
+3220;;;PARENTHESIZED IDEOGRAPH ONE
+3221;;;PARENTHESIZED IDEOGRAPH TWO
+3222;;;PARENTHESIZED IDEOGRAPH THREE
+3223;;;PARENTHESIZED IDEOGRAPH FOUR
+3224;;;PARENTHESIZED IDEOGRAPH FIVE
+3225;;;PARENTHESIZED IDEOGRAPH SIX
+3226;;;PARENTHESIZED IDEOGRAPH SEVEN
+3227;;;PARENTHESIZED IDEOGRAPH EIGHT
+3228;;;PARENTHESIZED IDEOGRAPH NINE
+3229;;;PARENTHESIZED IDEOGRAPH TEN
+322A;;;PARENTHESIZED IDEOGRAPH MOON
+322B;;;PARENTHESIZED IDEOGRAPH FIRE
+322C;;;PARENTHESIZED IDEOGRAPH WATER
+322D;;;PARENTHESIZED IDEOGRAPH WOOD
+322E;;;PARENTHESIZED IDEOGRAPH METAL
+322F;;;PARENTHESIZED IDEOGRAPH EARTH
+#
+3230;;;PARENTHESIZED IDEOGRAPH SUN
+3231;;;PARENTHESIZED IDEOGRAPH STOCK
+3232;;;PARENTHESIZED IDEOGRAPH HAVE
+3233;;;PARENTHESIZED IDEOGRAPH SOCIETY
+3234;;;PARENTHESIZED IDEOGRAPH NAME
+3235;;;PARENTHESIZED IDEOGRAPH SPECIAL
+3236;;;PARENTHESIZED IDEOGRAPH FINANCIAL
+3237;;;PARENTHESIZED IDEOGRAPH CONGRATULATION
+3238;;;PARENTHESIZED IDEOGRAPH LABOR
+3239;;;PARENTHESIZED IDEOGRAPH REPRESENT
+323A;;;PARENTHESIZED IDEOGRAPH CALL
+323B;;;PARENTHESIZED IDEOGRAPH STUDY
+323C;;;PARENTHESIZED IDEOGRAPH SUPERVISE
+323D;;;PARENTHESIZED IDEOGRAPH ENTERPRISE
+323E;;;PARENTHESIZED IDEOGRAPH RESOURCE
+323F;;;PARENTHESIZED IDEOGRAPH ALLIANCE
+#
+3240;;;PARENTHESIZED IDEOGRAPH FESTIVAL
+3241;;;PARENTHESIZED IDEOGRAPH REST
+3242;;;PARENTHESIZED IDEOGRAPH SELF
+3243;;;PARENTHESIZED IDEOGRAPH REACH
+#
+3250;;;PARTNERSHIP SIGN
+3251;;;CIRCLED NUMBER TWENTY ONE
+3252;;;CIRCLED NUMBER TWENTY TWO
+3253;;;CIRCLED NUMBER TWENTY THREE
+3254;;;CIRCLED NUMBER TWENTY FOUR
+3255;;;CIRCLED NUMBER TWENTY FIVE
+3256;;;CIRCLED NUMBER TWENTY SIX
+3257;;;CIRCLED NUMBER TWENTY SEVEN
+3258;;;CIRCLED NUMBER TWENTY EIGHT
+3259;;;CIRCLED NUMBER TWENTY NINE
+325A;;;CIRCLED NUMBER THIRTY
+325B;;;CIRCLED NUMBER THIRTY ONE
+325C;;;CIRCLED NUMBER THIRTY TWO
+325D;;;CIRCLED NUMBER THIRTY THREE
+325E;;;CIRCLED NUMBER THIRTY FOUR
+325F;;;CIRCLED NUMBER THIRTY FIVE
+#
+3260;;;CIRCLED HANGUL KIYEOK
+3261;;;CIRCLED HANGUL NIEUN
+3262;;;CIRCLED HANGUL TIKEUT
+3263;;;CIRCLED HANGUL RIEUL
+3264;;;CIRCLED HANGUL MIEUM
+3265;;;CIRCLED HANGUL PIEUP
+3266;;;CIRCLED HANGUL SIOS
+3267;;;CIRCLED HANGUL IEUNG
+3268;;;CIRCLED HANGUL CIEUC
+3269;;;CIRCLED HANGUL CHIEUCH
+326A;;;CIRCLED HANGUL KHIEUKH
+326B;;;CIRCLED HANGUL THIEUTH
+326C;;;CIRCLED HANGUL PHIEUPH
+326D;;;CIRCLED HANGUL HIEUH
+326E;;;CIRCLED HANGUL KIYEOK A
+326F;;;CIRCLED HANGUL NIEUN A
+#
+3270;;;CIRCLED HANGUL TIKEUT A
+3271;;;CIRCLED HANGUL RIEUL A
+3272;;;CIRCLED HANGUL MIEUM A
+3273;;;CIRCLED HANGUL PIEUP A
+3274;;;CIRCLED HANGUL SIOS A
+3275;;;CIRCLED HANGUL IEUNG A
+3276;;;CIRCLED HANGUL CIEUC A
+3277;;;CIRCLED HANGUL CHIEUCH A
+3278;;;CIRCLED HANGUL KHIEUKH A
+3279;;;CIRCLED HANGUL THIEUTH A
+327A;;;CIRCLED HANGUL PHIEUPH A
+327B;;;CIRCLED HANGUL HIEUH A
+327C;;;CIRCLED KOREAN CHARACTER CHAMKO
+327D;;;CIRCLED KOREAN CHARACTER JUEUI
+327E;;;CIRCLED HANGUL IEUNG U
+327F;;;KOREAN STANDARD SYMBOL
+#
+3280;;;CIRCLED IDEOGRAPH ONE
+3281;;;CIRCLED IDEOGRAPH TWO
+3282;;;CIRCLED IDEOGRAPH THREE
+3283;;;CIRCLED IDEOGRAPH FOUR
+3284;;;CIRCLED IDEOGRAPH FIVE
+3285;;;CIRCLED IDEOGRAPH SIX
+3286;;;CIRCLED IDEOGRAPH SEVEN
+3287;;;CIRCLED IDEOGRAPH EIGHT
+3288;;;CIRCLED IDEOGRAPH NINE
+3289;;;CIRCLED IDEOGRAPH TEN
+328A;;;CIRCLED IDEOGRAPH MOON
+328B;;;CIRCLED IDEOGRAPH FIRE
+328C;;;CIRCLED IDEOGRAPH WATER
+328D;;;CIRCLED IDEOGRAPH WOOD
+328E;;;CIRCLED IDEOGRAPH METAL
+328F;;;CIRCLED IDEOGRAPH EARTH
+#
+3290;;;CIRCLED IDEOGRAPH SUN
+3291;;;CIRCLED IDEOGRAPH STOCK
+3292;;;CIRCLED IDEOGRAPH HAVE
+3293;;;CIRCLED IDEOGRAPH SOCIETY
+3294;;;CIRCLED IDEOGRAPH NAME
+3295;;;CIRCLED IDEOGRAPH SPECIAL
+3296;;;CIRCLED IDEOGRAPH FINANCIAL
+3297;;;CIRCLED IDEOGRAPH CONGRATULATION
+3298;;;CIRCLED IDEOGRAPH LABOR
+3299;;;CIRCLED IDEOGRAPH SECRET
+329A;;;CIRCLED IDEOGRAPH MALE
+329B;;;CIRCLED IDEOGRAPH FEMALE
+329C;;;CIRCLED IDEOGRAPH SUITABLE
+329D;;;CIRCLED IDEOGRAPH EXCELLENT
+329E;;;CIRCLED IDEOGRAPH PRINT
+329F;;;CIRCLED IDEOGRAPH ATTENTION
+#
+32A0;;;CIRCLED IDEOGRAPH ITEM
+32A1;;;CIRCLED IDEOGRAPH REST
+32A2;;;CIRCLED IDEOGRAPH COPY
+32A3;;;CIRCLED IDEOGRAPH CORRECT
+32A4;;;CIRCLED IDEOGRAPH HIGH
+32A5;;;CIRCLED IDEOGRAPH CENTRE
+32A6;;;CIRCLED IDEOGRAPH LOW
+32A7;;;CIRCLED IDEOGRAPH LEFT
+32A8;;;CIRCLED IDEOGRAPH RIGHT
+32A9;;;CIRCLED IDEOGRAPH MEDICINE
+32AA;;;CIRCLED IDEOGRAPH RELIGION
+32AB;;;CIRCLED IDEOGRAPH STUDY
+32AC;;;CIRCLED IDEOGRAPH SUPERVISE
+32AD;;;CIRCLED IDEOGRAPH ENTERPRISE
+32AE;;;CIRCLED IDEOGRAPH RESOURCE
+32AF;;;CIRCLED IDEOGRAPH ALLIANCE
+#
+32B0;;;CIRCLED IDEOGRAPH NIGHT
+32B1;;;CIRCLED NUMBER THIRTY SIX
+32B2;;;CIRCLED NUMBER THIRTY SEVEN
+32B3;;;CIRCLED NUMBER THIRTY EIGHT
+32B4;;;CIRCLED NUMBER THIRTY NINE
+32B5;;;CIRCLED NUMBER FORTY
+32B6;;;CIRCLED NUMBER FORTY ONE
+32B7;;;CIRCLED NUMBER FORTY TWO
+32B8;;;CIRCLED NUMBER FORTY THREE
+32B9;;;CIRCLED NUMBER FORTY FOUR
+32BA;;;CIRCLED NUMBER FORTY FIVE
+32BB;;;CIRCLED NUMBER FORTY SIX
+32BC;;;CIRCLED NUMBER FORTY SEVEN
+32BD;;;CIRCLED NUMBER FORTY EIGHT
+32BE;;;CIRCLED NUMBER FORTY NINE
+32BF;;;CIRCLED NUMBER FIFTY
+#
+32C0;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
+32C1;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
+32C2;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
+32C3;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
+32C4;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
+32C5;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
+32C6;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
+32C7;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
+32C8;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
+32C9;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
+32CA;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
+32CB;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
+32CC;;;SQUARE HG
+32CD;;;SQUARE ERG
+32CE;;;SQUARE EV
+32CF;;;LIMITED LIABILITY SIGN
+#
+32D0;;;CIRCLED KATAKANA A
+32D1;;;CIRCLED KATAKANA I
+32D2;;;CIRCLED KATAKANA U
+32D3;;;CIRCLED KATAKANA E
+32D4;;;CIRCLED KATAKANA O
+32D5;;;CIRCLED KATAKANA KA
+32D6;;;CIRCLED KATAKANA KI
+32D7;;;CIRCLED KATAKANA KU
+32D8;;;CIRCLED KATAKANA KE
+32D9;;;CIRCLED KATAKANA KO
+32DA;;;CIRCLED KATAKANA SA
+32DB;;;CIRCLED KATAKANA SI
+32DC;;;CIRCLED KATAKANA SU
+32DD;;;CIRCLED KATAKANA SE
+32DE;;;CIRCLED KATAKANA SO
+32DF;;;CIRCLED KATAKANA TA
+#
+32E0;;;CIRCLED KATAKANA TI
+32E1;;;CIRCLED KATAKANA TU
+32E2;;;CIRCLED KATAKANA TE
+32E3;;;CIRCLED KATAKANA TO
+32E4;;;CIRCLED KATAKANA NA
+32E5;;;CIRCLED KATAKANA NI
+32E6;;;CIRCLED KATAKANA NU
+32E7;;;CIRCLED KATAKANA NE
+32E8;;;CIRCLED KATAKANA NO
+32E9;;;CIRCLED KATAKANA HA
+32EA;;;CIRCLED KATAKANA HI
+32EB;;;CIRCLED KATAKANA HU
+32EC;;;CIRCLED KATAKANA HE
+32ED;;;CIRCLED KATAKANA HO
+32EE;;;CIRCLED KATAKANA MA
+32EF;;;CIRCLED KATAKANA MI
+#
+32F0;;;CIRCLED KATAKANA MU
+32F1;;;CIRCLED KATAKANA ME
+32F2;;;CIRCLED KATAKANA MO
+32F3;;;CIRCLED KATAKANA YA
+32F4;;;CIRCLED KATAKANA YU
+32F5;;;CIRCLED KATAKANA YO
+32F6;;;CIRCLED KATAKANA RA
+32F7;;;CIRCLED KATAKANA RI
+32F8;;;CIRCLED KATAKANA RU
+32F9;;;CIRCLED KATAKANA RE
+32FA;;;CIRCLED KATAKANA RO
+32FB;;;CIRCLED KATAKANA WA
+32FC;;;CIRCLED KATAKANA WI
+32FD;;;CIRCLED KATAKANA WE
+32FE;;;CIRCLED KATAKANA WO
+#
+# CJK Compatibility
+#
+3300;;;SQUARE APAATO
+3301;;;SQUARE ARUHUA
+3302;;;SQUARE ANPEA
+3303;;;SQUARE AARU
+3304;;;SQUARE ININGU
+3305;;;SQUARE INTI
+3306;;;SQUARE UON
+3307;;;SQUARE ESUKUUDO
+3308;;;SQUARE EEKAA
+3309;;;SQUARE ONSU
+330A;;;SQUARE OOMU
+330B;;;SQUARE KAIRI
+330C;;;SQUARE KARATTO
+330D;;;SQUARE KARORII
+330E;;;SQUARE GARON
+330F;;;SQUARE GANMA
+#
+3310;;;SQUARE GIGA
+3311;;;SQUARE GINII
+3312;;;SQUARE KYURII
+3313;;;SQUARE GIRUDAA
+3314;;;SQUARE KIRO
+3315;;;SQUARE KIROGURAMU
+3316;;;SQUARE KIROMEETORU
+3317;;;SQUARE KIROWATTO
+3318;;;SQUARE GURAMU
+3319;;;SQUARE GURAMUTON
+331A;;;SQUARE KURUZEIRO
+331B;;;SQUARE KUROONE
+331C;;;SQUARE KEESU
+331D;;;SQUARE KORUNA
+331E;;;SQUARE KOOPO
+331F;;;SQUARE SAIKURU
+#
+3320;;;SQUARE SANTIIMU
+3321;;;SQUARE SIRINGU
+3322;;;SQUARE SENTI
+3323;;;SQUARE SENTO
+3324;;;SQUARE DAASU
+3325;;;SQUARE DESI
+3326;;;SQUARE DORU
+3327;;;SQUARE TON
+3328;;;SQUARE NANO
+3329;;;SQUARE NOTTO
+332A;;;SQUARE HAITU
+332B;;;SQUARE PAASENTO
+332C;;;SQUARE PAATU
+332D;;;SQUARE BAARERU
+332E;;;SQUARE PIASUTORU
+332F;;;SQUARE PIKURU
+#
+3330;;;SQUARE PIKO
+3331;;;SQUARE BIRU
+3332;;;SQUARE HUARADDO
+3333;;;SQUARE HUIITO
+3334;;;SQUARE BUSSYERU
+3335;;;SQUARE HURAN
+3336;;;SQUARE HEKUTAARU
+3337;;;SQUARE PESO
+3338;;;SQUARE PENIHI
+3339;;;SQUARE HERUTU
+333A;;;SQUARE PENSU
+333B;;;SQUARE PEEZI
+333C;;;SQUARE BEETA
+333D;;;SQUARE POINTO
+333E;;;SQUARE BORUTO
+333F;;;SQUARE HON
+#
+3340;;;SQUARE PONDO
+3341;;;SQUARE HOORU
+3342;;;SQUARE HOON
+3343;;;SQUARE MAIKURO
+3344;;;SQUARE MAIRU
+3345;;;SQUARE MAHHA
+3346;;;SQUARE MARUKU
+3347;;;SQUARE MANSYON
+3348;;;SQUARE MIKURON
+3349;;;SQUARE MIRI
+334A;;;SQUARE MIRIBAARU
+334B;;;SQUARE MEGA
+334C;;;SQUARE MEGATON
+334D;;;SQUARE MEETORU
+334E;;;SQUARE YAADO
+334F;;;SQUARE YAARU
+#
+3350;;;SQUARE YUAN
+3351;;;SQUARE RITTORU
+3352;;;SQUARE RIRA
+3353;;;SQUARE RUPII
+3354;;;SQUARE RUUBURU
+3355;;;SQUARE REMU
+3356;;;SQUARE RENTOGEN
+3357;;;SQUARE WATTO
+3358;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
+3359;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
+335A;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
+335B;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
+335C;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
+335D;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
+335E;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
+335F;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
+#
+3360;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
+3361;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
+3362;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
+3363;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
+3364;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
+3365;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
+3366;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
+3367;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
+3368;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
+3369;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
+336A;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
+336B;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
+336C;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
+336D;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
+336E;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
+336F;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
+#
+3370;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
+3371;;;SQUARE HPA
+3372;;;SQUARE DA
+3373;;;SQUARE AU
+3374;;;SQUARE BAR
+3375;;;SQUARE OV
+3376;;;SQUARE PC
+3377;;;SQUARE DM
+3378;;;SQUARE DM SQUARED
+3379;;;SQUARE DM CUBED
+337A;;;SQUARE IU
+337B;;;SQUARE ERA NAME HEISEI
+337C;;;SQUARE ERA NAME SYOUWA
+337D;;;SQUARE ERA NAME TAISYOU
+337E;;;SQUARE ERA NAME MEIZI
+337F;;;SQUARE CORPORATION
+#
+3380;;;SQUARE PA AMPS
+3381;;;SQUARE NA
+3382;;;SQUARE MU A
+3383;;;SQUARE MA
+3384;;;SQUARE KA
+3385;;;SQUARE KB
+3386;;;SQUARE MB
+3387;;;SQUARE GB
+3388;;;SQUARE CAL
+3389;;;SQUARE KCAL
+338A;;;SQUARE PF
+338B;;;SQUARE NF
+338C;;;SQUARE MU F
+338D;;;SQUARE MU G
+338E;;;SQUARE MG
+338F;;;SQUARE KG
+#
+3390;;;SQUARE HZ
+3391;;;SQUARE KHZ
+3392;;;SQUARE MHZ
+3393;;;SQUARE GHZ
+3394;;;SQUARE THZ
+3395;;;SQUARE MU L
+3396;;;SQUARE ML
+3397;;;SQUARE DL
+3398;;;SQUARE KL
+3399;;;SQUARE FM
+339A;;;SQUARE NM
+339B;;;SQUARE MU M
+339C;;;SQUARE MM
+339D;;;SQUARE CM
+339E;;;SQUARE KM
+339F;;;SQUARE MM SQUARED
+#
+33A0;;;SQUARE CM SQUARED
+33A1;;;SQUARE M SQUARED
+33A2;;;SQUARE KM SQUARED
+33A3;;;SQUARE MM CUBED
+33A4;;;SQUARE CM CUBED
+33A5;;;SQUARE M CUBED
+33A6;;;SQUARE KM CUBED
+33A7;;;SQUARE M OVER S
+33A8;;;SQUARE M OVER S SQUARED
+33A9;;;SQUARE PA
+33AA;;;SQUARE KPA
+33AB;;;SQUARE MPA
+33AC;;;SQUARE GPA
+33AD;;;SQUARE RAD
+33AE;;;SQUARE RAD OVER S
+33AF;;;SQUARE RAD OVER S SQUARED
+#
+33B0;;;SQUARE PS
+33B1;;;SQUARE NS
+33B2;;;SQUARE MU S
+33B3;;;SQUARE MS
+33B4;;;SQUARE PV
+33B5;;;SQUARE NV
+33B6;;;SQUARE MU V
+33B7;;;SQUARE MV
+33B8;;;SQUARE KV
+33B9;;;SQUARE MV MEGA
+33BA;;;SQUARE PW
+33BB;;;SQUARE NW
+33BC;;;SQUARE MU W
+33BD;;;SQUARE MW
+33BE;;;SQUARE KW
+33BF;;;SQUARE MW MEGA
+#
+33C0;;;SQUARE K OHM
+33C1;;;SQUARE M OHM
+33C2;;;SQUARE AM
+33C3;;;SQUARE BQ
+33C4;;;SQUARE CC
+33C5;;;SQUARE CD
+33C6;;;SQUARE C OVER KG
+33C7;;;SQUARE CO
+33C8;;;SQUARE DB
+33C9;;;SQUARE GY
+33CA;;;SQUARE HA
+33CB;;;SQUARE HP
+33CC;;;SQUARE IN
+33CD;;;SQUARE KK
+33CE;;;SQUARE KM CAPITAL
+33CF;;;SQUARE KT
+#
+33D0;;;SQUARE LM
+33D1;;;SQUARE LN
+33D2;;;SQUARE LOG
+33D3;;;SQUARE LX
+33D4;;;SQUARE MB SMALL
+33D5;;;SQUARE MIL
+33D6;;;SQUARE MOL
+33D7;;;SQUARE PH
+33D8;;;SQUARE PM
+33D9;;;SQUARE PPM
+33DA;;;SQUARE PR
+33DB;;;SQUARE SR
+33DC;;;SQUARE SV
+33DD;;;SQUARE WB
+33DE;;;SQUARE V OVER M
+33DF;;;SQUARE A OVER M
+#
+33E0;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
+33E1;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
+33E2;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
+33E3;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
+33E4;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
+33E5;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
+33E6;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
+33E7;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
+33E8;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
+33E9;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
+33EA;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
+33EB;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
+33EC;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
+33ED;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
+33EE;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
+33EF;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
+#
+33F0;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
+33F1;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
+33F2;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
+33F3;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
+33F4;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
+33F5;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
+33F6;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
+33F7;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
+33F8;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
+33F9;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
+33FA;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
+33FB;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
+33FC;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
+33FD;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
+33FE;;;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
+33FF;;;SQUARE GAL
+#
+# CJK Unified Ideographs Extension A
+#
+3400;;;<CJK Ideograph Extension A, First>
+4DB5;;;<CJK Ideograph Extension A, Last>
+#
+# Yijing Hexagram Symbols
+#
+4DC0;;;HEXAGRAM FOR THE CREATIVE HEAVEN
+4DC1;;;HEXAGRAM FOR THE RECEPTIVE EARTH
+4DC2;;;HEXAGRAM FOR DIFFICULTY AT THE BEGINNING
+4DC3;;;HEXAGRAM FOR YOUTHFUL FOLLY
+4DC4;;;HEXAGRAM FOR WAITING
+4DC5;;;HEXAGRAM FOR CONFLICT
+4DC6;;;HEXAGRAM FOR THE ARMY
+4DC7;;;HEXAGRAM FOR HOLDING TOGETHER
+4DC8;;;HEXAGRAM FOR SMALL TAMING
+4DC9;;;HEXAGRAM FOR TREADING
+4DCA;;;HEXAGRAM FOR PEACE
+4DCB;;;HEXAGRAM FOR STANDSTILL
+4DCC;;;HEXAGRAM FOR FELLOWSHIP
+4DCD;;;HEXAGRAM FOR GREAT POSSESSION
+4DCE;;;HEXAGRAM FOR MODESTY
+4DCF;;;HEXAGRAM FOR ENTHUSIASM
+#
+4DD0;;;HEXAGRAM FOR FOLLOWING
+4DD1;;;HEXAGRAM FOR WORK ON THE DECAYED
+4DD2;;;HEXAGRAM FOR APPROACH
+4DD3;;;HEXAGRAM FOR CONTEMPLATION
+4DD4;;;HEXAGRAM FOR BITING THROUGH
+4DD5;;;HEXAGRAM FOR GRACE
+4DD6;;;HEXAGRAM FOR SPLITTING APART
+4DD7;;;HEXAGRAM FOR RETURN
+4DD8;;;HEXAGRAM FOR INNOCENCE
+4DD9;;;HEXAGRAM FOR GREAT TAMING
+4DDA;;;HEXAGRAM FOR MOUTH CORNERS
+4DDB;;;HEXAGRAM FOR GREAT PREPONDERANCE
+4DDC;;;HEXAGRAM FOR THE ABYSMAL WATER
+4DDD;;;HEXAGRAM FOR THE CLINGING FIRE
+4DDE;;;HEXAGRAM FOR INFLUENCE
+4DDF;;;HEXAGRAM FOR DURATION
+#
+4DE0;;;HEXAGRAM FOR RETREAT
+4DE1;;;HEXAGRAM FOR GREAT POWER
+4DE2;;;HEXAGRAM FOR PROGRESS
+4DE3;;;HEXAGRAM FOR DARKENING OF THE LIGHT
+4DE4;;;HEXAGRAM FOR THE FAMILY
+4DE5;;;HEXAGRAM FOR OPPOSITION
+4DE6;;;HEXAGRAM FOR OBSTRUCTION
+4DE7;;;HEXAGRAM FOR DELIVERANCE
+4DE8;;;HEXAGRAM FOR DECREASE
+4DE9;;;HEXAGRAM FOR INCREASE
+4DEA;;;HEXAGRAM FOR BREAKTHROUGH
+4DEB;;;HEXAGRAM FOR COMING TO MEET
+4DEC;;;HEXAGRAM FOR GATHERING TOGETHER
+4DED;;;HEXAGRAM FOR PUSHING UPWARD
+4DEE;;;HEXAGRAM FOR OPPRESSION
+4DEF;;;HEXAGRAM FOR THE WELL
+#
+4DF0;;;HEXAGRAM FOR REVOLUTION
+4DF1;;;HEXAGRAM FOR THE CAULDRON
+4DF2;;;HEXAGRAM FOR THE AROUSING THUNDER
+4DF3;;;HEXAGRAM FOR THE KEEPING STILL MOUNTAIN
+4DF4;;;HEXAGRAM FOR DEVELOPMENT
+4DF5;;;HEXAGRAM FOR THE MARRYING MAIDEN
+4DF6;;;HEXAGRAM FOR ABUNDANCE
+4DF7;;;HEXAGRAM FOR THE WANDERER
+4DF8;;;HEXAGRAM FOR THE GENTLE WIND
+4DF9;;;HEXAGRAM FOR THE JOYOUS LAKE
+4DFA;;;HEXAGRAM FOR DISPERSION
+4DFB;;;HEXAGRAM FOR LIMITATION
+4DFC;;;HEXAGRAM FOR INNER TRUTH
+4DFD;;;HEXAGRAM FOR SMALL PREPONDERANCE
+4DFE;;;HEXAGRAM FOR AFTER COMPLETION
+4DFF;;;HEXAGRAM FOR BEFORE COMPLETION
+#
+# CJK Unified Ideographs
+#
+4E00;;;<CJK Ideograph, First>
+9FBB;;;<CJK Ideograph, Last>
+#
+# Yi Syllables
+#
+A000;;;YI SYLLABLE IT
+A001;;;YI SYLLABLE IX
+A002;;;YI SYLLABLE I
+A003;;;YI SYLLABLE IP
+A004;;;YI SYLLABLE IET
+A005;;;YI SYLLABLE IEX
+A006;;;YI SYLLABLE IE
+A007;;;YI SYLLABLE IEP
+A008;;;YI SYLLABLE AT
+A009;;;YI SYLLABLE AX
+A00A;;;YI SYLLABLE A
+A00B;;;YI SYLLABLE AP
+A00C;;;YI SYLLABLE UOX
+A00D;;;YI SYLLABLE UO
+A00E;;;YI SYLLABLE UOP
+A00F;;;YI SYLLABLE OT
+#
+A010;;;YI SYLLABLE OX
+A011;;;YI SYLLABLE O
+A012;;;YI SYLLABLE OP
+A013;;;YI SYLLABLE EX
+A014;;;YI SYLLABLE E
+A015;;;YI SYLLABLE WU
+A016;;;YI SYLLABLE BIT
+A017;;;YI SYLLABLE BIX
+A018;;;YI SYLLABLE BI
+A019;;;YI SYLLABLE BIP
+A01A;;;YI SYLLABLE BIET
+A01B;;;YI SYLLABLE BIEX
+A01C;;;YI SYLLABLE BIE
+A01D;;;YI SYLLABLE BIEP
+A01E;;;YI SYLLABLE BAT
+A01F;;;YI SYLLABLE BAX
+#
+A020;;;YI SYLLABLE BA
+A021;;;YI SYLLABLE BAP
+A022;;;YI SYLLABLE BUOX
+A023;;;YI SYLLABLE BUO
+A024;;;YI SYLLABLE BUOP
+A025;;;YI SYLLABLE BOT
+A026;;;YI SYLLABLE BOX
+A027;;;YI SYLLABLE BO
+A028;;;YI SYLLABLE BOP
+A029;;;YI SYLLABLE BEX
+A02A;;;YI SYLLABLE BE
+A02B;;;YI SYLLABLE BEP
+A02C;;;YI SYLLABLE BUT
+A02D;;;YI SYLLABLE BUX
+A02E;;;YI SYLLABLE BU
+A02F;;;YI SYLLABLE BUP
+#
+A030;;;YI SYLLABLE BURX
+A031;;;YI SYLLABLE BUR
+A032;;;YI SYLLABLE BYT
+A033;;;YI SYLLABLE BYX
+A034;;;YI SYLLABLE BY
+A035;;;YI SYLLABLE BYP
+A036;;;YI SYLLABLE BYRX
+A037;;;YI SYLLABLE BYR
+A038;;;YI SYLLABLE PIT
+A039;;;YI SYLLABLE PIX
+A03A;;;YI SYLLABLE PI
+A03B;;;YI SYLLABLE PIP
+A03C;;;YI SYLLABLE PIEX
+A03D;;;YI SYLLABLE PIE
+A03E;;;YI SYLLABLE PIEP
+A03F;;;YI SYLLABLE PAT
+#
+A040;;;YI SYLLABLE PAX
+A041;;;YI SYLLABLE PA
+A042;;;YI SYLLABLE PAP
+A043;;;YI SYLLABLE PUOX
+A044;;;YI SYLLABLE PUO
+A045;;;YI SYLLABLE PUOP
+A046;;;YI SYLLABLE POT
+A047;;;YI SYLLABLE POX
+A048;;;YI SYLLABLE PO
+A049;;;YI SYLLABLE POP
+A04A;;;YI SYLLABLE PUT
+A04B;;;YI SYLLABLE PUX
+A04C;;;YI SYLLABLE PU
+A04D;;;YI SYLLABLE PUP
+A04E;;;YI SYLLABLE PURX
+A04F;;;YI SYLLABLE PUR
+#
+A050;;;YI SYLLABLE PYT
+A051;;;YI SYLLABLE PYX
+A052;;;YI SYLLABLE PY
+A053;;;YI SYLLABLE PYP
+A054;;;YI SYLLABLE PYRX
+A055;;;YI SYLLABLE PYR
+A056;;;YI SYLLABLE BBIT
+A057;;;YI SYLLABLE BBIX
+A058;;;YI SYLLABLE BBI
+A059;;;YI SYLLABLE BBIP
+A05A;;;YI SYLLABLE BBIET
+A05B;;;YI SYLLABLE BBIEX
+A05C;;;YI SYLLABLE BBIE
+A05D;;;YI SYLLABLE BBIEP
+A05E;;;YI SYLLABLE BBAT
+A05F;;;YI SYLLABLE BBAX
+#
+A060;;;YI SYLLABLE BBA
+A061;;;YI SYLLABLE BBAP
+A062;;;YI SYLLABLE BBUOX
+A063;;;YI SYLLABLE BBUO
+A064;;;YI SYLLABLE BBUOP
+A065;;;YI SYLLABLE BBOT
+A066;;;YI SYLLABLE BBOX
+A067;;;YI SYLLABLE BBO
+A068;;;YI SYLLABLE BBOP
+A069;;;YI SYLLABLE BBEX
+A06A;;;YI SYLLABLE BBE
+A06B;;;YI SYLLABLE BBEP
+A06C;;;YI SYLLABLE BBUT
+A06D;;;YI SYLLABLE BBUX
+A06E;;;YI SYLLABLE BBU
+A06F;;;YI SYLLABLE BBUP
+#
+A070;;;YI SYLLABLE BBURX
+A071;;;YI SYLLABLE BBUR
+A072;;;YI SYLLABLE BBYT
+A073;;;YI SYLLABLE BBYX
+A074;;;YI SYLLABLE BBY
+A075;;;YI SYLLABLE BBYP
+A076;;;YI SYLLABLE NBIT
+A077;;;YI SYLLABLE NBIX
+A078;;;YI SYLLABLE NBI
+A079;;;YI SYLLABLE NBIP
+A07A;;;YI SYLLABLE NBIEX
+A07B;;;YI SYLLABLE NBIE
+A07C;;;YI SYLLABLE NBIEP
+A07D;;;YI SYLLABLE NBAT
+A07E;;;YI SYLLABLE NBAX
+A07F;;;YI SYLLABLE NBA
+#
+A080;;;YI SYLLABLE NBAP
+A081;;;YI SYLLABLE NBOT
+A082;;;YI SYLLABLE NBOX
+A083;;;YI SYLLABLE NBO
+A084;;;YI SYLLABLE NBOP
+A085;;;YI SYLLABLE NBUT
+A086;;;YI SYLLABLE NBUX
+A087;;;YI SYLLABLE NBU
+A088;;;YI SYLLABLE NBUP
+A089;;;YI SYLLABLE NBURX
+A08A;;;YI SYLLABLE NBUR
+A08B;;;YI SYLLABLE NBYT
+A08C;;;YI SYLLABLE NBYX
+A08D;;;YI SYLLABLE NBY
+A08E;;;YI SYLLABLE NBYP
+A08F;;;YI SYLLABLE NBYRX
+#
+A090;;;YI SYLLABLE NBYR
+A091;;;YI SYLLABLE HMIT
+A092;;;YI SYLLABLE HMIX
+A093;;;YI SYLLABLE HMI
+A094;;;YI SYLLABLE HMIP
+A095;;;YI SYLLABLE HMIEX
+A096;;;YI SYLLABLE HMIE
+A097;;;YI SYLLABLE HMIEP
+A098;;;YI SYLLABLE HMAT
+A099;;;YI SYLLABLE HMAX
+A09A;;;YI SYLLABLE HMA
+A09B;;;YI SYLLABLE HMAP
+A09C;;;YI SYLLABLE HMUOX
+A09D;;;YI SYLLABLE HMUO
+A09E;;;YI SYLLABLE HMUOP
+A09F;;;YI SYLLABLE HMOT
+#
+A0A0;;;YI SYLLABLE HMOX
+A0A1;;;YI SYLLABLE HMO
+A0A2;;;YI SYLLABLE HMOP
+A0A3;;;YI SYLLABLE HMUT
+A0A4;;;YI SYLLABLE HMUX
+A0A5;;;YI SYLLABLE HMU
+A0A6;;;YI SYLLABLE HMUP
+A0A7;;;YI SYLLABLE HMURX
+A0A8;;;YI SYLLABLE HMUR
+A0A9;;;YI SYLLABLE HMYX
+A0AA;;;YI SYLLABLE HMY
+A0AB;;;YI SYLLABLE HMYP
+A0AC;;;YI SYLLABLE HMYRX
+A0AD;;;YI SYLLABLE HMYR
+A0AE;;;YI SYLLABLE MIT
+A0AF;;;YI SYLLABLE MIX
+#
+A0B0;;;YI SYLLABLE MI
+A0B1;;;YI SYLLABLE MIP
+A0B2;;;YI SYLLABLE MIEX
+A0B3;;;YI SYLLABLE MIE
+A0B4;;;YI SYLLABLE MIEP
+A0B5;;;YI SYLLABLE MAT
+A0B6;;;YI SYLLABLE MAX
+A0B7;;;YI SYLLABLE MA
+A0B8;;;YI SYLLABLE MAP
+A0B9;;;YI SYLLABLE MUOT
+A0BA;;;YI SYLLABLE MUOX
+A0BB;;;YI SYLLABLE MUO
+A0BC;;;YI SYLLABLE MUOP
+A0BD;;;YI SYLLABLE MOT
+A0BE;;;YI SYLLABLE MOX
+A0BF;;;YI SYLLABLE MO
+#
+A0C0;;;YI SYLLABLE MOP
+A0C1;;;YI SYLLABLE MEX
+A0C2;;;YI SYLLABLE ME
+A0C3;;;YI SYLLABLE MUT
+A0C4;;;YI SYLLABLE MUX
+A0C5;;;YI SYLLABLE MU
+A0C6;;;YI SYLLABLE MUP
+A0C7;;;YI SYLLABLE MURX
+A0C8;;;YI SYLLABLE MUR
+A0C9;;;YI SYLLABLE MYT
+A0CA;;;YI SYLLABLE MYX
+A0CB;;;YI SYLLABLE MY
+A0CC;;;YI SYLLABLE MYP
+A0CD;;;YI SYLLABLE FIT
+A0CE;;;YI SYLLABLE FIX
+A0CF;;;YI SYLLABLE FI
+#
+A0D0;;;YI SYLLABLE FIP
+A0D1;;;YI SYLLABLE FAT
+A0D2;;;YI SYLLABLE FAX
+A0D3;;;YI SYLLABLE FA
+A0D4;;;YI SYLLABLE FAP
+A0D5;;;YI SYLLABLE FOX
+A0D6;;;YI SYLLABLE FO
+A0D7;;;YI SYLLABLE FOP
+A0D8;;;YI SYLLABLE FUT
+A0D9;;;YI SYLLABLE FUX
+A0DA;;;YI SYLLABLE FU
+A0DB;;;YI SYLLABLE FUP
+A0DC;;;YI SYLLABLE FURX
+A0DD;;;YI SYLLABLE FUR
+A0DE;;;YI SYLLABLE FYT
+A0DF;;;YI SYLLABLE FYX
+#
+A0E0;;;YI SYLLABLE FY
+A0E1;;;YI SYLLABLE FYP
+A0E2;;;YI SYLLABLE VIT
+A0E3;;;YI SYLLABLE VIX
+A0E4;;;YI SYLLABLE VI
+A0E5;;;YI SYLLABLE VIP
+A0E6;;;YI SYLLABLE VIET
+A0E7;;;YI SYLLABLE VIEX
+A0E8;;;YI SYLLABLE VIE
+A0E9;;;YI SYLLABLE VIEP
+A0EA;;;YI SYLLABLE VAT
+A0EB;;;YI SYLLABLE VAX
+A0EC;;;YI SYLLABLE VA
+A0ED;;;YI SYLLABLE VAP
+A0EE;;;YI SYLLABLE VOT
+A0EF;;;YI SYLLABLE VOX
+#
+A0F0;;;YI SYLLABLE VO
+A0F1;;;YI SYLLABLE VOP
+A0F2;;;YI SYLLABLE VEX
+A0F3;;;YI SYLLABLE VEP
+A0F4;;;YI SYLLABLE VUT
+A0F5;;;YI SYLLABLE VUX
+A0F6;;;YI SYLLABLE VU
+A0F7;;;YI SYLLABLE VUP
+A0F8;;;YI SYLLABLE VURX
+A0F9;;;YI SYLLABLE VUR
+A0FA;;;YI SYLLABLE VYT
+A0FB;;;YI SYLLABLE VYX
+A0FC;;;YI SYLLABLE VY
+A0FD;;;YI SYLLABLE VYP
+A0FE;;;YI SYLLABLE VYRX
+A0FF;;;YI SYLLABLE VYR
+#
+A100;;;YI SYLLABLE DIT
+A101;;;YI SYLLABLE DIX
+A102;;;YI SYLLABLE DI
+A103;;;YI SYLLABLE DIP
+A104;;;YI SYLLABLE DIEX
+A105;;;YI SYLLABLE DIE
+A106;;;YI SYLLABLE DIEP
+A107;;;YI SYLLABLE DAT
+A108;;;YI SYLLABLE DAX
+A109;;;YI SYLLABLE DA
+A10A;;;YI SYLLABLE DAP
+A10B;;;YI SYLLABLE DUOX
+A10C;;;YI SYLLABLE DUO
+A10D;;;YI SYLLABLE DOT
+A10E;;;YI SYLLABLE DOX
+A10F;;;YI SYLLABLE DO
+#
+A110;;;YI SYLLABLE DOP
+A111;;;YI SYLLABLE DEX
+A112;;;YI SYLLABLE DE
+A113;;;YI SYLLABLE DEP
+A114;;;YI SYLLABLE DUT
+A115;;;YI SYLLABLE DUX
+A116;;;YI SYLLABLE DU
+A117;;;YI SYLLABLE DUP
+A118;;;YI SYLLABLE DURX
+A119;;;YI SYLLABLE DUR
+A11A;;;YI SYLLABLE TIT
+A11B;;;YI SYLLABLE TIX
+A11C;;;YI SYLLABLE TI
+A11D;;;YI SYLLABLE TIP
+A11E;;;YI SYLLABLE TIEX
+A11F;;;YI SYLLABLE TIE
+#
+A120;;;YI SYLLABLE TIEP
+A121;;;YI SYLLABLE TAT
+A122;;;YI SYLLABLE TAX
+A123;;;YI SYLLABLE TA
+A124;;;YI SYLLABLE TAP
+A125;;;YI SYLLABLE TUOT
+A126;;;YI SYLLABLE TUOX
+A127;;;YI SYLLABLE TUO
+A128;;;YI SYLLABLE TUOP
+A129;;;YI SYLLABLE TOT
+A12A;;;YI SYLLABLE TOX
+A12B;;;YI SYLLABLE TO
+A12C;;;YI SYLLABLE TOP
+A12D;;;YI SYLLABLE TEX
+A12E;;;YI SYLLABLE TE
+A12F;;;YI SYLLABLE TEP
+#
+A130;;;YI SYLLABLE TUT
+A131;;;YI SYLLABLE TUX
+A132;;;YI SYLLABLE TU
+A133;;;YI SYLLABLE TUP
+A134;;;YI SYLLABLE TURX
+A135;;;YI SYLLABLE TUR
+A136;;;YI SYLLABLE DDIT
+A137;;;YI SYLLABLE DDIX
+A138;;;YI SYLLABLE DDI
+A139;;;YI SYLLABLE DDIP
+A13A;;;YI SYLLABLE DDIEX
+A13B;;;YI SYLLABLE DDIE
+A13C;;;YI SYLLABLE DDIEP
+A13D;;;YI SYLLABLE DDAT
+A13E;;;YI SYLLABLE DDAX
+A13F;;;YI SYLLABLE DDA
+#
+A140;;;YI SYLLABLE DDAP
+A141;;;YI SYLLABLE DDUOX
+A142;;;YI SYLLABLE DDUO
+A143;;;YI SYLLABLE DDUOP
+A144;;;YI SYLLABLE DDOT
+A145;;;YI SYLLABLE DDOX
+A146;;;YI SYLLABLE DDO
+A147;;;YI SYLLABLE DDOP
+A148;;;YI SYLLABLE DDEX
+A149;;;YI SYLLABLE DDE
+A14A;;;YI SYLLABLE DDEP
+A14B;;;YI SYLLABLE DDUT
+A14C;;;YI SYLLABLE DDUX
+A14D;;;YI SYLLABLE DDU
+A14E;;;YI SYLLABLE DDUP
+A14F;;;YI SYLLABLE DDURX
+#
+A150;;;YI SYLLABLE DDUR
+A151;;;YI SYLLABLE NDIT
+A152;;;YI SYLLABLE NDIX
+A153;;;YI SYLLABLE NDI
+A154;;;YI SYLLABLE NDIP
+A155;;;YI SYLLABLE NDIEX
+A156;;;YI SYLLABLE NDIE
+A157;;;YI SYLLABLE NDAT
+A158;;;YI SYLLABLE NDAX
+A159;;;YI SYLLABLE NDA
+A15A;;;YI SYLLABLE NDAP
+A15B;;;YI SYLLABLE NDOT
+A15C;;;YI SYLLABLE NDOX
+A15D;;;YI SYLLABLE NDO
+A15E;;;YI SYLLABLE NDOP
+A15F;;;YI SYLLABLE NDEX
+#
+A160;;;YI SYLLABLE NDE
+A161;;;YI SYLLABLE NDEP
+A162;;;YI SYLLABLE NDUT
+A163;;;YI SYLLABLE NDUX
+A164;;;YI SYLLABLE NDU
+A165;;;YI SYLLABLE NDUP
+A166;;;YI SYLLABLE NDURX
+A167;;;YI SYLLABLE NDUR
+A168;;;YI SYLLABLE HNIT
+A169;;;YI SYLLABLE HNIX
+A16A;;;YI SYLLABLE HNI
+A16B;;;YI SYLLABLE HNIP
+A16C;;;YI SYLLABLE HNIET
+A16D;;;YI SYLLABLE HNIEX
+A16E;;;YI SYLLABLE HNIE
+A16F;;;YI SYLLABLE HNIEP
+#
+A170;;;YI SYLLABLE HNAT
+A171;;;YI SYLLABLE HNAX
+A172;;;YI SYLLABLE HNA
+A173;;;YI SYLLABLE HNAP
+A174;;;YI SYLLABLE HNUOX
+A175;;;YI SYLLABLE HNUO
+A176;;;YI SYLLABLE HNOT
+A177;;;YI SYLLABLE HNOX
+A178;;;YI SYLLABLE HNOP
+A179;;;YI SYLLABLE HNEX
+A17A;;;YI SYLLABLE HNE
+A17B;;;YI SYLLABLE HNEP
+A17C;;;YI SYLLABLE HNUT
+A17D;;;YI SYLLABLE NIT
+A17E;;;YI SYLLABLE NIX
+A17F;;;YI SYLLABLE NI
+#
+A180;;;YI SYLLABLE NIP
+A181;;;YI SYLLABLE NIEX
+A182;;;YI SYLLABLE NIE
+A183;;;YI SYLLABLE NIEP
+A184;;;YI SYLLABLE NAX
+A185;;;YI SYLLABLE NA
+A186;;;YI SYLLABLE NAP
+A187;;;YI SYLLABLE NUOX
+A188;;;YI SYLLABLE NUO
+A189;;;YI SYLLABLE NUOP
+A18A;;;YI SYLLABLE NOT
+A18B;;;YI SYLLABLE NOX
+A18C;;;YI SYLLABLE NO
+A18D;;;YI SYLLABLE NOP
+A18E;;;YI SYLLABLE NEX
+A18F;;;YI SYLLABLE NE
+#
+A190;;;YI SYLLABLE NEP
+A191;;;YI SYLLABLE NUT
+A192;;;YI SYLLABLE NUX
+A193;;;YI SYLLABLE NU
+A194;;;YI SYLLABLE NUP
+A195;;;YI SYLLABLE NURX
+A196;;;YI SYLLABLE NUR
+A197;;;YI SYLLABLE HLIT
+A198;;;YI SYLLABLE HLIX
+A199;;;YI SYLLABLE HLI
+A19A;;;YI SYLLABLE HLIP
+A19B;;;YI SYLLABLE HLIEX
+A19C;;;YI SYLLABLE HLIE
+A19D;;;YI SYLLABLE HLIEP
+A19E;;;YI SYLLABLE HLAT
+A19F;;;YI SYLLABLE HLAX
+#
+A1A0;;;YI SYLLABLE HLA
+A1A1;;;YI SYLLABLE HLAP
+A1A2;;;YI SYLLABLE HLUOX
+A1A3;;;YI SYLLABLE HLUO
+A1A4;;;YI SYLLABLE HLUOP
+A1A5;;;YI SYLLABLE HLOX
+A1A6;;;YI SYLLABLE HLO
+A1A7;;;YI SYLLABLE HLOP
+A1A8;;;YI SYLLABLE HLEX
+A1A9;;;YI SYLLABLE HLE
+A1AA;;;YI SYLLABLE HLEP
+A1AB;;;YI SYLLABLE HLUT
+A1AC;;;YI SYLLABLE HLUX
+A1AD;;;YI SYLLABLE HLU
+A1AE;;;YI SYLLABLE HLUP
+A1AF;;;YI SYLLABLE HLURX
+#
+A1B0;;;YI SYLLABLE HLUR
+A1B1;;;YI SYLLABLE HLYT
+A1B2;;;YI SYLLABLE HLYX
+A1B3;;;YI SYLLABLE HLY
+A1B4;;;YI SYLLABLE HLYP
+A1B5;;;YI SYLLABLE HLYRX
+A1B6;;;YI SYLLABLE HLYR
+A1B7;;;YI SYLLABLE LIT
+A1B8;;;YI SYLLABLE LIX
+A1B9;;;YI SYLLABLE LI
+A1BA;;;YI SYLLABLE LIP
+A1BB;;;YI SYLLABLE LIET
+A1BC;;;YI SYLLABLE LIEX
+A1BD;;;YI SYLLABLE LIE
+A1BE;;;YI SYLLABLE LIEP
+A1BF;;;YI SYLLABLE LAT
+#
+A1C0;;;YI SYLLABLE LAX
+A1C1;;;YI SYLLABLE LA
+A1C2;;;YI SYLLABLE LAP
+A1C3;;;YI SYLLABLE LUOT
+A1C4;;;YI SYLLABLE LUOX
+A1C5;;;YI SYLLABLE LUO
+A1C6;;;YI SYLLABLE LUOP
+A1C7;;;YI SYLLABLE LOT
+A1C8;;;YI SYLLABLE LOX
+A1C9;;;YI SYLLABLE LO
+A1CA;;;YI SYLLABLE LOP
+A1CB;;;YI SYLLABLE LEX
+A1CC;;;YI SYLLABLE LE
+A1CD;;;YI SYLLABLE LEP
+A1CE;;;YI SYLLABLE LUT
+A1CF;;;YI SYLLABLE LUX
+#
+A1D0;;;YI SYLLABLE LU
+A1D1;;;YI SYLLABLE LUP
+A1D2;;;YI SYLLABLE LURX
+A1D3;;;YI SYLLABLE LUR
+A1D4;;;YI SYLLABLE LYT
+A1D5;;;YI SYLLABLE LYX
+A1D6;;;YI SYLLABLE LY
+A1D7;;;YI SYLLABLE LYP
+A1D8;;;YI SYLLABLE LYRX
+A1D9;;;YI SYLLABLE LYR
+A1DA;;;YI SYLLABLE GIT
+A1DB;;;YI SYLLABLE GIX
+A1DC;;;YI SYLLABLE GI
+A1DD;;;YI SYLLABLE GIP
+A1DE;;;YI SYLLABLE GIET
+A1DF;;;YI SYLLABLE GIEX
+#
+A1E0;;;YI SYLLABLE GIE
+A1E1;;;YI SYLLABLE GIEP
+A1E2;;;YI SYLLABLE GAT
+A1E3;;;YI SYLLABLE GAX
+A1E4;;;YI SYLLABLE GA
+A1E5;;;YI SYLLABLE GAP
+A1E6;;;YI SYLLABLE GUOT
+A1E7;;;YI SYLLABLE GUOX
+A1E8;;;YI SYLLABLE GUO
+A1E9;;;YI SYLLABLE GUOP
+A1EA;;;YI SYLLABLE GOT
+A1EB;;;YI SYLLABLE GOX
+A1EC;;;YI SYLLABLE GO
+A1ED;;;YI SYLLABLE GOP
+A1EE;;;YI SYLLABLE GET
+A1EF;;;YI SYLLABLE GEX
+#
+A1F0;;;YI SYLLABLE GE
+A1F1;;;YI SYLLABLE GEP
+A1F2;;;YI SYLLABLE GUT
+A1F3;;;YI SYLLABLE GUX
+A1F4;;;YI SYLLABLE GU
+A1F5;;;YI SYLLABLE GUP
+A1F6;;;YI SYLLABLE GURX
+A1F7;;;YI SYLLABLE GUR
+A1F8;;;YI SYLLABLE KIT
+A1F9;;;YI SYLLABLE KIX
+A1FA;;;YI SYLLABLE KI
+A1FB;;;YI SYLLABLE KIP
+A1FC;;;YI SYLLABLE KIEX
+A1FD;;;YI SYLLABLE KIE
+A1FE;;;YI SYLLABLE KIEP
+A1FF;;;YI SYLLABLE KAT
+#
+A200;;;YI SYLLABLE KAX
+A201;;;YI SYLLABLE KA
+A202;;;YI SYLLABLE KAP
+A203;;;YI SYLLABLE KUOX
+A204;;;YI SYLLABLE KUO
+A205;;;YI SYLLABLE KUOP
+A206;;;YI SYLLABLE KOT
+A207;;;YI SYLLABLE KOX
+A208;;;YI SYLLABLE KO
+A209;;;YI SYLLABLE KOP
+A20A;;;YI SYLLABLE KET
+A20B;;;YI SYLLABLE KEX
+A20C;;;YI SYLLABLE KE
+A20D;;;YI SYLLABLE KEP
+A20E;;;YI SYLLABLE KUT
+A20F;;;YI SYLLABLE KUX
+#
+A210;;;YI SYLLABLE KU
+A211;;;YI SYLLABLE KUP
+A212;;;YI SYLLABLE KURX
+A213;;;YI SYLLABLE KUR
+A214;;;YI SYLLABLE GGIT
+A215;;;YI SYLLABLE GGIX
+A216;;;YI SYLLABLE GGI
+A217;;;YI SYLLABLE GGIEX
+A218;;;YI SYLLABLE GGIE
+A219;;;YI SYLLABLE GGIEP
+A21A;;;YI SYLLABLE GGAT
+A21B;;;YI SYLLABLE GGAX
+A21C;;;YI SYLLABLE GGA
+A21D;;;YI SYLLABLE GGAP
+A21E;;;YI SYLLABLE GGUOT
+A21F;;;YI SYLLABLE GGUOX
+#
+A220;;;YI SYLLABLE GGUO
+A221;;;YI SYLLABLE GGUOP
+A222;;;YI SYLLABLE GGOT
+A223;;;YI SYLLABLE GGOX
+A224;;;YI SYLLABLE GGO
+A225;;;YI SYLLABLE GGOP
+A226;;;YI SYLLABLE GGET
+A227;;;YI SYLLABLE GGEX
+A228;;;YI SYLLABLE GGE
+A229;;;YI SYLLABLE GGEP
+A22A;;;YI SYLLABLE GGUT
+A22B;;;YI SYLLABLE GGUX
+A22C;;;YI SYLLABLE GGU
+A22D;;;YI SYLLABLE GGUP
+A22E;;;YI SYLLABLE GGURX
+A22F;;;YI SYLLABLE GGUR
+#
+A230;;;YI SYLLABLE MGIEX
+A231;;;YI SYLLABLE MGIE
+A232;;;YI SYLLABLE MGAT
+A233;;;YI SYLLABLE MGAX
+A234;;;YI SYLLABLE MGA
+A235;;;YI SYLLABLE MGAP
+A236;;;YI SYLLABLE MGUOX
+A237;;;YI SYLLABLE MGUO
+A238;;;YI SYLLABLE MGUOP
+A239;;;YI SYLLABLE MGOT
+A23A;;;YI SYLLABLE MGOX
+A23B;;;YI SYLLABLE MGO
+A23C;;;YI SYLLABLE MGOP
+A23D;;;YI SYLLABLE MGEX
+A23E;;;YI SYLLABLE MGE
+A23F;;;YI SYLLABLE MGEP
+#
+A240;;;YI SYLLABLE MGUT
+A241;;;YI SYLLABLE MGUX
+A242;;;YI SYLLABLE MGU
+A243;;;YI SYLLABLE MGUP
+A244;;;YI SYLLABLE MGURX
+A245;;;YI SYLLABLE MGUR
+A246;;;YI SYLLABLE HXIT
+A247;;;YI SYLLABLE HXIX
+A248;;;YI SYLLABLE HXI
+A249;;;YI SYLLABLE HXIP
+A24A;;;YI SYLLABLE HXIET
+A24B;;;YI SYLLABLE HXIEX
+A24C;;;YI SYLLABLE HXIE
+A24D;;;YI SYLLABLE HXIEP
+A24E;;;YI SYLLABLE HXAT
+A24F;;;YI SYLLABLE HXAX
+#
+A250;;;YI SYLLABLE HXA
+A251;;;YI SYLLABLE HXAP
+A252;;;YI SYLLABLE HXUOT
+A253;;;YI SYLLABLE HXUOX
+A254;;;YI SYLLABLE HXUO
+A255;;;YI SYLLABLE HXUOP
+A256;;;YI SYLLABLE HXOT
+A257;;;YI SYLLABLE HXOX
+A258;;;YI SYLLABLE HXO
+A259;;;YI SYLLABLE HXOP
+A25A;;;YI SYLLABLE HXEX
+A25B;;;YI SYLLABLE HXE
+A25C;;;YI SYLLABLE HXEP
+A25D;;;YI SYLLABLE NGIEX
+A25E;;;YI SYLLABLE NGIE
+A25F;;;YI SYLLABLE NGIEP
+#
+A260;;;YI SYLLABLE NGAT
+A261;;;YI SYLLABLE NGAX
+A262;;;YI SYLLABLE NGA
+A263;;;YI SYLLABLE NGAP
+A264;;;YI SYLLABLE NGUOT
+A265;;;YI SYLLABLE NGUOX
+A266;;;YI SYLLABLE NGUO
+A267;;;YI SYLLABLE NGOT
+A268;;;YI SYLLABLE NGOX
+A269;;;YI SYLLABLE NGO
+A26A;;;YI SYLLABLE NGOP
+A26B;;;YI SYLLABLE NGEX
+A26C;;;YI SYLLABLE NGE
+A26D;;;YI SYLLABLE NGEP
+A26E;;;YI SYLLABLE HIT
+A26F;;;YI SYLLABLE HIEX
+#
+A270;;;YI SYLLABLE HIE
+A271;;;YI SYLLABLE HAT
+A272;;;YI SYLLABLE HAX
+A273;;;YI SYLLABLE HA
+A274;;;YI SYLLABLE HAP
+A275;;;YI SYLLABLE HUOT
+A276;;;YI SYLLABLE HUOX
+A277;;;YI SYLLABLE HUO
+A278;;;YI SYLLABLE HUOP
+A279;;;YI SYLLABLE HOT
+A27A;;;YI SYLLABLE HOX
+A27B;;;YI SYLLABLE HO
+A27C;;;YI SYLLABLE HOP
+A27D;;;YI SYLLABLE HEX
+A27E;;;YI SYLLABLE HE
+A27F;;;YI SYLLABLE HEP
+#
+A280;;;YI SYLLABLE WAT
+A281;;;YI SYLLABLE WAX
+A282;;;YI SYLLABLE WA
+A283;;;YI SYLLABLE WAP
+A284;;;YI SYLLABLE WUOX
+A285;;;YI SYLLABLE WUO
+A286;;;YI SYLLABLE WUOP
+A287;;;YI SYLLABLE WOX
+A288;;;YI SYLLABLE WO
+A289;;;YI SYLLABLE WOP
+A28A;;;YI SYLLABLE WEX
+A28B;;;YI SYLLABLE WE
+A28C;;;YI SYLLABLE WEP
+A28D;;;YI SYLLABLE ZIT
+A28E;;;YI SYLLABLE ZIX
+A28F;;;YI SYLLABLE ZI
+#
+A290;;;YI SYLLABLE ZIP
+A291;;;YI SYLLABLE ZIEX
+A292;;;YI SYLLABLE ZIE
+A293;;;YI SYLLABLE ZIEP
+A294;;;YI SYLLABLE ZAT
+A295;;;YI SYLLABLE ZAX
+A296;;;YI SYLLABLE ZA
+A297;;;YI SYLLABLE ZAP
+A298;;;YI SYLLABLE ZUOX
+A299;;;YI SYLLABLE ZUO
+A29A;;;YI SYLLABLE ZUOP
+A29B;;;YI SYLLABLE ZOT
+A29C;;;YI SYLLABLE ZOX
+A29D;;;YI SYLLABLE ZO
+A29E;;;YI SYLLABLE ZOP
+A29F;;;YI SYLLABLE ZEX
+#
+A2A0;;;YI SYLLABLE ZE
+A2A1;;;YI SYLLABLE ZEP
+A2A2;;;YI SYLLABLE ZUT
+A2A3;;;YI SYLLABLE ZUX
+A2A4;;;YI SYLLABLE ZU
+A2A5;;;YI SYLLABLE ZUP
+A2A6;;;YI SYLLABLE ZURX
+A2A7;;;YI SYLLABLE ZUR
+A2A8;;;YI SYLLABLE ZYT
+A2A9;;;YI SYLLABLE ZYX
+A2AA;;;YI SYLLABLE ZY
+A2AB;;;YI SYLLABLE ZYP
+A2AC;;;YI SYLLABLE ZYRX
+A2AD;;;YI SYLLABLE ZYR
+A2AE;;;YI SYLLABLE CIT
+A2AF;;;YI SYLLABLE CIX
+#
+A2B0;;;YI SYLLABLE CI
+A2B1;;;YI SYLLABLE CIP
+A2B2;;;YI SYLLABLE CIET
+A2B3;;;YI SYLLABLE CIEX
+A2B4;;;YI SYLLABLE CIE
+A2B5;;;YI SYLLABLE CIEP
+A2B6;;;YI SYLLABLE CAT
+A2B7;;;YI SYLLABLE CAX
+A2B8;;;YI SYLLABLE CA
+A2B9;;;YI SYLLABLE CAP
+A2BA;;;YI SYLLABLE CUOX
+A2BB;;;YI SYLLABLE CUO
+A2BC;;;YI SYLLABLE CUOP
+A2BD;;;YI SYLLABLE COT
+A2BE;;;YI SYLLABLE COX
+A2BF;;;YI SYLLABLE CO
+#
+A2C0;;;YI SYLLABLE COP
+A2C1;;;YI SYLLABLE CEX
+A2C2;;;YI SYLLABLE CE
+A2C3;;;YI SYLLABLE CEP
+A2C4;;;YI SYLLABLE CUT
+A2C5;;;YI SYLLABLE CUX
+A2C6;;;YI SYLLABLE CU
+A2C7;;;YI SYLLABLE CUP
+A2C8;;;YI SYLLABLE CURX
+A2C9;;;YI SYLLABLE CUR
+A2CA;;;YI SYLLABLE CYT
+A2CB;;;YI SYLLABLE CYX
+A2CC;;;YI SYLLABLE CY
+A2CD;;;YI SYLLABLE CYP
+A2CE;;;YI SYLLABLE CYRX
+A2CF;;;YI SYLLABLE CYR
+#
+A2D0;;;YI SYLLABLE ZZIT
+A2D1;;;YI SYLLABLE ZZIX
+A2D2;;;YI SYLLABLE ZZI
+A2D3;;;YI SYLLABLE ZZIP
+A2D4;;;YI SYLLABLE ZZIET
+A2D5;;;YI SYLLABLE ZZIEX
+A2D6;;;YI SYLLABLE ZZIE
+A2D7;;;YI SYLLABLE ZZIEP
+A2D8;;;YI SYLLABLE ZZAT
+A2D9;;;YI SYLLABLE ZZAX
+A2DA;;;YI SYLLABLE ZZA
+A2DB;;;YI SYLLABLE ZZAP
+A2DC;;;YI SYLLABLE ZZOX
+A2DD;;;YI SYLLABLE ZZO
+A2DE;;;YI SYLLABLE ZZOP
+A2DF;;;YI SYLLABLE ZZEX
+#
+A2E0;;;YI SYLLABLE ZZE
+A2E1;;;YI SYLLABLE ZZEP
+A2E2;;;YI SYLLABLE ZZUX
+A2E3;;;YI SYLLABLE ZZU
+A2E4;;;YI SYLLABLE ZZUP
+A2E5;;;YI SYLLABLE ZZURX
+A2E6;;;YI SYLLABLE ZZUR
+A2E7;;;YI SYLLABLE ZZYT
+A2E8;;;YI SYLLABLE ZZYX
+A2E9;;;YI SYLLABLE ZZY
+A2EA;;;YI SYLLABLE ZZYP
+A2EB;;;YI SYLLABLE ZZYRX
+A2EC;;;YI SYLLABLE ZZYR
+A2ED;;;YI SYLLABLE NZIT
+A2EE;;;YI SYLLABLE NZIX
+A2EF;;;YI SYLLABLE NZI
+#
+A2F0;;;YI SYLLABLE NZIP
+A2F1;;;YI SYLLABLE NZIEX
+A2F2;;;YI SYLLABLE NZIE
+A2F3;;;YI SYLLABLE NZIEP
+A2F4;;;YI SYLLABLE NZAT
+A2F5;;;YI SYLLABLE NZAX
+A2F6;;;YI SYLLABLE NZA
+A2F7;;;YI SYLLABLE NZAP
+A2F8;;;YI SYLLABLE NZUOX
+A2F9;;;YI SYLLABLE NZUO
+A2FA;;;YI SYLLABLE NZOX
+A2FB;;;YI SYLLABLE NZOP
+A2FC;;;YI SYLLABLE NZEX
+A2FD;;;YI SYLLABLE NZE
+A2FE;;;YI SYLLABLE NZUX
+A2FF;;;YI SYLLABLE NZU
+#
+A300;;;YI SYLLABLE NZUP
+A301;;;YI SYLLABLE NZURX
+A302;;;YI SYLLABLE NZUR
+A303;;;YI SYLLABLE NZYT
+A304;;;YI SYLLABLE NZYX
+A305;;;YI SYLLABLE NZY
+A306;;;YI SYLLABLE NZYP
+A307;;;YI SYLLABLE NZYRX
+A308;;;YI SYLLABLE NZYR
+A309;;;YI SYLLABLE SIT
+A30A;;;YI SYLLABLE SIX
+A30B;;;YI SYLLABLE SI
+A30C;;;YI SYLLABLE SIP
+A30D;;;YI SYLLABLE SIEX
+A30E;;;YI SYLLABLE SIE
+A30F;;;YI SYLLABLE SIEP
+#
+A310;;;YI SYLLABLE SAT
+A311;;;YI SYLLABLE SAX
+A312;;;YI SYLLABLE SA
+A313;;;YI SYLLABLE SAP
+A314;;;YI SYLLABLE SUOX
+A315;;;YI SYLLABLE SUO
+A316;;;YI SYLLABLE SUOP
+A317;;;YI SYLLABLE SOT
+A318;;;YI SYLLABLE SOX
+A319;;;YI SYLLABLE SO
+A31A;;;YI SYLLABLE SOP
+A31B;;;YI SYLLABLE SEX
+A31C;;;YI SYLLABLE SE
+A31D;;;YI SYLLABLE SEP
+A31E;;;YI SYLLABLE SUT
+A31F;;;YI SYLLABLE SUX
+#
+A320;;;YI SYLLABLE SU
+A321;;;YI SYLLABLE SUP
+A322;;;YI SYLLABLE SURX
+A323;;;YI SYLLABLE SUR
+A324;;;YI SYLLABLE SYT
+A325;;;YI SYLLABLE SYX
+A326;;;YI SYLLABLE SY
+A327;;;YI SYLLABLE SYP
+A328;;;YI SYLLABLE SYRX
+A329;;;YI SYLLABLE SYR
+A32A;;;YI SYLLABLE SSIT
+A32B;;;YI SYLLABLE SSIX
+A32C;;;YI SYLLABLE SSI
+A32D;;;YI SYLLABLE SSIP
+A32E;;;YI SYLLABLE SSIEX
+A32F;;;YI SYLLABLE SSIE
+#
+A330;;;YI SYLLABLE SSIEP
+A331;;;YI SYLLABLE SSAT
+A332;;;YI SYLLABLE SSAX
+A333;;;YI SYLLABLE SSA
+A334;;;YI SYLLABLE SSAP
+A335;;;YI SYLLABLE SSOT
+A336;;;YI SYLLABLE SSOX
+A337;;;YI SYLLABLE SSO
+A338;;;YI SYLLABLE SSOP
+A339;;;YI SYLLABLE SSEX
+A33A;;;YI SYLLABLE SSE
+A33B;;;YI SYLLABLE SSEP
+A33C;;;YI SYLLABLE SSUT
+A33D;;;YI SYLLABLE SSUX
+A33E;;;YI SYLLABLE SSU
+A33F;;;YI SYLLABLE SSUP
+#
+A340;;;YI SYLLABLE SSYT
+A341;;;YI SYLLABLE SSYX
+A342;;;YI SYLLABLE SSY
+A343;;;YI SYLLABLE SSYP
+A344;;;YI SYLLABLE SSYRX
+A345;;;YI SYLLABLE SSYR
+A346;;;YI SYLLABLE ZHAT
+A347;;;YI SYLLABLE ZHAX
+A348;;;YI SYLLABLE ZHA
+A349;;;YI SYLLABLE ZHAP
+A34A;;;YI SYLLABLE ZHUOX
+A34B;;;YI SYLLABLE ZHUO
+A34C;;;YI SYLLABLE ZHUOP
+A34D;;;YI SYLLABLE ZHOT
+A34E;;;YI SYLLABLE ZHOX
+A34F;;;YI SYLLABLE ZHO
+#
+A350;;;YI SYLLABLE ZHOP
+A351;;;YI SYLLABLE ZHET
+A352;;;YI SYLLABLE ZHEX
+A353;;;YI SYLLABLE ZHE
+A354;;;YI SYLLABLE ZHEP
+A355;;;YI SYLLABLE ZHUT
+A356;;;YI SYLLABLE ZHUX
+A357;;;YI SYLLABLE ZHU
+A358;;;YI SYLLABLE ZHUP
+A359;;;YI SYLLABLE ZHURX
+A35A;;;YI SYLLABLE ZHUR
+A35B;;;YI SYLLABLE ZHYT
+A35C;;;YI SYLLABLE ZHYX
+A35D;;;YI SYLLABLE ZHY
+A35E;;;YI SYLLABLE ZHYP
+A35F;;;YI SYLLABLE ZHYRX
+#
+A360;;;YI SYLLABLE ZHYR
+A361;;;YI SYLLABLE CHAT
+A362;;;YI SYLLABLE CHAX
+A363;;;YI SYLLABLE CHA
+A364;;;YI SYLLABLE CHAP
+A365;;;YI SYLLABLE CHUOT
+A366;;;YI SYLLABLE CHUOX
+A367;;;YI SYLLABLE CHUO
+A368;;;YI SYLLABLE CHUOP
+A369;;;YI SYLLABLE CHOT
+A36A;;;YI SYLLABLE CHOX
+A36B;;;YI SYLLABLE CHO
+A36C;;;YI SYLLABLE CHOP
+A36D;;;YI SYLLABLE CHET
+A36E;;;YI SYLLABLE CHEX
+A36F;;;YI SYLLABLE CHE
+#
+A370;;;YI SYLLABLE CHEP
+A371;;;YI SYLLABLE CHUX
+A372;;;YI SYLLABLE CHU
+A373;;;YI SYLLABLE CHUP
+A374;;;YI SYLLABLE CHURX
+A375;;;YI SYLLABLE CHUR
+A376;;;YI SYLLABLE CHYT
+A377;;;YI SYLLABLE CHYX
+A378;;;YI SYLLABLE CHY
+A379;;;YI SYLLABLE CHYP
+A37A;;;YI SYLLABLE CHYRX
+A37B;;;YI SYLLABLE CHYR
+A37C;;;YI SYLLABLE RRAX
+A37D;;;YI SYLLABLE RRA
+A37E;;;YI SYLLABLE RRUOX
+A37F;;;YI SYLLABLE RRUO
+#
+A380;;;YI SYLLABLE RROT
+A381;;;YI SYLLABLE RROX
+A382;;;YI SYLLABLE RRO
+A383;;;YI SYLLABLE RROP
+A384;;;YI SYLLABLE RRET
+A385;;;YI SYLLABLE RREX
+A386;;;YI SYLLABLE RRE
+A387;;;YI SYLLABLE RREP
+A388;;;YI SYLLABLE RRUT
+A389;;;YI SYLLABLE RRUX
+A38A;;;YI SYLLABLE RRU
+A38B;;;YI SYLLABLE RRUP
+A38C;;;YI SYLLABLE RRURX
+A38D;;;YI SYLLABLE RRUR
+A38E;;;YI SYLLABLE RRYT
+A38F;;;YI SYLLABLE RRYX
+#
+A390;;;YI SYLLABLE RRY
+A391;;;YI SYLLABLE RRYP
+A392;;;YI SYLLABLE RRYRX
+A393;;;YI SYLLABLE RRYR
+A394;;;YI SYLLABLE NRAT
+A395;;;YI SYLLABLE NRAX
+A396;;;YI SYLLABLE NRA
+A397;;;YI SYLLABLE NRAP
+A398;;;YI SYLLABLE NROX
+A399;;;YI SYLLABLE NRO
+A39A;;;YI SYLLABLE NROP
+A39B;;;YI SYLLABLE NRET
+A39C;;;YI SYLLABLE NREX
+A39D;;;YI SYLLABLE NRE
+A39E;;;YI SYLLABLE NREP
+A39F;;;YI SYLLABLE NRUT
+#
+A3A0;;;YI SYLLABLE NRUX
+A3A1;;;YI SYLLABLE NRU
+A3A2;;;YI SYLLABLE NRUP
+A3A3;;;YI SYLLABLE NRURX
+A3A4;;;YI SYLLABLE NRUR
+A3A5;;;YI SYLLABLE NRYT
+A3A6;;;YI SYLLABLE NRYX
+A3A7;;;YI SYLLABLE NRY
+A3A8;;;YI SYLLABLE NRYP
+A3A9;;;YI SYLLABLE NRYRX
+A3AA;;;YI SYLLABLE NRYR
+A3AB;;;YI SYLLABLE SHAT
+A3AC;;;YI SYLLABLE SHAX
+A3AD;;;YI SYLLABLE SHA
+A3AE;;;YI SYLLABLE SHAP
+A3AF;;;YI SYLLABLE SHUOX
+#
+A3B0;;;YI SYLLABLE SHUO
+A3B1;;;YI SYLLABLE SHUOP
+A3B2;;;YI SYLLABLE SHOT
+A3B3;;;YI SYLLABLE SHOX
+A3B4;;;YI SYLLABLE SHO
+A3B5;;;YI SYLLABLE SHOP
+A3B6;;;YI SYLLABLE SHET
+A3B7;;;YI SYLLABLE SHEX
+A3B8;;;YI SYLLABLE SHE
+A3B9;;;YI SYLLABLE SHEP
+A3BA;;;YI SYLLABLE SHUT
+A3BB;;;YI SYLLABLE SHUX
+A3BC;;;YI SYLLABLE SHU
+A3BD;;;YI SYLLABLE SHUP
+A3BE;;;YI SYLLABLE SHURX
+A3BF;;;YI SYLLABLE SHUR
+#
+A3C0;;;YI SYLLABLE SHYT
+A3C1;;;YI SYLLABLE SHYX
+A3C2;;;YI SYLLABLE SHY
+A3C3;;;YI SYLLABLE SHYP
+A3C4;;;YI SYLLABLE SHYRX
+A3C5;;;YI SYLLABLE SHYR
+A3C6;;;YI SYLLABLE RAT
+A3C7;;;YI SYLLABLE RAX
+A3C8;;;YI SYLLABLE RA
+A3C9;;;YI SYLLABLE RAP
+A3CA;;;YI SYLLABLE RUOX
+A3CB;;;YI SYLLABLE RUO
+A3CC;;;YI SYLLABLE RUOP
+A3CD;;;YI SYLLABLE ROT
+A3CE;;;YI SYLLABLE ROX
+A3CF;;;YI SYLLABLE RO
+#
+A3D0;;;YI SYLLABLE ROP
+A3D1;;;YI SYLLABLE REX
+A3D2;;;YI SYLLABLE RE
+A3D3;;;YI SYLLABLE REP
+A3D4;;;YI SYLLABLE RUT
+A3D5;;;YI SYLLABLE RUX
+A3D6;;;YI SYLLABLE RU
+A3D7;;;YI SYLLABLE RUP
+A3D8;;;YI SYLLABLE RURX
+A3D9;;;YI SYLLABLE RUR
+A3DA;;;YI SYLLABLE RYT
+A3DB;;;YI SYLLABLE RYX
+A3DC;;;YI SYLLABLE RY
+A3DD;;;YI SYLLABLE RYP
+A3DE;;;YI SYLLABLE RYRX
+A3DF;;;YI SYLLABLE RYR
+#
+A3E0;;;YI SYLLABLE JIT
+A3E1;;;YI SYLLABLE JIX
+A3E2;;;YI SYLLABLE JI
+A3E3;;;YI SYLLABLE JIP
+A3E4;;;YI SYLLABLE JIET
+A3E5;;;YI SYLLABLE JIEX
+A3E6;;;YI SYLLABLE JIE
+A3E7;;;YI SYLLABLE JIEP
+A3E8;;;YI SYLLABLE JUOT
+A3E9;;;YI SYLLABLE JUOX
+A3EA;;;YI SYLLABLE JUO
+A3EB;;;YI SYLLABLE JUOP
+A3EC;;;YI SYLLABLE JOT
+A3ED;;;YI SYLLABLE JOX
+A3EE;;;YI SYLLABLE JO
+A3EF;;;YI SYLLABLE JOP
+#
+A3F0;;;YI SYLLABLE JUT
+A3F1;;;YI SYLLABLE JUX
+A3F2;;;YI SYLLABLE JU
+A3F3;;;YI SYLLABLE JUP
+A3F4;;;YI SYLLABLE JURX
+A3F5;;;YI SYLLABLE JUR
+A3F6;;;YI SYLLABLE JYT
+A3F7;;;YI SYLLABLE JYX
+A3F8;;;YI SYLLABLE JY
+A3F9;;;YI SYLLABLE JYP
+A3FA;;;YI SYLLABLE JYRX
+A3FB;;;YI SYLLABLE JYR
+A3FC;;;YI SYLLABLE QIT
+A3FD;;;YI SYLLABLE QIX
+A3FE;;;YI SYLLABLE QI
+A3FF;;;YI SYLLABLE QIP
+#
+A400;;;YI SYLLABLE QIET
+A401;;;YI SYLLABLE QIEX
+A402;;;YI SYLLABLE QIE
+A403;;;YI SYLLABLE QIEP
+A404;;;YI SYLLABLE QUOT
+A405;;;YI SYLLABLE QUOX
+A406;;;YI SYLLABLE QUO
+A407;;;YI SYLLABLE QUOP
+A408;;;YI SYLLABLE QOT
+A409;;;YI SYLLABLE QOX
+A40A;;;YI SYLLABLE QO
+A40B;;;YI SYLLABLE QOP
+A40C;;;YI SYLLABLE QUT
+A40D;;;YI SYLLABLE QUX
+A40E;;;YI SYLLABLE QU
+A40F;;;YI SYLLABLE QUP
+#
+A410;;;YI SYLLABLE QURX
+A411;;;YI SYLLABLE QUR
+A412;;;YI SYLLABLE QYT
+A413;;;YI SYLLABLE QYX
+A414;;;YI SYLLABLE QY
+A415;;;YI SYLLABLE QYP
+A416;;;YI SYLLABLE QYRX
+A417;;;YI SYLLABLE QYR
+A418;;;YI SYLLABLE JJIT
+A419;;;YI SYLLABLE JJIX
+A41A;;;YI SYLLABLE JJI
+A41B;;;YI SYLLABLE JJIP
+A41C;;;YI SYLLABLE JJIET
+A41D;;;YI SYLLABLE JJIEX
+A41E;;;YI SYLLABLE JJIE
+A41F;;;YI SYLLABLE JJIEP
+#
+A420;;;YI SYLLABLE JJUOX
+A421;;;YI SYLLABLE JJUO
+A422;;;YI SYLLABLE JJUOP
+A423;;;YI SYLLABLE JJOT
+A424;;;YI SYLLABLE JJOX
+A425;;;YI SYLLABLE JJO
+A426;;;YI SYLLABLE JJOP
+A427;;;YI SYLLABLE JJUT
+A428;;;YI SYLLABLE JJUX
+A429;;;YI SYLLABLE JJU
+A42A;;;YI SYLLABLE JJUP
+A42B;;;YI SYLLABLE JJURX
+A42C;;;YI SYLLABLE JJUR
+A42D;;;YI SYLLABLE JJYT
+A42E;;;YI SYLLABLE JJYX
+A42F;;;YI SYLLABLE JJY
+#
+A430;;;YI SYLLABLE JJYP
+A431;;;YI SYLLABLE NJIT
+A432;;;YI SYLLABLE NJIX
+A433;;;YI SYLLABLE NJI
+A434;;;YI SYLLABLE NJIP
+A435;;;YI SYLLABLE NJIET
+A436;;;YI SYLLABLE NJIEX
+A437;;;YI SYLLABLE NJIE
+A438;;;YI SYLLABLE NJIEP
+A439;;;YI SYLLABLE NJUOX
+A43A;;;YI SYLLABLE NJUO
+A43B;;;YI SYLLABLE NJOT
+A43C;;;YI SYLLABLE NJOX
+A43D;;;YI SYLLABLE NJO
+A43E;;;YI SYLLABLE NJOP
+A43F;;;YI SYLLABLE NJUX
+#
+A440;;;YI SYLLABLE NJU
+A441;;;YI SYLLABLE NJUP
+A442;;;YI SYLLABLE NJURX
+A443;;;YI SYLLABLE NJUR
+A444;;;YI SYLLABLE NJYT
+A445;;;YI SYLLABLE NJYX
+A446;;;YI SYLLABLE NJY
+A447;;;YI SYLLABLE NJYP
+A448;;;YI SYLLABLE NJYRX
+A449;;;YI SYLLABLE NJYR
+A44A;;;YI SYLLABLE NYIT
+A44B;;;YI SYLLABLE NYIX
+A44C;;;YI SYLLABLE NYI
+A44D;;;YI SYLLABLE NYIP
+A44E;;;YI SYLLABLE NYIET
+A44F;;;YI SYLLABLE NYIEX
+#
+A450;;;YI SYLLABLE NYIE
+A451;;;YI SYLLABLE NYIEP
+A452;;;YI SYLLABLE NYUOX
+A453;;;YI SYLLABLE NYUO
+A454;;;YI SYLLABLE NYUOP
+A455;;;YI SYLLABLE NYOT
+A456;;;YI SYLLABLE NYOX
+A457;;;YI SYLLABLE NYO
+A458;;;YI SYLLABLE NYOP
+A459;;;YI SYLLABLE NYUT
+A45A;;;YI SYLLABLE NYUX
+A45B;;;YI SYLLABLE NYU
+A45C;;;YI SYLLABLE NYUP
+A45D;;;YI SYLLABLE XIT
+A45E;;;YI SYLLABLE XIX
+A45F;;;YI SYLLABLE XI
+#
+A460;;;YI SYLLABLE XIP
+A461;;;YI SYLLABLE XIET
+A462;;;YI SYLLABLE XIEX
+A463;;;YI SYLLABLE XIE
+A464;;;YI SYLLABLE XIEP
+A465;;;YI SYLLABLE XUOX
+A466;;;YI SYLLABLE XUO
+A467;;;YI SYLLABLE XOT
+A468;;;YI SYLLABLE XOX
+A469;;;YI SYLLABLE XO
+A46A;;;YI SYLLABLE XOP
+A46B;;;YI SYLLABLE XYT
+A46C;;;YI SYLLABLE XYX
+A46D;;;YI SYLLABLE XY
+A46E;;;YI SYLLABLE XYP
+A46F;;;YI SYLLABLE XYRX
+#
+A470;;;YI SYLLABLE XYR
+A471;;;YI SYLLABLE YIT
+A472;;;YI SYLLABLE YIX
+A473;;;YI SYLLABLE YI
+A474;;;YI SYLLABLE YIP
+A475;;;YI SYLLABLE YIET
+A476;;;YI SYLLABLE YIEX
+A477;;;YI SYLLABLE YIE
+A478;;;YI SYLLABLE YIEP
+A479;;;YI SYLLABLE YUOT
+A47A;;;YI SYLLABLE YUOX
+A47B;;;YI SYLLABLE YUO
+A47C;;;YI SYLLABLE YUOP
+A47D;;;YI SYLLABLE YOT
+A47E;;;YI SYLLABLE YOX
+A47F;;;YI SYLLABLE YO
+#
+A480;;;YI SYLLABLE YOP
+A481;;;YI SYLLABLE YUT
+A482;;;YI SYLLABLE YUX
+A483;;;YI SYLLABLE YU
+A484;;;YI SYLLABLE YUP
+A485;;;YI SYLLABLE YURX
+A486;;;YI SYLLABLE YUR
+A487;;;YI SYLLABLE YYT
+A488;;;YI SYLLABLE YYX
+A489;;;YI SYLLABLE YY
+A48A;;;YI SYLLABLE YYP
+A48B;;;YI SYLLABLE YYRX
+A48C;;;YI SYLLABLE YYR
+#
+# Yi Radicals
+#
+A490;;;YI RADICAL QOT
+A491;;;YI RADICAL LI
+A492;;;YI RADICAL KIT
+A493;;;YI RADICAL NYIP
+A494;;;YI RADICAL CYP
+A495;;;YI RADICAL SSI
+A496;;;YI RADICAL GGOP
+A497;;;YI RADICAL GEP
+A498;;;YI RADICAL MI
+A499;;;YI RADICAL HXIT
+A49A;;;YI RADICAL LYR
+A49B;;;YI RADICAL BBUT
+A49C;;;YI RADICAL MOP
+A49D;;;YI RADICAL YO
+A49E;;;YI RADICAL PUT
+A49F;;;YI RADICAL HXUO
+#
+A4A0;;;YI RADICAL TAT
+A4A1;;;YI RADICAL GA
+A4A2;;;YI RADICAL ZUP
+A4A3;;;YI RADICAL CYT
+A4A4;;;YI RADICAL DDUR
+A4A5;;;YI RADICAL BUR
+A4A6;;;YI RADICAL GGUO
+A4A7;;;YI RADICAL NYOP
+A4A8;;;YI RADICAL TU
+A4A9;;;YI RADICAL OP
+A4AA;;;YI RADICAL JJUT
+A4AB;;;YI RADICAL ZOT
+A4AC;;;YI RADICAL PYT
+A4AD;;;YI RADICAL HMO
+A4AE;;;YI RADICAL YIT
+A4AF;;;YI RADICAL VUR
+#
+A4B0;;;YI RADICAL SHY
+A4B1;;;YI RADICAL VEP
+A4B2;;;YI RADICAL ZA
+A4B3;;;YI RADICAL JO
+A4B4;;;YI RADICAL NZUP
+A4B5;;;YI RADICAL JJY
+A4B6;;;YI RADICAL GOT
+A4B7;;;YI RADICAL JJIE
+A4B8;;;YI RADICAL WO
+A4B9;;;YI RADICAL DU
+A4BA;;;YI RADICAL SHUR
+A4BB;;;YI RADICAL LIE
+A4BC;;;YI RADICAL CY
+A4BD;;;YI RADICAL CUOP
+A4BE;;;YI RADICAL CIP
+A4BF;;;YI RADICAL HXOP
+#
+A4C0;;;YI RADICAL SHAT
+A4C1;;;YI RADICAL ZUR
+A4C2;;;YI RADICAL SHOP
+A4C3;;;YI RADICAL CHE
+A4C4;;;YI RADICAL ZZIET
+A4C5;;;YI RADICAL NBIE
+A4C6;;;YI RADICAL KE
+#
+A700;;;MODIFIER LETTER CHINESE TONE YIN PING
+A701;;;MODIFIER LETTER CHINESE TONE YANG PING
+A702;;;MODIFIER LETTER CHINESE TONE YIN SHANG
+A703;;;MODIFIER LETTER CHINESE TONE YANG SHANG
+A704;;;MODIFIER LETTER CHINESE TONE YIN QU
+A705;;;MODIFIER LETTER CHINESE TONE YANG QU
+A706;;;MODIFIER LETTER CHINESE TONE YIN RU
+A707;;;MODIFIER LETTER CHINESE TONE YANG RU
+A708;;;MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR
+A709;;;MODIFIER LETTER HIGH DOTTED TONE BAR
+A70A;;;MODIFIER LETTER MID DOTTED TONE BAR
+A70B;;;MODIFIER LETTER LOW DOTTED TONE BAR
+A70C;;;MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR
+A70D;;;MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR
+A70E;;;MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR
+A70F;;;MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR
+#
+A710;;;MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR
+A711;;;MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR
+A712;;;MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR
+A713;;;MODIFIER LETTER HIGH LEFT-STEM TONE BAR
+A714;;;MODIFIER LETTER MID LEFT-STEM TONE BAR
+A715;;;MODIFIER LETTER LOW LEFT-STEM TONE BAR
+A716;;;MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
+#
+A800;;;SYLOTI NAGRI LETTER A
+A801;;;SYLOTI NAGRI LETTER I
+A802;;;SYLOTI NAGRI SIGN DVISVARA
+A803;;;SYLOTI NAGRI LETTER U
+A804;;;SYLOTI NAGRI LETTER E
+A805;;;SYLOTI NAGRI LETTER O
+A806;;;SYLOTI NAGRI SIGN HASANTA
+A807;;;SYLOTI NAGRI LETTER KO
+A808;;;SYLOTI NAGRI LETTER KHO
+A809;;;SYLOTI NAGRI LETTER GO
+A80A;;;SYLOTI NAGRI LETTER GHO
+A80B;;;SYLOTI NAGRI SIGN ANUSVARA
+A80C;;;SYLOTI NAGRI LETTER CO
+A80D;;;SYLOTI NAGRI LETTER CHO
+A80E;;;SYLOTI NAGRI LETTER JO
+A80F;;;SYLOTI NAGRI LETTER JHO
+#
+A810;;;SYLOTI NAGRI LETTER TTO
+A811;;;SYLOTI NAGRI LETTER TTHO
+A812;;;SYLOTI NAGRI LETTER DDO
+A813;;;SYLOTI NAGRI LETTER DDHO
+A814;;;SYLOTI NAGRI LETTER TO
+A815;;;SYLOTI NAGRI LETTER THO
+A816;;;SYLOTI NAGRI LETTER DO
+A817;;;SYLOTI NAGRI LETTER DHO
+A818;;;SYLOTI NAGRI LETTER NO
+A819;;;SYLOTI NAGRI LETTER PO
+A81A;;;SYLOTI NAGRI LETTER PHO
+A81B;;;SYLOTI NAGRI LETTER BO
+A81C;;;SYLOTI NAGRI LETTER BHO
+A81D;;;SYLOTI NAGRI LETTER MO
+A81E;;;SYLOTI NAGRI LETTER RO
+A81F;;;SYLOTI NAGRI LETTER LO
+#
+A820;;;SYLOTI NAGRI LETTER RRO
+A821;;;SYLOTI NAGRI LETTER SO
+A822;;;SYLOTI NAGRI LETTER HO
+A823;;;SYLOTI NAGRI VOWEL SIGN A
+A824;;;SYLOTI NAGRI VOWEL SIGN I
+A825;;;SYLOTI NAGRI VOWEL SIGN U
+A826;;;SYLOTI NAGRI VOWEL SIGN E
+A827;;;SYLOTI NAGRI VOWEL SIGN OO
+A828;;;SYLOTI NAGRI POETRY MARK-1
+A829;;;SYLOTI NAGRI POETRY MARK-2
+A82A;;;SYLOTI NAGRI POETRY MARK-3
+A82B;;;SYLOTI NAGRI POETRY MARK-4
+#
+# Hangul Syllables
+#
+AC00;;;<Hangul Syllable, First>
+D7A3;;;<Hangul Syllable, Last>
+#
+# High Surrogates
+#
+D800;;;<Non Private Use High Surrogate, First>
+DB7F;;;<Non Private Use High Surrogate, Last>
+#
+DB80;;;<Private Use High Surrogate, First>
+DBFF;;;<Private Use High Surrogate, Last>
+#
+# Low Surrogates
+#
+DC00;;;<Low Surrogate, First>
+DFFF;;;<Low Surrogate, Last>
+#
+# Private Use Area
+#
+E000;;;<Private Use, First>
+F8FF;;;<Private Use, Last>
+#
+# CJK Compatibility Ideographs
+#
+F900;;;CJK COMPATIBILITY IDEOGRAPH-F900
+F901;;;CJK COMPATIBILITY IDEOGRAPH-F901
+F902;;;CJK COMPATIBILITY IDEOGRAPH-F902
+F903;;;CJK COMPATIBILITY IDEOGRAPH-F903
+F904;;;CJK COMPATIBILITY IDEOGRAPH-F904
+F905;;;CJK COMPATIBILITY IDEOGRAPH-F905
+F906;;;CJK COMPATIBILITY IDEOGRAPH-F906
+F907;;;CJK COMPATIBILITY IDEOGRAPH-F907
+F908;;;CJK COMPATIBILITY IDEOGRAPH-F908
+F909;;;CJK COMPATIBILITY IDEOGRAPH-F909
+F90A;;;CJK COMPATIBILITY IDEOGRAPH-F90A
+F90B;;;CJK COMPATIBILITY IDEOGRAPH-F90B
+F90C;;;CJK COMPATIBILITY IDEOGRAPH-F90C
+F90D;;;CJK COMPATIBILITY IDEOGRAPH-F90D
+F90E;;;CJK COMPATIBILITY IDEOGRAPH-F90E
+F90F;;;CJK COMPATIBILITY IDEOGRAPH-F90F
+#
+F910;;;CJK COMPATIBILITY IDEOGRAPH-F910
+F911;;;CJK COMPATIBILITY IDEOGRAPH-F911
+F912;;;CJK COMPATIBILITY IDEOGRAPH-F912
+F913;;;CJK COMPATIBILITY IDEOGRAPH-F913
+F914;;;CJK COMPATIBILITY IDEOGRAPH-F914
+F915;;;CJK COMPATIBILITY IDEOGRAPH-F915
+F916;;;CJK COMPATIBILITY IDEOGRAPH-F916
+F917;;;CJK COMPATIBILITY IDEOGRAPH-F917
+F918;;;CJK COMPATIBILITY IDEOGRAPH-F918
+F919;;;CJK COMPATIBILITY IDEOGRAPH-F919
+F91A;;;CJK COMPATIBILITY IDEOGRAPH-F91A
+F91B;;;CJK COMPATIBILITY IDEOGRAPH-F91B
+F91C;;;CJK COMPATIBILITY IDEOGRAPH-F91C
+F91D;;;CJK COMPATIBILITY IDEOGRAPH-F91D
+F91E;;;CJK COMPATIBILITY IDEOGRAPH-F91E
+F91F;;;CJK COMPATIBILITY IDEOGRAPH-F91F
+#
+F920;;;CJK COMPATIBILITY IDEOGRAPH-F920
+F921;;;CJK COMPATIBILITY IDEOGRAPH-F921
+F922;;;CJK COMPATIBILITY IDEOGRAPH-F922
+F923;;;CJK COMPATIBILITY IDEOGRAPH-F923
+F924;;;CJK COMPATIBILITY IDEOGRAPH-F924
+F925;;;CJK COMPATIBILITY IDEOGRAPH-F925
+F926;;;CJK COMPATIBILITY IDEOGRAPH-F926
+F927;;;CJK COMPATIBILITY IDEOGRAPH-F927
+F928;;;CJK COMPATIBILITY IDEOGRAPH-F928
+F929;;;CJK COMPATIBILITY IDEOGRAPH-F929
+F92A;;;CJK COMPATIBILITY IDEOGRAPH-F92A
+F92B;;;CJK COMPATIBILITY IDEOGRAPH-F92B
+F92C;;;CJK COMPATIBILITY IDEOGRAPH-F92C
+F92D;;;CJK COMPATIBILITY IDEOGRAPH-F92D
+F92E;;;CJK COMPATIBILITY IDEOGRAPH-F92E
+F92F;;;CJK COMPATIBILITY IDEOGRAPH-F92F
+#
+F930;;;CJK COMPATIBILITY IDEOGRAPH-F930
+F931;;;CJK COMPATIBILITY IDEOGRAPH-F931
+F932;;;CJK COMPATIBILITY IDEOGRAPH-F932
+F933;;;CJK COMPATIBILITY IDEOGRAPH-F933
+F934;;;CJK COMPATIBILITY IDEOGRAPH-F934
+F935;;;CJK COMPATIBILITY IDEOGRAPH-F935
+F936;;;CJK COMPATIBILITY IDEOGRAPH-F936
+F937;;;CJK COMPATIBILITY IDEOGRAPH-F937
+F938;;;CJK COMPATIBILITY IDEOGRAPH-F938
+F939;;;CJK COMPATIBILITY IDEOGRAPH-F939
+F93A;;;CJK COMPATIBILITY IDEOGRAPH-F93A
+F93B;;;CJK COMPATIBILITY IDEOGRAPH-F93B
+F93C;;;CJK COMPATIBILITY IDEOGRAPH-F93C
+F93D;;;CJK COMPATIBILITY IDEOGRAPH-F93D
+F93E;;;CJK COMPATIBILITY IDEOGRAPH-F93E
+F93F;;;CJK COMPATIBILITY IDEOGRAPH-F93F
+#
+F940;;;CJK COMPATIBILITY IDEOGRAPH-F940
+F941;;;CJK COMPATIBILITY IDEOGRAPH-F941
+F942;;;CJK COMPATIBILITY IDEOGRAPH-F942
+F943;;;CJK COMPATIBILITY IDEOGRAPH-F943
+F944;;;CJK COMPATIBILITY IDEOGRAPH-F944
+F945;;;CJK COMPATIBILITY IDEOGRAPH-F945
+F946;;;CJK COMPATIBILITY IDEOGRAPH-F946
+F947;;;CJK COMPATIBILITY IDEOGRAPH-F947
+F948;;;CJK COMPATIBILITY IDEOGRAPH-F948
+F949;;;CJK COMPATIBILITY IDEOGRAPH-F949
+F94A;;;CJK COMPATIBILITY IDEOGRAPH-F94A
+F94B;;;CJK COMPATIBILITY IDEOGRAPH-F94B
+F94C;;;CJK COMPATIBILITY IDEOGRAPH-F94C
+F94D;;;CJK COMPATIBILITY IDEOGRAPH-F94D
+F94E;;;CJK COMPATIBILITY IDEOGRAPH-F94E
+F94F;;;CJK COMPATIBILITY IDEOGRAPH-F94F
+#
+F950;;;CJK COMPATIBILITY IDEOGRAPH-F950
+F951;;;CJK COMPATIBILITY IDEOGRAPH-F951
+F952;;;CJK COMPATIBILITY IDEOGRAPH-F952
+F953;;;CJK COMPATIBILITY IDEOGRAPH-F953
+F954;;;CJK COMPATIBILITY IDEOGRAPH-F954
+F955;;;CJK COMPATIBILITY IDEOGRAPH-F955
+F956;;;CJK COMPATIBILITY IDEOGRAPH-F956
+F957;;;CJK COMPATIBILITY IDEOGRAPH-F957
+F958;;;CJK COMPATIBILITY IDEOGRAPH-F958
+F959;;;CJK COMPATIBILITY IDEOGRAPH-F959
+F95A;;;CJK COMPATIBILITY IDEOGRAPH-F95A
+F95B;;;CJK COMPATIBILITY IDEOGRAPH-F95B
+F95C;;;CJK COMPATIBILITY IDEOGRAPH-F95C
+F95D;;;CJK COMPATIBILITY IDEOGRAPH-F95D
+F95E;;;CJK COMPATIBILITY IDEOGRAPH-F95E
+F95F;;;CJK COMPATIBILITY IDEOGRAPH-F95F
+#
+F960;;;CJK COMPATIBILITY IDEOGRAPH-F960
+F961;;;CJK COMPATIBILITY IDEOGRAPH-F961
+F962;;;CJK COMPATIBILITY IDEOGRAPH-F962
+F963;;;CJK COMPATIBILITY IDEOGRAPH-F963
+F964;;;CJK COMPATIBILITY IDEOGRAPH-F964
+F965;;;CJK COMPATIBILITY IDEOGRAPH-F965
+F966;;;CJK COMPATIBILITY IDEOGRAPH-F966
+F967;;;CJK COMPATIBILITY IDEOGRAPH-F967
+F968;;;CJK COMPATIBILITY IDEOGRAPH-F968
+F969;;;CJK COMPATIBILITY IDEOGRAPH-F969
+F96A;;;CJK COMPATIBILITY IDEOGRAPH-F96A
+F96B;;;CJK COMPATIBILITY IDEOGRAPH-F96B
+F96C;;;CJK COMPATIBILITY IDEOGRAPH-F96C
+F96D;;;CJK COMPATIBILITY IDEOGRAPH-F96D
+F96E;;;CJK COMPATIBILITY IDEOGRAPH-F96E
+F96F;;;CJK COMPATIBILITY IDEOGRAPH-F96F
+#
+F970;;;CJK COMPATIBILITY IDEOGRAPH-F970
+F971;;;CJK COMPATIBILITY IDEOGRAPH-F971
+F972;;;CJK COMPATIBILITY IDEOGRAPH-F972
+F973;;;CJK COMPATIBILITY IDEOGRAPH-F973
+F974;;;CJK COMPATIBILITY IDEOGRAPH-F974
+F975;;;CJK COMPATIBILITY IDEOGRAPH-F975
+F976;;;CJK COMPATIBILITY IDEOGRAPH-F976
+F977;;;CJK COMPATIBILITY IDEOGRAPH-F977
+F978;;;CJK COMPATIBILITY IDEOGRAPH-F978
+F979;;;CJK COMPATIBILITY IDEOGRAPH-F979
+F97A;;;CJK COMPATIBILITY IDEOGRAPH-F97A
+F97B;;;CJK COMPATIBILITY IDEOGRAPH-F97B
+F97C;;;CJK COMPATIBILITY IDEOGRAPH-F97C
+F97D;;;CJK COMPATIBILITY IDEOGRAPH-F97D
+F97E;;;CJK COMPATIBILITY IDEOGRAPH-F97E
+F97F;;;CJK COMPATIBILITY IDEOGRAPH-F97F
+#
+F980;;;CJK COMPATIBILITY IDEOGRAPH-F980
+F981;;;CJK COMPATIBILITY IDEOGRAPH-F981
+F982;;;CJK COMPATIBILITY IDEOGRAPH-F982
+F983;;;CJK COMPATIBILITY IDEOGRAPH-F983
+F984;;;CJK COMPATIBILITY IDEOGRAPH-F984
+F985;;;CJK COMPATIBILITY IDEOGRAPH-F985
+F986;;;CJK COMPATIBILITY IDEOGRAPH-F986
+F987;;;CJK COMPATIBILITY IDEOGRAPH-F987
+F988;;;CJK COMPATIBILITY IDEOGRAPH-F988
+F989;;;CJK COMPATIBILITY IDEOGRAPH-F989
+F98A;;;CJK COMPATIBILITY IDEOGRAPH-F98A
+F98B;;;CJK COMPATIBILITY IDEOGRAPH-F98B
+F98C;;;CJK COMPATIBILITY IDEOGRAPH-F98C
+F98D;;;CJK COMPATIBILITY IDEOGRAPH-F98D
+F98E;;;CJK COMPATIBILITY IDEOGRAPH-F98E
+F98F;;;CJK COMPATIBILITY IDEOGRAPH-F98F
+#
+F990;;;CJK COMPATIBILITY IDEOGRAPH-F990
+F991;;;CJK COMPATIBILITY IDEOGRAPH-F991
+F992;;;CJK COMPATIBILITY IDEOGRAPH-F992
+F993;;;CJK COMPATIBILITY IDEOGRAPH-F993
+F994;;;CJK COMPATIBILITY IDEOGRAPH-F994
+F995;;;CJK COMPATIBILITY IDEOGRAPH-F995
+F996;;;CJK COMPATIBILITY IDEOGRAPH-F996
+F997;;;CJK COMPATIBILITY IDEOGRAPH-F997
+F998;;;CJK COMPATIBILITY IDEOGRAPH-F998
+F999;;;CJK COMPATIBILITY IDEOGRAPH-F999
+F99A;;;CJK COMPATIBILITY IDEOGRAPH-F99A
+F99B;;;CJK COMPATIBILITY IDEOGRAPH-F99B
+F99C;;;CJK COMPATIBILITY IDEOGRAPH-F99C
+F99D;;;CJK COMPATIBILITY IDEOGRAPH-F99D
+F99E;;;CJK COMPATIBILITY IDEOGRAPH-F99E
+F99F;;;CJK COMPATIBILITY IDEOGRAPH-F99F
+#
+F9A0;;;CJK COMPATIBILITY IDEOGRAPH-F9A0
+F9A1;;;CJK COMPATIBILITY IDEOGRAPH-F9A1
+F9A2;;;CJK COMPATIBILITY IDEOGRAPH-F9A2
+F9A3;;;CJK COMPATIBILITY IDEOGRAPH-F9A3
+F9A4;;;CJK COMPATIBILITY IDEOGRAPH-F9A4
+F9A5;;;CJK COMPATIBILITY IDEOGRAPH-F9A5
+F9A6;;;CJK COMPATIBILITY IDEOGRAPH-F9A6
+F9A7;;;CJK COMPATIBILITY IDEOGRAPH-F9A7
+F9A8;;;CJK COMPATIBILITY IDEOGRAPH-F9A8
+F9A9;;;CJK COMPATIBILITY IDEOGRAPH-F9A9
+F9AA;;;CJK COMPATIBILITY IDEOGRAPH-F9AA
+F9AB;;;CJK COMPATIBILITY IDEOGRAPH-F9AB
+F9AC;;;CJK COMPATIBILITY IDEOGRAPH-F9AC
+F9AD;;;CJK COMPATIBILITY IDEOGRAPH-F9AD
+F9AE;;;CJK COMPATIBILITY IDEOGRAPH-F9AE
+F9AF;;;CJK COMPATIBILITY IDEOGRAPH-F9AF
+#
+F9B0;;;CJK COMPATIBILITY IDEOGRAPH-F9B0
+F9B1;;;CJK COMPATIBILITY IDEOGRAPH-F9B1
+F9B2;;;CJK COMPATIBILITY IDEOGRAPH-F9B2
+F9B3;;;CJK COMPATIBILITY IDEOGRAPH-F9B3
+F9B4;;;CJK COMPATIBILITY IDEOGRAPH-F9B4
+F9B5;;;CJK COMPATIBILITY IDEOGRAPH-F9B5
+F9B6;;;CJK COMPATIBILITY IDEOGRAPH-F9B6
+F9B7;;;CJK COMPATIBILITY IDEOGRAPH-F9B7
+F9B8;;;CJK COMPATIBILITY IDEOGRAPH-F9B8
+F9B9;;;CJK COMPATIBILITY IDEOGRAPH-F9B9
+F9BA;;;CJK COMPATIBILITY IDEOGRAPH-F9BA
+F9BB;;;CJK COMPATIBILITY IDEOGRAPH-F9BB
+F9BC;;;CJK COMPATIBILITY IDEOGRAPH-F9BC
+F9BD;;;CJK COMPATIBILITY IDEOGRAPH-F9BD
+F9BE;;;CJK COMPATIBILITY IDEOGRAPH-F9BE
+F9BF;;;CJK COMPATIBILITY IDEOGRAPH-F9BF
+#
+F9C0;;;CJK COMPATIBILITY IDEOGRAPH-F9C0
+F9C1;;;CJK COMPATIBILITY IDEOGRAPH-F9C1
+F9C2;;;CJK COMPATIBILITY IDEOGRAPH-F9C2
+F9C3;;;CJK COMPATIBILITY IDEOGRAPH-F9C3
+F9C4;;;CJK COMPATIBILITY IDEOGRAPH-F9C4
+F9C5;;;CJK COMPATIBILITY IDEOGRAPH-F9C5
+F9C6;;;CJK COMPATIBILITY IDEOGRAPH-F9C6
+F9C7;;;CJK COMPATIBILITY IDEOGRAPH-F9C7
+F9C8;;;CJK COMPATIBILITY IDEOGRAPH-F9C8
+F9C9;;;CJK COMPATIBILITY IDEOGRAPH-F9C9
+F9CA;;;CJK COMPATIBILITY IDEOGRAPH-F9CA
+F9CB;;;CJK COMPATIBILITY IDEOGRAPH-F9CB
+F9CC;;;CJK COMPATIBILITY IDEOGRAPH-F9CC
+F9CD;;;CJK COMPATIBILITY IDEOGRAPH-F9CD
+F9CE;;;CJK COMPATIBILITY IDEOGRAPH-F9CE
+F9CF;;;CJK COMPATIBILITY IDEOGRAPH-F9CF
+#
+F9D0;;;CJK COMPATIBILITY IDEOGRAPH-F9D0
+F9D1;;;CJK COMPATIBILITY IDEOGRAPH-F9D1
+F9D2;;;CJK COMPATIBILITY IDEOGRAPH-F9D2
+F9D3;;;CJK COMPATIBILITY IDEOGRAPH-F9D3
+F9D4;;;CJK COMPATIBILITY IDEOGRAPH-F9D4
+F9D5;;;CJK COMPATIBILITY IDEOGRAPH-F9D5
+F9D6;;;CJK COMPATIBILITY IDEOGRAPH-F9D6
+F9D7;;;CJK COMPATIBILITY IDEOGRAPH-F9D7
+F9D8;;;CJK COMPATIBILITY IDEOGRAPH-F9D8
+F9D9;;;CJK COMPATIBILITY IDEOGRAPH-F9D9
+F9DA;;;CJK COMPATIBILITY IDEOGRAPH-F9DA
+F9DB;;;CJK COMPATIBILITY IDEOGRAPH-F9DB
+F9DC;;;CJK COMPATIBILITY IDEOGRAPH-F9DC
+F9DD;;;CJK COMPATIBILITY IDEOGRAPH-F9DD
+F9DE;;;CJK COMPATIBILITY IDEOGRAPH-F9DE
+F9DF;;;CJK COMPATIBILITY IDEOGRAPH-F9DF
+#
+F9E0;;;CJK COMPATIBILITY IDEOGRAPH-F9E0
+F9E1;;;CJK COMPATIBILITY IDEOGRAPH-F9E1
+F9E2;;;CJK COMPATIBILITY IDEOGRAPH-F9E2
+F9E3;;;CJK COMPATIBILITY IDEOGRAPH-F9E3
+F9E4;;;CJK COMPATIBILITY IDEOGRAPH-F9E4
+F9E5;;;CJK COMPATIBILITY IDEOGRAPH-F9E5
+F9E6;;;CJK COMPATIBILITY IDEOGRAPH-F9E6
+F9E7;;;CJK COMPATIBILITY IDEOGRAPH-F9E7
+F9E8;;;CJK COMPATIBILITY IDEOGRAPH-F9E8
+F9E9;;;CJK COMPATIBILITY IDEOGRAPH-F9E9
+F9EA;;;CJK COMPATIBILITY IDEOGRAPH-F9EA
+F9EB;;;CJK COMPATIBILITY IDEOGRAPH-F9EB
+F9EC;;;CJK COMPATIBILITY IDEOGRAPH-F9EC
+F9ED;;;CJK COMPATIBILITY IDEOGRAPH-F9ED
+F9EE;;;CJK COMPATIBILITY IDEOGRAPH-F9EE
+F9EF;;;CJK COMPATIBILITY IDEOGRAPH-F9EF
+#
+F9F0;;;CJK COMPATIBILITY IDEOGRAPH-F9F0
+F9F1;;;CJK COMPATIBILITY IDEOGRAPH-F9F1
+F9F2;;;CJK COMPATIBILITY IDEOGRAPH-F9F2
+F9F3;;;CJK COMPATIBILITY IDEOGRAPH-F9F3
+F9F4;;;CJK COMPATIBILITY IDEOGRAPH-F9F4
+F9F5;;;CJK COMPATIBILITY IDEOGRAPH-F9F5
+F9F6;;;CJK COMPATIBILITY IDEOGRAPH-F9F6
+F9F7;;;CJK COMPATIBILITY IDEOGRAPH-F9F7
+F9F8;;;CJK COMPATIBILITY IDEOGRAPH-F9F8
+F9F9;;;CJK COMPATIBILITY IDEOGRAPH-F9F9
+F9FA;;;CJK COMPATIBILITY IDEOGRAPH-F9FA
+F9FB;;;CJK COMPATIBILITY IDEOGRAPH-F9FB
+F9FC;;;CJK COMPATIBILITY IDEOGRAPH-F9FC
+F9FD;;;CJK COMPATIBILITY IDEOGRAPH-F9FD
+F9FE;;;CJK COMPATIBILITY IDEOGRAPH-F9FE
+F9FF;;;CJK COMPATIBILITY IDEOGRAPH-F9FF
+#
+FA00;;;CJK COMPATIBILITY IDEOGRAPH-FA00
+FA01;;;CJK COMPATIBILITY IDEOGRAPH-FA01
+FA02;;;CJK COMPATIBILITY IDEOGRAPH-FA02
+FA03;;;CJK COMPATIBILITY IDEOGRAPH-FA03
+FA04;;;CJK COMPATIBILITY IDEOGRAPH-FA04
+FA05;;;CJK COMPATIBILITY IDEOGRAPH-FA05
+FA06;;;CJK COMPATIBILITY IDEOGRAPH-FA06
+FA07;;;CJK COMPATIBILITY IDEOGRAPH-FA07
+FA08;;;CJK COMPATIBILITY IDEOGRAPH-FA08
+FA09;;;CJK COMPATIBILITY IDEOGRAPH-FA09
+FA0A;;;CJK COMPATIBILITY IDEOGRAPH-FA0A
+FA0B;;;CJK COMPATIBILITY IDEOGRAPH-FA0B
+FA0C;;;CJK COMPATIBILITY IDEOGRAPH-FA0C
+FA0D;;;CJK COMPATIBILITY IDEOGRAPH-FA0D
+FA0E;;;CJK COMPATIBILITY IDEOGRAPH-FA0E
+FA0F;;;CJK COMPATIBILITY IDEOGRAPH-FA0F
+#
+FA10;;;CJK COMPATIBILITY IDEOGRAPH-FA10
+FA11;;;CJK COMPATIBILITY IDEOGRAPH-FA11
+FA12;;;CJK COMPATIBILITY IDEOGRAPH-FA12
+FA13;;;CJK COMPATIBILITY IDEOGRAPH-FA13
+FA14;;;CJK COMPATIBILITY IDEOGRAPH-FA14
+FA15;;;CJK COMPATIBILITY IDEOGRAPH-FA15
+FA16;;;CJK COMPATIBILITY IDEOGRAPH-FA16
+FA17;;;CJK COMPATIBILITY IDEOGRAPH-FA17
+FA18;;;CJK COMPATIBILITY IDEOGRAPH-FA18
+FA19;;;CJK COMPATIBILITY IDEOGRAPH-FA19
+FA1A;;;CJK COMPATIBILITY IDEOGRAPH-FA1A
+FA1B;;;CJK COMPATIBILITY IDEOGRAPH-FA1B
+FA1C;;;CJK COMPATIBILITY IDEOGRAPH-FA1C
+FA1D;;;CJK COMPATIBILITY IDEOGRAPH-FA1D
+FA1E;;;CJK COMPATIBILITY IDEOGRAPH-FA1E
+FA1F;;;CJK COMPATIBILITY IDEOGRAPH-FA1F
+#
+FA20;;;CJK COMPATIBILITY IDEOGRAPH-FA20
+FA21;;;CJK COMPATIBILITY IDEOGRAPH-FA21
+FA22;;;CJK COMPATIBILITY IDEOGRAPH-FA22
+FA23;;;CJK COMPATIBILITY IDEOGRAPH-FA23
+FA24;;;CJK COMPATIBILITY IDEOGRAPH-FA24
+FA25;;;CJK COMPATIBILITY IDEOGRAPH-FA25
+FA26;;;CJK COMPATIBILITY IDEOGRAPH-FA26
+FA27;;;CJK COMPATIBILITY IDEOGRAPH-FA27
+FA28;;;CJK COMPATIBILITY IDEOGRAPH-FA28
+FA29;;;CJK COMPATIBILITY IDEOGRAPH-FA29
+FA2A;;;CJK COMPATIBILITY IDEOGRAPH-FA2A
+FA2B;;;CJK COMPATIBILITY IDEOGRAPH-FA2B
+FA2C;;;CJK COMPATIBILITY IDEOGRAPH-FA2C
+FA2D;;;CJK COMPATIBILITY IDEOGRAPH-FA2D
+#
+FA30;;;CJK COMPATIBILITY IDEOGRAPH-FA30
+FA31;;;CJK COMPATIBILITY IDEOGRAPH-FA31
+FA32;;;CJK COMPATIBILITY IDEOGRAPH-FA32
+FA33;;;CJK COMPATIBILITY IDEOGRAPH-FA33
+FA34;;;CJK COMPATIBILITY IDEOGRAPH-FA34
+FA35;;;CJK COMPATIBILITY IDEOGRAPH-FA35
+FA36;;;CJK COMPATIBILITY IDEOGRAPH-FA36
+FA37;;;CJK COMPATIBILITY IDEOGRAPH-FA37
+FA38;;;CJK COMPATIBILITY IDEOGRAPH-FA38
+FA39;;;CJK COMPATIBILITY IDEOGRAPH-FA39
+FA3A;;;CJK COMPATIBILITY IDEOGRAPH-FA3A
+FA3B;;;CJK COMPATIBILITY IDEOGRAPH-FA3B
+FA3C;;;CJK COMPATIBILITY IDEOGRAPH-FA3C
+FA3D;;;CJK COMPATIBILITY IDEOGRAPH-FA3D
+FA3E;;;CJK COMPATIBILITY IDEOGRAPH-FA3E
+FA3F;;;CJK COMPATIBILITY IDEOGRAPH-FA3F
+#
+FA40;;;CJK COMPATIBILITY IDEOGRAPH-FA40
+FA41;;;CJK COMPATIBILITY IDEOGRAPH-FA41
+FA42;;;CJK COMPATIBILITY IDEOGRAPH-FA42
+FA43;;;CJK COMPATIBILITY IDEOGRAPH-FA43
+FA44;;;CJK COMPATIBILITY IDEOGRAPH-FA44
+FA45;;;CJK COMPATIBILITY IDEOGRAPH-FA45
+FA46;;;CJK COMPATIBILITY IDEOGRAPH-FA46
+FA47;;;CJK COMPATIBILITY IDEOGRAPH-FA47
+FA48;;;CJK COMPATIBILITY IDEOGRAPH-FA48
+FA49;;;CJK COMPATIBILITY IDEOGRAPH-FA49
+FA4A;;;CJK COMPATIBILITY IDEOGRAPH-FA4A
+FA4B;;;CJK COMPATIBILITY IDEOGRAPH-FA4B
+FA4C;;;CJK COMPATIBILITY IDEOGRAPH-FA4C
+FA4D;;;CJK COMPATIBILITY IDEOGRAPH-FA4D
+FA4E;;;CJK COMPATIBILITY IDEOGRAPH-FA4E
+FA4F;;;CJK COMPATIBILITY IDEOGRAPH-FA4F
+#
+FA50;;;CJK COMPATIBILITY IDEOGRAPH-FA50
+FA51;;;CJK COMPATIBILITY IDEOGRAPH-FA51
+FA52;;;CJK COMPATIBILITY IDEOGRAPH-FA52
+FA53;;;CJK COMPATIBILITY IDEOGRAPH-FA53
+FA54;;;CJK COMPATIBILITY IDEOGRAPH-FA54
+FA55;;;CJK COMPATIBILITY IDEOGRAPH-FA55
+FA56;;;CJK COMPATIBILITY IDEOGRAPH-FA56
+FA57;;;CJK COMPATIBILITY IDEOGRAPH-FA57
+FA58;;;CJK COMPATIBILITY IDEOGRAPH-FA58
+FA59;;;CJK COMPATIBILITY IDEOGRAPH-FA59
+FA5A;;;CJK COMPATIBILITY IDEOGRAPH-FA5A
+FA5B;;;CJK COMPATIBILITY IDEOGRAPH-FA5B
+FA5C;;;CJK COMPATIBILITY IDEOGRAPH-FA5C
+FA5D;;;CJK COMPATIBILITY IDEOGRAPH-FA5D
+FA5E;;;CJK COMPATIBILITY IDEOGRAPH-FA5E
+FA5F;;;CJK COMPATIBILITY IDEOGRAPH-FA5F
+#
+FA60;;;CJK COMPATIBILITY IDEOGRAPH-FA60
+FA61;;;CJK COMPATIBILITY IDEOGRAPH-FA61
+FA62;;;CJK COMPATIBILITY IDEOGRAPH-FA62
+FA63;;;CJK COMPATIBILITY IDEOGRAPH-FA63
+FA64;;;CJK COMPATIBILITY IDEOGRAPH-FA64
+FA65;;;CJK COMPATIBILITY IDEOGRAPH-FA65
+FA66;;;CJK COMPATIBILITY IDEOGRAPH-FA66
+FA67;;;CJK COMPATIBILITY IDEOGRAPH-FA67
+FA68;;;CJK COMPATIBILITY IDEOGRAPH-FA68
+FA69;;;CJK COMPATIBILITY IDEOGRAPH-FA69
+FA6A;;;CJK COMPATIBILITY IDEOGRAPH-FA6A
+#
+FA70;;;CJK COMPATIBILITY IDEOGRAPH-FA70
+FA71;;;CJK COMPATIBILITY IDEOGRAPH-FA71
+FA72;;;CJK COMPATIBILITY IDEOGRAPH-FA72
+FA73;;;CJK COMPATIBILITY IDEOGRAPH-FA73
+FA74;;;CJK COMPATIBILITY IDEOGRAPH-FA74
+FA75;;;CJK COMPATIBILITY IDEOGRAPH-FA75
+FA76;;;CJK COMPATIBILITY IDEOGRAPH-FA76
+FA77;;;CJK COMPATIBILITY IDEOGRAPH-FA77
+FA78;;;CJK COMPATIBILITY IDEOGRAPH-FA78
+FA79;;;CJK COMPATIBILITY IDEOGRAPH-FA79
+FA7A;;;CJK COMPATIBILITY IDEOGRAPH-FA7A
+FA7B;;;CJK COMPATIBILITY IDEOGRAPH-FA7B
+FA7C;;;CJK COMPATIBILITY IDEOGRAPH-FA7C
+FA7D;;;CJK COMPATIBILITY IDEOGRAPH-FA7D
+FA7E;;;CJK COMPATIBILITY IDEOGRAPH-FA7E
+FA7F;;;CJK COMPATIBILITY IDEOGRAPH-FA7F
+#
+FA80;;;CJK COMPATIBILITY IDEOGRAPH-FA80
+FA81;;;CJK COMPATIBILITY IDEOGRAPH-FA81
+FA82;;;CJK COMPATIBILITY IDEOGRAPH-FA82
+FA83;;;CJK COMPATIBILITY IDEOGRAPH-FA83
+FA84;;;CJK COMPATIBILITY IDEOGRAPH-FA84
+FA85;;;CJK COMPATIBILITY IDEOGRAPH-FA85
+FA86;;;CJK COMPATIBILITY IDEOGRAPH-FA86
+FA87;;;CJK COMPATIBILITY IDEOGRAPH-FA87
+FA88;;;CJK COMPATIBILITY IDEOGRAPH-FA88
+FA89;;;CJK COMPATIBILITY IDEOGRAPH-FA89
+FA8A;;;CJK COMPATIBILITY IDEOGRAPH-FA8A
+FA8B;;;CJK COMPATIBILITY IDEOGRAPH-FA8B
+FA8C;;;CJK COMPATIBILITY IDEOGRAPH-FA8C
+FA8D;;;CJK COMPATIBILITY IDEOGRAPH-FA8D
+FA8E;;;CJK COMPATIBILITY IDEOGRAPH-FA8E
+FA8F;;;CJK COMPATIBILITY IDEOGRAPH-FA8F
+#
+FA90;;;CJK COMPATIBILITY IDEOGRAPH-FA90
+FA91;;;CJK COMPATIBILITY IDEOGRAPH-FA91
+FA92;;;CJK COMPATIBILITY IDEOGRAPH-FA92
+FA93;;;CJK COMPATIBILITY IDEOGRAPH-FA93
+FA94;;;CJK COMPATIBILITY IDEOGRAPH-FA94
+FA95;;;CJK COMPATIBILITY IDEOGRAPH-FA95
+FA96;;;CJK COMPATIBILITY IDEOGRAPH-FA96
+FA97;;;CJK COMPATIBILITY IDEOGRAPH-FA97
+FA98;;;CJK COMPATIBILITY IDEOGRAPH-FA98
+FA99;;;CJK COMPATIBILITY IDEOGRAPH-FA99
+FA9A;;;CJK COMPATIBILITY IDEOGRAPH-FA9A
+FA9B;;;CJK COMPATIBILITY IDEOGRAPH-FA9B
+FA9C;;;CJK COMPATIBILITY IDEOGRAPH-FA9C
+FA9D;;;CJK COMPATIBILITY IDEOGRAPH-FA9D
+FA9E;;;CJK COMPATIBILITY IDEOGRAPH-FA9E
+FA9F;;;CJK COMPATIBILITY IDEOGRAPH-FA9F
+#
+FAA0;;;CJK COMPATIBILITY IDEOGRAPH-FAA0
+FAA1;;;CJK COMPATIBILITY IDEOGRAPH-FAA1
+FAA2;;;CJK COMPATIBILITY IDEOGRAPH-FAA2
+FAA3;;;CJK COMPATIBILITY IDEOGRAPH-FAA3
+FAA4;;;CJK COMPATIBILITY IDEOGRAPH-FAA4
+FAA5;;;CJK COMPATIBILITY IDEOGRAPH-FAA5
+FAA6;;;CJK COMPATIBILITY IDEOGRAPH-FAA6
+FAA7;;;CJK COMPATIBILITY IDEOGRAPH-FAA7
+FAA8;;;CJK COMPATIBILITY IDEOGRAPH-FAA8
+FAA9;;;CJK COMPATIBILITY IDEOGRAPH-FAA9
+FAAA;;;CJK COMPATIBILITY IDEOGRAPH-FAAA
+FAAB;;;CJK COMPATIBILITY IDEOGRAPH-FAAB
+FAAC;;;CJK COMPATIBILITY IDEOGRAPH-FAAC
+FAAD;;;CJK COMPATIBILITY IDEOGRAPH-FAAD
+FAAE;;;CJK COMPATIBILITY IDEOGRAPH-FAAE
+FAAF;;;CJK COMPATIBILITY IDEOGRAPH-FAAF
+#
+FAB0;;;CJK COMPATIBILITY IDEOGRAPH-FAB0
+FAB1;;;CJK COMPATIBILITY IDEOGRAPH-FAB1
+FAB2;;;CJK COMPATIBILITY IDEOGRAPH-FAB2
+FAB3;;;CJK COMPATIBILITY IDEOGRAPH-FAB3
+FAB4;;;CJK COMPATIBILITY IDEOGRAPH-FAB4
+FAB5;;;CJK COMPATIBILITY IDEOGRAPH-FAB5
+FAB6;;;CJK COMPATIBILITY IDEOGRAPH-FAB6
+FAB7;;;CJK COMPATIBILITY IDEOGRAPH-FAB7
+FAB8;;;CJK COMPATIBILITY IDEOGRAPH-FAB8
+FAB9;;;CJK COMPATIBILITY IDEOGRAPH-FAB9
+FABA;;;CJK COMPATIBILITY IDEOGRAPH-FABA
+FABB;;;CJK COMPATIBILITY IDEOGRAPH-FABB
+FABC;;;CJK COMPATIBILITY IDEOGRAPH-FABC
+FABD;;;CJK COMPATIBILITY IDEOGRAPH-FABD
+FABE;;;CJK COMPATIBILITY IDEOGRAPH-FABE
+FABF;;;CJK COMPATIBILITY IDEOGRAPH-FABF
+#
+FAC0;;;CJK COMPATIBILITY IDEOGRAPH-FAC0
+FAC1;;;CJK COMPATIBILITY IDEOGRAPH-FAC1
+FAC2;;;CJK COMPATIBILITY IDEOGRAPH-FAC2
+FAC3;;;CJK COMPATIBILITY IDEOGRAPH-FAC3
+FAC4;;;CJK COMPATIBILITY IDEOGRAPH-FAC4
+FAC5;;;CJK COMPATIBILITY IDEOGRAPH-FAC5
+FAC6;;;CJK COMPATIBILITY IDEOGRAPH-FAC6
+FAC7;;;CJK COMPATIBILITY IDEOGRAPH-FAC7
+FAC8;;;CJK COMPATIBILITY IDEOGRAPH-FAC8
+FAC9;;;CJK COMPATIBILITY IDEOGRAPH-FAC9
+FACA;;;CJK COMPATIBILITY IDEOGRAPH-FACA
+FACB;;;CJK COMPATIBILITY IDEOGRAPH-FACB
+FACC;;;CJK COMPATIBILITY IDEOGRAPH-FACC
+FACD;;;CJK COMPATIBILITY IDEOGRAPH-FACD
+FACE;;;CJK COMPATIBILITY IDEOGRAPH-FACE
+FACF;;;CJK COMPATIBILITY IDEOGRAPH-FACF
+#
+FAD0;;;CJK COMPATIBILITY IDEOGRAPH-FAD0
+FAD1;;;CJK COMPATIBILITY IDEOGRAPH-FAD1
+FAD2;;;CJK COMPATIBILITY IDEOGRAPH-FAD2
+FAD3;;;CJK COMPATIBILITY IDEOGRAPH-FAD3
+FAD4;;;CJK COMPATIBILITY IDEOGRAPH-FAD4
+FAD5;;;CJK COMPATIBILITY IDEOGRAPH-FAD5
+FAD6;;;CJK COMPATIBILITY IDEOGRAPH-FAD6
+FAD7;;;CJK COMPATIBILITY IDEOGRAPH-FAD7
+FAD8;;;CJK COMPATIBILITY IDEOGRAPH-FAD8
+FAD9;;;CJK COMPATIBILITY IDEOGRAPH-FAD9
+#
+# Alphabetic Presentation Forms
+#
+FB00;;ffligature;LATIN SMALL LIGATURE FF
+FB01;;filigature;LATIN SMALL LIGATURE FI
+FB02;;flligature;LATIN SMALL LIGATURE FL
+FB03;;ffiligature;LATIN SMALL LIGATURE FFI
+FB04;;fflligature;LATIN SMALL LIGATURE FFL
+FB05;;;LATIN SMALL LIGATURE LONG S T
+FB06;;stligature;LATIN SMALL LIGATURE ST
+FB13;;;ARMENIAN SMALL LIGATURE MEN NOW
+FB14;;;ARMENIAN SMALL LIGATURE MEN ECH
+FB15;;;ARMENIAN SMALL LIGATURE MEN INI
+FB16;;;ARMENIAN SMALL LIGATURE VEW NOW
+FB17;;;ARMENIAN SMALL LIGATURE MEN XEH
+FB1D;;;HEBREW LETTER YOD WITH HIRIQ
+FB1E;;;HEBREW POINT JUDEO-SPANISH VARIKA
+FB1F;;;HEBREW LIGATURE YIDDISH YOD YOD PATAH
+#
+FB20;;;HEBREW LETTER ALTERNATIVE AYIN
+FB21;;;HEBREW LETTER WIDE ALEF
+FB22;;;HEBREW LETTER WIDE DALET
+FB23;;;HEBREW LETTER WIDE HE
+FB24;;;HEBREW LETTER WIDE KAF
+FB25;;;HEBREW LETTER WIDE LAMED
+FB26;;;HEBREW LETTER WIDE FINAL MEM
+FB27;;;HEBREW LETTER WIDE RESH
+FB28;;;HEBREW LETTER WIDE TAV
+FB29;;;HEBREW LETTER ALTERNATIVE PLUS SIGN
+FB2A;;;HEBREW LETTER SHIN WITH SHIN DOT
+FB2B;;;HEBREW LETTER SHIN WITH SIN DOT
+FB2C;;;HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
+FB2D;;;HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
+FB2E;;;HEBREW LETTER ALEF WITH PATAH
+FB2F;;;HEBREW LETTER ALEF WITH QAMATS
+#
+FB30;;;HEBREW LETTER ALEF WITH MAPIQ
+FB31;;;HEBREW LETTER BET WITH DAGESH
+FB32;;;HEBREW LETTER GIMEL WITH DAGESH
+FB33;;;HEBREW LETTER DALET WITH DAGESH
+FB34;;;HEBREW LETTER HE WITH MAPIQ
+FB35;;;HEBREW LETTER VAV WITH DAGESH
+FB36;;;HEBREW LETTER ZAYIN WITH DAGESH
+FB38;;;HEBREW LETTER TET WITH DAGESH
+FB39;;;HEBREW LETTER YOD WITH DAGESH
+FB3A;;;HEBREW LETTER FINAL KAF WITH DAGESH
+FB3B;;;HEBREW LETTER KAF WITH DAGESH
+FB3C;;;HEBREW LETTER LAMED WITH DAGESH
+FB3E;;;HEBREW LETTER MEM WITH DAGESH
+#
+FB40;;;HEBREW LETTER NUN WITH DAGESH
+FB41;;;HEBREW LETTER SAMEKH WITH DAGESH
+FB43;;;HEBREW LETTER FINAL PE WITH DAGESH
+FB44;;;HEBREW LETTER PE WITH DAGESH
+FB46;;;HEBREW LETTER TSADI WITH DAGESH
+FB47;;;HEBREW LETTER QOF WITH DAGESH
+FB48;;;HEBREW LETTER RESH WITH DAGESH
+FB49;;;HEBREW LETTER SHIN WITH DAGESH
+FB4A;;;HEBREW LETTER TAV WITH DAGESH
+FB4B;;;HEBREW LETTER VAV WITH HOLAM
+FB4C;;;HEBREW LETTER BET WITH RAFE
+FB4D;;;HEBREW LETTER KAF WITH RAFE
+FB4E;;;HEBREW LETTER PE WITH RAFE
+FB4F;;;HEBREW LIGATURE ALEF LAMED
+#
+# Arabic Presentation Forms-A
+#
+FB50;;;ARABIC LETTER ALEF WASLA ISOLATED FORM
+FB51;;;ARABIC LETTER ALEF WASLA FINAL FORM
+FB52;;;ARABIC LETTER BEEH ISOLATED FORM
+FB53;;;ARABIC LETTER BEEH FINAL FORM
+FB54;;;ARABIC LETTER BEEH INITIAL FORM
+FB55;;;ARABIC LETTER BEEH MEDIAL FORM
+FB56;;;ARABIC LETTER PEH ISOLATED FORM
+FB57;;;ARABIC LETTER PEH FINAL FORM
+FB58;;;ARABIC LETTER PEH INITIAL FORM
+FB59;;;ARABIC LETTER PEH MEDIAL FORM
+FB5A;;;ARABIC LETTER BEHEH ISOLATED FORM
+FB5B;;;ARABIC LETTER BEHEH FINAL FORM
+FB5C;;;ARABIC LETTER BEHEH INITIAL FORM
+FB5D;;;ARABIC LETTER BEHEH MEDIAL FORM
+FB5E;;;ARABIC LETTER TTEHEH ISOLATED FORM
+FB5F;;;ARABIC LETTER TTEHEH FINAL FORM
+#
+FB60;;;ARABIC LETTER TTEHEH INITIAL FORM
+FB61;;;ARABIC LETTER TTEHEH MEDIAL FORM
+FB62;;;ARABIC LETTER TEHEH ISOLATED FORM
+FB63;;;ARABIC LETTER TEHEH FINAL FORM
+FB64;;;ARABIC LETTER TEHEH INITIAL FORM
+FB65;;;ARABIC LETTER TEHEH MEDIAL FORM
+FB66;;;ARABIC LETTER TTEH ISOLATED FORM
+FB67;;;ARABIC LETTER TTEH FINAL FORM
+FB68;;;ARABIC LETTER TTEH INITIAL FORM
+FB69;;;ARABIC LETTER TTEH MEDIAL FORM
+FB6A;;;ARABIC LETTER VEH ISOLATED FORM
+FB6B;;;ARABIC LETTER VEH FINAL FORM
+FB6C;;;ARABIC LETTER VEH INITIAL FORM
+FB6D;;;ARABIC LETTER VEH MEDIAL FORM
+FB6E;;;ARABIC LETTER PEHEH ISOLATED FORM
+FB6F;;;ARABIC LETTER PEHEH FINAL FORM
+#
+FB70;;;ARABIC LETTER PEHEH INITIAL FORM
+FB71;;;ARABIC LETTER PEHEH MEDIAL FORM
+FB72;;;ARABIC LETTER DYEH ISOLATED FORM
+FB73;;;ARABIC LETTER DYEH FINAL FORM
+FB74;;;ARABIC LETTER DYEH INITIAL FORM
+FB75;;;ARABIC LETTER DYEH MEDIAL FORM
+FB76;;;ARABIC LETTER NYEH ISOLATED FORM
+FB77;;;ARABIC LETTER NYEH FINAL FORM
+FB78;;;ARABIC LETTER NYEH INITIAL FORM
+FB79;;;ARABIC LETTER NYEH MEDIAL FORM
+FB7A;;;ARABIC LETTER TCHEH ISOLATED FORM
+FB7B;;;ARABIC LETTER TCHEH FINAL FORM
+FB7C;;;ARABIC LETTER TCHEH INITIAL FORM
+FB7D;;;ARABIC LETTER TCHEH MEDIAL FORM
+FB7E;;;ARABIC LETTER TCHEHEH ISOLATED FORM
+FB7F;;;ARABIC LETTER TCHEHEH FINAL FORM
+#
+FB80;;;ARABIC LETTER TCHEHEH INITIAL FORM
+FB81;;;ARABIC LETTER TCHEHEH MEDIAL FORM
+FB82;;;ARABIC LETTER DDAHAL ISOLATED FORM
+FB83;;;ARABIC LETTER DDAHAL FINAL FORM
+FB84;;;ARABIC LETTER DAHAL ISOLATED FORM
+FB85;;;ARABIC LETTER DAHAL FINAL FORM
+FB86;;;ARABIC LETTER DUL ISOLATED FORM
+FB87;;;ARABIC LETTER DUL FINAL FORM
+FB88;;;ARABIC LETTER DDAL ISOLATED FORM
+FB89;;;ARABIC LETTER DDAL FINAL FORM
+FB8A;;;ARABIC LETTER JEH ISOLATED FORM
+FB8B;;;ARABIC LETTER JEH FINAL FORM
+FB8C;;;ARABIC LETTER RREH ISOLATED FORM
+FB8D;;;ARABIC LETTER RREH FINAL FORM
+FB8E;;;ARABIC LETTER KEHEH ISOLATED FORM
+FB8F;;;ARABIC LETTER KEHEH FINAL FORM
+#
+FB90;;;ARABIC LETTER KEHEH INITIAL FORM
+FB91;;;ARABIC LETTER KEHEH MEDIAL FORM
+FB92;;;ARABIC LETTER GAF ISOLATED FORM
+FB93;;;ARABIC LETTER GAF FINAL FORM
+FB94;;;ARABIC LETTER GAF INITIAL FORM
+FB95;;;ARABIC LETTER GAF MEDIAL FORM
+FB96;;;ARABIC LETTER GUEH ISOLATED FORM
+FB97;;;ARABIC LETTER GUEH FINAL FORM
+FB98;;;ARABIC LETTER GUEH INITIAL FORM
+FB99;;;ARABIC LETTER GUEH MEDIAL FORM
+FB9A;;;ARABIC LETTER NGOEH ISOLATED FORM
+FB9B;;;ARABIC LETTER NGOEH FINAL FORM
+FB9C;;;ARABIC LETTER NGOEH INITIAL FORM
+FB9D;;;ARABIC LETTER NGOEH MEDIAL FORM
+FB9E;;;ARABIC LETTER NOON GHUNNA ISOLATED FORM
+FB9F;;;ARABIC LETTER NOON GHUNNA FINAL FORM
+#
+FBA0;;;ARABIC LETTER RNOON ISOLATED FORM
+FBA1;;;ARABIC LETTER RNOON FINAL FORM
+FBA2;;;ARABIC LETTER RNOON INITIAL FORM
+FBA3;;;ARABIC LETTER RNOON MEDIAL FORM
+FBA4;;;ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM
+FBA5;;;ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM
+FBA6;;;ARABIC LETTER HEH GOAL ISOLATED FORM
+FBA7;;;ARABIC LETTER HEH GOAL FINAL FORM
+FBA8;;;ARABIC LETTER HEH GOAL INITIAL FORM
+FBA9;;;ARABIC LETTER HEH GOAL MEDIAL FORM
+FBAA;;;ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
+FBAB;;;ARABIC LETTER HEH DOACHASHMEE FINAL FORM
+FBAC;;;ARABIC LETTER HEH DOACHASHMEE INITIAL FORM
+FBAD;;;ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM
+FBAE;;;ARABIC LETTER YEH BARREE ISOLATED FORM
+FBAF;;;ARABIC LETTER YEH BARREE FINAL FORM
+#
+FBB0;;;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
+FBB1;;;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+FBD3;;;ARABIC LETTER NG ISOLATED FORM
+FBD4;;;ARABIC LETTER NG FINAL FORM
+FBD5;;;ARABIC LETTER NG INITIAL FORM
+FBD6;;;ARABIC LETTER NG MEDIAL FORM
+FBD7;;;ARABIC LETTER U ISOLATED FORM
+FBD8;;;ARABIC LETTER U FINAL FORM
+FBD9;;;ARABIC LETTER OE ISOLATED FORM
+FBDA;;;ARABIC LETTER OE FINAL FORM
+FBDB;;;ARABIC LETTER YU ISOLATED FORM
+FBDC;;;ARABIC LETTER YU FINAL FORM
+FBDD;;;ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM
+FBDE;;;ARABIC LETTER VE ISOLATED FORM
+FBDF;;;ARABIC LETTER VE FINAL FORM
+#
+FBE0;;;ARABIC LETTER KIRGHIZ OE ISOLATED FORM
+FBE1;;;ARABIC LETTER KIRGHIZ OE FINAL FORM
+FBE2;;;ARABIC LETTER KIRGHIZ YU ISOLATED FORM
+FBE3;;;ARABIC LETTER KIRGHIZ YU FINAL FORM
+FBE4;;;ARABIC LETTER E ISOLATED FORM
+FBE5;;;ARABIC LETTER E FINAL FORM
+FBE6;;;ARABIC LETTER E INITIAL FORM
+FBE7;;;ARABIC LETTER E MEDIAL FORM
+FBE8;;;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM
+FBE9;;;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
+FBEA;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM
+FBEB;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM
+FBEC;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM
+FBED;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM
+FBEE;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM
+FBEF;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM
+#
+FBF0;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM
+FBF1;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM
+FBF2;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM
+FBF3;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM
+FBF4;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM
+FBF5;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM
+FBF6;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM
+FBF7;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM
+FBF8;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM
+FBF9;;;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
+FBFA;;;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
+FBFB;;;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM
+FBFC;;;ARABIC LETTER FARSI YEH ISOLATED FORM
+FBFD;;;ARABIC LETTER FARSI YEH FINAL FORM
+FBFE;;;ARABIC LETTER FARSI YEH INITIAL FORM
+FBFF;;;ARABIC LETTER FARSI YEH MEDIAL FORM
+#
+FC00;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM
+FC01;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM
+FC02;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM
+FC03;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
+FC04;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM
+FC05;;;ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM
+FC06;;;ARABIC LIGATURE BEH WITH HAH ISOLATED FORM
+FC07;;;ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM
+FC08;;;ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM
+FC09;;;ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM
+FC0A;;;ARABIC LIGATURE BEH WITH YEH ISOLATED FORM
+FC0B;;;ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM
+FC0C;;;ARABIC LIGATURE TEH WITH HAH ISOLATED FORM
+FC0D;;;ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM
+FC0E;;;ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM
+FC0F;;;ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM
+#
+FC10;;;ARABIC LIGATURE TEH WITH YEH ISOLATED FORM
+FC11;;;ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM
+FC12;;;ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM
+FC13;;;ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM
+FC14;;;ARABIC LIGATURE THEH WITH YEH ISOLATED FORM
+FC15;;;ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM
+FC16;;;ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM
+FC17;;;ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM
+FC18;;;ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM
+FC19;;;ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM
+FC1A;;;ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM
+FC1B;;;ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM
+FC1C;;;ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM
+FC1D;;;ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM
+FC1E;;;ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM
+FC1F;;;ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM
+#
+FC20;;;ARABIC LIGATURE SAD WITH HAH ISOLATED FORM
+FC21;;;ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM
+FC22;;;ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM
+FC23;;;ARABIC LIGATURE DAD WITH HAH ISOLATED FORM
+FC24;;;ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM
+FC25;;;ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM
+FC26;;;ARABIC LIGATURE TAH WITH HAH ISOLATED FORM
+FC27;;;ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM
+FC28;;;ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM
+FC29;;;ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM
+FC2A;;;ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM
+FC2B;;;ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM
+FC2C;;;ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM
+FC2D;;;ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM
+FC2E;;;ARABIC LIGATURE FEH WITH HAH ISOLATED FORM
+FC2F;;;ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM
+#
+FC30;;;ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM
+FC31;;;ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM
+FC32;;;ARABIC LIGATURE FEH WITH YEH ISOLATED FORM
+FC33;;;ARABIC LIGATURE QAF WITH HAH ISOLATED FORM
+FC34;;;ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM
+FC35;;;ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM
+FC36;;;ARABIC LIGATURE QAF WITH YEH ISOLATED FORM
+FC37;;;ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM
+FC38;;;ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM
+FC39;;;ARABIC LIGATURE KAF WITH HAH ISOLATED FORM
+FC3A;;;ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM
+FC3B;;;ARABIC LIGATURE KAF WITH LAM ISOLATED FORM
+FC3C;;;ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM
+FC3D;;;ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM
+FC3E;;;ARABIC LIGATURE KAF WITH YEH ISOLATED FORM
+FC3F;;;ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM
+#
+FC40;;;ARABIC LIGATURE LAM WITH HAH ISOLATED FORM
+FC41;;;ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM
+FC42;;;ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM
+FC43;;;ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM
+FC44;;;ARABIC LIGATURE LAM WITH YEH ISOLATED FORM
+FC45;;;ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM
+FC46;;;ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM
+FC47;;;ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM
+FC48;;;ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM
+FC49;;;ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM
+FC4A;;;ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM
+FC4B;;;ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM
+FC4C;;;ARABIC LIGATURE NOON WITH HAH ISOLATED FORM
+FC4D;;;ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM
+FC4E;;;ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM
+FC4F;;;ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM
+#
+FC50;;;ARABIC LIGATURE NOON WITH YEH ISOLATED FORM
+FC51;;;ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM
+FC52;;;ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM
+FC53;;;ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM
+FC54;;;ARABIC LIGATURE HEH WITH YEH ISOLATED FORM
+FC55;;;ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM
+FC56;;;ARABIC LIGATURE YEH WITH HAH ISOLATED FORM
+FC57;;;ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM
+FC58;;;ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM
+FC59;;;ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM
+FC5A;;;ARABIC LIGATURE YEH WITH YEH ISOLATED FORM
+FC5B;;;ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC5C;;;ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC5D;;;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC5E;;;ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM
+FC5F;;;ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM
+#
+FC60;;;ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM
+FC61;;;ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM
+FC62;;;ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM
+FC63;;;ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC64;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM
+FC65;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM
+FC66;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM
+FC67;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM
+FC68;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
+FC69;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM
+FC6A;;;ARABIC LIGATURE BEH WITH REH FINAL FORM
+FC6B;;;ARABIC LIGATURE BEH WITH ZAIN FINAL FORM
+FC6C;;;ARABIC LIGATURE BEH WITH MEEM FINAL FORM
+FC6D;;;ARABIC LIGATURE BEH WITH NOON FINAL FORM
+FC6E;;;ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM
+FC6F;;;ARABIC LIGATURE BEH WITH YEH FINAL FORM
+#
+FC70;;;ARABIC LIGATURE TEH WITH REH FINAL FORM
+FC71;;;ARABIC LIGATURE TEH WITH ZAIN FINAL FORM
+FC72;;;ARABIC LIGATURE TEH WITH MEEM FINAL FORM
+FC73;;;ARABIC LIGATURE TEH WITH NOON FINAL FORM
+FC74;;;ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM
+FC75;;;ARABIC LIGATURE TEH WITH YEH FINAL FORM
+FC76;;;ARABIC LIGATURE THEH WITH REH FINAL FORM
+FC77;;;ARABIC LIGATURE THEH WITH ZAIN FINAL FORM
+FC78;;;ARABIC LIGATURE THEH WITH MEEM FINAL FORM
+FC79;;;ARABIC LIGATURE THEH WITH NOON FINAL FORM
+FC7A;;;ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM
+FC7B;;;ARABIC LIGATURE THEH WITH YEH FINAL FORM
+FC7C;;;ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM
+FC7D;;;ARABIC LIGATURE FEH WITH YEH FINAL FORM
+FC7E;;;ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM
+FC7F;;;ARABIC LIGATURE QAF WITH YEH FINAL FORM
+#
+FC80;;;ARABIC LIGATURE KAF WITH ALEF FINAL FORM
+FC81;;;ARABIC LIGATURE KAF WITH LAM FINAL FORM
+FC82;;;ARABIC LIGATURE KAF WITH MEEM FINAL FORM
+FC83;;;ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM
+FC84;;;ARABIC LIGATURE KAF WITH YEH FINAL FORM
+FC85;;;ARABIC LIGATURE LAM WITH MEEM FINAL FORM
+FC86;;;ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM
+FC87;;;ARABIC LIGATURE LAM WITH YEH FINAL FORM
+FC88;;;ARABIC LIGATURE MEEM WITH ALEF FINAL FORM
+FC89;;;ARABIC LIGATURE MEEM WITH MEEM FINAL FORM
+FC8A;;;ARABIC LIGATURE NOON WITH REH FINAL FORM
+FC8B;;;ARABIC LIGATURE NOON WITH ZAIN FINAL FORM
+FC8C;;;ARABIC LIGATURE NOON WITH MEEM FINAL FORM
+FC8D;;;ARABIC LIGATURE NOON WITH NOON FINAL FORM
+FC8E;;;ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM
+FC8F;;;ARABIC LIGATURE NOON WITH YEH FINAL FORM
+#
+FC90;;;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
+FC91;;;ARABIC LIGATURE YEH WITH REH FINAL FORM
+FC92;;;ARABIC LIGATURE YEH WITH ZAIN FINAL FORM
+FC93;;;ARABIC LIGATURE YEH WITH MEEM FINAL FORM
+FC94;;;ARABIC LIGATURE YEH WITH NOON FINAL FORM
+FC95;;;ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM
+FC96;;;ARABIC LIGATURE YEH WITH YEH FINAL FORM
+FC97;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM
+FC98;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM
+FC99;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM
+FC9A;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM
+FC9B;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM
+FC9C;;;ARABIC LIGATURE BEH WITH JEEM INITIAL FORM
+FC9D;;;ARABIC LIGATURE BEH WITH HAH INITIAL FORM
+FC9E;;;ARABIC LIGATURE BEH WITH KHAH INITIAL FORM
+FC9F;;;ARABIC LIGATURE BEH WITH MEEM INITIAL FORM
+#
+FCA0;;;ARABIC LIGATURE BEH WITH HEH INITIAL FORM
+FCA1;;;ARABIC LIGATURE TEH WITH JEEM INITIAL FORM
+FCA2;;;ARABIC LIGATURE TEH WITH HAH INITIAL FORM
+FCA3;;;ARABIC LIGATURE TEH WITH KHAH INITIAL FORM
+FCA4;;;ARABIC LIGATURE TEH WITH MEEM INITIAL FORM
+FCA5;;;ARABIC LIGATURE TEH WITH HEH INITIAL FORM
+FCA6;;;ARABIC LIGATURE THEH WITH MEEM INITIAL FORM
+FCA7;;;ARABIC LIGATURE JEEM WITH HAH INITIAL FORM
+FCA8;;;ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM
+FCA9;;;ARABIC LIGATURE HAH WITH JEEM INITIAL FORM
+FCAA;;;ARABIC LIGATURE HAH WITH MEEM INITIAL FORM
+FCAB;;;ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM
+FCAC;;;ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM
+FCAD;;;ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM
+FCAE;;;ARABIC LIGATURE SEEN WITH HAH INITIAL FORM
+FCAF;;;ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM
+#
+FCB0;;;ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM
+FCB1;;;ARABIC LIGATURE SAD WITH HAH INITIAL FORM
+FCB2;;;ARABIC LIGATURE SAD WITH KHAH INITIAL FORM
+FCB3;;;ARABIC LIGATURE SAD WITH MEEM INITIAL FORM
+FCB4;;;ARABIC LIGATURE DAD WITH JEEM INITIAL FORM
+FCB5;;;ARABIC LIGATURE DAD WITH HAH INITIAL FORM
+FCB6;;;ARABIC LIGATURE DAD WITH KHAH INITIAL FORM
+FCB7;;;ARABIC LIGATURE DAD WITH MEEM INITIAL FORM
+FCB8;;;ARABIC LIGATURE TAH WITH HAH INITIAL FORM
+FCB9;;;ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM
+FCBA;;;ARABIC LIGATURE AIN WITH JEEM INITIAL FORM
+FCBB;;;ARABIC LIGATURE AIN WITH MEEM INITIAL FORM
+FCBC;;;ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM
+FCBD;;;ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM
+FCBE;;;ARABIC LIGATURE FEH WITH JEEM INITIAL FORM
+FCBF;;;ARABIC LIGATURE FEH WITH HAH INITIAL FORM
+#
+FCC0;;;ARABIC LIGATURE FEH WITH KHAH INITIAL FORM
+FCC1;;;ARABIC LIGATURE FEH WITH MEEM INITIAL FORM
+FCC2;;;ARABIC LIGATURE QAF WITH HAH INITIAL FORM
+FCC3;;;ARABIC LIGATURE QAF WITH MEEM INITIAL FORM
+FCC4;;;ARABIC LIGATURE KAF WITH JEEM INITIAL FORM
+FCC5;;;ARABIC LIGATURE KAF WITH HAH INITIAL FORM
+FCC6;;;ARABIC LIGATURE KAF WITH KHAH INITIAL FORM
+FCC7;;;ARABIC LIGATURE KAF WITH LAM INITIAL FORM
+FCC8;;;ARABIC LIGATURE KAF WITH MEEM INITIAL FORM
+FCC9;;;ARABIC LIGATURE LAM WITH JEEM INITIAL FORM
+FCCA;;;ARABIC LIGATURE LAM WITH HAH INITIAL FORM
+FCCB;;;ARABIC LIGATURE LAM WITH KHAH INITIAL FORM
+FCCC;;;ARABIC LIGATURE LAM WITH MEEM INITIAL FORM
+FCCD;;;ARABIC LIGATURE LAM WITH HEH INITIAL FORM
+FCCE;;;ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM
+FCCF;;;ARABIC LIGATURE MEEM WITH HAH INITIAL FORM
+#
+FCD0;;;ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM
+FCD1;;;ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM
+FCD2;;;ARABIC LIGATURE NOON WITH JEEM INITIAL FORM
+FCD3;;;ARABIC LIGATURE NOON WITH HAH INITIAL FORM
+FCD4;;;ARABIC LIGATURE NOON WITH KHAH INITIAL FORM
+FCD5;;;ARABIC LIGATURE NOON WITH MEEM INITIAL FORM
+FCD6;;;ARABIC LIGATURE NOON WITH HEH INITIAL FORM
+FCD7;;;ARABIC LIGATURE HEH WITH JEEM INITIAL FORM
+FCD8;;;ARABIC LIGATURE HEH WITH MEEM INITIAL FORM
+FCD9;;;ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM
+FCDA;;;ARABIC LIGATURE YEH WITH JEEM INITIAL FORM
+FCDB;;;ARABIC LIGATURE YEH WITH HAH INITIAL FORM
+FCDC;;;ARABIC LIGATURE YEH WITH KHAH INITIAL FORM
+FCDD;;;ARABIC LIGATURE YEH WITH MEEM INITIAL FORM
+FCDE;;;ARABIC LIGATURE YEH WITH HEH INITIAL FORM
+FCDF;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM
+#
+FCE0;;;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM
+FCE1;;;ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM
+FCE2;;;ARABIC LIGATURE BEH WITH HEH MEDIAL FORM
+FCE3;;;ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM
+FCE4;;;ARABIC LIGATURE TEH WITH HEH MEDIAL FORM
+FCE5;;;ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM
+FCE6;;;ARABIC LIGATURE THEH WITH HEH MEDIAL FORM
+FCE7;;;ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM
+FCE8;;;ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM
+FCE9;;;ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM
+FCEA;;;ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM
+FCEB;;;ARABIC LIGATURE KAF WITH LAM MEDIAL FORM
+FCEC;;;ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM
+FCED;;;ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM
+FCEE;;;ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM
+FCEF;;;ARABIC LIGATURE NOON WITH HEH MEDIAL FORM
+#
+FCF0;;;ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM
+FCF1;;;ARABIC LIGATURE YEH WITH HEH MEDIAL FORM
+FCF2;;;ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM
+FCF3;;;ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM
+FCF4;;;ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM
+FCF5;;;ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM
+FCF6;;;ARABIC LIGATURE TAH WITH YEH ISOLATED FORM
+FCF7;;;ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM
+FCF8;;;ARABIC LIGATURE AIN WITH YEH ISOLATED FORM
+FCF9;;;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM
+FCFA;;;ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM
+FCFB;;;ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM
+FCFC;;;ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM
+FCFD;;;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM
+FCFE;;;ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM
+FCFF;;;ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM
+#
+FD00;;;ARABIC LIGATURE HAH WITH YEH ISOLATED FORM
+FD01;;;ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM
+FD02;;;ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM
+FD03;;;ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM
+FD04;;;ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM
+FD05;;;ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM
+FD06;;;ARABIC LIGATURE SAD WITH YEH ISOLATED FORM
+FD07;;;ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM
+FD08;;;ARABIC LIGATURE DAD WITH YEH ISOLATED FORM
+FD09;;;ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM
+FD0A;;;ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM
+FD0B;;;ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM
+FD0C;;;ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM
+FD0D;;;ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM
+FD0E;;;ARABIC LIGATURE SEEN WITH REH ISOLATED FORM
+FD0F;;;ARABIC LIGATURE SAD WITH REH ISOLATED FORM
+#
+FD10;;;ARABIC LIGATURE DAD WITH REH ISOLATED FORM
+FD11;;;ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM
+FD12;;;ARABIC LIGATURE TAH WITH YEH FINAL FORM
+FD13;;;ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM
+FD14;;;ARABIC LIGATURE AIN WITH YEH FINAL FORM
+FD15;;;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM
+FD16;;;ARABIC LIGATURE GHAIN WITH YEH FINAL FORM
+FD17;;;ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM
+FD18;;;ARABIC LIGATURE SEEN WITH YEH FINAL FORM
+FD19;;;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM
+FD1A;;;ARABIC LIGATURE SHEEN WITH YEH FINAL FORM
+FD1B;;;ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM
+FD1C;;;ARABIC LIGATURE HAH WITH YEH FINAL FORM
+FD1D;;;ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM
+FD1E;;;ARABIC LIGATURE JEEM WITH YEH FINAL FORM
+FD1F;;;ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM
+#
+FD20;;;ARABIC LIGATURE KHAH WITH YEH FINAL FORM
+FD21;;;ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM
+FD22;;;ARABIC LIGATURE SAD WITH YEH FINAL FORM
+FD23;;;ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM
+FD24;;;ARABIC LIGATURE DAD WITH YEH FINAL FORM
+FD25;;;ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM
+FD26;;;ARABIC LIGATURE SHEEN WITH HAH FINAL FORM
+FD27;;;ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM
+FD28;;;ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM
+FD29;;;ARABIC LIGATURE SHEEN WITH REH FINAL FORM
+FD2A;;;ARABIC LIGATURE SEEN WITH REH FINAL FORM
+FD2B;;;ARABIC LIGATURE SAD WITH REH FINAL FORM
+FD2C;;;ARABIC LIGATURE DAD WITH REH FINAL FORM
+FD2D;;;ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM
+FD2E;;;ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM
+FD2F;;;ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM
+#
+FD30;;;ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM
+FD31;;;ARABIC LIGATURE SEEN WITH HEH INITIAL FORM
+FD32;;;ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM
+FD33;;;ARABIC LIGATURE TAH WITH MEEM INITIAL FORM
+FD34;;;ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM
+FD35;;;ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM
+FD36;;;ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM
+FD37;;;ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM
+FD38;;;ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM
+FD39;;;ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM
+FD3A;;;ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM
+FD3B;;;ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM
+FD3C;;;ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM
+FD3D;;;ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+FD3E;;;ORNATE LEFT PARENTHESIS
+FD3F;;;ORNATE RIGHT PARENTHESIS
+#
+FD50;;;ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM
+FD51;;;ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM
+FD52;;;ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM
+FD53;;;ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM
+FD54;;;ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM
+FD55;;;ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM
+FD56;;;ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM
+FD57;;;ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM
+FD58;;;ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM
+FD59;;;ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM
+FD5A;;;ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM
+FD5B;;;ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD5C;;;ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM
+FD5D;;;ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM
+FD5E;;;ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FD5F;;;ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM
+#
+FD60;;;ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM
+FD61;;;ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM
+FD62;;;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM
+FD63;;;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM
+FD64;;;ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM
+FD65;;;ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM
+FD66;;;ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM
+FD67;;;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM
+FD68;;;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM
+FD69;;;ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM
+FD6A;;;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM
+FD6B;;;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM
+FD6C;;;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM
+FD6D;;;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM
+FD6E;;;ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD6F;;;ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM
+#
+FD70;;;ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM
+FD71;;;ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM
+FD72;;;ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM
+FD73;;;ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM
+FD74;;;ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM
+FD75;;;ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM
+FD76;;;ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM
+FD77;;;ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM
+FD78;;;ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD79;;;ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM
+FD7A;;;ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM
+FD7B;;;ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD7C;;;ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM
+FD7D;;;ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM
+FD7E;;;ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM
+FD7F;;;ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM
+#
+FD80;;;ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM
+FD81;;;ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM
+FD82;;;ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD83;;;ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM
+FD84;;;ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM
+FD85;;;ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM
+FD86;;;ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM
+FD87;;;ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM
+FD88;;;ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM
+FD89;;;ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM
+FD8A;;;ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM
+FD8B;;;ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM
+FD8C;;;ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM
+FD8D;;;ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM
+FD8E;;;ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM
+FD8F;;;ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD92;;;ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM
+FD93;;;ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM
+FD94;;;ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM
+FD95;;;ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM
+FD96;;;ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD97;;;ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM
+FD98;;;ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM
+FD99;;;ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FD9A;;;ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM
+FD9B;;;ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD9C;;;ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM
+FD9D;;;ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM
+FD9E;;;ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM
+FD9F;;;ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM
+#
+FDA0;;;ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FDA1;;;ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM
+FDA2;;;ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM
+FDA3;;;ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM
+FDA4;;;ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FDA5;;;ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM
+FDA6;;;ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM
+FDA7;;;ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FDA8;;;ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM
+FDA9;;;ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM
+FDAA;;;ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM
+FDAB;;;ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM
+FDAC;;;ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM
+FDAD;;;ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM
+FDAE;;;ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM
+FDAF;;;ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM
+#
+FDB0;;;ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM
+FDB1;;;ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM
+FDB2;;;ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM
+FDB3;;;ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM
+FDB4;;;ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM
+FDB5;;;ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM
+FDB6;;;ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM
+FDB7;;;ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM
+FDB8;;;ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM
+FDB9;;;ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM
+FDBA;;;ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM
+FDBB;;;ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM
+FDBC;;;ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM
+FDBD;;;ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM
+FDBE;;;ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM
+FDBF;;;ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM
+#
+FDC0;;;ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM
+FDC1;;;ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM
+FDC2;;;ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM
+FDC3;;;ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM
+FDC4;;;ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM
+FDC5;;;ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM
+FDC6;;;ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM
+FDC7;;;ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+#
+FDF0;;;ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM
+FDF1;;;ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM
+FDF2;;;ARABIC LIGATURE ALLAH ISOLATED FORM
+FDF3;;;ARABIC LIGATURE AKBAR ISOLATED FORM
+FDF4;;;ARABIC LIGATURE MOHAMMAD ISOLATED FORM
+FDF5;;;ARABIC LIGATURE SALAM ISOLATED FORM
+FDF6;;;ARABIC LIGATURE RASOUL ISOLATED FORM
+FDF7;;;ARABIC LIGATURE ALAYHE ISOLATED FORM
+FDF8;;;ARABIC LIGATURE WASALLAM ISOLATED FORM
+FDF9;;;ARABIC LIGATURE SALLA ISOLATED FORM
+FDFA;;;ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
+FDFB;;;ARABIC LIGATURE JALLAJALALOUHOU
+FDFC;;;RIAL SIGN
+FDFD;;;ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
+#
+# Variation Selectors
+#
+FE00;;;VARIATION SELECTOR-1
+FE01;;;VARIATION SELECTOR-2
+FE02;;;VARIATION SELECTOR-3
+FE03;;;VARIATION SELECTOR-4
+FE04;;;VARIATION SELECTOR-5
+FE05;;;VARIATION SELECTOR-6
+FE06;;;VARIATION SELECTOR-7
+FE07;;;VARIATION SELECTOR-8
+FE08;;;VARIATION SELECTOR-9
+FE09;;;VARIATION SELECTOR-10
+FE0A;;;VARIATION SELECTOR-11
+FE0B;;;VARIATION SELECTOR-12
+FE0C;;;VARIATION SELECTOR-13
+FE0D;;;VARIATION SELECTOR-14
+FE0E;;;VARIATION SELECTOR-15
+FE0F;;;VARIATION SELECTOR-16
+#
+FE10;;;PRESENTATION FORM FOR VERTICAL COMMA
+FE11;;;PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA
+FE12;;;PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
+FE13;;;PRESENTATION FORM FOR VERTICAL COLON
+FE14;;;PRESENTATION FORM FOR VERTICAL SEMICOLON
+FE15;;;PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK
+FE16;;;PRESENTATION FORM FOR VERTICAL QUESTION MARK
+FE17;;;PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
+FE18;;;PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
+FE19;;;PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+#
+# Combining Half Marks
+#
+FE20;;;COMBINING LIGATURE LEFT HALF
+FE21;;;COMBINING LIGATURE RIGHT HALF
+FE22;;;COMBINING DOUBLE TILDE LEFT HALF
+FE23;;;COMBINING DOUBLE TILDE RIGHT HALF
+#
+# CJK Compatibility Forms
+#
+FE30;;;PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+FE31;;;PRESENTATION FORM FOR VERTICAL EM DASH
+FE32;;;PRESENTATION FORM FOR VERTICAL EN DASH
+FE33;;;PRESENTATION FORM FOR VERTICAL LOW LINE
+FE34;;;PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+FE35;;;PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+FE36;;;PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+FE37;;;PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+FE38;;;PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+FE39;;;PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+FE3A;;;PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+FE3B;;;PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+FE3C;;;PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+FE3D;;;PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+FE3E;;;PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+FE3F;;;PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+#
+FE40;;;PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+FE41;;;PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+FE42;;;PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+FE43;;;PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+FE44;;;PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+FE45;;;SESAME DOT
+FE46;;;WHITE SESAME DOT
+FE47;;;PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
+FE48;;;PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
+FE49;;;DASHED OVERLINE
+FE4A;;;CENTRELINE OVERLINE
+FE4B;;;WAVY OVERLINE
+FE4C;;;DOUBLE WAVY OVERLINE
+FE4D;;;DASHED LOW LINE
+FE4E;;;CENTRELINE LOW LINE
+FE4F;;;WAVY LOW LINE
+#
+# Small Form Variants
+#
+FE50;;;SMALL COMMA
+FE51;;;SMALL IDEOGRAPHIC COMMA
+FE52;;;SMALL FULL STOP
+FE54;;;SMALL SEMICOLON
+FE55;;;SMALL COLON
+FE56;;;SMALL QUESTION MARK
+FE57;;;SMALL EXCLAMATION MARK
+FE58;;;SMALL EM DASH
+FE59;;;SMALL LEFT PARENTHESIS
+FE5A;;;SMALL RIGHT PARENTHESIS
+FE5B;;;SMALL LEFT CURLY BRACKET
+FE5C;;;SMALL RIGHT CURLY BRACKET
+FE5D;;;SMALL LEFT TORTOISE SHELL BRACKET
+FE5E;;;SMALL RIGHT TORTOISE SHELL BRACKET
+FE5F;;;SMALL NUMBER SIGN
+#
+FE60;;;SMALL AMPERSAND
+FE61;;;SMALL ASTERISK
+FE62;;;SMALL PLUS SIGN
+FE63;;;SMALL HYPHEN-MINUS
+FE64;;;SMALL LESS-THAN SIGN
+FE65;;;SMALL GREATER-THAN SIGN
+FE66;;;SMALL EQUALS SIGN
+FE68;;;SMALL REVERSE SOLIDUS
+FE69;;;SMALL DOLLAR SIGN
+FE6A;;;SMALL PERCENT SIGN
+FE6B;;;SMALL COMMERCIAL AT
+#
+# Arabic Presentation Forms-B
+#
+FE70;;;ARABIC FATHATAN ISOLATED FORM
+FE71;;;ARABIC TATWEEL WITH FATHATAN ABOVE
+FE72;;;ARABIC DAMMATAN ISOLATED FORM
+FE73;;;ARABIC TAIL FRAGMENT
+FE74;;;ARABIC KASRATAN ISOLATED FORM
+FE76;;;ARABIC FATHA ISOLATED FORM
+FE77;;;ARABIC FATHA MEDIAL FORM
+FE78;;;ARABIC DAMMA ISOLATED FORM
+FE79;;;ARABIC DAMMA MEDIAL FORM
+FE7A;;;ARABIC KASRA ISOLATED FORM
+FE7B;;;ARABIC KASRA MEDIAL FORM
+FE7C;;;ARABIC SHADDA ISOLATED FORM
+FE7D;;;ARABIC SHADDA MEDIAL FORM
+FE7E;;;ARABIC SUKUN ISOLATED FORM
+FE7F;;;ARABIC SUKUN MEDIAL FORM
+#
+FE80;;;ARABIC LETTER HAMZA ISOLATED FORM
+FE81;;;ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
+FE82;;;ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
+FE83;;;ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
+FE84;;;ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
+FE85;;;ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
+FE86;;;ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM
+FE87;;;ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM
+FE88;;;ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM
+FE89;;;ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
+FE8A;;;ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
+FE8B;;;ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
+FE8C;;;ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM
+FE8D;;;ARABIC LETTER ALEF ISOLATED FORM
+FE8E;;;ARABIC LETTER ALEF FINAL FORM
+FE8F;;;ARABIC LETTER BEH ISOLATED FORM
+#
+FE90;;;ARABIC LETTER BEH FINAL FORM
+FE91;;;ARABIC LETTER BEH INITIAL FORM
+FE92;;;ARABIC LETTER BEH MEDIAL FORM
+FE93;;;ARABIC LETTER TEH MARBUTA ISOLATED FORM
+FE94;;;ARABIC LETTER TEH MARBUTA FINAL FORM
+FE95;;;ARABIC LETTER TEH ISOLATED FORM
+FE96;;;ARABIC LETTER TEH FINAL FORM
+FE97;;;ARABIC LETTER TEH INITIAL FORM
+FE98;;;ARABIC LETTER TEH MEDIAL FORM
+FE99;;;ARABIC LETTER THEH ISOLATED FORM
+FE9A;;;ARABIC LETTER THEH FINAL FORM
+FE9B;;;ARABIC LETTER THEH INITIAL FORM
+FE9C;;;ARABIC LETTER THEH MEDIAL FORM
+FE9D;;;ARABIC LETTER JEEM ISOLATED FORM
+FE9E;;;ARABIC LETTER JEEM FINAL FORM
+FE9F;;;ARABIC LETTER JEEM INITIAL FORM
+#
+FEA0;;;ARABIC LETTER JEEM MEDIAL FORM
+FEA1;;;ARABIC LETTER HAH ISOLATED FORM
+FEA2;;;ARABIC LETTER HAH FINAL FORM
+FEA3;;;ARABIC LETTER HAH INITIAL FORM
+FEA4;;;ARABIC LETTER HAH MEDIAL FORM
+FEA5;;;ARABIC LETTER KHAH ISOLATED FORM
+FEA6;;;ARABIC LETTER KHAH FINAL FORM
+FEA7;;;ARABIC LETTER KHAH INITIAL FORM
+FEA8;;;ARABIC LETTER KHAH MEDIAL FORM
+FEA9;;;ARABIC LETTER DAL ISOLATED FORM
+FEAA;;;ARABIC LETTER DAL FINAL FORM
+FEAB;;;ARABIC LETTER THAL ISOLATED FORM
+FEAC;;;ARABIC LETTER THAL FINAL FORM
+FEAD;;;ARABIC LETTER REH ISOLATED FORM
+FEAE;;;ARABIC LETTER REH FINAL FORM
+FEAF;;;ARABIC LETTER ZAIN ISOLATED FORM
+#
+FEB0;;;ARABIC LETTER ZAIN FINAL FORM
+FEB1;;;ARABIC LETTER SEEN ISOLATED FORM
+FEB2;;;ARABIC LETTER SEEN FINAL FORM
+FEB3;;;ARABIC LETTER SEEN INITIAL FORM
+FEB4;;;ARABIC LETTER SEEN MEDIAL FORM
+FEB5;;;ARABIC LETTER SHEEN ISOLATED FORM
+FEB6;;;ARABIC LETTER SHEEN FINAL FORM
+FEB7;;;ARABIC LETTER SHEEN INITIAL FORM
+FEB8;;;ARABIC LETTER SHEEN MEDIAL FORM
+FEB9;;;ARABIC LETTER SAD ISOLATED FORM
+FEBA;;;ARABIC LETTER SAD FINAL FORM
+FEBB;;;ARABIC LETTER SAD INITIAL FORM
+FEBC;;;ARABIC LETTER SAD MEDIAL FORM
+FEBD;;;ARABIC LETTER DAD ISOLATED FORM
+FEBE;;;ARABIC LETTER DAD FINAL FORM
+FEBF;;;ARABIC LETTER DAD INITIAL FORM
+#
+FEC0;;;ARABIC LETTER DAD MEDIAL FORM
+FEC1;;;ARABIC LETTER TAH ISOLATED FORM
+FEC2;;;ARABIC LETTER TAH FINAL FORM
+FEC3;;;ARABIC LETTER TAH INITIAL FORM
+FEC4;;;ARABIC LETTER TAH MEDIAL FORM
+FEC5;;;ARABIC LETTER ZAH ISOLATED FORM
+FEC6;;;ARABIC LETTER ZAH FINAL FORM
+FEC7;;;ARABIC LETTER ZAH INITIAL FORM
+FEC8;;;ARABIC LETTER ZAH MEDIAL FORM
+FEC9;;;ARABIC LETTER AIN ISOLATED FORM
+FECA;;;ARABIC LETTER AIN FINAL FORM
+FECB;;;ARABIC LETTER AIN INITIAL FORM
+FECC;;;ARABIC LETTER AIN MEDIAL FORM
+FECD;;;ARABIC LETTER GHAIN ISOLATED FORM
+FECE;;;ARABIC LETTER GHAIN FINAL FORM
+FECF;;;ARABIC LETTER GHAIN INITIAL FORM
+#
+FED0;;;ARABIC LETTER GHAIN MEDIAL FORM
+FED1;;;ARABIC LETTER FEH ISOLATED FORM
+FED2;;;ARABIC LETTER FEH FINAL FORM
+FED3;;;ARABIC LETTER FEH INITIAL FORM
+FED4;;;ARABIC LETTER FEH MEDIAL FORM
+FED5;;;ARABIC LETTER QAF ISOLATED FORM
+FED6;;;ARABIC LETTER QAF FINAL FORM
+FED7;;;ARABIC LETTER QAF INITIAL FORM
+FED8;;;ARABIC LETTER QAF MEDIAL FORM
+FED9;;;ARABIC LETTER KAF ISOLATED FORM
+FEDA;;;ARABIC LETTER KAF FINAL FORM
+FEDB;;;ARABIC LETTER KAF INITIAL FORM
+FEDC;;;ARABIC LETTER KAF MEDIAL FORM
+FEDD;;;ARABIC LETTER LAM ISOLATED FORM
+FEDE;;;ARABIC LETTER LAM FINAL FORM
+FEDF;;;ARABIC LETTER LAM INITIAL FORM
+#
+FEE0;;;ARABIC LETTER LAM MEDIAL FORM
+FEE1;;;ARABIC LETTER MEEM ISOLATED FORM
+FEE2;;;ARABIC LETTER MEEM FINAL FORM
+FEE3;;;ARABIC LETTER MEEM INITIAL FORM
+FEE4;;;ARABIC LETTER MEEM MEDIAL FORM
+FEE5;;;ARABIC LETTER NOON ISOLATED FORM
+FEE6;;;ARABIC LETTER NOON FINAL FORM
+FEE7;;;ARABIC LETTER NOON INITIAL FORM
+FEE8;;;ARABIC LETTER NOON MEDIAL FORM
+FEE9;;;ARABIC LETTER HEH ISOLATED FORM
+FEEA;;;ARABIC LETTER HEH FINAL FORM
+FEEB;;;ARABIC LETTER HEH INITIAL FORM
+FEEC;;;ARABIC LETTER HEH MEDIAL FORM
+FEED;;;ARABIC LETTER WAW ISOLATED FORM
+FEEE;;;ARABIC LETTER WAW FINAL FORM
+FEEF;;;ARABIC LETTER ALEF MAKSURA ISOLATED FORM
+#
+FEF0;;;ARABIC LETTER ALEF MAKSURA FINAL FORM
+FEF1;;;ARABIC LETTER YEH ISOLATED FORM
+FEF2;;;ARABIC LETTER YEH FINAL FORM
+FEF3;;;ARABIC LETTER YEH INITIAL FORM
+FEF4;;;ARABIC LETTER YEH MEDIAL FORM
+FEF5;;;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
+FEF6;;;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
+FEF7;;;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
+FEF8;;;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
+FEF9;;;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM
+FEFA;;;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM
+FEFB;;;ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
+FEFC;;;ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FEFF;;;ZERO WIDTH NO-BREAK SPACE
+FF01;;;FULLWIDTH EXCLAMATION MARK
+FF02;;;FULLWIDTH QUOTATION MARK
+FF03;;;FULLWIDTH NUMBER SIGN
+FF04;;;FULLWIDTH DOLLAR SIGN
+FF05;;;FULLWIDTH PERCENT SIGN
+FF06;;;FULLWIDTH AMPERSAND
+FF07;;;FULLWIDTH APOSTROPHE
+FF08;;;FULLWIDTH LEFT PARENTHESIS
+FF09;;;FULLWIDTH RIGHT PARENTHESIS
+FF0A;;;FULLWIDTH ASTERISK
+FF0B;;;FULLWIDTH PLUS SIGN
+FF0C;;;FULLWIDTH COMMA
+FF0D;;;FULLWIDTH HYPHEN-MINUS
+FF0E;;;FULLWIDTH FULL STOP
+FF0F;;;FULLWIDTH SOLIDUS
+#
+FF10;;;FULLWIDTH DIGIT ZERO
+FF11;;;FULLWIDTH DIGIT ONE
+FF12;;;FULLWIDTH DIGIT TWO
+FF13;;;FULLWIDTH DIGIT THREE
+FF14;;;FULLWIDTH DIGIT FOUR
+FF15;;;FULLWIDTH DIGIT FIVE
+FF16;;;FULLWIDTH DIGIT SIX
+FF17;;;FULLWIDTH DIGIT SEVEN
+FF18;;;FULLWIDTH DIGIT EIGHT
+FF19;;;FULLWIDTH DIGIT NINE
+FF1A;;;FULLWIDTH COLON
+FF1B;;;FULLWIDTH SEMICOLON
+FF1C;;;FULLWIDTH LESS-THAN SIGN
+FF1D;;;FULLWIDTH EQUALS SIGN
+FF1E;;;FULLWIDTH GREATER-THAN SIGN
+FF1F;;;FULLWIDTH QUESTION MARK
+#
+FF20;;;FULLWIDTH COMMERCIAL AT
+FF21;;;FULLWIDTH LATIN CAPITAL LETTER A
+FF22;;;FULLWIDTH LATIN CAPITAL LETTER B
+FF23;;;FULLWIDTH LATIN CAPITAL LETTER C
+FF24;;;FULLWIDTH LATIN CAPITAL LETTER D
+FF25;;;FULLWIDTH LATIN CAPITAL LETTER E
+FF26;;;FULLWIDTH LATIN CAPITAL LETTER F
+FF27;;;FULLWIDTH LATIN CAPITAL LETTER G
+FF28;;;FULLWIDTH LATIN CAPITAL LETTER H
+FF29;;;FULLWIDTH LATIN CAPITAL LETTER I
+FF2A;;;FULLWIDTH LATIN CAPITAL LETTER J
+FF2B;;;FULLWIDTH LATIN CAPITAL LETTER K
+FF2C;;;FULLWIDTH LATIN CAPITAL LETTER L
+FF2D;;;FULLWIDTH LATIN CAPITAL LETTER M
+FF2E;;;FULLWIDTH LATIN CAPITAL LETTER N
+FF2F;;;FULLWIDTH LATIN CAPITAL LETTER O
+#
+FF30;;;FULLWIDTH LATIN CAPITAL LETTER P
+FF31;;;FULLWIDTH LATIN CAPITAL LETTER Q
+FF32;;;FULLWIDTH LATIN CAPITAL LETTER R
+FF33;;;FULLWIDTH LATIN CAPITAL LETTER S
+FF34;;;FULLWIDTH LATIN CAPITAL LETTER T
+FF35;;;FULLWIDTH LATIN CAPITAL LETTER U
+FF36;;;FULLWIDTH LATIN CAPITAL LETTER V
+FF37;;;FULLWIDTH LATIN CAPITAL LETTER W
+FF38;;;FULLWIDTH LATIN CAPITAL LETTER X
+FF39;;;FULLWIDTH LATIN CAPITAL LETTER Y
+FF3A;;;FULLWIDTH LATIN CAPITAL LETTER Z
+FF3B;;;FULLWIDTH LEFT SQUARE BRACKET
+FF3C;;;FULLWIDTH REVERSE SOLIDUS
+FF3D;;;FULLWIDTH RIGHT SQUARE BRACKET
+FF3E;;;FULLWIDTH CIRCUMFLEX ACCENT
+FF3F;;;FULLWIDTH LOW LINE
+#
+FF40;;;FULLWIDTH GRAVE ACCENT
+FF41;;;FULLWIDTH LATIN SMALL LETTER A
+FF42;;;FULLWIDTH LATIN SMALL LETTER B
+FF43;;;FULLWIDTH LATIN SMALL LETTER C
+FF44;;;FULLWIDTH LATIN SMALL LETTER D
+FF45;;;FULLWIDTH LATIN SMALL LETTER E
+FF46;;;FULLWIDTH LATIN SMALL LETTER F
+FF47;;;FULLWIDTH LATIN SMALL LETTER G
+FF48;;;FULLWIDTH LATIN SMALL LETTER H
+FF49;;;FULLWIDTH LATIN SMALL LETTER I
+FF4A;;;FULLWIDTH LATIN SMALL LETTER J
+FF4B;;;FULLWIDTH LATIN SMALL LETTER K
+FF4C;;;FULLWIDTH LATIN SMALL LETTER L
+FF4D;;;FULLWIDTH LATIN SMALL LETTER M
+FF4E;;;FULLWIDTH LATIN SMALL LETTER N
+FF4F;;;FULLWIDTH LATIN SMALL LETTER O
+#
+FF50;;;FULLWIDTH LATIN SMALL LETTER P
+FF51;;;FULLWIDTH LATIN SMALL LETTER Q
+FF52;;;FULLWIDTH LATIN SMALL LETTER R
+FF53;;;FULLWIDTH LATIN SMALL LETTER S
+FF54;;;FULLWIDTH LATIN SMALL LETTER T
+FF55;;;FULLWIDTH LATIN SMALL LETTER U
+FF56;;;FULLWIDTH LATIN SMALL LETTER V
+FF57;;;FULLWIDTH LATIN SMALL LETTER W
+FF58;;;FULLWIDTH LATIN SMALL LETTER X
+FF59;;;FULLWIDTH LATIN SMALL LETTER Y
+FF5A;;;FULLWIDTH LATIN SMALL LETTER Z
+FF5B;;;FULLWIDTH LEFT CURLY BRACKET
+FF5C;;;FULLWIDTH VERTICAL LINE
+FF5D;;;FULLWIDTH RIGHT CURLY BRACKET
+FF5E;;;FULLWIDTH TILDE
+FF5F;;;FULLWIDTH LEFT WHITE PARENTHESIS
+#
+FF60;;;FULLWIDTH RIGHT WHITE PARENTHESIS
+FF61;;;HALFWIDTH IDEOGRAPHIC FULL STOP
+FF62;;;HALFWIDTH LEFT CORNER BRACKET
+FF63;;;HALFWIDTH RIGHT CORNER BRACKET
+FF64;;;HALFWIDTH IDEOGRAPHIC COMMA
+FF65;;;HALFWIDTH KATAKANA MIDDLE DOT
+FF66;;;HALFWIDTH KATAKANA LETTER WO
+FF67;;;HALFWIDTH KATAKANA LETTER SMALL A
+FF68;;;HALFWIDTH KATAKANA LETTER SMALL I
+FF69;;;HALFWIDTH KATAKANA LETTER SMALL U
+FF6A;;;HALFWIDTH KATAKANA LETTER SMALL E
+FF6B;;;HALFWIDTH KATAKANA LETTER SMALL O
+FF6C;;;HALFWIDTH KATAKANA LETTER SMALL YA
+FF6D;;;HALFWIDTH KATAKANA LETTER SMALL YU
+FF6E;;;HALFWIDTH KATAKANA LETTER SMALL YO
+FF6F;;;HALFWIDTH KATAKANA LETTER SMALL TU
+#
+FF70;;;HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF71;;;HALFWIDTH KATAKANA LETTER A
+FF72;;;HALFWIDTH KATAKANA LETTER I
+FF73;;;HALFWIDTH KATAKANA LETTER U
+FF74;;;HALFWIDTH KATAKANA LETTER E
+FF75;;;HALFWIDTH KATAKANA LETTER O
+FF76;;;HALFWIDTH KATAKANA LETTER KA
+FF77;;;HALFWIDTH KATAKANA LETTER KI
+FF78;;;HALFWIDTH KATAKANA LETTER KU
+FF79;;;HALFWIDTH KATAKANA LETTER KE
+FF7A;;;HALFWIDTH KATAKANA LETTER KO
+FF7B;;;HALFWIDTH KATAKANA LETTER SA
+FF7C;;;HALFWIDTH KATAKANA LETTER SI
+FF7D;;;HALFWIDTH KATAKANA LETTER SU
+FF7E;;;HALFWIDTH KATAKANA LETTER SE
+FF7F;;;HALFWIDTH KATAKANA LETTER SO
+#
+FF80;;;HALFWIDTH KATAKANA LETTER TA
+FF81;;;HALFWIDTH KATAKANA LETTER TI
+FF82;;;HALFWIDTH KATAKANA LETTER TU
+FF83;;;HALFWIDTH KATAKANA LETTER TE
+FF84;;;HALFWIDTH KATAKANA LETTER TO
+FF85;;;HALFWIDTH KATAKANA LETTER NA
+FF86;;;HALFWIDTH KATAKANA LETTER NI
+FF87;;;HALFWIDTH KATAKANA LETTER NU
+FF88;;;HALFWIDTH KATAKANA LETTER NE
+FF89;;;HALFWIDTH KATAKANA LETTER NO
+FF8A;;;HALFWIDTH KATAKANA LETTER HA
+FF8B;;;HALFWIDTH KATAKANA LETTER HI
+FF8C;;;HALFWIDTH KATAKANA LETTER HU
+FF8D;;;HALFWIDTH KATAKANA LETTER HE
+FF8E;;;HALFWIDTH KATAKANA LETTER HO
+FF8F;;;HALFWIDTH KATAKANA LETTER MA
+#
+FF90;;;HALFWIDTH KATAKANA LETTER MI
+FF91;;;HALFWIDTH KATAKANA LETTER MU
+FF92;;;HALFWIDTH KATAKANA LETTER ME
+FF93;;;HALFWIDTH KATAKANA LETTER MO
+FF94;;;HALFWIDTH KATAKANA LETTER YA
+FF95;;;HALFWIDTH KATAKANA LETTER YU
+FF96;;;HALFWIDTH KATAKANA LETTER YO
+FF97;;;HALFWIDTH KATAKANA LETTER RA
+FF98;;;HALFWIDTH KATAKANA LETTER RI
+FF99;;;HALFWIDTH KATAKANA LETTER RU
+FF9A;;;HALFWIDTH KATAKANA LETTER RE
+FF9B;;;HALFWIDTH KATAKANA LETTER RO
+FF9C;;;HALFWIDTH KATAKANA LETTER WA
+FF9D;;;HALFWIDTH KATAKANA LETTER N
+FF9E;;;HALFWIDTH KATAKANA VOICED SOUND MARK
+FF9F;;;HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+#
+FFA0;;;HALFWIDTH HANGUL FILLER
+FFA1;;;HALFWIDTH HANGUL LETTER KIYEOK
+FFA2;;;HALFWIDTH HANGUL LETTER SSANGKIYEOK
+FFA3;;;HALFWIDTH HANGUL LETTER KIYEOK-SIOS
+FFA4;;;HALFWIDTH HANGUL LETTER NIEUN
+FFA5;;;HALFWIDTH HANGUL LETTER NIEUN-CIEUC
+FFA6;;;HALFWIDTH HANGUL LETTER NIEUN-HIEUH
+FFA7;;;HALFWIDTH HANGUL LETTER TIKEUT
+FFA8;;;HALFWIDTH HANGUL LETTER SSANGTIKEUT
+FFA9;;;HALFWIDTH HANGUL LETTER RIEUL
+FFAA;;;HALFWIDTH HANGUL LETTER RIEUL-KIYEOK
+FFAB;;;HALFWIDTH HANGUL LETTER RIEUL-MIEUM
+FFAC;;;HALFWIDTH HANGUL LETTER RIEUL-PIEUP
+FFAD;;;HALFWIDTH HANGUL LETTER RIEUL-SIOS
+FFAE;;;HALFWIDTH HANGUL LETTER RIEUL-THIEUTH
+FFAF;;;HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH
+#
+FFB0;;;HALFWIDTH HANGUL LETTER RIEUL-HIEUH
+FFB1;;;HALFWIDTH HANGUL LETTER MIEUM
+FFB2;;;HALFWIDTH HANGUL LETTER PIEUP
+FFB3;;;HALFWIDTH HANGUL LETTER SSANGPIEUP
+FFB4;;;HALFWIDTH HANGUL LETTER PIEUP-SIOS
+FFB5;;;HALFWIDTH HANGUL LETTER SIOS
+FFB6;;;HALFWIDTH HANGUL LETTER SSANGSIOS
+FFB7;;;HALFWIDTH HANGUL LETTER IEUNG
+FFB8;;;HALFWIDTH HANGUL LETTER CIEUC
+FFB9;;;HALFWIDTH HANGUL LETTER SSANGCIEUC
+FFBA;;;HALFWIDTH HANGUL LETTER CHIEUCH
+FFBB;;;HALFWIDTH HANGUL LETTER KHIEUKH
+FFBC;;;HALFWIDTH HANGUL LETTER THIEUTH
+FFBD;;;HALFWIDTH HANGUL LETTER PHIEUPH
+FFBE;;;HALFWIDTH HANGUL LETTER HIEUH
+FFC2;;;HALFWIDTH HANGUL LETTER A
+FFC3;;;HALFWIDTH HANGUL LETTER AE
+FFC4;;;HALFWIDTH HANGUL LETTER YA
+FFC5;;;HALFWIDTH HANGUL LETTER YAE
+FFC6;;;HALFWIDTH HANGUL LETTER EO
+FFC7;;;HALFWIDTH HANGUL LETTER E
+FFCA;;;HALFWIDTH HANGUL LETTER YEO
+FFCB;;;HALFWIDTH HANGUL LETTER YE
+FFCC;;;HALFWIDTH HANGUL LETTER O
+FFCD;;;HALFWIDTH HANGUL LETTER WA
+FFCE;;;HALFWIDTH HANGUL LETTER WAE
+FFCF;;;HALFWIDTH HANGUL LETTER OE
+FFD2;;;HALFWIDTH HANGUL LETTER YO
+FFD3;;;HALFWIDTH HANGUL LETTER U
+FFD4;;;HALFWIDTH HANGUL LETTER WEO
+FFD5;;;HALFWIDTH HANGUL LETTER WE
+FFD6;;;HALFWIDTH HANGUL LETTER WI
+FFD7;;;HALFWIDTH HANGUL LETTER YU
+FFDA;;;HALFWIDTH HANGUL LETTER EU
+FFDB;;;HALFWIDTH HANGUL LETTER YI
+FFDC;;;HALFWIDTH HANGUL LETTER I
+#
+FFE0;;;FULLWIDTH CENT SIGN
+FFE1;;;FULLWIDTH POUND SIGN
+FFE2;;;FULLWIDTH NOT SIGN
+FFE3;;;FULLWIDTH MACRON
+FFE4;;;FULLWIDTH BROKEN BAR
+FFE5;;;FULLWIDTH YEN SIGN
+FFE6;;;FULLWIDTH WON SIGN
+FFE8;;;HALFWIDTH FORMS LIGHT VERTICAL
+FFE9;;;HALFWIDTH LEFTWARDS ARROW
+FFEA;;;HALFWIDTH UPWARDS ARROW
+FFEB;;;HALFWIDTH RIGHTWARDS ARROW
+FFEC;;;HALFWIDTH DOWNWARDS ARROW
+FFED;;;HALFWIDTH BLACK SQUARE
+FFEE;;;HALFWIDTH WHITE CIRCLE
+FFF9;;;INTERLINEAR ANNOTATION ANCHOR
+FFFA;;;INTERLINEAR ANNOTATION SEPARATOR
+FFFB;;;INTERLINEAR ANNOTATION TERMINATOR
+FFFC;;;OBJECT REPLACEMENT CHARACTER
+FFFD;;;REPLACEMENT CHARACTER
diff --git a/Master/texmf-dist/context/data/mp.vim b/Master/texmf-dist/context/data/mp.vim
new file mode 100644
index 00000000000..ef99ff726d8
--- /dev/null
+++ b/Master/texmf-dist/context/data/mp.vim
@@ -0,0 +1,138 @@
+" Vim syntax file
+" Language: MetaPost
+" Maintainer: Andreas Scherer <andreas.scherer@pobox.com>
+" Last Change: April 30, 2001
+
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+ syn clear
+elseif exists("b:current_syntax")
+ finish
+endif
+
+let plain_mf_macros = 0 " plain.mf has no special meaning for MetaPost
+let other_mf_macros = 0 " cmbase.mf, logo.mf, ... neither
+
+" Read the Metafont syntax to start with
+if version < 600
+ source <sfile>:p:h/mf.vim
+else
+ runtime! syntax/mf.vim
+endif
+
+unlet b:current_syntax
+syn include @texTop syntax/tex.vim
+
+" MetaPost has TeX inserts for typeset labels
+" verbatimtex, btex, and etex will be treated as keywords
+syn match mpTeXbegin "\(verbatimtex\|btex\)"
+syn match mpTeXend "etex"
+syn region mpTeXinsert start="\(verbatimtex\|btex\)"hs=e+1 end="etex"he=s-1 contains=@texTop,mpTeXbegin,mpTeXend containedin=ALL keepend
+" syn region mpTeXinsert start="\(verbatimtex\|btex\)"hs=e+1 end="etex"he=s-1 contains=mpTeXbegin,mpTeXend,@texTop keepend
+
+" MetaPost primitives not found in Metafont
+syn keyword mpInternal bluepart clip color dashed fontsize greenpart infont
+syn keyword mpInternal linecap linejoin llcorner lrcorner miterlimit mpxbreak
+syn keyword mpInternal prologues redpart setbounds tracinglostchars
+syn keyword mpInternal truecorners ulcorner urcorner withcolor
+
+" Metafont primitives not found in MetaPost
+syn keyword notDefined autorounding chardx chardy fillin granularity hppp
+syn keyword notDefined proofing smoothing tracingedges tracingpens
+syn keyword notDefined turningcheck vppp xoffset yoffset
+
+" Keywords defined by plain.mp
+if !exists("plain_mp_macros")
+ let plain_mp_macros = 1 " Set this to '0' if your source gets too colourful
+endif
+if plain_mp_macros
+ syn keyword mpMacro ahangle ahlength background bbox bboxmargin beginfig
+ syn keyword mpMacro beveled black blue buildcycle butt center cutafter
+ syn keyword mpMacro cutbefore cuttings dashpattern defaultfont defaultpen
+ syn keyword mpMacro defaultscale dotlabel dotlabels drawarrow drawdblarrow
+ syn keyword mpMacro drawoptions endfig evenly extra_beginfig extra_endfig
+ syn keyword mpMacro green label labeloffset mitered red rounded squared
+ syn keyword mpMacro thelabel white base_name base_version
+ syn keyword mpMacro upto downto exitunless relax gobble gobbled
+ syn keyword mpMacro interact loggingall tracingall tracingnone
+ syn keyword mpMacro eps epsilon infinity right left up down origin
+ syn keyword mpMacro quartercircle halfcircle fullcircle unitsquare identity
+ syn keyword mpMacro blankpicture withdots ditto EOF pensquare penrazor
+ syn keyword mpMacro penspeck whatever abs round ceiling byte dir unitvector
+ syn keyword mpMacro inverse counterclockwise tensepath mod div dotprod
+ syn keyword mpMacro takepower direction directionpoint intersectionpoint
+ syn keyword mpMacro softjoin incr decr reflectedabout rotatedaround
+ syn keyword mpMacro rotatedabout min max flex superellipse interpath
+ syn keyword mpMacro magstep currentpen currentpen_path currentpicture
+ syn keyword mpMacro fill draw filldraw drawdot unfill undraw unfilldraw
+ syn keyword mpMacro undrawdot erase cutdraw image pickup numeric_pickup
+ syn keyword mpMacro pen_lft pen_rt pen_top pen_bot savepen clearpen
+ syn keyword mpMacro clear_pen_memory lft rt top bot ulft urt llft lrt
+ syn keyword mpMacro penpos penstroke arrowhead makelabel labels penlabel
+ syn keyword mpMacro range numtok thru clearxy clearit clearpen pickup
+ syn keyword mpMacro shipit bye hide stop solve
+endif
+
+" Keywords defined by mfplain.mp
+if !exists("mfplain_mp_macros")
+ let mfplain_mp_macros = 0 " Set this to '1' to include these macro names
+endif
+if mfplain_mp_macros
+ syn keyword mpMacro beginchar blacker capsule_def change_width
+ syn keyword mpMacro define_blacker_pixels define_corrected_pixels
+ syn keyword mpMacro define_good_x_pixels define_good_y_pixels
+ syn keyword mpMacro define_horizontal_corrected_pixels
+ syn keyword mpMacro define_pixels define_whole_blacker_pixels
+ syn keyword mpMacro define_whole_vertical_blacker_pixels
+ syn keyword mpMacro define_whole_vertical_pixels endchar
+ syn keyword mpMacro extra_beginchar extra_endchar extra_setup
+ syn keyword mpMacro font_coding_scheme font_extra_space font_identifier
+ syn keyword mpMacro font_normal_shrink font_normal_space
+ syn keyword mpMacro font_normal_stretch font_quad font_size
+ syn keyword mpMacro font_slant font_x_height italcorr labelfont
+ syn keyword mpMacro makebox makegrid maketicks mode_def mode_setup
+ syn keyword mpMacro o_correction proofrule proofrulethickness rulepen smode
+
+ " plus some no-ops, also from mfplain.mp
+ syn keyword mpMacro cullit currenttransform gfcorners grayfont hround
+ syn keyword mpMacro imagerules lowres_fix nodisplays notransforms openit
+ syn keyword mpMacro proofoffset screenchars screenrule screenstrokes
+ syn keyword mpMacro showit slantfont titlefont unitpixel vround
+endif
+
+" Keywords defined by other macro packages, e.g., boxes.mp
+if !exists("other_mp_macros")
+ let other_mp_macros = 1 " Set this to '0' if your source gets too colourful
+endif
+if other_mp_macros
+ syn keyword mpMacro circmargin defaultdx defaultdy
+ syn keyword mpMacro boxit boxjoin bpath circleit drawboxed drawboxes
+ syn keyword mpMacro drawunboxed fixpos fixsize pic
+endif
+
+" Define the default highlighting
+" For version 5.7 and earlier: only when not done already
+" For version 5.8 and later: only when an item doesn't have highlighting yet
+if version >= 508 || !exists("did_mp_syntax_inits")
+ if version < 508
+ let did_mp_syntax_inits = 1
+ command -nargs=+ HiLink hi link <args>
+ else
+ command -nargs=+ HiLink hi def link <args>
+ endif
+
+" HiLink mpTeXinsert String
+ HiLink mpTeXbegin Statement
+ HiLink mpTeXend Statement
+ HiLink mpInternal mfInternal
+ HiLink mpMacro Macro
+
+ delcommand HiLink
+endif
+
+let b:current_syntax = "mp"
+
+" vim: ts=8
+
+
diff --git a/Master/texmf-dist/context/data/scite-ctx.properties b/Master/texmf-dist/context/data/scite-ctx.properties
index 5eb9ae73dad..05fd90608e4 100644
--- a/Master/texmf-dist/context/data/scite-ctx.properties
+++ b/Master/texmf-dist/context/data/scite-ctx.properties
@@ -51,22 +51,24 @@ ctx.menulist.example=\
ctx.wraptext.length=65
ctx.spellcheck.language=auto
-ctx.spellcheck.wordsize=3
+ctx.spellcheck.wordsize=4
ctx.spellcheck.wordpath=ENV(CTXSPELLPATH)
ctx.spellcheck.wordfile.all=spell-uk.txt,spell-nl.txt
ctx.spellcheck.wordfile.uk=spell-uk.txt
ctx.spellcheck.wordfile.nl=spell-nl.txt
-ctx.spellcheck.wordsize.uk=3
-ctx.spellcheck.wordsize.nl=3
+ctx.spellcheck.wordsize.uk=4
+ctx.spellcheck.wordsize.nl=4
ctx.helpinfo=\
Shift + F11 pop up menu with ctx options|\
|\
Ctrl + B check spelling|\
Ctrl + M wrap text (auto indent)|\
- Ctrl + R reset spelling results
+ Ctrl + R reset spelling results|\
+ Ctrl + I insert template|\
+ Ctrl + E open log file
command.name.21.$(file.patterns.context)=CTX Action List
command.subsystem.21.$(file.patterns.context)=3
@@ -109,3 +111,37 @@ command.24.*=reset_text
command.groupundo.24.*=yes
command.save.before.24.*=2
command.shortcut.24.*=Ctrl+R
+
+command.name.25.*=CTX Template
+command.subsystem.25.*=3
+command.save.before.25.*=2
+command.groupundo.25.*=yes
+command.shortcut.25.*=Ctrl+I
+
+# command.25.$(file.patterns.context)=insert_template $(ctx.template.list.context)
+# command.25.$(file.patterns.example)=insert_template $(ctx.template.list.example)
+#
+# ctx.template.list.example=\
+# foo=mathadore.foo|\
+# bar=mathadore.bar
+#
+# ctx.template.mathadore.foo.file=./ctx-templates/foo.xml
+# ctx.template.mathadore.bar.data=bar bar bar
+#
+# paths: ./ctx-templates, ../ctx-templates, ../../ctx-templates
+
+command.name.26.*=Open Logfile
+command.subsystem.26.*=3
+command.26.*=open_log
+command.save.before.26.*=2
+command.groupundo.26.*=yes
+command.shortcut.26.*=Ctrl+E
+
+import scite-ctx-context
+import scite-ctx-example
+
+ctx.template.scan=yes
+ctx.template.rescan=no
+
+ctx.template.suffix.tex=tex
+ctx.template.suffix.xml=xml
diff --git a/Master/texmf-dist/context/data/scite-ctx.readme b/Master/texmf-dist/context/data/scite-ctx.readme
new file mode 100644
index 00000000000..f796e543eb9
--- /dev/null
+++ b/Master/texmf-dist/context/data/scite-ctx.readme
@@ -0,0 +1,8 @@
+Short note:
+
+- use scite 1.64 of later
+- copy scite-ctx.lua to ..\scite\wscite
+- copy scite-ctx.properties to wherever context.properties lives
+- add "import" to context.properties
+- create path for spell files and put spell files there
+- let environment variable CTXSPELLPATH to spell path
diff --git a/Master/texmf-dist/context/data/type-ghz.dat b/Master/texmf-dist/context/data/type-ghz.dat
index 5e2b593600a..37ce5d6f9a5 100644
--- a/Master/texmf-dist/context/data/type-ghz.dat
+++ b/Master/texmf-dist/context/data/type-ghz.dat
@@ -52,7 +52,7 @@
# linotype optima-nova
--en=? --ve=linotype --co=optima-nova --re
---en=? --ve=linotype --co=optima-nova --so=ghz/optima-nova --ma --in
+--en=? --ve=linotype --co=optima-nova --so=linotype/optima-nova --ma --in
# linotype orion
@@ -75,4 +75,4 @@
# linotype zapf-essentials-lt
-# linotype zapf-renaissance-antiqua \ No newline at end of file
+# linotype zapf-renaissance-antiqua
diff --git a/Master/texmf-dist/context/data/type-tmf.dat b/Master/texmf-dist/context/data/type-tmf.dat
index 942bcdfc4f0..a226e936299 100644
--- a/Master/texmf-dist/context/data/type-tmf.dat
+++ b/Master/texmf-dist/context/data/type-tmf.dat
@@ -3,70 +3,73 @@
# texfont --encoding=ec --batch texfont.dat
#
# where 'ec' can be replaced by 'texnansi', '8r' or otherwise.
+#
+# The TEXMFTE and TEXMFGW paths are used by gwtex.
+
# public antp
---en=? --ve=public --co=antp --so=auto --ro=TEXMFMAIN
+--en=? --ve=public --co=antp --so=auto --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
# no longer needed, public antt
#
-# --en=? --ve=public --co=antt --so=auto --ro=TEXMFMAIN
+# --en=? --ve=public --co=antt --so=auto --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
# urw helvetica
---en=? --ve=urw --co=helvetica --so=auto --ro=TEXMFMAIN
+--en=? --ve=urw --co=helvetica --so=auto --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
# urw courier
---en=? --ve=urw --co=courier --so=auto --ro=TEXMFMAIN
+--en=? --ve=urw --co=courier --so=auto --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
# urw zapfchan
---en=? --ve=urw --co=zapfchan --so=auto --ro=TEXMFMAIN
+--en=? --ve=urw --co=zapfchan --so=auto --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
# urw times
---en=? --ve=urw --co=times --so=auto --ro=TEXMFMAIN
---en=? --ve=urw --co=times --so=auto --ca=* utmr8a --ro=TEXMFMAIN
---en=? --ve=urw --co=times --so=auto --sl=* utmr8a --ro=TEXMFMAIN
---en=? --ve=urw --co=times --so=auto --sl=* utmb8a --ro=TEXMFMAIN
+--en=? --ve=urw --co=times --so=auto --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
+--en=? --ve=urw --co=times --so=auto --ca=* utmr8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
+--en=? --ve=urw --co=times --so=auto --sl=* utmr8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
+--en=? --ve=urw --co=times --so=auto --sl=* utmb8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
# urw palatino
---en=? --ve=urw --co=palatino --so=auto --ro=TEXMFMAIN
---en=? --ve=urw --co=palatino --so=auto --ca=* uplr8a --ro=TEXMFMAIN
---en=? --ve=urw --co=palatino --so=auto --sl=* uplr8a --ro=TEXMFMAIN
---en=? --ve=urw --co=palatino --so=auto --sl=* uplb8a --ro=TEXMFMAIN
+--en=? --ve=urw --co=palatino --so=auto --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
+--en=? --ve=urw --co=palatino --so=auto --ca=* uplr8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
+--en=? --ve=urw --co=palatino --so=auto --sl=* uplr8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
+--en=? --ve=urw --co=palatino --so=auto --sl=* uplb8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
# adobe utopia
---en=? --ve=adobe --co=utopia --so=auto --ro=TEXMFMAIN
---en=? --ve=adobe --co=utopia --so=auto --ca=* putr8a --ro=TEXMFMAIN
---en=? --ve=adobe --co=utopia --so=auto --sl=* putr8a --ro=TEXMFMAIN
---en=? --ve=adobe --co=utopia --so=auto --sl=* putb8a --ro=TEXMFMAIN
+--en=? --ve=adobe --co=utopia --so=auto --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
+--en=? --ve=adobe --co=utopia --so=auto --ca=* putr8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
+--en=? --ve=adobe --co=utopia --so=auto --sl=* putr8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
+--en=? --ve=adobe --co=utopia --so=auto --sl=* putb8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
---en=? --ve=adobe --co=utopia --so=auto --ro=TEXMFEXTRA # texlive 2003+
---en=? --ve=adobe --co=utopia --so=auto --ca=* putr8a --ro=TEXMFEXTRA # texlive 2003+
---en=? --ve=adobe --co=utopia --so=auto --sl=* putr8a --ro=TEXMFEXTRA # texlive 2003+
---en=? --ve=adobe --co=utopia --so=auto --sl=* putb8a --ro=TEXMFEXTRA # texlive 2003+
+--en=? --ve=adobe --co=utopia --so=auto --ro=TEXMFMAIN,TEXMFEXTRA,TEXMFTE,TEXMFGW
+--en=? --ve=adobe --co=utopia --so=auto --ca=* putr8a --ro=TEXMFMAIN,TEXMFEXTRA,TEXMFTE,TEXMFGW
+--en=? --ve=adobe --co=utopia --so=auto --sl=* putr8a --ro=TEXMFMAIN,TEXMFEXTRA,TEXMFTE,TEXMFGW
+--en=? --ve=adobe --co=utopia --so=auto --sl=* putb8a --ro=TEXMFMAIN,TEXMFEXTRA,TEXMFTE,TEXMFGW
# bitstream charter
---en=? --ve=bitstrea --co=charter --so=auto --ro=TEXMFMAIN
---en=? --ve=bitstrea --co=charter --so=auto --ca=* bchr8a --ro=TEXMFMAIN
---en=? --ve=bitstrea --co=charter --so=auto --sl=* bchr8a --ro=TEXMFMAIN
---en=? --ve=bitstrea --co=charter --so=auto --sl=* bchb8a --ro=TEXMFMAIN
+--en=? --ve=bitstrea --co=charter --so=auto --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
+--en=? --ve=bitstrea --co=charter --so=auto --ca=* bchr8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
+--en=? --ve=bitstrea --co=charter --so=auto --sl=* bchr8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
+--en=? --ve=bitstrea --co=charter --so=auto --sl=* bchb8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
# uwr bookman
---en=? --ve=urw --co=bookman --so=auto --ro=TEXMFMAIN
---en=? --ve=urw --co=bookman --so=auto --ca=* ubkl8a --ro=TEXMFMAIN
---en=? --ve=urw --co=bookman --so=auto --sl=* ubkl8a --ro=TEXMFMAIN
---en=? --ve=urw --co=bookman --so=auto --sl=* ubkd8a --ro=TEXMFMAIN
+--en=? --ve=urw --co=bookman --so=auto --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
+--en=? --ve=urw --co=bookman --so=auto --ca=* ubkl8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
+--en=? --ve=urw --co=bookman --so=auto --sl=* ubkl8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
+--en=? --ve=urw --co=bookman --so=auto --sl=* ubkd8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
# uwr schoolbook
---en=? --ve=urw --co=ncntrsbk --so=auto --ro=TEXMFMAIN
---en=? --ve=urw --co=ncntrsbk --so=auto --ca=* uncr8a --ro=TEXMFMAIN
---en=? --ve=urw --co=ncntrsbk --so=auto --sl=* uncr8a --ro=TEXMFMAIN
---en=? --ve=urw --co=ncntrsbk --so=auto --sl=* uncb8a --ro=TEXMFMAIN
+--en=? --ve=urw --co=ncntrsbk --so=auto --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
+--en=? --ve=urw --co=ncntrsbk --so=auto --ca=* uncr8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
+--en=? --ve=urw --co=ncntrsbk --so=auto --sl=* uncr8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
+--en=? --ve=urw --co=ncntrsbk --so=auto --sl=* uncb8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW
diff --git a/Master/texmf-dist/doc/context/bib/bibmod-doc.pdf b/Master/texmf-dist/doc/context/bib/bibmod-doc.pdf
new file mode 100644
index 00000000000..abf6359c179
--- /dev/null
+++ b/Master/texmf-dist/doc/context/bib/bibmod-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/context/bib/bibmod-doc.tex b/Master/texmf-dist/doc/context/bib/bibmod-doc.tex
new file mode 100644
index 00000000000..6d25650dd0a
--- /dev/null
+++ b/Master/texmf-dist/doc/context/bib/bibmod-doc.tex
@@ -0,0 +1,732 @@
+
+\usemodule[int-load]
+\def\loadsetups{}
+\setupinteraction[state=start]
+\setupcolors[state=start]
+
+\usemodule[bib,set-11,mod-01]
+
+\setuppublications[alternative=num]
+
+\startXMLmapping[zero]
+\processXMLfilegrouped{t-bib.xml}
+\stopXMLmapping
+
+\setupitemize[each][packed]
+
+\setuphead[section][page=]
+
+\setupoutput[pdftex]
+
+\def\BIBTEX{Bib\TeX}
+\def\MAPS{Maps}
+
+
+\startbuffer[bibexample]
+\startpublication[k=me,
+ t=manual,
+ a=Hoekwater,
+ y=2006,
+ s=TH2006,
+ n=1,
+ u=http://contextgarden.net/Bibliography]
+\author{Taco}[T.]{}{Hoekwater}
+\title{\CONTEXT\ Publication Module, The user documententation}
+\pubyear{2006}
+\note{In case you didn't know: it's the document you are reading now}
+\pages{14}
+\stoppublication
+\stopbuffer
+
+\getbuffer[bibexample]
+
+\startmodule[type=tex]
+
+\startdocumentation
+
+\module
+ [ file=bibmod-doc,
+ version=2006.03.13,
+ title=Module Documentation,
+ subtitle=Bibliographies,
+ author={Taco Hoekwater},
+ date=\currentdate,
+ copyright=Taco Hoekwater]
+
+\completecontent
+
+\section{Introduction}
+
+The bibliographic module (\type{t-bib.tex}) takes care of references
+to publications and the typesetting of publication lists, as well as
+providing an interface between \BIBTEX and \CONTEXT. This manual
+documents version 2006.08.08.
+
+The bibliographic subsystem consists of the main module
+\type{t-bib.tex}; four \BIBTEX\ styles (\type{cont-xx.bst}); and a set
+of example configuration files (\type{bibl-xxx.tex}) that set up
+specific formatting styles for both the citations and the list of
+references.
+
+
+\subsection{General overview}
+
+A typical input file obeys following structure:
+\startitemize[n]
+\item A call to \type{\usemodule[bib]}.
+\item Optionally, a few setup commands for the bibliographic module.
+\item A number of definitions of publications to be referenced in the
+main text of the article. The source of these definitions can be
+a combination of:
+ \startitemize
+ \item The \type{\jobname.bbl} file (automatically read at \type{\starttext})
+ \item extra bbl files
+ \item a file or inline macros before \type{\starttext}
+ \stopitemize
+ These possibilities will be explained below. For now, it is
+ only important to realize that of all these definitions have to be known
+ {\it before} the first citation in the text.
+\item \type{\starttext}
+\item The body text, with a number of \type{\cite} and \type{\nocite} commands.
+\item The list of publications, called using the command
+ \type{\placepublications} or the command\break \type{\completepublications}.
+\item \type{\stoptext}
+\stopitemize
+
+\section{Setup commands}
+
+Bibliographic references use a specific `style', a collection of rules
+for the use of \type{\cite} as well as for the formatting that is
+applied to the publication list. The \CONTEXT\ bibliographic module
+expects you to define all of these style options in one single
+file of which the names starts with the prefix \type{bibl-}.
+
+Unlike the normal situation in \LATEX, this style {\it also\/}
+includes the formatting of the items themselves. Because of this, the
+\type{.bbl} file is set up as a database of entries with fields.
+
+\subsection{Global settings: \type{\setuppublications}}
+
+The most important user-level command is
+\type{\setuppublications}. Most of the options to this command
+shoudl be set by the bibliography style file, but a few of them are of
+immediate interest to the casual user as well.
+
+Like all setup commands, thus command should be given before
+\type{\starttext}, as it sets up global information about the
+bibliographic references used in the document. \CONTEXT\ needs this
+information in order to function correctly.
+
+\setup{setuppublications}
+
+\starttabulate[|l|p|]
+\NC alternative\NC This gives the name of a bibliography style. \crlf
+ The chosen style defines the other default options, the options
+ given in this documentation are the defaults as they are set up
+ by the `apa' style. When this argument is given, the newly set
+style is read in first, before the other options are processed. Thus
+allowing you to override specific settings from the chosen style.\NC\NR
+\NC refcommand \NC the default option for \type{\cite}\NC \NR
+\NC sorttype\NC How the publications in the final publication
+ list should be sorted. `cite' means: by the order in which
+ they were first cited in your text. `bbl' tells the
+ module to keep the relative ordering in which the publication
+ definitions were found\crlf
+ The current default for apa is `cite'\NC\NR
+\NC criterium\NC Whether to list only the referenced
+ publications or all of them.\crlf
+ If this value is `all', then if `sorttype' equals `cite', this
+ means that all referred-to publications are listed
+ before all others, otherwise (if `sorttype' equals `bbl') you will
+ just get a typeset version of the used database(s).\crlf
+ The default for apa is `used'.\NC\NR
+\NC numbering\NC Whether or not the publication list
+ should be labelled and if so, how. \type{yes} uses the item number in
+ the publication list as label. \type{short} uses the short
+ label. \type{bib}
+ uses the original number in the \BIBTEX\ database as a label.
+ Anything else turns labelling off.\crlf
+ The default for apa is `no'\NC\NR
+\NC autohang\NC Whether or not the
+ hanging indent should be re-calculated based on the real size of the
+ label. This option only applies if numbering is turned on.\crlf
+ The default is `no'.\NC\NR
+\NC monthconversion\NC The presentation form of any month field, if it
+ is entered in the database as a numeric value. The default is to
+ typeset the number without any conversion\NC\NR
+\stoptabulate
+
+\subsection{How the entries are formatted: \type{\setuppublicationlist}}
+
+\setup{setuppublicationlist}
+
+The list of publications at the end of the article is comparable with
+a sequence of normal \CONTEXT\ `list items' that behaves much like the
+list that defines the table of contents. {\it In previous versions, it was
+in fact implemented as a `normal' \CONTEXT\ list, but this is no
+longer the true.\/}
+
+The module defines a set of extra options. These option names are static, they
+do {\it not} change to follow the selected \CONTEXT\ interface language.
+
+The first two options provide default widths for `autohang':
+\starttabulate[|l|p|]
+\NC totalnumber\NC The total number of items in the following list (used for autohang).\NC\NR
+\NC samplesize\NC The longest short label in the list (used for autohang)\NC\NR
+\stoptabulate
+
+A third option can be used to overrule the use of \type{\title} as
+heading for \type{\completepublications}
+
+\starttabulate[|l|p|]
+\NC title\NC The sectioning command.\NC\NR
+\stoptabulate
+
+The other extra options are needed to control micro||typesetting
+of things that are buried deep within macros. There is a separate
+command to handle the larger layout options
+(\type{\setuppublicationlayout}, explained below), but the options
+here are the only way to make changes in the formatting used for
+editors', authors', and article authors' names.
+\starttabulate[|l|p|]
+\NC author \NC command to typeset one author in the publication list.\NC \NR
+\NC artauthor \NC command to typeset one article author in the publication list.\NC \NR
+\NC editor \NC command to typeset one editor in the publication list.\NC \NR
+\NC namesep \NC the separation between consecutive names (either
+ editors, authors or artauthors).\NC \NR
+\NC lastnamesep \NC the separation before the last name in a list of names.\NC \NR
+\NC firstnamesep \NC the separation following the fistname or inits
+ within a name in the publication list.\NC \NR
+\NC juniorsep \NC likewise for `junior'.\NC \NR
+\NC vonsep \NC likewise for `von'.\NC \NR
+\NC surnamesep \NC likewise for surname.\NC \NR
+\NC authoretallimit \NC Number of authors needed to trigger `et al.' handling.\NC \NR
+\NC authoretaltext \NC Text to show at the end of an abbreviated list.\NC \NR
+\NC authoretaldisplay \NC Number of authors to actually display in an abbreviated list.\NC \NR
+\NC artauthoretallimit \NC Number of authors needed to trigger `et al.' handling.\NC \NR
+\NC artauthoretaltext \NC Text to show at the end of an abbreviated list.\NC \NR
+\NC artauthoretaldisplay \NC Number of authors to actually display in an abbreviated list.\NC \NR
+\NC editoretallimit \NC Number of editors needed to trigger `et al.' handling.\NC \NR
+\NC editoretaltext \NC Text to show at the end of an abbreviated list.\NC \NR
+\NC editoretaldisplay \NC Number of editors to actually display in an abbreviated list.\NC \NR
+\NC authorcommand \NC A three-argument macro to typeset the list of authors.\NC\NR
+\NC artauthorcommand \NC A three-argument macro to typeset the list of authors.\NC\NR
+\NC editorcommand \NC A three-argument macro to typeset the list of authors.\NC \NR
+\stoptabulate
+
+The commands after `author' e.g. are predefined
+macros that control how a single name is typeset. The four supplied
+macros provide formatting that looks like this:
+
+{\setvalue{@@currentalternative}{data}
+\starttabulate[|l|p|]
+\NC\tex{invertedauthor}\NC \invertedauthor{Taco}{von}{Hoekwater}{T}{jr}\NC\NR
+\NC\tex{invertedshortauthor}\NC \invertedshortauthor{Taco}{von}{Hoekwater}{T}{jr}\NC\NR
+\NC\tex{normalauthor}\NC \normalauthor{Taco}{von}{Hoekwater}{T}{jr}\NC\NR
+\NC\tex{normalshortauthor}\NC \normalshortauthor{Taco}{von}{Hoekwater}{T}{jr}\NC\NR
+\stoptabulate
+}
+As you can see in the examples, there is a connection between certain
+styles of displaying a name and the punctuation used. Punctuation in
+this document has been set up by the `apa' style, and that style makes
+sure that \type{\invertedshortauthor} looks good, since that is the default
+command for `apa' style. (Keep in mind that the comma at the end of the
+author will be inserted by either `namesep' or `lastnamesep'.)
+
+In case you are not happy with the predefined macros; it is quite simple to
+define one of these macros yourself, it is a simple macro with 5
+arguments: firstnames, von-part, surname, inits, junior.
+
+For example, here is the definition of \type{\normalauthor},
+\starttyping
+\def\normalauthor#1#2#3#4#5%
+ {\bibdoif{#1}{#1\bibalternative{firstnamesep}}%
+ \bibdoif{#2}{#2\bibalternative{vonsep}}%
+ #3%
+ \bibdoif{#5}{\bibalternative{surnamesep}#5\unskip}}
+\stoptyping
+but commands can be a lot simpler, like this:
+\starttyping
+\def\surnameonly#1#2#3#4#5{#3}
+\setuppublicationlist[editor=\surnameonly]
+\stoptyping
+
+The three-argument macro after `authorcommand' etc. can be used to
+overrule the typesetting of the list of authors (normally done by the
+internal macro \type{\dospecialbibinsert}). This is mostly a hook for
+duplicated author lists in the publication list, that can be handled
+like so:
+
+\starttyping
+\def\oldlist{}
+\def\AbbreviateAuthors#1#2#3%
+ {\xdef\newlist{#3}%
+ \ifx\oldlist\newlist \hbox to 2em{\hss---\hss}%
+ \else \dospecialbibinsert{#1}{#2}{#3}\fi
+ \global\let\oldlist\newlist }
+
+\setuppublicationlist
+ [artauthorcommand=\AbbreviateAuthors]
+\stoptyping
+The first argument is a list type `author', `artauthor', or `editor',
+the second argument is the number of items that should be typeset,
+and the third argument is a macro containing the commalist of persons,
+in a form suitable for \tex{invertedauthor} and friends.
+
+
+The following options are initialized depending on the
+global settings for `numbering' and `autohang':
+\starttabulate[|l|p|]
+\NC width\NC Set to the calculated width of the largest label, but only if autohang is `yes'\NC\NR
+\NC distance\NC Set to 0pt, but only if autohang is `yes'\NC\NR
+\NC numbercommand\NC A command given in `setuppublications' if numbering is turned on, otherwise empty.\NC\NR
+\NC textcommand\NC Set to a macro that outdents the body text if numbering is turned off, otherwise empty\NC\NR
+\stoptabulate
+
+
+\subsection{Setting citation options: \type{\setupcite}}
+
+The \type{\cite} command has a lot of alternatives, as could be seen
+above in the setting of `refcommand'. And these alternatives have
+their own options:
+
+\setup{setupcite}
+
+\starttabulate[|l|p|]
+\NC andtext \NC separation between two authors (for \type{\cite[author]} styles)\NC \NR
+\NC otherstext \NC text used for `et.al.' (for \type{\cite[author]} styles)\NC \NR
+\NC pubsep \NC separator between publication references in a
+ \type{\cite} command.\NC \NR
+\NC lastpubsep \NC same, but for the
+ last publication in the list.\NC \NR
+\NC left \NC left side of a \type{\cite} (like \type{[})\NC \NR
+\NC inbetween \NC the separator between parts of a single citation.\NC\NR
+\NC right \NC right side of a \type{\cite} (like \type{]})\NC \NR
+\NC compress \NC Whether \type{\cite} should try to
+compress it's argument list. \NC\NR
+\stoptabulate
+Not all options apply to all types of \type{\cite} commands.
+E.g. `compress' does not apply to the citation
+list for all options of \type{\cite}, since sometimes compression does
+not make sense or is not possible. The `num' version compresses
+into a condensed sorted list, and the various `author' styles try
+to compress all publications by one author, but e.g. years are
+never compressed.
+
+Likewise, `inbetween' only applies to three types: `authoryear' (a
+space), `authoryears' (a comma followed by a space), and `num' (where
+it is `--' (an endash), the character used to separate number ranges).
+
+\subsection{Setting up \BIBTEX: \type{\setupbibtex}}
+
+\BIBTEX\ bibliographic databases are converted into \type{.bbl} files,
+and the generated file is just a more \TEX-minded representation of
+the full database(s).
+
+The four \type{.bst} files do not do any actual formatting on the
+entries, and they do not subset the database either. Instead, the
+{\it entire} database is converted into \TEX-parseable records. About the
+only thing the \type{.bst} files do is sorting the entries (and
+\BIBTEX\ itself resolves any `STRING' specifications, of course).
+
+The module will read the created \type{\jobname.bbl} file
+and select the parts that are needed for the current article.
+
+\setup{setupbibtex}
+
+\starttabulate[|l|p|]
+\NC database\NC List of bibtex database file names to be
+ used. The module will write a very short \type{.aux} file instructing
+ \BIBTEX\ to create a (possibly very large) \type{\jobname.bbl} file,
+ that will be \type{\input} by the module (at \type{\starttext}).\NC\NR
+\NC sort\NC How the publications in the
+ \BIBTEX\ database file should be sorted.\crlf
+ The default here is `no' (\type{cont-no.bst}), meaning no sorting at all.
+ `author' (\type{cont-au.bst}) sorts alphabetically on author and within that on year,
+ `title' (\type{cont-ti.bst}) sorts alphabetically on title and then on author and
+ year, and `short' (\type{cont-ab.bst}) sorts on the short key that is generated
+ by \BIBTEX.\NC\NR
+\stoptabulate
+
+Starting with version 2006.08.08, the module registers \BIBTEX\ as a
+program to be run by texexec, so you no longer need to run \BIBTEX\ by
+hand.
+
+Still, you may want to create the \type{\jobname.bbl} yourself. The
+\type{.bbl} syntax is explained below. There is no default
+database of course, and you do not {\it have} to use one: it is
+perfectly OK to just \type{\input} a file with the bibliographic
+records, as long as it has the right input syntax. Or even to include
+the definitions themselves in the preamble of your document.
+
+\subsection{Borrowing publications: \type{\usepublications}}
+
+It is also possible to instruct the module to use the bibliographic
+references belonging to another document. This is done by using the command
+\type{\usepublications[files]}, where \type{files} is a list of other
+\CONTEXT\ documents (without extension).
+
+\setup{usepublications}
+
+To be precise, this command will use the \type{.bbl} and \type{.tuo}
+files from the other document(s), and will therefore not work if these
+files cannot be found (the \type{.tuo} file is needed to get correct
+page references for \type{\cite[page]}).
+
+
+\subsection{Legacy database support}
+
+Old \BIBTEX\ databases tend to contain \LaTeX-specific commands and,
+especially, command||definitions. To make it easier to handle these
+databases, a support module that defines a simplified version of
+\LaTeX's \type{\newcommand} is shipped alongside the bib module.
+You can load this support code by adding
+\starttyping
+\usemodule[bibltx]
+\stoptyping
+to your document preamble.
+
+\section{Citations}
+
+Citations are normally handled through the \type{\cite} command.
+
+\type{\cite} has two basic appearances:
+
+\subsection{Default and explicit citations}
+
+\setup{cite}
+
+The single-argument form executes the style-defined default citation
+command. This is the preferred way of usage, since some styles might
+use numeric citations while others might use a variation of the
+(author,year) style.
+
+The two-argument form allows you to manually select the style you want.
+
+\subsubsection{Citation types}
+
+Following is the full list of recognized keywords for \type{\cite},
+with a short explanation where the data comes from. Most of the
+information that is usable within \type{\cite} comes from the argument
+to \type{\startpublication}. This command is covered in detail below.
+
+
+All of these options are {\it valid} in all publication styles, since
+\CONTEXT\ always has the needed information available. But not all of
+these are {\it sensible} in a particular style: using numbered references if
+the list of publications itself is not numbered is not a good idea, for
+instance. Also, some of the keys are somewhat strange and only
+provided for future extensions.
+
+First, here are the simple ones:
+\starttabulate[|l|l|p|]
+\NC author\NC \cite[author][me] \NC(from `a')\hfil\NC\NR
+\NC doi\NC \cite[doi][me]\NC (from `d')\hfil\NC\NR
+\NC key\NC \cite[key][me]\NC (from `k')\hfil\NC\NR
+\NC serial\NC \cite[serial][me]\NC (from `n')\hfil\NC\NR
+\NC short\NC \cite[short][me]\NC (from `s')\hfil\NC\NR
+\NC type\NC \cite[type][me]\NC (from `t')\hfil\NC\NR
+\NC year\NC \cite[year][me]\NC (from `y')\hfil\NC\NR
+\NC url\NC \cite[url][me]\NC (from `u')\hfil\NC\NR
+\stoptabulate
+Keep in mind that `n' is a database sequence number, and not
+necesarily the same number that is used in the list of
+publications. For instance, if `sorttype' is cite, the list will be
+re-ordered, but the `n' value will remain the same. To get to the
+number that is finally used, use
+\starttabulate[|l|l|p|]
+\NC num\NC \cite[num][me]\NC (this is a reference to
+ the sequence number used in the publication list)\hfil\NC\NR
+\stoptabulate
+If the list of publications is not numbered visually, there will still
+be a number available.
+
+Three of the options are combinations:
+\starttabulate[|l|l|p|]
+\NC authoryear\NC \cite[authoryear][me]\NC(from `a' and `y')\hfil\NC\NR
+\NC authoryears\NC \cite[authoryears][me]\NC(from `a' and `y')\hfil\NC\NR
+\NC authornum\NC \cite[authornum][me]\NC(from `a' and `num')\hfil\NC\NR
+\NC data\NC \vtop{\hsize .45\hsize \cite[data][me]}\NC The data content of the entry\hfil\NC\NR
+\stoptabulate
+
+And the last one is a page reference to the page where the
+the entry is typeset within the publication list.
+
+\starttabulate[|l|l|p|]
+\NC page\NC \cite[page][me]\NC (a page reference)\hfil\NC\NR
+\stoptabulate
+
+\subsection{Citations with local setups}
+
+\setup{citealt}
+
+The arguments in this form are inherited from \type{\setupcite},
+except for \type{extras}. The argument of `\type{extras}' is typeset
+at the end of the reference, but before a potential `\type{right}', so
+it can be used for e.g. page or chapter specifiers.
+
+\subsection{Invisible citations}
+
+\setup{nocite}
+
+This command registers the references in the argument list, but does
+not generate typeset material. It can be used to force certain entries
+from the database to appear in the typeset list of publications.
+
+\section{Placing the publication list}
+
+To typset the list of publications, use \type{\completepublications}
+or \type{\placepublications} at the location in your text where you
+want the publication list to appear. As is normal in \CONTEXT,
+\type{\placepublications} gives you a raw list, and
+\type{\completepublications} a list with a title.
+
+
+The default for the publication list is to contain only the `locally'
+referenced items, so if you want to use your own heading instead of
+the default one, you most likely want to call
+\type{\placepublications} with an explicit criterium, like so:
+\starttyping
+\placepublications[criterium=all]
+\stoptyping
+
+The module uses the following defaults for the generated head:
+\starttyping
+\setupheadtext[en][pubs=References]
+\setupheadtext[nl][pubs=Literatuur]
+\setupheadtext[de][pubs=Literatur]
+\setupheadtext[it][pubs=Bibliografia]
+\setupheadtext[sl][pubs=Literatura]
+\setupheadtext[fr][pubs=Bibliographie]
+\stoptyping
+These (or new ones) can be redefined as needed.
+
+\section{The bbl file}
+
+A typical bbl file consists of one initial command
+(\type{\setuppublicationlist}) that sets some information
+about the number of entries in the bbl file and the widths
+of the labels for the list, and that command is followed by a number of
+appearances of \type{\startpublication ... \stoppublication}
+
+The full appearance version of \type{\cite}
+accepts a number of option keywords, and we saw earlier that
+the argument of the \type{\startpublication} command
+defines most of the things we can reference to. This section explains
+the precise syntax for \type{\startpublication}.
+
+Each single block defines one bibliographic entry. I apologise
+for the use of single||letter keys, but these have the advantage of
+being a)\quad short and b)\quad safe w.r.t. the multi-lingual interface.
+
+\setup{startpublication}
+
+Here is the full example that has been used throughout this document:
+
+\typebuffer[bibexample]
+
+\subsection{Defining a publication}
+
+The list of commands that is allowed to appear between \type{\startpublication}
+and \type{\stoppublication} is given below.
+
+Order within an entry is irrelevant, except for the relative ordering
+within each of the three commands that might appear more than once:
+\type{\artauthor}, \type{\author} and \type{\editor}.
+
+Most of these are `normal' \BIBTEX\ field names (in lowercase), but
+some are extra special, either because they come from non-standard
+databases that I know of, or because the bst file has pre-processed
+the contents of the field.
+
+\subsubsection{Complex fields}
+
+The three fields that contain names are extra special, because they
+have more than one argument. These are: \type{\artauthor},
+\type{\author} and \type{\editor}. These commands require three
+arguments, and there can be two extra optional arguments as well.
+
+
+\starttabulate[|l|l|p|]
+\NC\tex{artauthor[]\{\}[]\{\}\{\}}\NC\tfx AUTHOR\NC For an author of any publication
+ that appears within a larger publication, like an article that appears
+ within a journal or as part of a proceedings. \NC\NR
+\NC\tex{author[]\{\}[]\{\}\{\}}\NC\tfx AUTHOR\NC The author of a standalone
+ publication, like a monograph.\NC\NR
+\NC\tex{editor[]\{\}[]\{\}\{\}}\NC\tfx EDITOR\NC The editor of e.g.
+ an edited volume.\NC\NR
+\stoptabulate
+
+The argument lists have this form:
+
+\starttyping
+\author[junior]{firstnames}[inits]{von}{surname}
+\stoptyping
+
+and the meanings are as follows:
+\starttabulate[|l|p|]
+\NC \type{junior} \NC a designation of lineage, only used if confusion is possible (due to family members having the same name).\NC\NR
+\NC \type{firstnames} \NC individual (given) name(s)\NC\NR
+\NC \type{inits} \NC abbreviated form(s) of \type{firstnames}.\NC\NR
+\NC \type{von} \NC any bits of the family name that are normally disregarded in sorting\NC\NR
+\NC \type{surname} \NC reaminder of the family (last) name\NC\NR
+\stoptabulate
+
+
+\subsubsection{Simple fields}
+
+Rather a large list, this is caused by the desire to support as many
+existing \BIBTEX\ databases as possible. Please note that a few of
+the fields have names that are not the same as in \BIBTEX, because a
+1~on~1 mapping causes conflicts with predefined macro names in
+\CONTEXT.
+
+\starttabulate[|l|p(2.5cm)|p|]
+\NC\type{\abstract}\NC\tfx ABSTRACT\NC just text.\NC\NR
+\NC\type{\annotate}\NC\tfx ANNOTATE \NC just text.\NC\NR
+\NC\type{\arttitle}\NC\tfx TITLE\NC The title of a partial publication (one that has \type{\artauthor}s).\NC\NR
+\NC\type{\assignee}\NC\tfx ASSIGNEE\NC Assigned person for a patent\NC\NR
+\NC\type{\bibnumber}\NC\tfx NUMBER \NC \NC\NR
+\NC\type{\bibtype}\NC\tfx TYPE \NC See the \BIBTEX\
+ documentation for it's use. This is {\it not} related
+ to the type of entry that is used for deciding on the
+ layout.\NC\NR
+\NC\type{\biburl}\NC\tfx URL \NC Location on the internet. \NC\NR
+\NC\type{\chapter}\NC\tfx CHAPTER \NC the chapter number, if this entry is
+referring to a smaller section of a publication. It might actually
+be a part number or a (sub)section number. The field \type{\bibtype} (above)
+differentiates between these.\NC\NR
+\NC\type{\city}\NC\tfx CITY\NC city of publication.\NC\NR
+\NC\type{\comment}\NC\tfx COMMENT\NC just text.\NC\NR
+\NC\type{\country}\NC\tfx COUNTRY\NC country of publication.\NC\NR
+\NC\type{\crossref}\NC\tfx CROSSREF\NC A cross-reference to another
+ bibliographic entry. It will insert a citation
+ to that entry, forcing it to be typeset as well.\NC\NR
+\NC\type{\day}\NC\tfx DAY \NC Date of publication (for a patent)\NC\NR
+\NC\type{\dayfiled}\NC\tfx DAYFILED\NC Filing date for a patent\NC\NR
+\NC\type{\doi}\NC\tfx DOI \NC Document Object Identifier\NC\NR
+\NC\type{\edition}\NC\tfx EDITION\NC The edition.\NC\NR
+\NC\type{\eprint}\NC\tfx EPRINT\NC E-print information\NC\NR
+\NC\type{\howpublished}\NC\tfx HOWPUBLISHED\NC \NC\NR
+\NC\type{\isbn}\NC\tfx ISNB\NC isbn number (for books)\NC\NR
+\NC\type{\issn}\NC\tfx ISSN\NC issn number (for journals)\NC\NR
+\NC\type{\issue}\NC\tfx ISSUE\NC issue number (for journals)\NC\NR
+\NC\type{\journal}\NC\tfx JOURNAL \NC The journal's name.\NC\NR
+\NC\type{\keyword}\NC\tfx KEYWORD \NC just text (for use in indices).\NC\NR
+\NC\type{\keywords}\NC\tfx KEYWORDS \NC just text (for use in indices).\NC\NR
+\NC\type{\lang}\NC\tfx LANGUAGE \NC The language of the
+ current bibliographic record\NC\NR
+\NC\type{\month}\NC\tfx MONTH\NC Month of publication\NC\NR
+\NC\type{\monthfiled}\NC\tfx MONTHFILED\NC Filing month for a patent\NC\NR
+\NC\type{\names}\NC\tfx NAMES\NC just text (for use in indices).\NC\NR
+\NC\type{\nationality}\NC\tfx NATIONALITY\NC Nationality information for a patent\NC\NR
+\NC\type{\note}\NC\tfx NOTE \NC just text (this is the `standard' \BIBTEX\ commentary field).\NC\NR
+\NC\type{\notes}\NC\tfx NOTES \NC just text.\NC\NR
+\NC\type{\organization}\NC\tfx ORGANIZATION\NC Like institute, but for e.g. companies.\NC\NR
+\NC\type{\pages}\NC\tfx PAGES\NC Either the number of pages, or the page range
+ for a partial publication. The `t' key to startpublication
+ will decide automatically what is meant.\NC\NR
+\NC\type{\pubname}\NC\tfx INSTITUTION,\crlf PUBLISHER,\crlf SCHOOL\NC Publisher or institution name.\NC\NR
+\NC\type{\pubyear}\NC\tfx YEAR \NC Year of publication. Within this command,
+ the \BIBTEX\ bst files will sometimes insert the command
+ \type{\maybeyear}, which is needed to make sure that
+ the bbl file stay flexible enough to allow all styles of
+ formatting.\NC\NR
+\NC\type{\revision}\NC\tfx REVISION \NC Release version\NC\NR
+\NC\type{\series}\NC\tfx SERIES \NC Possible book series information.\NC\NR
+\NC\type{\size}\NC\tfx SIZE \NC Size in KB of a PDF file (this came from
+ the NTG \MAPS\ database)\NC\NR
+\NC\type{\thekey}\NC\tfx KEY \NC See the \BIBTEX\
+ documentation for it's use. This is {\it not} related to
+ the key used for citing this entry.\NC\NR
+\NC\type{\title}\NC\tfx TITLE,\crlf BOOKTITLE \NC The title of a book.\NC\NR
+\NC\type{\volume}\NC\tfx VOLUME \NC Volume number for multi-part books or
+ journals.\NC\NR
+\NC\type{\yearfiled}\NC\tfx YEARFILED\NC Filing year for a patent\NC\NR
+\stoptabulate
+
+When the \type{\lang} field's content is a full word instead of a
+two||letter code, correct processing depends on an auxiliary command
+\type{\setbiblanguage}, to be used like this:
+\starttyping
+\setbiblanguage{English}{en}
+\stoptyping
+The first argument is a literal \type{\lang} argument, the second
+argument has to be a two||letter language abbreviation understood by
+\CONTEXT.
+
+Adding in one of your own fields is reasonably simple:
+
+\starttyping
+\newbibfield[mycommand]
+\stoptyping
+This will define \type{\mycommand} for use within
+a publication (plus \type{\bib@mycommand}, it's internal form) as
+well as the command \type{\insertmycommand} that can be used
+within \type{\setuppublicationlayout} to fetch the supplied
+value (see below).
+
+
+\section{Defining a publication type layout}
+
+Publication style files of course take care of setting defaults for the
+commands as explained earlier, but the largest part of a such a
+publication style is concerned with specifying layouts for various
+types of publications.
+
+The command that does the work is \type{\setuppublicationlayout}:
+
+\setup{setuppublicationlayout}
+
+The first argument that is a publication (\BIBTEX\ entry) type, and
+all publications that have this type given as argument to the `t' key
+of \type{\startpublication} will be typeset by executing the commands
+that appear in the group following the command.
+
+For example, here is a possible way to typeset an article: from \type{bibl-apa}:
+\starttyping
+\setuppublicationlayout[article]{%
+ \insertartauthors{}{ }{\insertthekey{}{ }{}}%
+ \insertpubyear{(}{). }{\unskip.}%
+ \insertarttitle{\bgroup }{\egroup. }{}%
+ \insertjournal{\bgroup \it}{\egroup}
+ {\insertcrossref{In }{}{}}%
+ \insertvolume
+ {, }
+ {\insertissue{(}{)}{}\insertpages{:}{.}{.}}
+ {\insertpages{, pages }{.}{.}}%
+ \insertnote{ }{.}{}%
+ \insertcomment{}{.}{}%
+}
+\stoptyping
+For every command in the long list given in the previous paragraph, there is
+a corresponding \type{\insertxxx} command. (As usual, \type{\author}
+etc. are special: they have a macro called \type{\insertxxxs}
+instead). All of these \type{\insertxxx} macros use the same logic:
+
+\starttyping
+\insertartauthors{<before>}{<after>}{<not found>}
+\stoptyping
+
+Sounds easy? It is! But it is also often tedious: database entries can
+be tricky things: some without issue numbers, others without page
+numbers, some even without authors. So, you often need to nest rather
+a lot of commands in the \type{<not found>} section of the `upper'
+command, and \type{\unskip} and \type{\ignorespaces} are good friends
+as well.
+
+Incidentally, the distributed \type{bibl-xxx} files define layouts for
+the `standard' publication types that are defined in the example
+bibliography that comes with \BIBTEX. The list of possbile types is in
+no way limited to that list, but it provides a reasonable starting
+point.
+
+\section{References}
+
+\placepublications[criterium=all]
+
+\stopdocumentation
+
+\stopmodule
+
+\stoptext \ No newline at end of file
diff --git a/Master/texmf-dist/doc/scripts/context/perl/texshow.1 b/Master/texmf-dist/doc/scripts/context/perl/texshow.1
new file mode 100644
index 00000000000..618928b8f4b
--- /dev/null
+++ b/Master/texmf-dist/doc/scripts/context/perl/texshow.1
@@ -0,0 +1,70 @@
+.TH "texshow" "1" "Jul 2006" "ConTeXt" "CONTEXT"
+.PP
+.SH "NAME"
+texshow \- ConTeXt command and parameter reference
+.PP
+.SH "SYNOPSIS"
+\fBtexshow\fP [ \fIOPTION\fP ] [ \fICOMMAND\fP ]
+[ \fILANGUAGE\fP ]
+.PP
+.SH "DESCRIPTION"
+.PP
+\fBtexshow\fP uses \fBperl\fP(1) and PerlTk (see \fBTk\fP(3pm)) to
+show a overview of the commands and parameters of those\&. In the Tk
+window you can search for a command and by switching the interface,
+you can see the equivalent in another interface language\&.
+.PP
+\fICOMMAND\fP is a \fBConTeXt\fP command to search for in the
+database\&. Note that Plain TeX commands are not (yet) in this database
+although they can be used in \fBConTeXt\fP source files\&.
+.PP
+\fILANGUAGE\fP can be one of \fBcz\fP (Czech), \fBde\fP
+(German), \fBen\fP (US-English) or \fBnl\fP (Dutch)\&. The default
+language is English\&.
+.PP
+You can also set the interface language with the
+\fB--interface\fP switch\&.
+.PP
+.SH "BINDINGS"
+.PP
+Most keyboard events are bound to the search widget, with the
+exception of \fB<Page Up>\fP (aka \fB<Prior>\fP) and \fB<Page Down>\fP
+(aka \fB<Next>\fP). \fB<Control-q>\fP, \fB<Control-x>\fP, and
+\fB<Alt-F4>\fP quit the application\&.
+.PP
+.SH "OPTIONS"
+.PP
+.IP "\fB--help\fP"
+Print a brief syntax summary
+.IP "\fB--interface=\fP\fILANGUAGE\fP"
+Primary interface language\&.
+See DESCRIPTION for \fILANGUAGE\fP options\&.
+.PP
+.SH "FILES"
+.PP
+.IP "\fITEXMF/tex/context/interface/cont-\fIXX\fP\&.xml\fP"
+The database
+file\&. At this writing, \fIXX\fP can be one of \fBcz\fP (Czech),
+\fBde\fP (German), \fBen\fP (English), \fBfr\fP (French),
+\fBit\fP (Italian), \fBnl\fP (Dutch), or \fBro\fP (Romanian)\&.
+Which file is used is determined by the
+\fILANGUAGE\fP specified on the command line\&.
+.PP
+.SH "SEE ALSO"
+.PP
+\fBtexexec\fP(1), \fBpdfetex\fP(1), \fBpdftex\fP(1)\&.
+.PP
+Web page: <http://www\&.pragma-ade\&.com/>
+.PP
+.SH "AUTHOR"
+.PP
+This version of \fBtexshow\fP was written by Taco Hoekwater
+<taco@elvenkind\&.com>\&.
+.PP
+This manpage was written by Tobias Burnus
+<burnus@gmx\&.de> and C\&.M\&. Connelly
+<c@eskimo\&.com>\&.
+.PP
+\fBtexshow\fP is part of \fBConTeXt\fP and is available
+from <http://www\&.pragma-ade\&.com/pragma-ade/>\&.
+.PP
diff --git a/Master/texmf-dist/doc/scripts/context/perl/texshow.html b/Master/texmf-dist/doc/scripts/context/perl/texshow.html
new file mode 100644
index 00000000000..a9af24284c6
--- /dev/null
+++ b/Master/texmf-dist/doc/scripts/context/perl/texshow.html
@@ -0,0 +1,137 @@
+<HTML><HEAD><TITLE>Manpage of texshow</TITLE>
+</HEAD><BODY>
+<H1>texshow</H1>
+Section: CONTEXT (1)<BR>Updated: Jul 2006<BR><A HREF="#index">Index</A>
+<A HREF="http://localhost/cgi-bin/man/man2html">Return to Main Contents</A><HR>
+
+<P>
+
+<A NAME="lbAB">&nbsp;</A>
+<H2>NAME </H2>
+
+texshow - ConTeXt command and parameter reference
+<P>
+
+<A NAME="lbAC">&nbsp;</A>
+<H2>SYNOPSIS </H2>
+
+<B>texshow</B> [ <I>OPTION</I> ] [ <I>COMMAND</I> ]
+[ <I>LANGUAGE</I> ]
+<P>
+
+<A NAME="lbAD">&nbsp;</A>
+<H2>DESCRIPTION </H2>
+
+<P>
+
+<B>texshow</B> uses <B><A HREF="http://localhost/cgi-bin/man/man2html?1+perl">perl</A></B>(1) and PerlTk (see <B>Tk</B>(3pm)) to
+show a overview of the commands and parameters of those. In the Tk
+window you can search for a command and by switching the interface,
+you can see the equivalent in another interface language.
+<P>
+
+<I>COMMAND</I> is a <B>ConTeXt</B> command to search for in the
+database. Note that Plain TeX commands are not (yet) in this database
+although they can be used in <B>ConTeXt</B> source files.
+<P>
+
+<I>LANGUAGE</I> can be one of <B>cz</B> (Czech), <B>de</B>
+(German), <B>en</B> (US-English) or <B>nl</B> (Dutch). The default
+language is English.
+<P>
+
+You can also set the interface language with the
+<B>--interface</B> switch.
+<P>
+
+<A NAME="lbAE">&nbsp;</A>
+<H2>BINDINGS </H2>
+
+<P>
+
+Most keyboard events are bound to the search widget, with the
+exception of <B>&lt;Page Up&gt;</B> (aka <B>&lt;Prior&gt;</B>) and <B>&lt;Page Down&gt;</B>
+(aka <B>&lt;Next&gt;</B>). <B>&lt;Control-q&gt;</B>, <B>&lt;Control-x&gt;</B>, and
+<B>&lt;Alt-F4&gt;</B> quit the application.
+<P>
+
+<A NAME="lbAF">&nbsp;</A>
+<H2>OPTIONS </H2>
+
+<P>
+
+<DL COMPACT>
+<DT><B>--help</B><DD>
+Print a brief syntax summary
+<DT><B>--interface=</B><I>LANGUAGE</I><DD>
+Primary interface language.
+See DESCRIPTION for <I>LANGUAGE</I> options.
+</DL>
+<P>
+
+<A NAME="lbAG">&nbsp;</A>
+<H2>FILES </H2>
+
+<P>
+
+<DL COMPACT>
+<DT><I>TEXMF/tex/context/interface/cont-XX</I>.xml<DD>
+The database
+file. At this writing, <I>XX</I> can be one of <B>cz</B> (Czech),
+<B>de</B> (German), <B>en</B> (English), <B>fr</B> (French),
+<B>it</B> (Italian), <B>nl</B> (Dutch), or <B>ro</B> (Romanian).
+Which file is used is determined by the
+<I>LANGUAGE</I> specified on the command line.
+</DL>
+<P>
+
+<A NAME="lbAH">&nbsp;</A>
+<H2>SEE ALSO </H2>
+
+<P>
+
+<B><A HREF="http://localhost/cgi-bin/man/man2html?1+texexec">texexec</A></B>(1), <B><A HREF="http://localhost/cgi-bin/man/man2html?1+pdfetex">pdfetex</A></B>(1), <B><A HREF="http://localhost/cgi-bin/man/man2html?1+pdftex">pdftex</A></B>(1).
+<P>
+
+Web page: &lt;<A HREF="http://www.pragma-ade.com/">http://www.pragma-ade.com/</A>&gt;
+<P>
+
+<A NAME="lbAI">&nbsp;</A>
+<H2>AUTHOR </H2>
+
+<P>
+
+This version of <B>texshow</B> was written by Taco Hoekwater
+&lt;<A HREF="mailto:taco@elvenkind.com">taco@elvenkind.com</A>&gt;.
+<P>
+
+This manpage was written by Tobias Burnus
+&lt;<A HREF="mailto:burnus@gmx.de">burnus@gmx.de</A>&gt; and C.M. Connelly
+&lt;c@eskimo.com&gt;.
+<P>
+
+<B>texshow</B> is part of <B>ConTeXt</B> and is available
+from &lt;<A HREF="http://www.pragma-ade.com/pragma-ade/">http://www.pragma-ade.com/pragma-ade/</A>&gt;.
+<P>
+
+<P>
+
+<HR>
+<A NAME="index">&nbsp;</A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME </A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS </A><DD>
+<DT><A HREF="#lbAD">DESCRIPTION </A><DD>
+<DT><A HREF="#lbAE">BINDINGS </A><DD>
+<DT><A HREF="#lbAF">OPTIONS </A><DD>
+<DT><A HREF="#lbAG">FILES </A><DD>
+<DT><A HREF="#lbAH">SEE ALSO </A><DD>
+<DT><A HREF="#lbAI">AUTHOR </A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREF="http://localhost/cgi-bin/man/man2html">man2html</A>,
+using the manual pages.<BR>
+Time: 09:31:15 GMT, July 19, 2006
+</BODY>
+</HTML>
diff --git a/Master/texmf-dist/fonts/enc/dvips/context/ec-sc.enc b/Master/texmf-dist/fonts/enc/dvips/context/ec-sc.enc
new file mode 100644
index 00000000000..77357c9f369
--- /dev/null
+++ b/Master/texmf-dist/fonts/enc/dvips/context/ec-sc.enc
@@ -0,0 +1,84 @@
+% This version is sc extended by Hans Hagen using PalatinoNova-Regular.afm.
+%
+%
+% This is the EC encoding.
+%
+% These are the ligs and kerns in addition to those found in the
+% AFM file. (The only ligs in the Times-Roman.afm file are the
+% fi and fl ligatures.)
+%
+% LIGKERN space l =: lslash ; space L =: Lslash ;
+% LIGKERN question quoteleft =: questiondown ; exclam quoteleft =: exclamdown ;
+% LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ;
+% LIGKERN quoteleft quoteleft =: quotedblleft ;
+% LIGKERN quoteright quoteright =: quotedblright ;
+%
+% We blow away kerns to and from spaces (TeX doesn't have a
+% space) and also remove any kerns from the numbers (although
+% the only kern pair that mentions a number in Times-Roman.afm
+% is one one.)
+%
+% LIGKERN space {} * ; * {} space ; zero {} * ; * {} zero ;
+% LIGKERN one {} * ; * {} one ; two {} * ; * {} two ;
+% LIGKERN three {} * ; * {} three ; four {} * ; * {} four ;
+% LIGKERN five {} * ; * {} five ; six {} * ; * {} six ;
+% LIGKERN seven {} * ; * {} seven ; eight {} * ; * {} eight ;
+% LIGKERN nine {} * ; * {} nine ;
+% LIGKERN comma comma =: quotedblbase ; less less =: guillemotleft ;
+% LIGKERN greater greater =: guillemotright ;
+%
+/ECEncoding [ % now 256 chars follow
+% 0x00
+ /grave.sc /acute.sc /circumflex.sc /tilde.sc /dieresis.sc /hungarumlaut.sc /ring.sc /caron.sc
+ /breve.sc /macron.sc /dotaccent.sc /cedilla
+ /ogonek /quotesinglbase /guilsinglleft /guilsinglright
+% 0x10
+ /quotedblleft /quotedblright /quotedblbase /guillemotleft
+ /guillemotright /endash /emdash /cwm
+ /zeroinferior /dotlessi /dotlessj /ff /fi.sc /fl.sc /ffi /ffl
+% 0x20
+ /visualspace /exclam.sc /quotedbl /numbersign
+ /dollar.sc /percent.sc /ampersand.sc /quoteright
+ /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
+% 0x30
+ /zero.sc /one.sc /two.sc /three.sc /four.sc /five.sc /six.sc /seven.sc
+ /eight.sc /nine.sc /colon /semicolon /less /equal /greater /question.sc
+% 0x40
+ /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O
+% 0x50
+ /P /Q /R /S /T /U /V /W
+ /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+% 0x60
+ /quoteleft /a.sc /b.sc /c.sc /d.sc /e.sc /f.sc /g.sc /h.sc /i.sc /j.sc /k.sc /l.sc /m.sc /n.sc /o.sc
+% 0x70
+ /p.sc /q.sc /r.sc /s.sc /t.sc /u.sc /v.sc /w.sc
+ /x.sc /y.sc /z.sc /braceleft /bar /braceright /asciitilde /hyphen
+% 0x80
+ /Abreve /Aogonek /Cacute /Ccaron /Dcaron /Ecaron /Eogonek /Gbreve
+ /Lacute /Lcaron /Lslash /Nacute /Ncaron /Ng /Ohungarumlaut /Racute
+% 0x90
+ /Rcaron /Sacute /Scaron /Scedilla
+ /Tcaron /Tcedilla /Uhungarumlaut /Uring
+ /Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dbar /section
+% 0xA0
+ /abreve.sc /aogonek.sc /cacute.sc /ccaron.sc /dcaron.sc /ecaron.sc /eogonek.sc /gbreve.sc
+ /lacute.sc /lcaron.sc /lslash.sc /nacute.sc /ncaron.sc /ng /ohungarumlaut.sc /racute.sc
+% 0xB0
+ /rcaron.sc /sacute.sc /scaron.sc /scedilla.sc
+ /tquoteright /tcedilla /uhungarumlaut.sc /uring.sc
+ /ldot.sc /zacute.sc /zcaron.sc /zdotaccent.sc /ij.sc /exclamdown.sc /questiondown.sc /sterling.sc
+% 0xC0
+ /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+ /Egrave /Eacute /Ecircumflex /Edieresis
+ /Igrave /Iacute /Icircumflex /Idieresis
+% 0xD0
+ /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /Germandbls
+% 0xE0
+ /agrave.sc /aacute.sc /acircumflex.sc /atilde.sc /adieresis.sc /aring.sc /ae.sc /ccedilla.sc
+ /egrave.sc /eacute.sc /ecircumflex.sc /edieresis.sc
+ /igrave.sc /iacute.sc /icircumflex.sc /idieresis.sc
+% 0xF0
+ /eth.sc /ntilde.sc /ograve.sc /oacute.sc /ocircumflex.sc /otilde.sc /odieresis.sc /oe.sc
+ /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /germandbls.sc
+] def
diff --git a/Master/texmf-dist/fonts/enc/dvips/context/texnansi-sc.enc b/Master/texmf-dist/fonts/enc/dvips/context/texnansi-sc.enc
new file mode 100644
index 00000000000..553a74d8883
--- /dev/null
+++ b/Master/texmf-dist/fonts/enc/dvips/context/texnansi-sc.enc
@@ -0,0 +1,319 @@
+% This version is sc extended by Hans Hagen using PalatinoNova-Regular.afm.
+%
+% @psencodingfile{
+% author = "Y&Y, Inc.",
+% version = "1.1",
+% date = "1 December 1996",
+% filename = "texnansi.enc",
+% email = "help@YandY.com",
+% address = "45 Walden Street // Concord, MA 01742, USA",
+% codetable = "ISO/ASCII",
+% checksum = "xx",
+% docstring = "Encoding for fonts in Adobe Type 1 format for use with TeX."
+% }
+%
+% The idea is to have all 228 characters normally included in Type 1 text
+% fonts (plus a few more) available for typesetting. This is effectively
+% the character set in Adobe Standard Encoding, ISO Latin 1, plus a few more.
+%
+% Character code assignments were made as follows:
+%
+% (1) The character layout largely matches `ASCII' in the 32 -- 126 range,
+% except for `circumflex' in 94 and `tilde' in 126, to match `TeX text'
+% (`asciicircumflex' and `asciitilde' appear in 158 and 142 instead).
+%
+% (2) The character layout matches `Windows ANSI' in almost all places,
+% except for `quoteright' in 39 and `quoteleft' in 96 to match ASCII
+% (`quotesingle' and `grave' appear in 129 and 18 instead).
+%
+% (3) The character layout matches `TeX typewriter' used by CM text fonts
+% in most places (except for discordant positions such as hungarumlaut
+% (instead of braceright), dotaccent (instead of underscore) etc.
+%
+% (4) Remaining characters are assigned arbitrarily to the `control character'
+% range (0 -- 31), avoiding 0, 9, 10 and 13 in case we meet dumb software
+% - similarly one should really avoid 127 and 128 if possible.
+% In addition, the 8 open slots in Windows ANSI between 128 and 159 are used.
+%
+% (5) Y&Y Lucida Bright includes some extra ligatures and such; ff, ffi, ffl,
+% and `dotlessj,' these are included 11 -- 15, and 17.
+%
+% (6) Hyphen appears both at 45 and 173 for compatibility with both ASCII
+% and Windows ANSI.
+%
+% (7) It doesn't really matter where ligatures appear (both real, such as ffi,
+% and pseudo such as ---) since these should not be accessed directly, only
+% via ligature information in the TFM file.
+%
+% SAMPLE USAGE (in `psfonts.map' file for DVIPS):
+%
+% lbr LucidaBright "TeXnANSIEncoding ReEncodeFont" <texnansi.enc <lbr.pfb
+%
+% This tells DVIPS that the font called `lbr' in TeX has PostScript
+% FontName `LucidaBright.' It also asks DVIPS to expand the file `lbr.pfb'
+% into PFA form, to include the attached `texnansi.enc' encoding vector,
+% and to then actually reencode the font based on that encoding vector.
+%
+% Revised 1996 June 1 by adding second position for `fl' to avoid Acrobat bug.
+% Revised 1996 June 1 by adding second position for `fraction' for same reason.
+% Revised 1997 Oct 1 by adding cwm (used in boundary char TFM code)
+% Revised 1998 Mar 1 by adding Unicode for Euro character
+%
+/TeXnANSIEncoding [
+/.notdef % 0
+/Euro.sc % /Uni20AC 1
+/.notdef % 2
+/.notdef % 3
+/fraction % 4
+/dotaccent.sc % 5
+/hungarumlaut.sc % 6
+/ogonek % 7
+/fl.sc % 8
+/.notdef % /fraction % 9 not used (see 4), backward compatability only
+/cwm % 10 not used, except boundary char internally maybe
+/ff % 11
+/fi.sc % 12
+/.notdef % /fl.sc % 13 not used (see 8), backward compatability only
+/ffi % 14
+/ffl % 15
+/dotlessi % 16
+/dotlessj % 17
+/grave.sc % 18
+/acute.sc % 19
+/caron.sc % 20
+/breve.sc % 21
+/macron.sc % 22
+/ring.sc % 23
+/cedilla % 24
+/germandbls.sc % 25
+/ae.sc % 26
+/oe.sc % 27
+/oslash.sc % 28
+/AE % 29
+/OE % 30
+/Oslash % 31
+/space % 32 % /suppress in TeX text
+/exclam.sc % 33
+/quotedbl % 34 % /quotedblright in TeX text
+/numbersign % 35
+/dollar.sc % 36
+/percent.sc % 37
+/ampersand.sc % 38
+/quoteright % 39 % /quotesingle in ANSI
+/parenleft % 40
+/parenright % 41
+/asterisk % 42
+/plus % 43
+/comma % 44
+/hyphen % 45
+/period % 46
+/slash % 47
+/zero.sc % 48
+/one.sc % 49
+/two.sc % 50
+/three.sc % 51
+/four.sc % 52
+/five.sc % 53
+/six.sc % 54
+/seven.sc % 55
+/eight.sc % 56
+/nine.sc % 57
+/colon % 58
+/semicolon % 59
+/less % 60 % /exclamdown.sc in Tex text
+/equal % 61
+/greater % 62 % /questiondown.sc in TeX text
+/question.sc % 63
+/at % 64
+/A % 65
+/B % 66
+/C % 67
+/D % 68
+/E % 69
+/F % 70
+/G % 71
+/H % 72
+/I % 73
+/J % 74
+/K % 75
+/L % 76
+/M % 77
+/N % 78
+/O % 79
+/P % 80
+/Q % 81
+/R % 82
+/S % 83
+/T % 84
+/U % 85
+/V % 86
+/W % 87
+/X % 88
+/Y % 89
+/Z % 90
+/bracketleft % 91
+/backslash % 92 % /quotedblleft in TeX text
+/bracketright % 93
+/circumflex.sc % 94 % /asciicircum in ASCII
+/underscore % 95 % /dotaccent.sc in TeX text
+/quoteleft % 96 % /grave.sc accent in ANSI
+/a.sc % 97
+/b.sc % 98
+/c.sc % 99
+/d.sc % 100
+/e.sc % 101
+/f.sc % 102
+/g.sc % 103
+/h.sc % 104
+/i.sc % 105
+/j.sc % 106
+/k.sc % 107
+/l.sc % 108
+/m.sc % 109
+/n.sc % 110
+/o.sc % 111
+/p.sc % 112
+/q.sc % 113
+/r.sc % 114
+/s.sc % 115
+/t.sc % 116
+/u.sc % 117
+/v.sc % 118
+/w.sc % 119
+/x.sc % 120
+/y.sc % 121
+/z.sc % 122
+/braceleft % 123 % /endash in TeX text
+/bar % 124 % /emdash in TeX test
+/braceright % 125 % /hungarumlaut.sc in TeX text
+/tilde.sc % 126 % /asciitilde in ASCII
+/dieresis.sc % 127 not used (see 168), use higher up instead
+/Lslash % 128 this position is unfortunate, but now too late to fix
+/quotesingle % 129
+/quotesinglbase % 130
+/florin.sc % 131
+/quotedblbase % 132
+/ellipsis % 133
+/dagger % 134
+/daggerdbl % 135
+/circumflex.sc % 136
+/perthousand.sc % 137
+/Scaron % 138
+/guilsinglleft % 139
+/OE % 140
+/Zcaron % 141
+/asciicircum % 142
+/minus % 143
+/lslash.sc % 144
+/quoteleft % 145
+/quoteright % 146
+/quotedblleft % 147
+/quotedblright % 148
+/bullet % 149
+/endash % 150
+/emdash % 151
+/tilde.sc % 152
+/trademark % 153
+/scaron.sc % 154
+/guilsinglright % 155
+/oe.sc % 156
+/zcaron.sc % 157
+/asciitilde % 158
+/Ydieresis % 159
+/nbspace % 160 % /space (no break space)
+/exclamdown.sc % 161
+/cent.sc % 162
+/sterling.sc % 163
+/currency % 164
+/yen.sc % 165
+/brokenbar % 166
+/section % 167
+/dieresis.sc % 168
+/copyright % 169
+/ordfeminine.sc % 170
+/guillemotleft % 171
+/logicalnot % 172
+/sfthyphen % 173 % /hyphen (hanging hyphen)
+/registered % 174
+/macron.sc % 175
+/degree % 176
+/plusminus % 177
+/twosuperior % 178
+/threesuperior % 179
+/acute.sc % 180
+/mu % 181
+/paragraph % 182
+/periodcentered % 183
+/cedilla % 184
+/onesuperior % 185
+/ordmasculine % 186
+/guillemotright % 187
+/onequarter % 188
+/onehalf % 189
+/threequarters % 190
+/questiondown.sc % 191
+/Agrave % 192
+/Aacute % 193
+/Acircumflex % 194
+/Atilde % 195
+/Adieresis % 196
+/Aring % 197
+/AE % 198
+/Ccedilla % 199
+/Egrave % 200
+/Eacute % 201
+/Ecircumflex % 202
+/Edieresis % 203
+/Igrave % 204
+/Iacute % 205
+/Icircumflex % 206
+/Idieresis % 207
+/Eth % 208
+/Ntilde % 209
+/Ograve % 210
+/Oacute % 211
+/Ocircumflex % 212
+/Otilde % 213
+/Odieresis % 214
+/multiply % 215 % OE in T1
+/Oslash % 216
+/Ugrave % 217
+/Uacute % 218
+/Ucircumflex % 219
+/Udieresis % 220
+/Yacute % 221
+/Thorn % 222
+/germandbls.sc % 223
+/agrave.sc % 224
+/aacute.sc % 225
+/acircumflex.sc % 226
+/atilde.sc % 227
+/adieresis.sc % 228
+/aring.sc % 229
+/ae.sc % 230
+/ccedilla.sc % 231
+/egrave.sc % 232
+/eacute.sc % 233
+/ecircumflex.sc % 234
+/edieresis.sc % 235
+/igrave.sc % 236
+/iacute.sc % 237
+/icircumflex.sc % 238
+/idieresis.sc % 239
+/eth.sc % 240
+/ntilde.sc % 241
+/ograve.sc % 242
+/oacute.sc % 243
+/ocircumflex.sc % 244
+/otilde.sc % 245
+/odieresis.sc % 246
+/divide % 247 % oe in T1
+/oslash.sc % 248
+/ugrave.sc % 249
+/uacute.sc % 250
+/ucircumflex.sc % 251
+/udieresis.sc % 252
+/yacute.sc % 253
+/thorn.sc % 254
+/ydieresis.sc % 255 % germandbls in T1
+] def
diff --git a/Master/texmf-dist/fonts/enc/pdftex/context/koeieletters-ex.enc b/Master/texmf-dist/fonts/enc/pdftex/context/koeieletters-ex.enc
new file mode 100644
index 00000000000..ae27d11de4b
--- /dev/null
+++ b/Master/texmf-dist/fonts/enc/pdftex/context/koeieletters-ex.enc
@@ -0,0 +1,259 @@
+/koeielettersEnc-ex [
+ /parenleft.big % 0x00
+ /parenright.big
+ /bracketleft.big
+ /bracketright.big
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /braceleft.big
+ /braceright.big
+ /.notdef
+ /.notdef
+ /bar.big
+ /bar.bigg
+ /slash.big
+ /backslash.big % 0x10
+ /parenleft.bigg
+ /parenright.bigg
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0x20
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /slash.bigg
+ /backslash.bigg
+ /parenleft.top % 0x30
+ /parenright.top
+ /bracketleft.top
+ /bracketright.top
+ /bracketleft.bot
+ /bracketright.bot
+ /bracketleft.ex
+ /bracketright.ex
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /parenleft.bot % 0x40
+ /parenright.bot
+ /parenleft.ex
+ /parenright.ex
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /summation.alt % 0x50
+ /.notdef
+ /integral.alt
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /summation.big
+ /.notdef
+ /integral.big
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0x60
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /bracketleft.bigg
+ /bracketright.bigg
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /braceleft.bigg
+ /braceright.bigg
+ /radical.big % 0x70
+ /radical.bigg
+ /radical.Bigg
+ /radical.BIGG
+ /radical.bot
+ /radical.mid
+ /radical.top
+ /.notdef
+ /.notdef
+ /.notdef
+ /radical.extender
+ /radical.end
+ /bar.begin
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0x80
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0x90
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xa0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xb0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xc0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xd0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xe0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xf0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+] def
+
diff --git a/Master/texmf-dist/fonts/enc/pdftex/context/koeieletters-mi.enc b/Master/texmf-dist/fonts/enc/pdftex/context/koeieletters-mi.enc
new file mode 100644
index 00000000000..60a91b83f3b
--- /dev/null
+++ b/Master/texmf-dist/fonts/enc/pdftex/context/koeieletters-mi.enc
@@ -0,0 +1,271 @@
+/koeielettersEnc-mi [
+ /.notdef % 0x00
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0x10
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0x20
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /zero.alt % 0x30
+ /one.alt
+ /two.alt
+ /three.alt
+ /four.alt
+ /five.alt
+ /six.alt
+ /seven.alt
+ /eight.alt
+ /nine.alt
+ /period
+ /comma
+ /less
+ /slash
+ /greater
+ /.notdef
+ /.notdef % 0x40
+ /A
+ /B
+ /C
+ /D
+ /E
+ /F
+ /G
+ /H
+ /I
+ /J
+ /K
+ /L
+ /M
+ /N
+ /O
+ /P % 0x50
+ /Q
+ /R
+ /S
+ /T
+ /U
+ /V
+ /W
+ /X
+ /Y
+ /Z
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0x60
+ /a
+ /b
+ /c
+ /d
+ /e
+ /f
+ /g
+ /h
+ /i
+ /j
+ /k
+ /l
+ /m
+ /n
+ /o
+ /p % 0x70
+ /q
+ /r
+ /s
+ /t
+ /u
+ /v
+ /w
+ /x
+ /y
+ /z
+ /dotlessi
+ /dotlessj
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0x80
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0x90
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xa0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xb0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xc0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xd0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xe0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xf0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+] def
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Master/texmf-dist/fonts/enc/pdftex/context/koeieletters-sy.enc b/Master/texmf-dist/fonts/enc/pdftex/context/koeieletters-sy.enc
new file mode 100644
index 00000000000..ef9e954672c
--- /dev/null
+++ b/Master/texmf-dist/fonts/enc/pdftex/context/koeieletters-sy.enc
@@ -0,0 +1,271 @@
+/koeielettersEnc-sy [
+ /minus % 0x00
+ /periodcentered
+ /multiply
+ /asteriskmath
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0x10
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /similar
+ /equivalence
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /arrowleft % 0x20
+ /arrowright
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /minute % 0x30
+ /infinity
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /slash
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0x40
+ /A
+ /B
+ /C
+ /D
+ /E
+ /F
+ /G
+ /H
+ /I
+ /J
+ /K
+ /L
+ /M
+ /N
+ /O
+ /P % 0x50
+ /Q
+ /R
+ /S
+ /T
+ /U
+ /V
+ /W
+ /X
+ /Y
+ /Z
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0x60
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /braceleft
+ /braceright
+ /.notdef
+ /.notdef
+ /bar
+ /.notdef
+ /.notdef
+ /.notdef
+ /backslash
+ /.notdef
+ /radical.alt % 0x70
+ /.notdef
+ /.notdef
+ /integral
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /minus.alt % 0x80
+ /arrowleft.lft % this was start of braces
+ /arrowleft.rt
+ /arrowright.lft
+ /arrowright.rt
+ /arrow.mid
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0x90
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xa0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xb0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xc0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xd0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xe0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xf0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+] def
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Master/texmf-dist/fonts/enc/pdftex/context/koeieletters.enc b/Master/texmf-dist/fonts/enc/pdftex/context/koeieletters.enc
new file mode 100644
index 00000000000..072fc8a507c
--- /dev/null
+++ b/Master/texmf-dist/fonts/enc/pdftex/context/koeieletters.enc
@@ -0,0 +1,271 @@
+/koeielettersEnc [
+ /.notdef % 0x00
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /dotlessi % 0x10
+ /dotlessj
+ /grave
+ /acute
+ /hacek
+ /breve
+ /hungarumlaut
+ /macron
+ /ringaccent
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /space % 0x20
+ /exclam
+ /quotedbl
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /quotesingle
+ /parenleft
+ /parenright
+ /asterisk
+ /plus
+ /comma
+ /hyphen
+ /period
+ /slash
+ /zero % 0x30
+ /one
+ /two
+ /three
+ /four
+ /five
+ /six
+ /seven
+ /eight
+ /nine
+ /colon
+ /semicolon
+ /less
+ /equal
+ /greater
+ /question
+ /at % 0x40
+ /A
+ /B
+ /C
+ /D
+ /E
+ /F
+ /G
+ /H
+ /I
+ /J
+ /K
+ /L
+ /M
+ /N
+ /O
+ /P % 0x50
+ /Q
+ /R
+ /S
+ /T
+ /U
+ /V
+ /W
+ /X
+ /Y
+ /Z
+ /bracketleft
+ /backslash
+ /bracketright
+ /asciicircum
+ /underscore
+ /grave % 0x60
+ /a
+ /b
+ /c
+ /d
+ /e
+ /f
+ /g
+ /h
+ /i
+ /j
+ /k
+ /l
+ /m
+ /n
+ /o
+ /p % 0x70
+ /q
+ /r
+ /s
+ /t
+ /u
+ /v
+ /w
+ /x
+ /y
+ /z
+ /braceleft
+ /bar
+ /braceright
+ /asciitilde
+ /quotedblright
+ /quoteright % 0x80
+ /quoteleft
+ /breve
+ /quotedblleft
+ /quotesinglbase
+ /quotedblbase
+ /second
+ /radical
+ /circumflex
+ /tilde
+ /dotlessi
+ /dotlessj
+ /plus.alt
+ /minus.alt
+ /zero.alt
+ /one.alt
+ /two.alt % 0x90
+ /three.alt
+ /four.alt
+ /five.alt
+ /six.alt
+ /seven.alt
+ /eight.alt
+ /nine.alt
+ /endash
+ /emdash
+ /dotaccent
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xa0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /dieresis
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xb0
+ /.notdef
+ /.notdef
+ /.notdef
+ /acute
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xc0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xd0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /multiply
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xe0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef % 0xf0
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+] def
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Master/texmf-dist/fonts/enc/pdftex/context/koeielogos.enc b/Master/texmf-dist/fonts/enc/pdftex/context/koeielogos.enc
new file mode 100644
index 00000000000..0b813a91b80
--- /dev/null
+++ b/Master/texmf-dist/fonts/enc/pdftex/context/koeielogos.enc
@@ -0,0 +1,258 @@
+/koeielogosEnc [
+ /P_r_a_g_m_a_A_d_e % 0x00
+ /p_r_a_g_m_a_a_d_e
+ /c_o_n_t_e_x_t
+ /contextlogo
+ /contextlogo.shadow
+ /contextlogo.contour
+ /contextlogo.skeleton
+ /contextlogo.dots
+ /M_P
+ /mplogo
+ /T_e_X
+ /texlogo
+ /boo
+ /cow
+ /examplelogo
+ /foxetlogo
+ /m_e_t_a_f_u_n % 0x10
+ /metafunlogo
+ /texlogo.alt
+ /wikilogo
+ /PragmaADElogo
+ /pragmaadelogo
+ /E_x_a_m_p_l_e
+ /F_o_X_e_t
+ /T_E_X
+ /W_i_k_i
+ /cowtextlogo
+ /C_o_w_t_e_x_t
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+] def
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/8r-base.map b/Master/texmf-dist/fonts/map/dvipdfm/context/8r-base.map
new file mode 100644
index 00000000000..d1ea38fb44f
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/8r-base.map
@@ -0,0 +1,78 @@
+ucrb8r 8r ucrb8a
+ucrbo8r 8r ucrbo8a
+ucrr8r 8r ucrr8a
+ucrro8r 8r ucrro8a
+pcrb8r 8r ucrb8a
+pcrbo8r 8r ucrbo8a
+pcrr8r 8r ucrr8a
+pcrro8r 8r ucrro8a
+uhvb8r 8r uhvb8a
+uhvbo8r 8r uhvbo8a
+uhvr8r 8r uhvr8a
+uhvro8r 8r uhvro8a
+phvb8r 8r uhvb8a
+phvbo8r 8r uhvbo8a
+phvr8r 8r uhvr8a
+phvro8r 8r uhvro8a
+utmb8r 8r utmb8a
+utmbi8r 8r utmbi8a
+utmr8r 8r utmr8a
+utmri8r 8r utmri8a
+utmbo8r 8r utmb8a -s .167
+utmro8r 8r utmr8a -s .167
+ptmb8r 8r utmb8a
+ptmbi8r 8r utmbi8a
+ptmr8r 8r utmr8a
+ptmri8r 8r utmri8a
+ptmbo8r 8r utmb8a -s .167
+ptmro8r 8r utmr8a -s .167
+uplb8r 8r uplb8a
+uplbi8r 8r uplbi8a
+uplr8r 8r uplr8a
+uplri8r 8r uplri8a
+uplbo8r 8r uplb8a -s .167
+uplro8r 8r uplr8a -s .167
+pplb8r 8r uplb8a
+pplbi8r 8r uplbi8a
+pplr8r 8r uplr8a
+pplri8r 8r uplri8a
+pplbo8r 8r uplb8a -s .167
+pplro8r 8r uplr8a -s .167
+ubkd8r 8r ubkd8a
+ubkdi8r 8r ubkdi8a
+ubkl8r 8r ubkl8a
+ubkli8r 8r ubkli8a
+ubkdo8r 8r ubkd8a -s .167
+ubklo8r 8r ubkl8a -s .167
+pbkd8r 8r ubkd8a
+pbkdi8r 8r ubkdi8a
+pbkl8r 8r ubkl8a
+pbkli8r 8r ubkli8a
+pbkdo8r 8r ubkd8a -s .167
+pbklo8r 8r ubkl8a -s .167
+uzcmi8r 8r uzcmi8a
+pzcmi8r 8r uzcmi8a
+uncb8r 8r uncb8a
+uncbi8r 8r uncbi8a
+uncr8r 8r uncr8a
+uncri8r 8r uncri8a
+uncbo8r 8r uncb8a -s .167
+uncro8r 8r uncr8a -s .167
+pncb8r 8r uncb8a
+pncbi8r 8r uncbi8a
+pncr8r 8r uncr8a
+pncri8r 8r uncri8a
+pncbo8r 8r uncb8a -s .167
+pncro8r 8r uncr8a -s .167
+putb8r 8r putb8a
+putbi8r 8r putbi8a
+putr8r 8r putr8a
+putri8r 8r putri8a
+putbo8r 8r putb8a -s .167
+putro8r 8r putr8a -s .167
+bchb8r 8r bchb8a
+bchbi8r 8r bchbi8a
+bchr8r 8r bchr8a
+bchri8r 8r bchri8a
+bchbo8r 8r bchb8a -s .167
+bchro8r 8r bchr8a -s .167
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/ec-base.map b/Master/texmf-dist/fonts/map/dvipdfm/context/ec-base.map
new file mode 100644
index 00000000000..206a520cfdf
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/ec-base.map
@@ -0,0 +1,78 @@
+ucrb8t ec ucrb8a
+ucrbo8t ec ucrbo8a
+ucrr8t ec ucrr8a
+ucrro8t ec ucrro8a
+pcrb8t ec ucrb8a
+pcrbo8t ec ucrbo8a
+pcrr8t ec ucrr8a
+pcrro8t ec ucrro8a
+uhvb8t ec uhvb8a
+uhvbo8t ec uhvbo8a
+uhvr8t ec uhvr8a
+uhvro8t ec uhvro8a
+phvb8t ec uhvb8a
+phvbo8t ec uhvbo8a
+phvr8t ec uhvr8a
+phvro8t ec uhvro8a
+utmb8t ec utmb8a
+utmbi8t ec utmbi8a
+utmr8t ec utmr8a
+utmri8t ec utmri8a
+utmbo8t ec utmb8a -s .167
+utmro8t ec utmr8a -s .167
+ptmb8t ec utmb8a
+ptmbi8t ec utmbi8a
+ptmr8t ec utmr8a
+ptmri8t ec utmri8a
+ptmbo8t ec utmb8a -s .167
+ptmro8t ec utmr8a -s .167
+uplb8t ec uplb8a
+uplbi8t ec uplbi8a
+uplr8t ec uplr8a
+uplri8t ec uplri8a
+uplbo8t ec uplb8a -s .167
+uplro8t ec uplr8a -s .167
+pplb8t ec uplb8a
+pplbi8t ec uplbi8a
+pplr8t ec uplr8a
+pplri8t ec uplri8a
+pplbo8t ec uplb8a -s .167
+pplro8t ec upplr8a -s .167
+ubkd8t ec ubkd8a
+ubkdi8t ec ubkdi8a
+ubkl8t ec ubkl8a
+ubkli8t ec ubkli8a
+ubkdo8t ec ubkd8a -s .167
+ubklo8t ec ubkl8a -s .167
+pbkd8t ec ubkd8a
+pbkdi8t ec ubkdi8a
+pbkl8t ec ubkl8a
+pbkli8t ec ubkli8a
+pbkdo8t ec ubkd8a -s .167
+pbklo8t ec ubkl8a -s .167
+uzcmi8t ec uzcmi8a
+pzcmi8t ec uzcmi8a
+uncb8t ec uncb8a
+uncbi8t ec uncbi8a
+uncr8t ec uncr8a
+uncri8t ec uncri8a
+uncbo8t ec uncb8a -s .167
+uncro8t ec uncr8a -s .167
+pncb8t ec uncb8a
+pncbi8t ec uncbi8a
+pncr8t ec uncr8a
+pncri8t ec uncri8a
+pncbo8t ec uncb8a -s .167
+pncro8t ec uncr8a -s .167
+putb8t ec putb8a
+putbi8t ec putbi8a
+putr8t ec putr8a
+putri8t ec putri8a
+putbo8t ec putb8a -s .167
+putro8t ec putr8a -s .167
+bchb8t ec bchb8a
+bchbi8t ec bchbi8a
+bchr8t ec bchr8a
+bchri8t ec bchri8a
+bchbo8t ec bchb8a -s .167
+bchro8t ec bchr8a -s .167
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/ec-os-public-lm.map b/Master/texmf-dist/fonts/map/dvipdfm/context/ec-os-public-lm.map
new file mode 100644
index 00000000000..31b813b6c53
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/ec-os-public-lm.map
@@ -0,0 +1,69 @@
+ec-lmb10 lm-ec-os lmb10
+ec-lmbo10 lm-ec-os lmbo10
+ec-lmbx10 lm-ec-os lmbx10
+ec-lmbx12 lm-ec-os lmbx12
+ec-lmbx5 lm-ec-os lmbx5
+ec-lmbx6 lm-ec-os lmbx6
+ec-lmbx7 lm-ec-os lmbx7
+ec-lmbx8 lm-ec-os lmbx8
+ec-lmbx9 lm-ec-os lmbx9
+ec-lmbxi10 lm-ec-os lmbxi10
+ec-lmbxo10 lm-ec-os lmbxo10
+ec-lmcsc10 lm-ec-os lmcsc10
+ec-lmcsco10 lm-ec-os lmcsco10
+ec-lmr10 lm-ec-os lmr10
+ec-lmr12 lm-ec-os lmr12
+ec-lmr17 lm-ec-os lmr17
+ec-lmr5 lm-ec-os lmr5
+ec-lmr6 lm-ec-os lmr6
+ec-lmr7 lm-ec-os lmr7
+ec-lmr8 lm-ec-os lmr8
+ec-lmr9 lm-ec-os lmr9
+ec-lmri10 lm-ec-os lmri10
+ec-lmri12 lm-ec-os lmri12
+ec-lmri7 lm-ec-os lmri7
+ec-lmri8 lm-ec-os lmri8
+ec-lmri9 lm-ec-os lmri9
+ec-lmro10 lm-ec-os lmro10
+ec-lmro12 lm-ec-os lmro12
+ec-lmro17 lm-ec-os lmro17
+ec-lmro8 lm-ec-os lmro8
+ec-lmro9 lm-ec-os lmro9
+ec-lmss10 lm-ec-os lmss10
+ec-lmss12 lm-ec-os lmss12
+ec-lmss17 lm-ec-os lmss17
+ec-lmss8 lm-ec-os lmss8
+ec-lmss9 lm-ec-os lmss9
+ec-lmssbo10 lm-ec-os lmssbo10
+ec-lmssbx10 lm-ec-os lmssbx10
+ec-lmssdc10 lm-ec-os lmssdc10
+ec-lmssdo10 lm-ec-os lmssdo10
+ec-lmsso10 lm-ec-os lmsso10
+ec-lmsso12 lm-ec-os lmsso12
+ec-lmsso17 lm-ec-os lmsso17
+ec-lmsso8 lm-ec-os lmsso8
+ec-lmsso9 lm-ec-os lmsso9
+ec-lmssq8 lm-ec-os lmssq8
+ec-lmssqbo8 lm-ec-os lmssqbo8
+ec-lmssqbx8 lm-ec-os lmssqbx8
+ec-lmssqo8 lm-ec-os lmssqo8
+ec-lmtcsc10 lm-ec-os lmtcsc10
+ec-lmtcso10 lm-ec-os lmtcso10
+ec-lmtl10 lm-ec-os lmtl10
+ec-lmtlo10 lm-ec-os lmtlo10
+ec-lmtlc10 lm-ec-os lmtlc10
+ec-lmtlco10 lm-ec-os lmtlco10
+ec-lmtk10 lm-ec-os lmtk10
+ec-lmtko10 lm-ec-os lmtko10
+ec-lmtt10 lm-ec-os lmtt10
+ec-lmtt12 lm-ec-os lmtt12
+ec-lmtt8 lm-ec-os lmtt8
+ec-lmtt9 lm-ec-os lmtt9
+ec-lmtti10 lm-ec-os lmtti10
+ec-lmtto10 lm-ec-os lmtto10
+ec-lmvtt10 lm-ec-os lmvtt10
+ec-lmvtto10 lm-ec-os lmvtto10
+ec-lmvtl10 lm-ec-os lmvtl10
+ec-lmvtlo10 lm-ec-os lmvtlo10
+ec-lmvtk10 lm-ec-os lmvtk10
+ec-lmvtko10 lm-ec-os lmvtko10
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/ec-public-lm.map b/Master/texmf-dist/fonts/map/dvipdfm/context/ec-public-lm.map
new file mode 100644
index 00000000000..92b173fbd3b
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/ec-public-lm.map
@@ -0,0 +1,69 @@
+ec-lmb10 lm-ec lmb10
+ec-lmbo10 lm-ec lmbo10
+ec-lmbx10 lm-ec lmbx10
+ec-lmbx12 lm-ec lmbx12
+ec-lmbx5 lm-ec lmbx5
+ec-lmbx6 lm-ec lmbx6
+ec-lmbx7 lm-ec lmbx7
+ec-lmbx8 lm-ec lmbx8
+ec-lmbx9 lm-ec lmbx9
+ec-lmbxi10 lm-ec lmbxi10
+ec-lmbxo10 lm-ec lmbxo10
+ec-lmcsc10 lm-ec lmcsc10
+ec-lmcsco10 lm-ec lmcsco10
+ec-lmr10 lm-ec lmr10
+ec-lmr12 lm-ec lmr12
+ec-lmr17 lm-ec lmr17
+ec-lmr5 lm-ec lmr5
+ec-lmr6 lm-ec lmr6
+ec-lmr7 lm-ec lmr7
+ec-lmr8 lm-ec lmr8
+ec-lmr9 lm-ec lmr9
+ec-lmri10 lm-ec lmri10
+ec-lmri12 lm-ec lmri12
+ec-lmri7 lm-ec lmri7
+ec-lmri8 lm-ec lmri8
+ec-lmri9 lm-ec lmri9
+ec-lmro10 lm-ec lmro10
+ec-lmro12 lm-ec lmro12
+ec-lmro17 lm-ec lmro17
+ec-lmro8 lm-ec lmro8
+ec-lmro9 lm-ec lmro9
+ec-lmss10 lm-ec lmss10
+ec-lmss12 lm-ec lmss12
+ec-lmss17 lm-ec lmss17
+ec-lmss8 lm-ec lmss8
+ec-lmss9 lm-ec lmss9
+ec-lmssbo10 lm-ec lmssbo10
+ec-lmssbx10 lm-ec lmssbx10
+ec-lmssdc10 lm-ec lmssdc10
+ec-lmssdo10 lm-ec lmssdo10
+ec-lmsso10 lm-ec lmsso10
+ec-lmsso12 lm-ec lmsso12
+ec-lmsso17 lm-ec lmsso17
+ec-lmsso8 lm-ec lmsso8
+ec-lmsso9 lm-ec lmsso9
+ec-lmssq8 lm-ec lmssq8
+ec-lmssqbo8 lm-ec lmssqbo8
+ec-lmssqbx8 lm-ec lmssqbx8
+ec-lmssqo8 lm-ec lmssqo8
+ec-lmtcsc10 lm-ec lmtcsc10
+ec-lmtcso10 lm-ec lmtcso10
+ec-lmtl10 lm-ec lmtl10
+ec-lmtlo10 lm-ec lmtlo10
+ec-lmtlc10 lm-ec lmtlc10
+ec-lmtlco10 lm-ec lmtlco10
+ec-lmtk10 lm-ec lmtk10
+ec-lmtko10 lm-ec lmtko10
+ec-lmtt10 lm-ec lmtt10
+ec-lmtt12 lm-ec lmtt12
+ec-lmtt8 lm-ec lmtt8
+ec-lmtt9 lm-ec lmtt9
+ec-lmtti10 lm-ec lmtti10
+ec-lmtto10 lm-ec lmtto10
+ec-lmvtt10 lm-ec lmvtt10
+ec-lmvtto10 lm-ec lmvtto10
+ec-lmvtl10 lm-ec lmvtl10
+ec-lmvtlo10 lm-ec lmvtlo10
+ec-lmvtk10 lm-ec lmvtk10
+ec-lmvtko10 lm-ec lmvtko10
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/el-public-lm.map b/Master/texmf-dist/fonts/map/dvipdfm/context/el-public-lm.map
new file mode 100644
index 00000000000..4c2c1b5d812
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/el-public-lm.map
@@ -0,0 +1,69 @@
+el-lmb10 lm-el lmb10
+el-lmbo10 lm-el lmbo10
+el-lmbx10 lm-el lmbx10
+el-lmbx12 lm-el lmbx12
+el-lmbx5 lm-el lmbx5
+el-lmbx6 lm-el lmbx6
+el-lmbx7 lm-el lmbx7
+el-lmbx8 lm-el lmbx8
+el-lmbx9 lm-el lmbx9
+el-lmbxi10 lm-el lmbxi10
+el-lmbxo10 lm-el lmbxo10
+el-lmcsc10 lm-el lmcsc10
+el-lmcsco10 lm-el lmcsco10
+el-lmr10 lm-el lmr10
+el-lmr12 lm-el lmr12
+el-lmr17 lm-el lmr17
+el-lmr5 lm-el lmr5
+el-lmr6 lm-el lmr6
+el-lmr7 lm-el lmr7
+el-lmr8 lm-el lmr8
+el-lmr9 lm-el lmr9
+el-lmri10 lm-el lmri10
+el-lmri12 lm-el lmri12
+el-lmri7 lm-el lmri7
+el-lmri8 lm-el lmri8
+el-lmri9 lm-el lmri9
+el-lmro10 lm-el lmro10
+el-lmro12 lm-el lmro12
+el-lmro17 lm-el lmro17
+el-lmro8 lm-el lmro8
+el-lmro9 lm-el lmro9
+el-lmss10 lm-el lmss10
+el-lmss12 lm-el lmss12
+el-lmss17 lm-el lmss17
+el-lmss8 lm-el lmss8
+el-lmss9 lm-el lmss9
+el-lmssbo10 lm-el lmssbo10
+el-lmssbx10 lm-el lmssbx10
+el-lmssdc10 lm-el lmssdc10
+el-lmssdo10 lm-el lmssdo10
+el-lmsso10 lm-el lmsso10
+el-lmsso12 lm-el lmsso12
+el-lmsso17 lm-el lmsso17
+el-lmsso8 lm-el lmsso8
+el-lmsso9 lm-el lmsso9
+el-lmssq8 lm-el lmssq8
+el-lmssqbo8 lm-el lmssqbo8
+el-lmssqbx8 lm-el lmssqbx8
+el-lmssqo8 lm-el lmssqo8
+el-lmtcsc10 lm-el lmtcsc10
+el-lmtcso10 lm-el lmtcso10
+el-lmtl10 lm-el lmtl10
+el-lmtlo10 lm-el lmtlo10
+el-lmtlc10 lm-el lmtlc10
+el-lmtlco10 lm-el lmtlco10
+el-lmtk10 lm-el lmtk10
+el-lmtko10 lm-el lmtko10
+el-lmtt10 lm-el lmtt10
+el-lmtt12 lm-el lmtt12
+el-lmtt8 lm-el lmtt8
+el-lmtt9 lm-el lmtt9
+el-lmtti10 lm-el lmtti10
+el-lmtto10 lm-el lmtto10
+el-lmvtt10 lm-el lmvtt10
+el-lmvtto10 lm-el lmvtto10
+el-lmvtl10 lm-el lmvtl10
+el-lmvtlo10 lm-el lmvtlo10
+el-lmvtk10 lm-el lmvtk10
+el-lmvtko10 lm-el lmvtko10
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/original-adobe-euro.map b/Master/texmf-dist/fonts/map/dvipdfm/context/original-adobe-euro.map
new file mode 100644
index 00000000000..fe5ddaca7d6
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/original-adobe-euro.map
@@ -0,0 +1,12 @@
+euromo
+euromob
+euromoi
+euromobi
+eurosa
+eurosab
+eurosai
+eurosabi eurosebi
+eurose
+euroseb
+eurosei
+eurosebi
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/original-ams-base.map b/Master/texmf-dist/fonts/map/dvipdfm/context/original-ams-base.map
new file mode 100644
index 00000000000..ac0300d7890
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/original-ams-base.map
@@ -0,0 +1,39 @@
+lasy5
+lasy6
+lasy7
+lasy8
+lasy9
+lasy10
+lasyb10
+lcircle10 lcircle1
+lcirclew10 lcirclew
+lcmss8
+lcmssb8
+lcmssi8
+line10
+linew10
+logo8
+logo9
+logo10
+logobf10
+logosl10
+msam5
+msam7
+msam10
+msbm5
+msbm7
+msbm10
+wncyb10
+wncyi10
+wncyr10
+wncysc10
+wncyss10
+manfnt
+icmex10
+icmmi8
+icmsy8
+icmtt8
+ilasy8
+ilcmss8
+ilcmssb8
+ilcmssi8
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/original-ams-cmr.map b/Master/texmf-dist/fonts/map/dvipdfm/context/original-ams-cmr.map
new file mode 100644
index 00000000000..4eadbe7bc1e
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/original-ams-cmr.map
@@ -0,0 +1,79 @@
+cmb10
+cmbsy6
+cmbsy7
+cmbsy8
+cmbsy9
+cmbsy10
+cmbx5
+cmbx6
+cmbx7
+cmbx8
+cmbx9
+cmbx10
+cmbx12
+cmbxsl10
+cmbxti10
+cmcsc10
+cmdunh10
+cmex10
+cmff10
+cmfi10
+cmfib8
+cminch
+cmitt10
+cmmib10
+cmmi5
+cmmi6
+cmmi7
+cmmi8
+cmmi9
+cmmi10
+cmmi12
+cmr5
+cmr6
+cmr7
+cmr8
+cmr9
+cmr10
+cmr12
+cmr17
+cmsl8
+cmsl9
+cmsl10
+cmsl12
+cmsltt10
+cmss8
+cmss9
+cmss10
+cmss12
+cmss17
+cmssbx10
+cmssdc10
+cmssi8
+cmssi9
+cmssi10
+cmssi12
+cmssi17
+cmssq8
+cmssqi8
+cmsy5
+cmsy6
+cmsy7
+cmsy8
+cmsy9
+cmsy10
+cmtcsc10
+cmtex8
+cmtex9
+cmtex10
+cmti7
+cmti8
+cmti9
+cmti10
+cmti12
+cmtt8
+cmtt9
+cmtt10
+cmtt12
+cmu10
+cmvtt10
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/original-ams-euler.map b/Master/texmf-dist/fonts/map/dvipdfm/context/original-ams-euler.map
new file mode 100644
index 00000000000..d9fb3790467
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/original-ams-euler.map
@@ -0,0 +1,19 @@
+euex10
+eufb5
+eufb7
+eufb10
+eufm5
+eufm7
+eufm10
+eurb5
+eurb7
+eurb10
+eurm5
+eurm7
+eurm10
+eusb5
+eusb7
+eusb10
+eusm5
+eusm7
+eusm10
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/original-base.map b/Master/texmf-dist/fonts/map/dvipdfm/context/original-base.map
new file mode 100644
index 00000000000..a444b3ae5fb
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/original-base.map
@@ -0,0 +1,40 @@
+rsfs7
+rsfs5
+rsfs10
+fmvr8x marvosym
+fmvri8x marvosym -s .167
+contnav
+hans
+hans-sh
+uzdr
+pzdr
+usyr
+xyatip10
+xybsql10
+xybtip10
+xycirc10
+xydash10
+xycmat10
+xycmbt10
+xyeuat10
+xyeubt10
+xycmat11 xycmat10
+xycmbt11 xycmbt10
+xyeuat11 xyeuat10
+xyeubt11 xyeubt10
+xycmat12 xycmat10
+xycmbt12 xycmbt10
+xyeuat12 xyeuat10
+xyeubt12 xyeubt10
+zpeub
+zpeubi
+zpeubis
+zpeubit
+zpeubs
+zpeubt
+zpeur
+zpeuri
+zpeuris
+zpeurit
+zpeurs
+zpeurt
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/original-context-symbol.map b/Master/texmf-dist/fonts/map/dvipdfm/context/original-context-symbol.map
new file mode 100644
index 00000000000..0eb9859a0a5
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/original-context-symbol.map
@@ -0,0 +1,3 @@
+contnav
+hans
+hans-sh
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/original-dummy.map b/Master/texmf-dist/fonts/map/dvipdfm/context/original-dummy.map
new file mode 100644
index 00000000000..053291a29cb
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/original-dummy.map
@@ -0,0 +1 @@
+% no map entries
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/original-empty.map b/Master/texmf-dist/fonts/map/dvipdfm/context/original-empty.map
new file mode 100644
index 00000000000..053291a29cb
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/original-empty.map
@@ -0,0 +1 @@
+% no map entries
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/original-micropress-informal.map b/Master/texmf-dist/fonts/map/dvipdfm/context/original-micropress-informal.map
new file mode 100644
index 00000000000..c7385e0dfb0
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/original-micropress-informal.map
@@ -0,0 +1,7 @@
+ifrm10cm cm ifrg
+ifrb10cm cm ifb
+ifro10cm cm ifo
+ifbo10cm cm ifbo
+ifex10
+ifmi10
+ifsy10
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/original-public-csr.map b/Master/texmf-dist/fonts/map/dvipdfm/context/original-public-csr.map
new file mode 100644
index 00000000000..31193b1c743
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/original-public-csr.map
@@ -0,0 +1,56 @@
+csr5 csr1 csr5
+csr6 csr csr6
+csr7 csr csr7
+csr8 csr csr8
+csr9 csr csr9
+csr10 csr csr10
+csr12 csr csr12
+csr17 csr csr17
+csbx5 csr csbx5
+csbx6 csr csbx6
+csbx7 csr csbx7
+csbx8 csr csbx8
+csbx9 csr csbx9
+csbx10 csr csbx10
+csbx12 csr csbx12
+csb10 csr csb10
+csti7 csr csti7
+csti8 csr csti8
+csti9 csr csti9
+csti10 csr csti10
+csti12 csr csti12
+cstt8 cstt cstt8
+cstt9 cstt cstt9
+cstt10 cstt cstt10
+cstt12 cstt cstt12
+cssltt10 cstt cssltt10
+csvtt10 cstt csvtt10
+csss8 csr csss8
+csss9 csr csss9
+csss10 csr csss10
+csss12 csr csss12
+csss17 csr csss17
+csssi8 csr csssi8
+csssi9 csr csssi9
+csssi10 csr csssi10
+csssi12 csr csssi12
+csssi17 csr csssi17
+cssl8 csr cssl8
+cssl9 csr cssl9
+cssl10 csr cssl10
+cssl12 csr cssl12
+csssq8 csr csssq8
+csssqi8 csr csssqi8
+csssdc10 csr csssdc10
+csssbx10 csr csssbx10
+csinch csin csinch
+csdunh10 csr csdunh10
+csbxsl10 csr csbxsl10
+csff10 csr csff10
+csfib8 csr csfib8
+csbxti10 csr csbxti10
+csitt10 cstt csitt10
+csu10 csr csu10
+csfi10 csr csfi10
+cscsc10 csr1 cscsc10
+cstcsc10 cstt cstcsc10
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/original-public-lm.map b/Master/texmf-dist/fonts/map/dvipdfm/context/original-public-lm.map
new file mode 100644
index 00000000000..5be5fb5504d
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/original-public-lm.map
@@ -0,0 +1,97 @@
+cmb10 lm-rep-cmrm lmb10
+cmbx10 lm-rep-cmrm lmbx10
+cmbx12 lm-rep-cmrm lmbx12
+cmbx5 lm-rep-cmrm lmbx5
+cmbx6 lm-rep-cmrm lmbx6
+cmbx7 lm-rep-cmrm lmbx7
+cmbx8 lm-rep-cmrm lmbx8
+cmbx9 lm-rep-cmrm lmbx9
+cmbxsl10 lm-rep-cmrm lmbxo10
+cmbxti10 lm-rep-cmit lmbxi10
+cmbxti12 lm-rep-cmit lmbxti10
+cmbxti7 lm-rep-cmit lmbxti10
+cmcsc10 lm-rep-cmsc lmcsc10
+cmcsc8 lm-rep-cmsc lmcsc10
+cmcsc9 lm-rep-cmsc lmcsc10
+cminch lm-rep-cmin lmssbx10
+cmitt10 lm-rep-cmitt lmtti10
+cmitt12 lm-rep-cmitt lmtti10
+cmitt9 lm-rep-cmitt lmtti10
+cmr10 lm-rep-cmrm lmr10
+cmr12 lm-rep-cmrm lmr12
+cmr17 lm-rep-cmrm lmr17
+cmr5 lm-rep-cmsc lmr5
+cmr6 lm-rep-cmrm lmr6
+cmr7 lm-rep-cmrm lmr7
+cmr8 lm-rep-cmrm lmr8
+cmr9 lm-rep-cmrm lmr9
+cmsl10 lm-rep-cmrm lmro10
+cmsl12 lm-rep-cmrm lmro12
+cmsl6 lm-rep-cmrm lmro8
+cmsl8 lm-rep-cmrm lmro8
+cmsl9 lm-rep-cmrm lmro9
+cmsltt10 lm-rep-cmtt lmtto10
+cmsltt9 lm-rep-cmtt lmtto10
+cmss10 lm-rep-cmrm lmss10
+cmss12 lm-rep-cmrm lmss12
+cmss17 lm-rep-cmrm lmss17
+cmss8 lm-rep-cmrm lmss8
+cmss9 lm-rep-cmrm lmss9
+cmssbx10 lm-rep-cmrm lmssbx10
+cmssbxo10 lm-rep-cmrm lmssbo10
+cmssdc10 lm-rep-cmrm lmssdc10
+cmssi10 lm-rep-cmrm lmsso10
+cmssi12 lm-rep-cmrm lmsso12
+cmssi17 lm-rep-cmrm lmsso17
+cmssi8 lm-rep-cmrm lmsso8
+cmssi9 lm-rep-cmrm lmsso9
+cmssq8 lm-rep-cmrm lmssq8
+cmssqi8 lm-rep-cmrm lmssqo8
+cmtcsc10 lm-rep-cmtt lmtcsc10
+cmti10 lm-rep-cmit lmri10
+cmti12 lm-rep-cmit lmri12
+cmti7 lm-rep-cmit lmri7
+cmti8 lm-rep-cmit lmri8
+cmti9 lm-rep-cmit lmri9
+cmtt10 lm-rep-cmtt lmtt10
+cmtt12 lm-rep-cmtt lmtt12
+cmtt8 lm-rep-cmtt lmtt8
+cmtt9 lm-rep-cmtt lmtt9
+cmvtt10 lm-rep-cmrm lmvtt10
+cmbsy10
+cmbsy5
+cmbsy6 cmbsy7
+cmbsy7
+cmbsy8 cmbsy7
+cmbsy9 cmbsy10
+cmdunh10
+cmex10
+cmex7 cmex10
+cmex8 cmex10
+cmex9 cmex10
+cmff10
+cmfi10
+cmfib8
+cmmi10
+cmmi12
+cmmi5
+cmmi6
+cmmi7
+cmmi8
+cmmi9
+cmmib10
+cmmib5
+cmmib6 cmmib7
+cmmib7
+cmmib8 cmmib7
+cmmib9 cmmib10
+cmsy10
+cmsy5
+cmsy6
+cmsy7
+cmsy8
+cmsy9
+cmtex10
+cmtex8
+cmtex9
+cmu10 lm-rep-cmit lmri10
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/original-public-plr.map b/Master/texmf-dist/fonts/map/dvipdfm/context/original-public-plr.map
new file mode 100644
index 00000000000..51592efb7cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/original-public-plr.map
@@ -0,0 +1,77 @@
+plb10 plrm plb10
+plbsy10 plms plbsy10
+plbx5 plrm plbx5
+plbx6 plrm plbx6
+plbx7 plrm plbx7
+plbx8 plrm plbx8
+plbx9 plrm plbx9
+plbx10 plrm plbx10
+plbx12 plrm plbx12
+plbxsl10 plrm plbxsl10
+plbxti10 plit plbxti10
+plcsc10 plsc plcsc10
+pldunh10 plrm pldunh10
+plex9 plme plex9
+plex10 plme plex10
+plff10 plrm plff10
+plfi10 plit plfi10
+plfib8 plrm plfib8
+plinch plin plinch
+plitt10 plitt plitt10
+plmi5 plmi plmi5
+plmi6 plmi plmi6
+plmi7 plmi plmi7
+plmi8 plmi plmi8
+plmi9 plmi plmi9
+plmi10 plmi plmi10
+plmi12 plmi plmi12
+plmib10 plmi plmib10
+plr5 plsc plr5
+plr6 plrm plr6
+plr7 plrm plr7
+plr8 plrm plr8
+plr9 plrm plr9
+plr10 plrm plr10
+plr12 plrm plr12
+plr17 plrm plr17
+plsl8 plrm plsl8
+plsl9 plrm plsl9
+plsl10 plrm plsl10
+plsl12 plrm plsl12
+plsltt10 pltt plsltt10
+plss8 plrm plss8
+plss9 plrm plss9
+plss10 plrm plss10
+plss12 plrm plss12
+plss17 plrm plss17
+plssbi10 plrm plssbi10
+plssbx10 plrm plssbx10
+plssdc10 plrm plssdc10
+plssi8 plrm plssi8
+plssi9 plrm plssi9
+plssi10 plrm plssi10
+plssi12 plrm plssi12
+plssi17 plrm plssi17
+plssq8 plrm plssq8
+plssqi8 plrm plssqi8
+plsy5 plms plsy5
+plsy6 plms plsy6
+plsy7 plms plsy7
+plsy8 plms plsy8
+plsy9 plms plsy9
+plsy10 plms plsy10
+pltcsc10 pltt pltcsc10
+pltex8 plte pltex8
+pltex9 plte pltex9
+pltex10 plte pltex10
+plti7 plit plti7
+plti8 plit plti8
+plti9 plit plti9
+plti10 plit plti10
+plti12 plit plti12
+pltt8 pltt pltt8
+pltt9 pltt pltt9
+pltt10 pltt pltt10
+pltt12 pltt pltt12
+plu10 plit plu10
+plvtt10 plrm plvtt10
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/original-public-vnr.map b/Master/texmf-dist/fonts/map/dvipdfm/context/original-public-vnr.map
new file mode 100644
index 00000000000..a840dd97c53
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/original-public-vnr.map
@@ -0,0 +1,55 @@
+vnb10
+vnbx10
+vnbx12
+vnbx5
+vnbx6
+vnbx7
+vnbx8
+vnbx9
+vnbxsl10
+vnbxti10
+vncsc10
+vndunh10
+vnff10
+vnfi10
+vnfib8
+vnitt10
+vnr10
+vnr12
+vnr17
+vnr5
+vnr6
+vnr7
+vnr8
+vnr9
+vnsl10
+vnsl12
+vnsl8
+vnsl9
+vnsltt10
+vnss10
+vnss12
+vnss17
+vnss8
+vnss9
+vnssbx10
+vnssdc10
+vnssi10
+vnssi12
+vnssi17
+vnssi8
+vnssi9
+vnssq8
+vnssqi8
+vntcsc10
+vnti10
+vnti12
+vnti7
+vnti8
+vnti9
+vntt10
+vntt12
+vntt8
+vntt9
+vnu10
+vnvtt10
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/original-vogel-symbol.map b/Master/texmf-dist/fonts/map/dvipdfm/context/original-vogel-symbol.map
new file mode 100644
index 00000000000..21456acfabe
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/original-vogel-symbol.map
@@ -0,0 +1 @@
+fmvr8x marvosym
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/original-wasy.map b/Master/texmf-dist/fonts/map/dvipdfm/context/original-wasy.map
new file mode 100644
index 00000000000..1cb2ee2503e
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/original-wasy.map
@@ -0,0 +1,7 @@
+wasy5
+wasy6
+wasy7
+wasy8
+wasy9
+wasy10
+wasyb10
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/original-youngryu-px.map b/Master/texmf-dist/fonts/map/dvipdfm/context/original-youngryu-px.map
new file mode 100644
index 00000000000..68301c1b6f6
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/original-youngryu-px.map
@@ -0,0 +1,36 @@
+rpxpplb 8r uplb8a
+rpxpplbo 8r uplb8a -s .167
+rpxpplbi 8r uplbi8a
+rpxpplr 8r uplr8a
+rpxpplro 8r uplr8a -s .167
+rpxpplri 8r uplri8a
+rpxr
+rpxsl rpxr -s .167
+rpxi
+rpxsc
+rpxb
+rpxbsl rpxb -s .167
+rpxbi
+rpxbsc
+rpcxb
+rpcxbsl rpcxb -s .167
+rpcxbi
+rpcxi
+rpcxr
+rpcxsl rpcxr -s .167
+rpxbmi
+rpxmi
+pxbex
+pxbexa
+pxbmia
+pxbsy
+pxbsya
+pxbsyb
+pxbsyc
+pxex
+pxexa
+pxmia
+pxsy
+pxsya
+pxsyb
+pxsyc
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/original-youngryu-tx.map b/Master/texmf-dist/fonts/map/dvipdfm/context/original-youngryu-tx.map
new file mode 100644
index 00000000000..269f0d902f8
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/original-youngryu-tx.map
@@ -0,0 +1,66 @@
+rtxptmb 8r utmb8a
+rtxptmbo 8r utmb8a -s .167
+rtxptmbi 8r utmbi8a
+rtxptmr 8r utmr8a
+rtxptmro 8r utmr8a -s .167
+rtxptmri 8r utmri8a
+rtxphvr 8r uhv8a
+rtxphvro 8r uhv8a -s .167
+rtxphvb 8r uhvb8a
+rtxphvbo 8r uhvb8a -s .167
+rtxr
+rtxsl rtxr -s .167
+rtxi
+rtxsc
+rtxb
+rtxbsl rtxb -s .167
+rtxbi
+rtxbsc
+rtcxb
+rtcxbsl rtcxb -s .167
+rtcxbi
+rtcxi
+rtcxr
+rtcxsl rtcxr -s .167
+rtxbmi
+rtxmi
+txbex
+txbexa
+txbmia
+txbsy
+txbsya
+txbsyb
+txbsyc
+txex
+txexa
+txmia
+txsy
+txsya
+txsyb
+txsyc
+txtt
+txttsl txtt -s .167
+txttsc
+txbtt
+txbttsl txbtt -s .167
+txbttsc
+t1xtt
+t1xttsl t1xtt -s .167
+t1xttsc
+t1xbtt
+t1xbttsl t1xbtt -s .167
+t1xbttsc
+tcxtt
+tcxttsl tcxtt -s .167
+tcxbtt
+tcxbttsl tcxbtt -s .167
+rtxss
+rtxsssl rtxss -s .167
+rtxsssc
+rtxbss
+rtxbsssl rtxbss -s .167
+rtxbsssc
+rtcxss
+rtcxbss
+rtcxsssl rtcxss -s .167
+rtcxbsso rtcxbss -s .167
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/qx-base.map b/Master/texmf-dist/fonts/map/dvipdfm/context/qx-base.map
new file mode 100644
index 00000000000..45a6002afcf
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/qx-base.map
@@ -0,0 +1,25 @@
+qcrb qcr qcrb
+qcrbi qcr qcrbi
+qcrr qcr qcrr
+qcrri qcr qcrri
+qhvb qhv qhvb
+qhvbi qhv qhvbi
+qhvcb qhv qhvcb
+qhvcbi qhv qhvcbi
+qhvcr qhv qhvcr
+qhvcri qhv qhvcri
+qhvr qhv qhvr
+qhvri qhv qhvri
+qtmb qtm qtmb
+qtmbi qtm qtmbi
+qtmr qtm qtmr
+qtmri qtm qtmri
+qplb qpl qplb
+qplbi qpl qplbi
+qplr qpl qplr
+qplri qpl qplri
+qbkb qbk qbkb
+qbkbi qbk qbkbi
+qbkr qbk qbkr
+qbkri qbk qbkri
+qzcmi qzc qzcmi
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/qx-os-public-lm.map b/Master/texmf-dist/fonts/map/dvipdfm/context/qx-os-public-lm.map
new file mode 100644
index 00000000000..f2dd853ae71
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/qx-os-public-lm.map
@@ -0,0 +1,69 @@
+qx-lmb10 lm-qx-os lmb10
+qx-lmbo10 lm-qx-os lmbo10
+qx-lmbx10 lm-qx-os lmbx10
+qx-lmbx12 lm-qx-os lmbx12
+qx-lmbx5 lm-qx-os lmbx5
+qx-lmbx6 lm-qx-os lmbx6
+qx-lmbx7 lm-qx-os lmbx7
+qx-lmbx8 lm-qx-os lmbx8
+qx-lmbx9 lm-qx-os lmbx9
+qx-lmbxi10 lm-qx-os lmbxi10
+qx-lmbxo10 lm-qx-os lmbxo10
+qx-lmcsc10 lm-qx-os lmcsc10
+qx-lmcsco10 lm-qx-os lmcsco10
+qx-lmr10 lm-qx-os lmr10
+qx-lmr12 lm-qx-os lmr12
+qx-lmr17 lm-qx-os lmr17
+qx-lmr5 lm-qx-os lmr5
+qx-lmr6 lm-qx-os lmr6
+qx-lmr7 lm-qx-os lmr7
+qx-lmr8 lm-qx-os lmr8
+qx-lmr9 lm-qx-os lmr9
+qx-lmri10 lm-qx-os lmri10
+qx-lmri12 lm-qx-os lmri12
+qx-lmri7 lm-qx-os lmri7
+qx-lmri8 lm-qx-os lmri8
+qx-lmri9 lm-qx-os lmri9
+qx-lmro10 lm-qx-os lmro10
+qx-lmro12 lm-qx-os lmro12
+qx-lmro17 lm-qx-os lmro17
+qx-lmro8 lm-qx-os lmro8
+qx-lmro9 lm-qx-os lmro9
+qx-lmss10 lm-qx-os lmss10
+qx-lmss12 lm-qx-os lmss12
+qx-lmss17 lm-qx-os lmss17
+qx-lmss8 lm-qx-os lmss8
+qx-lmss9 lm-qx-os lmss9
+qx-lmssbo10 lm-qx-os lmssbo10
+qx-lmssbx10 lm-qx-os lmssbx10
+qx-lmssdc10 lm-qx-os lmssdc10
+qx-lmssdo10 lm-qx-os lmssdo10
+qx-lmsso10 lm-qx-os lmsso10
+qx-lmsso12 lm-qx-os lmsso12
+qx-lmsso17 lm-qx-os lmsso17
+qx-lmsso8 lm-qx-os lmsso8
+qx-lmsso9 lm-qx-os lmsso9
+qx-lmssq8 lm-qx-os lmssq8
+qx-lmssqbo8 lm-qx-os lmssqbo8
+qx-lmssqbx8 lm-qx-os lmssqbx8
+qx-lmssqo8 lm-qx-os lmssqo8
+qx-lmtcsc10 lm-qxtt lmtcsc10
+qx-lmtcso10 lm-qxtt lmtcso10
+qx-lmtl10 lm-qxtt lmtl10
+qx-lmtlo10 lm-qxtt lmtlo10
+qx-lmtlc10 lm-qxtt lmtlc10
+qx-lmtlco10 lm-qxtt lmtlco10
+qx-lmtk10 lm-qxtt lmtk10
+qx-lmtko10 lm-qxtt lmtko10
+qx-lmtt10 lm-qxtt lmtt10
+qx-lmtt12 lm-qxtt lmtt12
+qx-lmtt8 lm-qxtt lmtt8
+qx-lmtt9 lm-qxtt lmtt9
+qx-lmtti10 lm-qxtt lmtti10
+qx-lmtto10 lm-qxtt lmtto10
+qx-lmvtt10 lm-qx-os lmvtt10
+qx-lmvtto10 lm-qx-os lmvtto10
+qx-lmvtl10 lm-qx-os lmvtl10
+qx-lmvtlo10 lm-qx-os lmvtlo10
+qx-lmvtk10 lm-qx-os lmvtk10
+qx-lmvtko10 lm-qx-os lmvtko10
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/qx-public-lm.map b/Master/texmf-dist/fonts/map/dvipdfm/context/qx-public-lm.map
new file mode 100644
index 00000000000..219665bb563
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/qx-public-lm.map
@@ -0,0 +1,69 @@
+qx-lmb10 lm-qx lmb10
+qx-lmbo10 lm-qx lmbo10
+qx-lmbx10 lm-qx lmbx10
+qx-lmbx12 lm-qx lmbx12
+qx-lmbx5 lm-qx lmbx5
+qx-lmbx6 lm-qx lmbx6
+qx-lmbx7 lm-qx lmbx7
+qx-lmbx8 lm-qx lmbx8
+qx-lmbx9 lm-qx lmbx9
+qx-lmbxi10 lm-qx lmbxi10
+qx-lmbxo10 lm-qx lmbxo10
+qx-lmcsc10 lm-qx lmcsc10
+qx-lmcsco10 lm-qx lmcsco10
+qx-lmr10 lm-qx lmr10
+qx-lmr12 lm-qx lmr12
+qx-lmr17 lm-qx lmr17
+qx-lmr5 lm-qx lmr5
+qx-lmr6 lm-qx lmr6
+qx-lmr7 lm-qx lmr7
+qx-lmr8 lm-qx lmr8
+qx-lmr9 lm-qx lmr9
+qx-lmri10 lm-qx lmri10
+qx-lmri12 lm-qx lmri12
+qx-lmri7 lm-qx lmri7
+qx-lmri8 lm-qx lmri8
+qx-lmri9 lm-qx lmri9
+qx-lmro10 lm-qx lmro10
+qx-lmro12 lm-qx lmro12
+qx-lmro17 lm-qx lmro17
+qx-lmro8 lm-qx lmro8
+qx-lmro9 lm-qx lmro9
+qx-lmss10 lm-qx lmss10
+qx-lmss12 lm-qx lmss12
+qx-lmss17 lm-qx lmss17
+qx-lmss8 lm-qx lmss8
+qx-lmss9 lm-qx lmss9
+qx-lmssbo10 lm-qx lmssbo10
+qx-lmssbx10 lm-qx lmssbx10
+qx-lmssdc10 lm-qx lmssdc10
+qx-lmssdo10 lm-qx lmssdo10
+qx-lmsso10 lm-qx lmsso10
+qx-lmsso12 lm-qx lmsso12
+qx-lmsso17 lm-qx lmsso17
+qx-lmsso8 lm-qx lmsso8
+qx-lmsso9 lm-qx lmsso9
+qx-lmssq8 lm-qx lmssq8
+qx-lmssqbo8 lm-qx lmssqbo8
+qx-lmssqbx8 lm-qx lmssqbx8
+qx-lmssqo8 lm-qx lmssqo8
+qx-lmtcsc10 lm-qxtt lmtcsc10
+qx-lmtcso10 lm-qxtt lmtcso10
+qx-lmtl10 lm-qxtt lmtl10
+qx-lmtlo10 lm-qxtt lmtlo10
+qx-lmtlc10 lm-qxtt lmtlc10
+qx-lmtlco10 lm-qxtt lmtlco10
+qx-lmtk10 lm-qxtt lmtk10
+qx-lmtko10 lm-qxtt lmtko10
+qx-lmtt10 lm-qxtt lmtt10
+qx-lmtt12 lm-qxtt lmtt12
+qx-lmtt8 lm-qxtt lmtt8
+qx-lmtt9 lm-qxtt lmtt9
+qx-lmtti10 lm-qxtt lmtti10
+qx-lmtto10 lm-qxtt lmtto10
+qx-lmvtt10 lm-qx lmvtt10
+qx-lmvtto10 lm-qx lmvtto10
+qx-lmvtl10 lm-qx lmvtl10
+qx-lmvtlo10 lm-qx lmvtlo10
+qx-lmvtk10 lm-qx lmvtk10
+qx-lmvtko10 lm-qx lmvtko10
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/t5-base.map b/Master/texmf-dist/fonts/map/dvipdfm/context/t5-base.map
new file mode 100644
index 00000000000..2fad21c4063
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/t5-base.map
@@ -0,0 +1,36 @@
+ucrr8v t5 ucrr8v
+ucrro8v t5 ucrro8v
+ucrb8v t5 ucrb8v
+ucrbo8v t5 ucrbo8v
+uhvr8v t5 uhvr8v
+uhvro8v t5 uhvro8v
+uhvb8v t5 uhvb8v
+uhvbo8v t5 uhvbo8v
+utmr8v t5 utmr8v
+utmri8v t5 utmri8v
+utmb8v t5 utmb8v
+utmbi8v t5 utmbi8v
+utmro8v t5 utmr8v
+utmbo8v t5 utmb8v
+uplr8v t5 uplr8v
+uplri8v t5 uplri8v
+uplb8v t5 uplb8v
+uplbi8v t5 uplbi8v
+uplro8v t5 uplr8v
+uplbo8v t5 uplb8v
+ubkl8v t5 ubkl8v
+ubkli8v t5 ubkli8v
+ubkd8v t5 ubkd8v
+ubkdi8v t5 ubkdi8v
+ubklo8v t5 ubkl8v
+ubkdo8v t5 ubkd8v
+uncr8v t5 uncr8v
+uncri8v t5 uncri8v
+uncb8v t5 uncb8v
+uncbi8v t5 uncbi8v
+uncro8v t5 uncr8v
+uncbo8v t5 uncb8v
+uagk8v t5 uagk8v
+uagko8v t5 uagko8v
+uagd8v t5 uagd8v
+uagdo8v t5 uagdo8v
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/t5-os-public-lm.map b/Master/texmf-dist/fonts/map/dvipdfm/context/t5-os-public-lm.map
new file mode 100644
index 00000000000..662713aab54
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/t5-os-public-lm.map
@@ -0,0 +1,69 @@
+t5-lmb10 lm-t5-os lmb10
+t5-lmbo10 lm-t5-os lmbo10
+t5-lmbx10 lm-t5-os lmbx10
+t5-lmbx12 lm-t5-os lmbx12
+t5-lmbx5 lm-t5-os lmbx5
+t5-lmbx6 lm-t5-os lmbx6
+t5-lmbx7 lm-t5-os lmbx7
+t5-lmbx8 lm-t5-os lmbx8
+t5-lmbx9 lm-t5-os lmbx9
+t5-lmbxi10 lm-t5-os lmbxi10
+t5-lmbxo10 lm-t5-os lmbxo10
+t5-lmcsc10 lm-t5-os lmcsc10
+t5-lmcsco10 lm-t5-os lmcsco10
+t5-lmr10 lm-t5-os lmr10
+t5-lmr12 lm-t5-os lmr12
+t5-lmr17 lm-t5-os lmr17
+t5-lmr5 lm-t5-os lmr5
+t5-lmr6 lm-t5-os lmr6
+t5-lmr7 lm-t5-os lmr7
+t5-lmr8 lm-t5-os lmr8
+t5-lmr9 lm-t5-os lmr9
+t5-lmri10 lm-t5-os lmri10
+t5-lmri12 lm-t5-os lmri12
+t5-lmri7 lm-t5-os lmri7
+t5-lmri8 lm-t5-os lmri8
+t5-lmri9 lm-t5-os lmri9
+t5-lmro10 lm-t5-os lmro10
+t5-lmro12 lm-t5-os lmro12
+t5-lmro17 lm-t5-os lmro17
+t5-lmro8 lm-t5-os lmro8
+t5-lmro9 lm-t5-os lmro9
+t5-lmss10 lm-t5-os lmss10
+t5-lmss12 lm-t5-os lmss12
+t5-lmss17 lm-t5-os lmss17
+t5-lmss8 lm-t5-os lmss8
+t5-lmss9 lm-t5-os lmss9
+t5-lmssbo10 lm-t5-os lmssbo10
+t5-lmssbx10 lm-t5-os lmssbx10
+t5-lmssdc10 lm-t5-os lmssdc10
+t5-lmssdo10 lm-t5-os lmssdo10
+t5-lmsso10 lm-t5-os lmsso10
+t5-lmsso12 lm-t5-os lmsso12
+t5-lmsso17 lm-t5-os lmsso17
+t5-lmsso8 lm-t5-os lmsso8
+t5-lmsso9 lm-t5-os lmsso9
+t5-lmssq8 lm-t5-os lmssq8
+t5-lmssqbo8 lm-t5-os lmssqbo8
+t5-lmssqbx8 lm-t5-os lmssqbx8
+t5-lmssqo8 lm-t5-os lmssqo8
+t5-lmtcsc10 lm-t5-os lmtcsc10
+t5-lmtcso10 lm-t5-os lmtcso10
+t5-lmtl10 lm-t5-os lmtl10
+t5-lmtlo10 lm-t5-os lmtlo10
+t5-lmtlc10 lm-t5-os lmtlc10
+t5-lmtlco10 lm-t5-os lmtlco10
+t5-lmtk10 lm-t5-os lmtk10
+t5-lmtko10 lm-t5-os lmtko10
+t5-lmtt10 lm-t5-os lmtt10
+t5-lmtt12 lm-t5-os lmtt12
+t5-lmtt8 lm-t5-os lmtt8
+t5-lmtt9 lm-t5-os lmtt9
+t5-lmtti10 lm-t5-os lmtti10
+t5-lmtto10 lm-t5-os lmtto10
+t5-lmvtt10 lm-t5-os lmvtt10
+t5-lmvtto10 lm-t5-os lmvtto10
+t5-lmvtl10 lm-t5-os lmvtl10
+t5-lmvtlo10 lm-t5-os lmvtlo10
+t5-lmvtk10 lm-t5-os lmvtk10
+t5-lmvtko10 lm-t5-os lmvtko10
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/t5-public-lm.map b/Master/texmf-dist/fonts/map/dvipdfm/context/t5-public-lm.map
new file mode 100644
index 00000000000..4abba5f7cee
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/t5-public-lm.map
@@ -0,0 +1,69 @@
+t5-lmb10 lm-t5 lmb10
+t5-lmbo10 lm-t5 lmbo10
+t5-lmbx10 lm-t5 lmbx10
+t5-lmbx12 lm-t5 lmbx12
+t5-lmbx5 lm-t5 lmbx5
+t5-lmbx6 lm-t5 lmbx6
+t5-lmbx7 lm-t5 lmbx7
+t5-lmbx8 lm-t5 lmbx8
+t5-lmbx9 lm-t5 lmbx9
+t5-lmbxi10 lm-t5 lmbxi10
+t5-lmbxo10 lm-t5 lmbxo10
+t5-lmcsc10 lm-t5 lmcsc10
+t5-lmcsco10 lm-t5 lmcsco10
+t5-lmr10 lm-t5 lmr10
+t5-lmr12 lm-t5 lmr12
+t5-lmr17 lm-t5 lmr17
+t5-lmr5 lm-t5 lmr5
+t5-lmr6 lm-t5 lmr6
+t5-lmr7 lm-t5 lmr7
+t5-lmr8 lm-t5 lmr8
+t5-lmr9 lm-t5 lmr9
+t5-lmri10 lm-t5 lmri10
+t5-lmri12 lm-t5 lmri12
+t5-lmri7 lm-t5 lmri7
+t5-lmri8 lm-t5 lmri8
+t5-lmri9 lm-t5 lmri9
+t5-lmro10 lm-t5 lmro10
+t5-lmro12 lm-t5 lmro12
+t5-lmro17 lm-t5 lmro17
+t5-lmro8 lm-t5 lmro8
+t5-lmro9 lm-t5 lmro9
+t5-lmss10 lm-t5 lmss10
+t5-lmss12 lm-t5 lmss12
+t5-lmss17 lm-t5 lmss17
+t5-lmss8 lm-t5 lmss8
+t5-lmss9 lm-t5 lmss9
+t5-lmssbo10 lm-t5 lmssbo10
+t5-lmssbx10 lm-t5 lmssbx10
+t5-lmssdc10 lm-t5 lmssdc10
+t5-lmssdo10 lm-t5 lmssdo10
+t5-lmsso10 lm-t5 lmsso10
+t5-lmsso12 lm-t5 lmsso12
+t5-lmsso17 lm-t5 lmsso17
+t5-lmsso8 lm-t5 lmsso8
+t5-lmsso9 lm-t5 lmsso9
+t5-lmssq8 lm-t5 lmssq8
+t5-lmssqbo8 lm-t5 lmssqbo8
+t5-lmssqbx8 lm-t5 lmssqbx8
+t5-lmssqo8 lm-t5 lmssqo8
+t5-lmtcsc10 lm-t5 lmtcsc10
+t5-lmtcso10 lm-t5 lmtcso10
+t5-lmtl10 lm-t5 lmtl10
+t5-lmtlo10 lm-t5 lmtlo10
+t5-lmtlc10 lm-t5 lmtlc10
+t5-lmtlco10 lm-t5 lmtlco10
+t5-lmtk10 lm-t5 lmtk10
+t5-lmtko10 lm-t5 lmtko10
+t5-lmtt10 lm-t5 lmtt10
+t5-lmtt12 lm-t5 lmtt12
+t5-lmtt8 lm-t5 lmtt8
+t5-lmtt9 lm-t5 lmtt9
+t5-lmtti10 lm-t5 lmtti10
+t5-lmtto10 lm-t5 lmtto10
+t5-lmvtt10 lm-t5 lmvtt10
+t5-lmvtto10 lm-t5 lmvtto10
+t5-lmvtl10 lm-t5 lmvtl10
+t5-lmvtlo10 lm-t5 lmvtlo10
+t5-lmvtk10 lm-t5 lmvtk10
+t5-lmvtko10 lm-t5 lmvtko10
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/texnansi-base.map b/Master/texmf-dist/fonts/map/dvipdfm/context/texnansi-base.map
new file mode 100644
index 00000000000..053291a29cb
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/texnansi-base.map
@@ -0,0 +1 @@
+% no map entries
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/texnansi-os-public-lm.map b/Master/texmf-dist/fonts/map/dvipdfm/context/texnansi-os-public-lm.map
new file mode 100644
index 00000000000..26e3cabb108
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/texnansi-os-public-lm.map
@@ -0,0 +1,69 @@
+texnansi-lmb10 lm-texnansi-os lmb10
+texnansi-lmbo10 lm-texnansi-os lmbo10
+texnansi-lmbx10 lm-texnansi-os lmbx10
+texnansi-lmbx12 lm-texnansi-os lmbx12
+texnansi-lmbx5 lm-texnansi-os lmbx5
+texnansi-lmbx6 lm-texnansi-os lmbx6
+texnansi-lmbx7 lm-texnansi-os lmbx7
+texnansi-lmbx8 lm-texnansi-os lmbx8
+texnansi-lmbx9 lm-texnansi-os lmbx9
+texnansi-lmbxi10 lm-texnansi-os lmbxi10
+texnansi-lmbxo10 lm-texnansi-os lmbxo10
+texnansi-lmcsc10 lm-texnansi-os lmcsc10
+texnansi-lmcsco10 lm-texnansi-os lmcsco10
+texnansi-lmr10 lm-texnansi-os lmr10
+texnansi-lmr12 lm-texnansi-os lmr12
+texnansi-lmr17 lm-texnansi-os lmr17
+texnansi-lmr5 lm-texnansi-os lmr5
+texnansi-lmr6 lm-texnansi-os lmr6
+texnansi-lmr7 lm-texnansi-os lmr7
+texnansi-lmr8 lm-texnansi-os lmr8
+texnansi-lmr9 lm-texnansi-os lmr9
+texnansi-lmri10 lm-texnansi-os lmri10
+texnansi-lmri12 lm-texnansi-os lmri12
+texnansi-lmri7 lm-texnansi-os lmri7
+texnansi-lmri8 lm-texnansi-os lmri8
+texnansi-lmri9 lm-texnansi-os lmri9
+texnansi-lmro10 lm-texnansi-os lmro10
+texnansi-lmro12 lm-texnansi-os lmro12
+texnansi-lmro17 lm-texnansi-os lmro17
+texnansi-lmro8 lm-texnansi-os lmro8
+texnansi-lmro9 lm-texnansi-os lmro9
+texnansi-lmss10 lm-texnansi-os lmss10
+texnansi-lmss12 lm-texnansi-os lmss12
+texnansi-lmss17 lm-texnansi-os lmss17
+texnansi-lmss8 lm-texnansi-os lmss8
+texnansi-lmss9 lm-texnansi-os lmss9
+texnansi-lmssbo10 lm-texnansi-os lmssbo10
+texnansi-lmssbx10 lm-texnansi-os lmssbx10
+texnansi-lmssdc10 lm-texnansi-os lmssdc10
+texnansi-lmssdo10 lm-texnansi-os lmssdo10
+texnansi-lmsso10 lm-texnansi-os lmsso10
+texnansi-lmsso12 lm-texnansi-os lmsso12
+texnansi-lmsso17 lm-texnansi-os lmsso17
+texnansi-lmsso8 lm-texnansi-os lmsso8
+texnansi-lmsso9 lm-texnansi-os lmsso9
+texnansi-lmssq8 lm-texnansi-os lmssq8
+texnansi-lmssqbo8 lm-texnansi-os lmssqbo8
+texnansi-lmssqbx8 lm-texnansi-os lmssqbx8
+texnansi-lmssqo8 lm-texnansi-os lmssqo8
+texnansi-lmtcsc10 lm-texnansi-os lmtcsc10
+texnansi-lmtcso10 lm-texnansi-os lmtcso10
+texnansi-lmtl10 lm-texnansi-os lmtl10
+texnansi-lmtlo10 lm-texnansi-os lmtlo10
+texnansi-lmtlc10 lm-texnansi-os lmtlc10
+texnansi-lmtlco10 lm-texnansi-os lmtlco10
+texnansi-lmtk10 lm-texnansi-os lmtk10
+texnansi-lmtko10 lm-texnansi-os lmtko10
+texnansi-lmtt10 lm-texnansi-os lmtt10
+texnansi-lmtt12 lm-texnansi-os lmtt12
+texnansi-lmtt8 lm-texnansi-os lmtt8
+texnansi-lmtt9 lm-texnansi-os lmtt9
+texnansi-lmtti10 lm-texnansi-os lmtti10
+texnansi-lmtto10 lm-texnansi-os lmtto10
+texnansi-lmvtt10 lm-texnansi-os lmvtt10
+texnansi-lmvtto10 lm-texnansi-os lmvtto10
+texnansi-lmvtl10 lm-texnansi-os lmvtl10
+texnansi-lmvtlo10 lm-texnansi-os lmvtlo10
+texnansi-lmvtk10 lm-texnansi-os lmvtk10
+texnansi-lmvtko10 lm-texnansi-os lmvtko10
diff --git a/Master/texmf-dist/fonts/map/dvipdfm/context/texnansi-public-lm.map b/Master/texmf-dist/fonts/map/dvipdfm/context/texnansi-public-lm.map
new file mode 100644
index 00000000000..41e2679059b
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfm/context/texnansi-public-lm.map
@@ -0,0 +1,69 @@
+texnansi-lmb10 lm-texnansi lmb10
+texnansi-lmbo10 lm-texnansi lmbo10
+texnansi-lmbx10 lm-texnansi lmbx10
+texnansi-lmbx12 lm-texnansi lmbx12
+texnansi-lmbx5 lm-texnansi lmbx5
+texnansi-lmbx6 lm-texnansi lmbx6
+texnansi-lmbx7 lm-texnansi lmbx7
+texnansi-lmbx8 lm-texnansi lmbx8
+texnansi-lmbx9 lm-texnansi lmbx9
+texnansi-lmbxi10 lm-texnansi lmbxi10
+texnansi-lmbxo10 lm-texnansi lmbxo10
+texnansi-lmcsc10 lm-texnansi lmcsc10
+texnansi-lmcsco10 lm-texnansi lmcsco10
+texnansi-lmr10 lm-texnansi lmr10
+texnansi-lmr12 lm-texnansi lmr12
+texnansi-lmr17 lm-texnansi lmr17
+texnansi-lmr5 lm-texnansi lmr5
+texnansi-lmr6 lm-texnansi lmr6
+texnansi-lmr7 lm-texnansi lmr7
+texnansi-lmr8 lm-texnansi lmr8
+texnansi-lmr9 lm-texnansi lmr9
+texnansi-lmri10 lm-texnansi lmri10
+texnansi-lmri12 lm-texnansi lmri12
+texnansi-lmri7 lm-texnansi lmri7
+texnansi-lmri8 lm-texnansi lmri8
+texnansi-lmri9 lm-texnansi lmri9
+texnansi-lmro10 lm-texnansi lmro10
+texnansi-lmro12 lm-texnansi lmro12
+texnansi-lmro17 lm-texnansi lmro17
+texnansi-lmro8 lm-texnansi lmro8
+texnansi-lmro9 lm-texnansi lmro9
+texnansi-lmss10 lm-texnansi lmss10
+texnansi-lmss12 lm-texnansi lmss12
+texnansi-lmss17 lm-texnansi lmss17
+texnansi-lmss8 lm-texnansi lmss8
+texnansi-lmss9 lm-texnansi lmss9
+texnansi-lmssbo10 lm-texnansi lmssbo10
+texnansi-lmssbx10 lm-texnansi lmssbx10
+texnansi-lmssdc10 lm-texnansi lmssdc10
+texnansi-lmssdo10 lm-texnansi lmssdo10
+texnansi-lmsso10 lm-texnansi lmsso10
+texnansi-lmsso12 lm-texnansi lmsso12
+texnansi-lmsso17 lm-texnansi lmsso17
+texnansi-lmsso8 lm-texnansi lmsso8
+texnansi-lmsso9 lm-texnansi lmsso9
+texnansi-lmssq8 lm-texnansi lmssq8
+texnansi-lmssqbo8 lm-texnansi lmssqbo8
+texnansi-lmssqbx8 lm-texnansi lmssqbx8
+texnansi-lmssqo8 lm-texnansi lmssqo8
+texnansi-lmtcsc10 lm-texnansi lmtcsc10
+texnansi-lmtcso10 lm-texnansi lmtcso10
+texnansi-lmtl10 lm-texnansi lmtl10
+texnansi-lmtlo10 lm-texnansi lmtlo10
+texnansi-lmtlc10 lm-texnansi lmtlc10
+texnansi-lmtlco10 lm-texnansi lmtlco10
+texnansi-lmtk10 lm-texnansi lmtk10
+texnansi-lmtko10 lm-texnansi lmtko10
+texnansi-lmtt10 lm-texnansi lmtt10
+texnansi-lmtt12 lm-texnansi lmtt12
+texnansi-lmtt8 lm-texnansi lmtt8
+texnansi-lmtt9 lm-texnansi lmtt9
+texnansi-lmtti10 lm-texnansi lmtti10
+texnansi-lmtto10 lm-texnansi lmtto10
+texnansi-lmvtt10 lm-texnansi lmvtt10
+texnansi-lmvtto10 lm-texnansi lmvtto10
+texnansi-lmvtl10 lm-texnansi lmvtl10
+texnansi-lmvtlo10 lm-texnansi lmvtlo10
+texnansi-lmvtk10 lm-texnansi lmvtk10
+texnansi-lmvtko10 lm-texnansi lmvtko10
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/8r-base.map b/Master/texmf-dist/fonts/map/pdftex/context/8r-base.map
new file mode 100644
index 00000000000..e1611cfe8a9
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/8r-base.map
@@ -0,0 +1,135 @@
+% courier / urw
+
+ucrb8r NimbusMonL-Bold <8r.enc <ucrb8a.pfb
+ucrbo8r NimbusMonL-BoldObli <8r.enc <ucrbo8a.pfb
+ucrr8r NimbusMonL-Regu <8r.enc <ucrr8a.pfb
+ucrro8r NimbusMonL-ReguObli <8r.enc <ucrro8a.pfb
+
+% courier / adobe
+
+pcrb8r NimbusMonL-Bold <8r.enc <ucrb8a.pfb
+pcrbo8r NimbusMonL-BoldObli <8r.enc <ucrbo8a.pfb
+pcrr8r NimbusMonL-Regu <8r.enc <ucrr8a.pfb
+pcrro8r NimbusMonL-ReguObli <8r.enc <ucrro8a.pfb
+
+% helvetica / urw
+
+uhvb8r NimbusSanL-Bold <8r.enc <uhvb8a.pfb
+uhvbo8r NimbusSanL-BoldItal <8r.enc <uhvbo8a.pfb
+uhvr8r NimbusSanL-Regu <8r.enc <uhvr8a.pfb
+uhvro8r NimbusSanL-ReguItal <8r.enc <uhvro8a.pfb
+
+% helvetica / adobe
+
+phvb8r NimbusSanL-Bold <8r.enc <uhvb8a.pfb
+phvbo8r NimbusSanL-BoldItal <8r.enc <uhvbo8a.pfb
+phvr8r NimbusSanL-Regu <8r.enc <uhvr8a.pfb
+phvro8r NimbusSanL-ReguItal <8r.enc <uhvro8a.pfb
+
+% times / urw
+
+utmb8r NimbusRomNo9L-Medi <8r.enc <utmb8a.pfb
+utmbi8r NimbusRomNo9L-MediItal <8r.enc <utmbi8a.pfb
+utmr8r NimbusRomNo9L-Regu <8r.enc <utmr8a.pfb
+utmri8r NimbusRomNo9L-ReguItal <8r.enc <utmri8a.pfb
+
+utmbo8r NimbusRomNo9L-Medi ".167 SlantFont" <8r.enc <utmb8a.pfb
+utmro8r NimbusRomNo9L-Regu ".167 SlantFont" <8r.enc <utmr8a.pfb
+
+% times / adobe
+
+ptmb8r NimbusRomNo9L-Medi <8r.enc <utmb8a.pfb
+ptmbi8r NimbusRomNo9L-MediItal <8r.enc <utmbi8a.pfb
+ptmr8r NimbusRomNo9L-Regu <8r.enc <utmr8a.pfb
+ptmri8r NimbusRomNo9L-ReguItal <8r.enc <utmri8a.pfb
+
+ptmbo8r NimbusRomNo9L-Medi ".167 SlantFont" <8r.enc <utmb8a.pfb
+ptmro8r NimbusRomNo9L-Regu ".167 SlantFont" <8r.enc <utmr8a.pfb
+
+% palatino / urw
+
+uplb8r URWPalladioL-Bold <8r.enc <uplb8a.pfb
+uplbi8r URWPalladioL-BoldItal <8r.enc <uplbi8a.pfb
+uplr8r URWPalladioL-Roma <8r.enc <uplr8a.pfb
+uplri8r URWPalladioL-Ital <8r.enc <uplri8a.pfb
+
+uplbo8r URWPalladioL-Bold ".167 SlantFont" <8r.enc <uplb8a.pfb
+uplro8r URWPalladioL-Roma ".167 SlantFont" <8r.enc <uplr8a.pfb
+
+% palatino / adobe
+
+pplb8r URWPalladioL-Bold <8r.enc <uplb8a.pfb
+pplbi8r URWPalladioL-BoldItal <8r.enc <uplbi8a.pfb
+pplr8r URWPalladioL-Roma <8r.enc <uplr8a.pfb
+pplri8r URWPalladioL-Ital <8r.enc <uplri8a.pfb
+
+pplbo8r URWPalladioL-Bold ".167 SlantFont" <8r.enc <uplb8a.pfb
+pplro8r URWPalladioL-Roma ".167 SlantFont" <8r.enc <uplr8a.pfb
+
+% bookman / urw
+
+ubkd8r URWBookmanL-DemiBold <8r.enc <ubkd8a.pfb
+ubkdi8r URWBookmanL-DemiBoldItal <8r.enc <ubkdi8a.pfb
+ubkl8r URWBookmanL-Ligh <8r.enc <ubkl8a.pfb
+ubkli8r URWBookmanL-LighItal <8r.enc <ubkli8a.pfb
+
+ubkdo8r URWBookmanL-DemiBold ".167 SlantFont" <8r.enc <ubkd8a.pfb
+ubklo8r URWBookmanL-Ligh ".167 SlantFont" <8r.enc <ubkl8a.pfb
+
+% bookman / adobe
+
+pbkd8r URWBookmanL-DemiBold <8r.enc <ubkd8a.pfb
+pbkdi8r URWBookmanL-DemiBoldItal <8r.enc <ubkdi8a.pfb
+pbkl8r URWBookmanL-Ligh <8r.enc <ubkl8a.pfb
+pbkli8r URWBookmanL-LighItal <8r.enc <ubkli8a.pfb
+
+pbkdo8r URWBookmanL-DemiBold ".167 SlantFont" <8r.enc <ubkd8a.pfb
+pbklo8r URWBookmanL-Ligh ".167 SlantFont" <8r.enc <ubkl8a.pfb
+
+% chancery / urw
+
+uzcmi8r URWChanceryL-MediItal <8r.enc <uzcmi8a.pfb
+
+% chancery / adobe
+
+pzcmi8r URWChanceryL-MediItal <8r.enc <uzcmi8a.pfb
+
+% schoolbook / urw
+
+uncb8r CenturySchL-Bold <8r.enc <uncb8a.pfb
+uncbi8r CenturySchL-BoldItal <8r.enc <uncbi8a.pfb
+uncr8r CenturySchL-Roma <8r.enc <uncr8a.pfb
+uncri8r CenturySchL-Ital <8r.enc <uncri8a.pfb
+
+uncbo8r CenturySchL-Bold ".167 SlantFont" <8r.enc <uncb8a.pfb
+uncro8r CenturySchL-Roma ".167 SlantFont" <8r.enc <uncr8a.pfb
+
+% schoolbook / adobe
+
+pncb8r CenturySchL-Bold <8r.enc <uncb8a.pfb
+pncbi8r CenturySchL-BoldItal <8r.enc <uncbi8a.pfb
+pncr8r CenturySchL-Roma <8r.enc <uncr8a.pfb
+pncri8r CenturySchL-Ital <8r.enc <uncri8a.pfb
+
+pncbo8r CenturySchL-Bold ".167 SlantFont" <8r.enc <uncb8a.pfb
+pncro8r CenturySchL-Roma ".167 SlantFont" <8r.enc <uncr8a.pfb
+
+% utopia
+
+putb8r Utopia-Bold <8r.enc <putb8a.pfb
+putbi8r Utopia-BoldItalic <8r.enc <putbi8a.pfb
+putr8r Utopia-Regular <8r.enc <putr8a.pfb
+putri8r Utopia-Italic <8r.enc <putri8a.pfb
+
+putbo8r Utopia-Bold ".167 SlantFont" <8r.enc <putb8a.pfb
+putro8r Utopia-Regular ".167 SlantFont" <8r.enc <putr8a.pfb
+
+% charter
+
+bchb8r CharterBT-Bold <8r.enc <bchb8a.pfb
+bchbi8r CharterBT-BoldItalic <8r.enc <bchbi8a.pfb
+bchr8r CharterBT-Roman <8r.enc <bchr8a.pfb
+bchri8r CharterBT-Italic <8r.enc <bchri8a.pfb
+
+bchbo8r CharterBT-Bold ".167 SlantFont" <8r.enc <bchb8a.pfb
+bchro8r CharterBT-Roman ".167 SlantFont" <8r.enc <bchr8a.pfb \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/ec-base.map b/Master/texmf-dist/fonts/map/pdftex/context/ec-base.map
new file mode 100644
index 00000000000..5011a22ca04
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/ec-base.map
@@ -0,0 +1,135 @@
+% courier / urw
+
+ucrb8t NimbusMonL-Bold <ec.enc <ucrb8a.pfb
+ucrbo8t NimbusMonL-BoldObli <ec.enc <ucrbo8a.pfb
+ucrr8t NimbusMonL-Regu <ec.enc <ucrr8a.pfb
+ucrro8t NimbusMonL-ReguObli <ec.enc <ucrro8a.pfb
+
+% courier / adobe
+
+pcrb8t NimbusMonL-Bold <ec.enc <ucrb8a.pfb
+pcrbo8t NimbusMonL-BoldObli <ec.enc <ucrbo8a.pfb
+pcrr8t NimbusMonL-Regu <ec.enc <ucrr8a.pfb
+pcrro8t NimbusMonL-ReguObli <ec.enc <ucrro8a.pfb
+
+% helvetica / urw
+
+uhvb8t NimbusSanL-Bold <ec.enc <uhvb8a.pfb
+uhvbo8t NimbusSanL-BoldItal <ec.enc <uhvbo8a.pfb
+uhvr8t NimbusSanL-Regu <ec.enc <uhvr8a.pfb
+uhvro8t NimbusSanL-ReguItal <ec.enc <uhvro8a.pfb
+
+% helvetica / adobe
+
+phvb8t NimbusSanL-Bold <ec.enc <uhvb8a.pfb
+phvbo8t NimbusSanL-BoldItal <ec.enc <uhvbo8a.pfb
+phvr8t NimbusSanL-Regu <ec.enc <uhvr8a.pfb
+phvro8t NimbusSanL-ReguItal <ec.enc <uhvro8a.pfb
+
+% times / urw
+
+utmb8t NimbusRomNo9L-Medi <ec.enc <utmb8a.pfb
+utmbi8t NimbusRomNo9L-MediItal <ec.enc <utmbi8a.pfb
+utmr8t NimbusRomNo9L-Regu <ec.enc <utmr8a.pfb
+utmri8t NimbusRomNo9L-ReguItal <ec.enc <utmri8a.pfb
+
+utmbo8t NimbusRomNo9L-Medi ".167 SlantFont" <ec.enc <utmb8a.pfb
+utmro8t NimbusRomNo9L-Regu ".167 SlantFont" <ec.enc <utmr8a.pfb
+
+% times / adobe
+
+ptmb8t NimbusRomNo9L-Medi <ec.enc <utmb8a.pfb
+ptmbi8t NimbusRomNo9L-MediItal <ec.enc <utmbi8a.pfb
+ptmr8t NimbusRomNo9L-Regu <ec.enc <utmr8a.pfb
+ptmri8t NimbusRomNo9L-ReguItal <ec.enc <utmri8a.pfb
+
+ptmbo8t NimbusRomNo9L-Medi ".167 SlantFont" <ec.enc <utmb8a.pfb
+ptmro8t NimbusRomNo9L-Regu ".167 SlantFont" <ec.enc <utmr8a.pfb
+
+% palatino / urw
+
+uplb8t URWPalladioL-Bold <ec.enc <uplb8a.pfb
+uplbi8t URWPalladioL-BoldItal <ec.enc <uplbi8a.pfb
+uplr8t URWPalladioL-Roma <ec.enc <uplr8a.pfb
+uplri8t URWPalladioL-Ital <ec.enc <uplri8a.pfb
+
+uplbo8t URWPalladioL-Bold ".167 SlantFont" <ec.enc <uplb8a.pfb
+uplro8t URWPalladioL-Roma ".167 SlantFont" <ec.enc <uplr8a.pfb
+
+% palatino / adobe
+
+pplb8t URWPalladioL-Bold <ec.enc <uplb8a.pfb
+pplbi8t URWPalladioL-BoldItal <ec.enc <uplbi8a.pfb
+pplr8t URWPalladioL-Roma <ec.enc <uplr8a.pfb
+pplri8t URWPalladioL-Ital <ec.enc <uplri8a.pfb
+
+pplbo8t URWPalladioL-Bold ".167 SlantFont" <ec.enc <uplb8a.pfb
+pplro8t URWPalladioL-Roma ".167 SlantFont" <ec.enc <upplr8a.pfb
+
+% bookman / urw
+
+ubkd8t URWBookmanL-DemiBold <ec.enc <ubkd8a.pfb
+ubkdi8t URWBookmanL-DemiBoldItal <ec.enc <ubkdi8a.pfb
+ubkl8t URWBookmanL-Ligh <ec.enc <ubkl8a.pfb
+ubkli8t URWBookmanL-LighItal <ec.enc <ubkli8a.pfb
+
+ubkdo8t URWBookmanL-DemiBold ".167 SlantFont" <ec.enc <ubkd8a.pfb
+ubklo8t URWBookmanL-Ligh ".167 SlantFont" <ec.enc <ubkl8a.pfb
+
+% bookman / adobe
+
+pbkd8t URWBookmanL-DemiBold <ec.enc <ubkd8a.pfb
+pbkdi8t URWBookmanL-DemiBoldItal <ec.enc <ubkdi8a.pfb
+pbkl8t URWBookmanL-Ligh <ec.enc <ubkl8a.pfb
+pbkli8t URWBookmanL-LighItal <ec.enc <ubkli8a.pfb
+
+pbkdo8t URWBookmanL-DemiBold ".167 SlantFont" <ec.enc <ubkd8a.pfb
+pbklo8t URWBookmanL-Ligh ".167 SlantFont" <ec.enc <ubkl8a.pfb
+
+% chancery / urw
+
+uzcmi8t URWChanceryL-MediItal <ec.enc <uzcmi8a.pfb
+
+% chancery / adobe
+
+pzcmi8t URWChanceryL-MediItal <ec.enc <uzcmi8a.pfb
+
+% schoolbook / urw
+
+uncb8t CenturySchL-Bold <ec.enc <uncb8a.pfb
+uncbi8t CenturySchL-BoldItal <ec.enc <uncbi8a.pfb
+uncr8t CenturySchL-Roma <ec.enc <uncr8a.pfb
+uncri8t CenturySchL-Ital <ec.enc <uncri8a.pfb
+
+uncbo8t CenturySchL-Bold ".167 SlantFont" <ec.enc <uncb8a.pfb
+uncro8t CenturySchL-Roma ".167 SlantFont" <ec.enc <uncr8a.pfb
+
+% schoolbook / adobe
+
+pncb8t CenturySchL-Bold <ec.enc <uncb8a.pfb
+pncbi8t CenturySchL-BoldItal <ec.enc <uncbi8a.pfb
+pncr8t CenturySchL-Roma <ec.enc <uncr8a.pfb
+pncri8t CenturySchL-Ital <ec.enc <uncri8a.pfb
+
+pncbo8t CenturySchL-Bold ".167 SlantFont" <ec.enc <uncb8a.pfb
+pncro8t CenturySchL-Roma ".167 SlantFont" <ec.enc <uncr8a.pfb
+
+% utopia
+
+putb8t Utopia-Bold <ec.enc <putb8a.pfb
+putbi8t Utopia-BoldItalic <ec.enc <putbi8a.pfb
+putr8t Utopia-Regular <ec.enc <putr8a.pfb
+putri8t Utopia-Italic <ec.enc <putri8a.pfb
+
+putbo8t Utopia-Bold ".167 SlantFont" <ec.enc <putb8a.pfb
+putro8t Utopia-Regular ".167 SlantFont" <ec.enc <putr8a.pfb
+
+% charter
+
+bchb8t CharterBT-Bold <ec.enc <bchb8a.pfb
+bchbi8t CharterBT-BoldItalic <ec.enc <bchbi8a.pfb
+bchr8t CharterBT-Roman <ec.enc <bchr8a.pfb
+bchri8t CharterBT-Italic <ec.enc <bchri8a.pfb
+
+bchbo8t CharterBT-Bold ".167 SlantFont" <ec.enc <bchb8a.pfb
+bchro8t CharterBT-Roman ".167 SlantFont" <ec.enc <bchr8a.pfb \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/ec-os-public-lm.map b/Master/texmf-dist/fonts/map/pdftex/context/ec-os-public-lm.map
new file mode 100644
index 00000000000..d68013c36f3
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/ec-os-public-lm.map
@@ -0,0 +1,69 @@
+ec-lmb10 LMRoman10-Demi "enclmecos ReEncodeFont" <lm-ec-os.enc <lmb10.pfb
+ec-lmbo10 LMRoman10-DemiOblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmbo10.pfb
+ec-lmbx10 LMRoman10-Bold "enclmecos ReEncodeFont" <lm-ec-os.enc <lmbx10.pfb
+ec-lmbx12 LMRoman12-Bold "enclmecos ReEncodeFont" <lm-ec-os.enc <lmbx12.pfb
+ec-lmbx5 LMRoman5-Bold "enclmecos ReEncodeFont" <lm-ec-os.enc <lmbx5.pfb
+ec-lmbx6 LMRoman6-Bold "enclmecos ReEncodeFont" <lm-ec-os.enc <lmbx6.pfb
+ec-lmbx7 LMRoman7-Bold "enclmecos ReEncodeFont" <lm-ec-os.enc <lmbx7.pfb
+ec-lmbx8 LMRoman8-Bold "enclmecos ReEncodeFont" <lm-ec-os.enc <lmbx8.pfb
+ec-lmbx9 LMRoman9-Bold "enclmecos ReEncodeFont" <lm-ec-os.enc <lmbx9.pfb
+ec-lmbxi10 LMRoman10-BoldItalic "enclmecos ReEncodeFont" <lm-ec-os.enc <lmbxi10.pfb
+ec-lmbxo10 LMRoman10-BoldOblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmbxo10.pfb
+ec-lmcsc10 LMRoman10-CapsRegular "enclmecos ReEncodeFont" <lm-ec-os.enc <lmcsc10.pfb
+ec-lmcsco10 LMRoman10-CapsOblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmcsco10.pfb
+ec-lmr10 LMRoman10-Regular "enclmecos ReEncodeFont" <lm-ec-os.enc <lmr10.pfb
+ec-lmr12 LMRoman12-Regular "enclmecos ReEncodeFont" <lm-ec-os.enc <lmr12.pfb
+ec-lmr17 LMRoman17-Regular "enclmecos ReEncodeFont" <lm-ec-os.enc <lmr17.pfb
+ec-lmr5 LMRoman5-Regular "enclmecos ReEncodeFont" <lm-ec-os.enc <lmr5.pfb
+ec-lmr6 LMRoman6-Regular "enclmecos ReEncodeFont" <lm-ec-os.enc <lmr6.pfb
+ec-lmr7 LMRoman7-Regular "enclmecos ReEncodeFont" <lm-ec-os.enc <lmr7.pfb
+ec-lmr8 LMRoman8-Regular "enclmecos ReEncodeFont" <lm-ec-os.enc <lmr8.pfb
+ec-lmr9 LMRoman9-Regular "enclmecos ReEncodeFont" <lm-ec-os.enc <lmr9.pfb
+ec-lmri10 LMRoman10-Italic "enclmecos ReEncodeFont" <lm-ec-os.enc <lmri10.pfb
+ec-lmri12 LMRoman12-Italic "enclmecos ReEncodeFont" <lm-ec-os.enc <lmri12.pfb
+ec-lmri7 LMRoman7-Italic "enclmecos ReEncodeFont" <lm-ec-os.enc <lmri7.pfb
+ec-lmri8 LMRoman8-Italic "enclmecos ReEncodeFont" <lm-ec-os.enc <lmri8.pfb
+ec-lmri9 LMRoman9-Italic "enclmecos ReEncodeFont" <lm-ec-os.enc <lmri9.pfb
+ec-lmro10 LMRoman10-Oblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmro10.pfb
+ec-lmro12 LMRoman12-Oblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmro12.pfb
+ec-lmro17 LMRoman17-Oblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmro17.pfb
+ec-lmro8 LMRoman8-Oblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmro8.pfb
+ec-lmro9 LMRoman9-Oblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmro9.pfb
+ec-lmss10 LMSans10-Regular "enclmecos ReEncodeFont" <lm-ec-os.enc <lmss10.pfb
+ec-lmss12 LMSans12-Regular "enclmecos ReEncodeFont" <lm-ec-os.enc <lmss12.pfb
+ec-lmss17 LMSans17-Regular "enclmecos ReEncodeFont" <lm-ec-os.enc <lmss17.pfb
+ec-lmss8 LMSans8-Regular "enclmecos ReEncodeFont" <lm-ec-os.enc <lmss8.pfb
+ec-lmss9 LMSans9-Regular "enclmecos ReEncodeFont" <lm-ec-os.enc <lmss9.pfb
+ec-lmssbo10 LMSans10-BoldOblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmssbo10.pfb
+ec-lmssbx10 LMSans10-Bold "enclmecos ReEncodeFont" <lm-ec-os.enc <lmssbx10.pfb
+ec-lmssdc10 LMSans10-DemiCondensed "enclmecos ReEncodeFont" <lm-ec-os.enc <lmssdc10.pfb
+ec-lmssdo10 LMSans10-DemiCondensedOblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmssdo10.pfb
+ec-lmsso10 LMSans10-Oblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmsso10.pfb
+ec-lmsso12 LMSans12-Oblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmsso12.pfb
+ec-lmsso17 LMSans17-Oblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmsso17.pfb
+ec-lmsso8 LMSans8-Oblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmsso8.pfb
+ec-lmsso9 LMSans9-Oblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmsso9.pfb
+ec-lmssq8 LMSansQuotation8-Regular "enclmecos ReEncodeFont" <lm-ec-os.enc <lmssq8.pfb
+ec-lmssqbo8 LMSansQuotation8-BoldOblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmssqbo8.pfb
+ec-lmssqbx8 LMSansQuotation8-Bold "enclmecos ReEncodeFont" <lm-ec-os.enc <lmssqbx8.pfb
+ec-lmssqo8 LMSansQuotation8-Oblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmssqo8.pfb
+ec-lmtcsc10 LMTypewriter10-CapsRegular "enclmecos ReEncodeFont" <lm-ec-os.enc <lmtcsc10.pfb
+ec-lmtcso10 LMTypewriter10-CapsOblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmtcso10.pfb
+ec-lmtl10 LMTypewriter10-Light "enclmecos ReEncodeFont" <lm-ec-os.enc <lmtl10.pfb
+ec-lmtlo10 LMTypewriter10-LightOblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmtlo10.pfb
+ec-lmtlc10 LMTypewriter10-LightCondensed "enclmecos ReEncodeFont" <lm-ec-os.enc <lmtlc10.pfb
+ec-lmtlco10 LMTypewriter10-LightCondensedOblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmtlco10.pfb
+ec-lmtk10 LMTypewriter10-Dark "enclmecos ReEncodeFont" <lm-ec-os.enc <lmtk10.pfb
+ec-lmtko10 LMTypewriter10-DarkOblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmtko10.pfb
+ec-lmtt10 LMTypewriter10-Regular "enclmecos ReEncodeFont" <lm-ec-os.enc <lmtt10.pfb
+ec-lmtt12 LMTypewriter12-Regular "enclmecos ReEncodeFont" <lm-ec-os.enc <lmtt12.pfb
+ec-lmtt8 LMTypewriter8-Regular "enclmecos ReEncodeFont" <lm-ec-os.enc <lmtt8.pfb
+ec-lmtt9 LMTypewriter9-Regular "enclmecos ReEncodeFont" <lm-ec-os.enc <lmtt9.pfb
+ec-lmtti10 LMTypewriter10-Italic "enclmecos ReEncodeFont" <lm-ec-os.enc <lmtti10.pfb
+ec-lmtto10 LMTypewriter10-Oblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmtto10.pfb
+ec-lmvtt10 LMTypewriterVarWd10-Regular "enclmecos ReEncodeFont" <lm-ec-os.enc <lmvtt10.pfb
+ec-lmvtto10 LMTypewriterVarWd10-Oblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmvtto10.pfb
+ec-lmvtl10 LMTypewriterVarWd10-Light "enclmecos ReEncodeFont" <lm-ec-os.enc <lmvtl10.pfb
+ec-lmvtlo10 LMTypewriterVarWd10-LightOblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmvtlo10.pfb
+ec-lmvtk10 LMTypewriterVarWd10-Dark "enclmecos ReEncodeFont" <lm-ec-os.enc <lmvtk10.pfb
+ec-lmvtko10 LMTypewriterVarWd10-DarkOblique "enclmecos ReEncodeFont" <lm-ec-os.enc <lmvtko10.pfb
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/ec-public-lm.map b/Master/texmf-dist/fonts/map/pdftex/context/ec-public-lm.map
new file mode 100644
index 00000000000..d4640394fa4
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/ec-public-lm.map
@@ -0,0 +1,69 @@
+ec-lmb10 LMRoman10-Demi "enclmec ReEncodeFont" <lm-ec.enc <lmb10.pfb
+ec-lmbo10 LMRoman10-DemiOblique "enclmec ReEncodeFont" <lm-ec.enc <lmbo10.pfb
+ec-lmbx10 LMRoman10-Bold "enclmec ReEncodeFont" <lm-ec.enc <lmbx10.pfb
+ec-lmbx12 LMRoman12-Bold "enclmec ReEncodeFont" <lm-ec.enc <lmbx12.pfb
+ec-lmbx5 LMRoman5-Bold "enclmec ReEncodeFont" <lm-ec.enc <lmbx5.pfb
+ec-lmbx6 LMRoman6-Bold "enclmec ReEncodeFont" <lm-ec.enc <lmbx6.pfb
+ec-lmbx7 LMRoman7-Bold "enclmec ReEncodeFont" <lm-ec.enc <lmbx7.pfb
+ec-lmbx8 LMRoman8-Bold "enclmec ReEncodeFont" <lm-ec.enc <lmbx8.pfb
+ec-lmbx9 LMRoman9-Bold "enclmec ReEncodeFont" <lm-ec.enc <lmbx9.pfb
+ec-lmbxi10 LMRoman10-BoldItalic "enclmec ReEncodeFont" <lm-ec.enc <lmbxi10.pfb
+ec-lmbxo10 LMRoman10-BoldOblique "enclmec ReEncodeFont" <lm-ec.enc <lmbxo10.pfb
+ec-lmcsc10 LMRoman10-CapsRegular "enclmec ReEncodeFont" <lm-ec.enc <lmcsc10.pfb
+ec-lmcsco10 LMRoman10-CapsOblique "enclmec ReEncodeFont" <lm-ec.enc <lmcsco10.pfb
+ec-lmr10 LMRoman10-Regular "enclmec ReEncodeFont" <lm-ec.enc <lmr10.pfb
+ec-lmr12 LMRoman12-Regular "enclmec ReEncodeFont" <lm-ec.enc <lmr12.pfb
+ec-lmr17 LMRoman17-Regular "enclmec ReEncodeFont" <lm-ec.enc <lmr17.pfb
+ec-lmr5 LMRoman5-Regular "enclmec ReEncodeFont" <lm-ec.enc <lmr5.pfb
+ec-lmr6 LMRoman6-Regular "enclmec ReEncodeFont" <lm-ec.enc <lmr6.pfb
+ec-lmr7 LMRoman7-Regular "enclmec ReEncodeFont" <lm-ec.enc <lmr7.pfb
+ec-lmr8 LMRoman8-Regular "enclmec ReEncodeFont" <lm-ec.enc <lmr8.pfb
+ec-lmr9 LMRoman9-Regular "enclmec ReEncodeFont" <lm-ec.enc <lmr9.pfb
+ec-lmri10 LMRoman10-Italic "enclmec ReEncodeFont" <lm-ec.enc <lmri10.pfb
+ec-lmri12 LMRoman12-Italic "enclmec ReEncodeFont" <lm-ec.enc <lmri12.pfb
+ec-lmri7 LMRoman7-Italic "enclmec ReEncodeFont" <lm-ec.enc <lmri7.pfb
+ec-lmri8 LMRoman8-Italic "enclmec ReEncodeFont" <lm-ec.enc <lmri8.pfb
+ec-lmri9 LMRoman9-Italic "enclmec ReEncodeFont" <lm-ec.enc <lmri9.pfb
+ec-lmro10 LMRoman10-Oblique "enclmec ReEncodeFont" <lm-ec.enc <lmro10.pfb
+ec-lmro12 LMRoman12-Oblique "enclmec ReEncodeFont" <lm-ec.enc <lmro12.pfb
+ec-lmro17 LMRoman17-Oblique "enclmec ReEncodeFont" <lm-ec.enc <lmro17.pfb
+ec-lmro8 LMRoman8-Oblique "enclmec ReEncodeFont" <lm-ec.enc <lmro8.pfb
+ec-lmro9 LMRoman9-Oblique "enclmec ReEncodeFont" <lm-ec.enc <lmro9.pfb
+ec-lmss10 LMSans10-Regular "enclmec ReEncodeFont" <lm-ec.enc <lmss10.pfb
+ec-lmss12 LMSans12-Regular "enclmec ReEncodeFont" <lm-ec.enc <lmss12.pfb
+ec-lmss17 LMSans17-Regular "enclmec ReEncodeFont" <lm-ec.enc <lmss17.pfb
+ec-lmss8 LMSans8-Regular "enclmec ReEncodeFont" <lm-ec.enc <lmss8.pfb
+ec-lmss9 LMSans9-Regular "enclmec ReEncodeFont" <lm-ec.enc <lmss9.pfb
+ec-lmssbo10 LMSans10-BoldOblique "enclmec ReEncodeFont" <lm-ec.enc <lmssbo10.pfb
+ec-lmssbx10 LMSans10-Bold "enclmec ReEncodeFont" <lm-ec.enc <lmssbx10.pfb
+ec-lmssdc10 LMSans10-DemiCondensed "enclmec ReEncodeFont" <lm-ec.enc <lmssdc10.pfb
+ec-lmssdo10 LMSans10-DemiCondensedOblique "enclmec ReEncodeFont" <lm-ec.enc <lmssdo10.pfb
+ec-lmsso10 LMSans10-Oblique "enclmec ReEncodeFont" <lm-ec.enc <lmsso10.pfb
+ec-lmsso12 LMSans12-Oblique "enclmec ReEncodeFont" <lm-ec.enc <lmsso12.pfb
+ec-lmsso17 LMSans17-Oblique "enclmec ReEncodeFont" <lm-ec.enc <lmsso17.pfb
+ec-lmsso8 LMSans8-Oblique "enclmec ReEncodeFont" <lm-ec.enc <lmsso8.pfb
+ec-lmsso9 LMSans9-Oblique "enclmec ReEncodeFont" <lm-ec.enc <lmsso9.pfb
+ec-lmssq8 LMSansQuotation8-Regular "enclmec ReEncodeFont" <lm-ec.enc <lmssq8.pfb
+ec-lmssqbo8 LMSansQuotation8-BoldOblique "enclmec ReEncodeFont" <lm-ec.enc <lmssqbo8.pfb
+ec-lmssqbx8 LMSansQuotation8-Bold "enclmec ReEncodeFont" <lm-ec.enc <lmssqbx8.pfb
+ec-lmssqo8 LMSansQuotation8-Oblique "enclmec ReEncodeFont" <lm-ec.enc <lmssqo8.pfb
+ec-lmtcsc10 LMTypewriter10-CapsRegular "enclmec ReEncodeFont" <lm-ec.enc <lmtcsc10.pfb
+ec-lmtcso10 LMTypewriter10-CapsOblique "enclmec ReEncodeFont" <lm-ec.enc <lmtcso10.pfb
+ec-lmtl10 LMTypewriter10-Light "enclmec ReEncodeFont" <lm-ec.enc <lmtl10.pfb
+ec-lmtlo10 LMTypewriter10-LightOblique "enclmec ReEncodeFont" <lm-ec.enc <lmtlo10.pfb
+ec-lmtlc10 LMTypewriter10-LightCondensed "enclmec ReEncodeFont" <lm-ec.enc <lmtlc10.pfb
+ec-lmtlco10 LMTypewriter10-LightCondensedOblique "enclmec ReEncodeFont" <lm-ec.enc <lmtlco10.pfb
+ec-lmtk10 LMTypewriter10-Dark "enclmec ReEncodeFont" <lm-ec.enc <lmtk10.pfb
+ec-lmtko10 LMTypewriter10-DarkOblique "enclmec ReEncodeFont" <lm-ec.enc <lmtko10.pfb
+ec-lmtt10 LMTypewriter10-Regular "enclmec ReEncodeFont" <lm-ec.enc <lmtt10.pfb
+ec-lmtt12 LMTypewriter12-Regular "enclmec ReEncodeFont" <lm-ec.enc <lmtt12.pfb
+ec-lmtt8 LMTypewriter8-Regular "enclmec ReEncodeFont" <lm-ec.enc <lmtt8.pfb
+ec-lmtt9 LMTypewriter9-Regular "enclmec ReEncodeFont" <lm-ec.enc <lmtt9.pfb
+ec-lmtti10 LMTypewriter10-Italic "enclmec ReEncodeFont" <lm-ec.enc <lmtti10.pfb
+ec-lmtto10 LMTypewriter10-Oblique "enclmec ReEncodeFont" <lm-ec.enc <lmtto10.pfb
+ec-lmvtt10 LMTypewriterVarWd10-Regular "enclmec ReEncodeFont" <lm-ec.enc <lmvtt10.pfb
+ec-lmvtto10 LMTypewriterVarWd10-Oblique "enclmec ReEncodeFont" <lm-ec.enc <lmvtto10.pfb
+ec-lmvtl10 LMTypewriterVarWd10-Light "enclmec ReEncodeFont" <lm-ec.enc <lmvtl10.pfb
+ec-lmvtlo10 LMTypewriterVarWd10-LightOblique "enclmec ReEncodeFont" <lm-ec.enc <lmvtlo10.pfb
+ec-lmvtk10 LMTypewriterVarWd10-Dark "enclmec ReEncodeFont" <lm-ec.enc <lmvtk10.pfb
+ec-lmvtko10 LMTypewriterVarWd10-DarkOblique "enclmec ReEncodeFont" <lm-ec.enc <lmvtko10.pfb
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/el-public-lm.map b/Master/texmf-dist/fonts/map/pdftex/context/el-public-lm.map
new file mode 100644
index 00000000000..f8b605afb43
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/el-public-lm.map
@@ -0,0 +1,69 @@
+el-lmb10 LMRoman10-Demi "enclmel ReEncodeFont" <lm-el.enc <lmb10.pfb
+el-lmbo10 LMRoman10-DemiOblique "enclmel ReEncodeFont" <lm-el.enc <lmbo10.pfb
+el-lmbx10 LMRoman10-Bold "enclmel ReEncodeFont" <lm-el.enc <lmbx10.pfb
+el-lmbx12 LMRoman12-Bold "enclmel ReEncodeFont" <lm-el.enc <lmbx12.pfb
+el-lmbx5 LMRoman5-Bold "enclmel ReEncodeFont" <lm-el.enc <lmbx5.pfb
+el-lmbx6 LMRoman6-Bold "enclmel ReEncodeFont" <lm-el.enc <lmbx6.pfb
+el-lmbx7 LMRoman7-Bold "enclmel ReEncodeFont" <lm-el.enc <lmbx7.pfb
+el-lmbx8 LMRoman8-Bold "enclmel ReEncodeFont" <lm-el.enc <lmbx8.pfb
+el-lmbx9 LMRoman9-Bold "enclmel ReEncodeFont" <lm-el.enc <lmbx9.pfb
+el-lmbxi10 LMRoman10-BoldItalic "enclmel ReEncodeFont" <lm-el.enc <lmbxi10.pfb
+el-lmbxo10 LMRoman10-BoldOblique "enclmel ReEncodeFont" <lm-el.enc <lmbxo10.pfb
+el-lmcsc10 LMRoman10-CapsRegular "enclmel ReEncodeFont" <lm-el.enc <lmcsc10.pfb
+el-lmcsco10 LMRoman10-CapsOblique "enclmel ReEncodeFont" <lm-el.enc <lmcsco10.pfb
+el-lmr10 LMRoman10-Regular "enclmel ReEncodeFont" <lm-el.enc <lmr10.pfb
+el-lmr12 LMRoman12-Regular "enclmel ReEncodeFont" <lm-el.enc <lmr12.pfb
+el-lmr17 LMRoman17-Regular "enclmel ReEncodeFont" <lm-el.enc <lmr17.pfb
+el-lmr5 LMRoman5-Regular "enclmel ReEncodeFont" <lm-el.enc <lmr5.pfb
+el-lmr6 LMRoman6-Regular "enclmel ReEncodeFont" <lm-el.enc <lmr6.pfb
+el-lmr7 LMRoman7-Regular "enclmel ReEncodeFont" <lm-el.enc <lmr7.pfb
+el-lmr8 LMRoman8-Regular "enclmel ReEncodeFont" <lm-el.enc <lmr8.pfb
+el-lmr9 LMRoman9-Regular "enclmel ReEncodeFont" <lm-el.enc <lmr9.pfb
+el-lmri10 LMRoman10-Italic "enclmel ReEncodeFont" <lm-el.enc <lmri10.pfb
+el-lmri12 LMRoman12-Italic "enclmel ReEncodeFont" <lm-el.enc <lmri12.pfb
+el-lmri7 LMRoman7-Italic "enclmel ReEncodeFont" <lm-el.enc <lmri7.pfb
+el-lmri8 LMRoman8-Italic "enclmel ReEncodeFont" <lm-el.enc <lmri8.pfb
+el-lmri9 LMRoman9-Italic "enclmel ReEncodeFont" <lm-el.enc <lmri9.pfb
+el-lmro10 LMRoman10-Oblique "enclmel ReEncodeFont" <lm-el.enc <lmro10.pfb
+el-lmro12 LMRoman12-Oblique "enclmel ReEncodeFont" <lm-el.enc <lmro12.pfb
+el-lmro17 LMRoman17-Oblique "enclmel ReEncodeFont" <lm-el.enc <lmro17.pfb
+el-lmro8 LMRoman8-Oblique "enclmel ReEncodeFont" <lm-el.enc <lmro8.pfb
+el-lmro9 LMRoman9-Oblique "enclmel ReEncodeFont" <lm-el.enc <lmro9.pfb
+el-lmss10 LMSans10-Regular "enclmel ReEncodeFont" <lm-el.enc <lmss10.pfb
+el-lmss12 LMSans12-Regular "enclmel ReEncodeFont" <lm-el.enc <lmss12.pfb
+el-lmss17 LMSans17-Regular "enclmel ReEncodeFont" <lm-el.enc <lmss17.pfb
+el-lmss8 LMSans8-Regular "enclmel ReEncodeFont" <lm-el.enc <lmss8.pfb
+el-lmss9 LMSans9-Regular "enclmel ReEncodeFont" <lm-el.enc <lmss9.pfb
+el-lmssbo10 LMSans10-BoldOblique "enclmel ReEncodeFont" <lm-el.enc <lmssbo10.pfb
+el-lmssbx10 LMSans10-Bold "enclmel ReEncodeFont" <lm-el.enc <lmssbx10.pfb
+el-lmssdc10 LMSans10-DemiCondensed "enclmel ReEncodeFont" <lm-el.enc <lmssdc10.pfb
+el-lmssdo10 LMSans10-DemiCondensedOblique "enclmel ReEncodeFont" <lm-el.enc <lmssdo10.pfb
+el-lmsso10 LMSans10-Oblique "enclmel ReEncodeFont" <lm-el.enc <lmsso10.pfb
+el-lmsso12 LMSans12-Oblique "enclmel ReEncodeFont" <lm-el.enc <lmsso12.pfb
+el-lmsso17 LMSans17-Oblique "enclmel ReEncodeFont" <lm-el.enc <lmsso17.pfb
+el-lmsso8 LMSans8-Oblique "enclmel ReEncodeFont" <lm-el.enc <lmsso8.pfb
+el-lmsso9 LMSans9-Oblique "enclmel ReEncodeFont" <lm-el.enc <lmsso9.pfb
+el-lmssq8 LMSansQuotation8-Regular "enclmel ReEncodeFont" <lm-el.enc <lmssq8.pfb
+el-lmssqbo8 LMSansQuotation8-BoldOblique "enclmel ReEncodeFont" <lm-el.enc <lmssqbo8.pfb
+el-lmssqbx8 LMSansQuotation8-Bold "enclmel ReEncodeFont" <lm-el.enc <lmssqbx8.pfb
+el-lmssqo8 LMSansQuotation8-Oblique "enclmel ReEncodeFont" <lm-el.enc <lmssqo8.pfb
+el-lmtcsc10 LMTypewriter10-CapsRegular "enclmel ReEncodeFont" <lm-el.enc <lmtcsc10.pfb
+el-lmtcso10 LMTypewriter10-CapsOblique "enclmel ReEncodeFont" <lm-el.enc <lmtcso10.pfb
+el-lmtl10 LMTypewriter10-Light "enclmel ReEncodeFont" <lm-el.enc <lmtl10.pfb
+el-lmtlo10 LMTypewriter10-LightOblique "enclmel ReEncodeFont" <lm-el.enc <lmtlo10.pfb
+el-lmtlc10 LMTypewriter10-LightCondensed "enclmel ReEncodeFont" <lm-el.enc <lmtlc10.pfb
+el-lmtlco10 LMTypewriter10-LightCondensedOblique "enclmel ReEncodeFont" <lm-el.enc <lmtlco10.pfb
+el-lmtk10 LMTypewriter10-Dark "enclmel ReEncodeFont" <lm-el.enc <lmtk10.pfb
+el-lmtko10 LMTypewriter10-DarkOblique "enclmel ReEncodeFont" <lm-el.enc <lmtko10.pfb
+el-lmtt10 LMTypewriter10-Regular "enclmel ReEncodeFont" <lm-el.enc <lmtt10.pfb
+el-lmtt12 LMTypewriter12-Regular "enclmel ReEncodeFont" <lm-el.enc <lmtt12.pfb
+el-lmtt8 LMTypewriter8-Regular "enclmel ReEncodeFont" <lm-el.enc <lmtt8.pfb
+el-lmtt9 LMTypewriter9-Regular "enclmel ReEncodeFont" <lm-el.enc <lmtt9.pfb
+el-lmtti10 LMTypewriter10-Italic "enclmel ReEncodeFont" <lm-el.enc <lmtti10.pfb
+el-lmtto10 LMTypewriter10-Oblique "enclmel ReEncodeFont" <lm-el.enc <lmtto10.pfb
+el-lmvtt10 LMTypewriterVarWd10-Regular "enclmel ReEncodeFont" <lm-el.enc <lmvtt10.pfb
+el-lmvtto10 LMTypewriterVarWd10-Oblique "enclmel ReEncodeFont" <lm-el.enc <lmvtto10.pfb
+el-lmvtl10 LMTypewriterVarWd10-Light "enclmel ReEncodeFont" <lm-el.enc <lmvtl10.pfb
+el-lmvtlo10 LMTypewriterVarWd10-LightOblique "enclmel ReEncodeFont" <lm-el.enc <lmvtlo10.pfb
+el-lmvtk10 LMTypewriterVarWd10-Dark "enclmel ReEncodeFont" <lm-el.enc <lmvtk10.pfb
+el-lmvtko10 LMTypewriterVarWd10-DarkOblique "enclmel ReEncodeFont" <lm-el.enc <lmvtko10.pfb
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/koeieletters.map b/Master/texmf-dist/fonts/map/pdftex/context/koeieletters.map
new file mode 100644
index 00000000000..c3e177c176e
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/koeieletters.map
@@ -0,0 +1,8 @@
+koeieletters koeieletters " koeielettersEnc ReEncodeFont " <koeieletters.enc <koeieletters.pfb
+koeieletters-contour koeieletters-contour " koeielettersEnc ReEncodeFont " <koeieletters.enc <koeieletters-contour.pfb
+koeien-ex koeieletters " koeielettersEnc-ex ReEncodeFont " <koeieletters-ex.enc <koeieletters.pfb
+koeien-sy koeieletters " koeielettersEnc-sy ReEncodeFont " <koeieletters-sy.enc <koeieletters.pfb
+koeien-mi koeieletters " koeielettersEnc-mi ReEncodeFont " <koeieletters-mi.enc <koeieletters.pfb
+koeielogos koeielogos " koeielogosEnc ReEncodeFont " <koeielogos.enc <koeielogos.pfb
+koeielogos-contour koeielogos-contour " koeielogosEnc ReEncodeFont " <koeielogos.enc <koeielogos-contour.pfb
+
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/original-adobe-euro.map b/Master/texmf-dist/fonts/map/pdftex/context/original-adobe-euro.map
new file mode 100644
index 00000000000..7a1137ebb62
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/original-adobe-euro.map
@@ -0,0 +1,25 @@
+euromo <euromo.pfb
+euromob <euromob.pfb
+euromoi <euromoi.pfb
+euromobi <euromobi.pfb
+eurosa <eurosa.pfb
+eurosab <eurosab.pfb
+eurosai <eurosai.pfb
+eurosabi <eurosebi.pfb
+eurose <eurose.pfb
+euroseb <euroseb.pfb
+eurosei <eurosei.pfb
+eurosebi <eurosebi.pfb
+
+% euromo <_2______.pfb
+% euromob <_2b_____.pfb
+% euromoi <_2i_____.pfb
+% euromobi <_2bi____.pfb
+% eurosa <_1______.pfb
+% eurosab <_1b_____.pfb
+% eurosai <_1i_____.pfb
+% eurosabi <_1bi____.pfb
+% eurose <_3______.pfb
+% euroseb <_3b_____.pfb
+% eurosei <_3i_____.pfb
+% eurosebi <_3bi____.pfb
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/original-ams-base.map b/Master/texmf-dist/fonts/map/pdftex/context/original-ams-base.map
new file mode 100644
index 00000000000..aa8818ec0e0
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/original-ams-base.map
@@ -0,0 +1,47 @@
+lasy5 LASY5 <lasy5.pfb
+lasy6 LASY6 <lasy6.pfb
+lasy7 LASY7 <lasy7.pfb
+lasy8 LASY8 <lasy8.pfb
+lasy9 LASY9 <lasy9.pfb
+lasy10 LASY10 <lasy10.pfb
+
+lasyb10 LASYB10 <lasyb10.pfb
+lcircle10 LCIRCLE10 <lcircle1.pfb
+lcirclew10 LCIRCLEW10 <lcirclew.pfb
+lcmss8 LCMSS8 <lcmss8.pfb
+lcmssb8 LCMSSB8 <lcmssb8.pfb
+lcmssi8 LCMSSI8 <lcmssi8.pfb
+line10 LINE10 <line10.pfb
+linew10 LINEW10 <linew10.pfb
+
+logo8 LOGO8 <logo8.pfb
+logo9 LOGO9 <logo9.pfb
+logo10 LOGO10 <logo10.pfb
+logobf10 LOGOBF10 <logobf10.pfb
+logosl10 LOGOSL10 <logosl10.pfb
+
+msam5 MSAM5 <msam5.pfb
+msam7 MSAM7 <msam7.pfb
+msam10 MSAM10 <msam10.pfb
+msbm5 MSBM5 <msbm5.pfb
+msbm7 MSBM7 <msbm7.pfb
+msbm10 MSBM10 <msbm10.pfb
+
+wncyb10 WNCYB10 <wncyb10.pfb
+wncyi10 WNCYI10 <wncyi10.pfb
+wncyr10 WNCYR10 <wncyr10.pfb
+wncysc10 WNCYSC10 <wncysc10.pfb
+wncyss10 WNCYSS10 <wncyss10.pfb
+
+manfnt MANFNT <manfnt.pfb
+
+% i dunno what this is
+
+icmex10 <icmex10.pfb
+icmmi8 <icmmi8.pfb
+icmsy8 <icmsy8.pfb
+icmtt8 <icmtt8.pfb
+ilasy8 <ilasy8.pfb
+ilcmss8 <ilcmss8.pfb
+ilcmssb8 <ilcmssb8.pfb
+ilcmssi8 <ilcmssi8.pfb
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/original-ams-cmr.map b/Master/texmf-dist/fonts/map/pdftex/context/original-ams-cmr.map
new file mode 100644
index 00000000000..6139ad754b8
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/original-ams-cmr.map
@@ -0,0 +1,97 @@
+cmb10 CMB10 <cmb10.pfb
+
+cmbsy6 CMBSY6 <cmbsy6.pfb
+cmbsy7 CMBSY7 <cmbsy7.pfb
+cmbsy8 CMBSY8 <cmbsy8.pfb
+cmbsy9 CMBSY9 <cmbsy9.pfb
+cmbsy10 CMBSY10 <cmbsy10.pfb
+
+cmbx5 CMBX5 <cmbx5.pfb
+cmbx6 CMBX6 <cmbx6.pfb
+cmbx7 CMBX7 <cmbx7.pfb
+cmbx8 CMBX8 <cmbx8.pfb
+cmbx9 CMBX9 <cmbx9.pfb
+cmbx10 CMBX10 <cmbx10.pfb
+cmbx12 CMBX10 <cmbx12.pfb
+
+cmbxsl10 CMBXSL10 <cmbxsl10.pfb
+cmbxti10 CMBXTI10 <cmbxti10.pfb
+
+cmcsc10 CMCSC10 <cmcsc10.pfb
+cmdunh10 CMDUNH10 <cmdunh10.pfb
+cmex10 CMEX10 <cmex10.pfb
+cmff10 CMFF10 <cmff10.pfb
+cmfi10 CMFI10 <cmfi10.pfb
+cmfib8 CMFIB8 <cmfib8.pfb
+cminch CMINCH <cminch.pfb
+cmitt10 CMITT10 <cmitt10.pfb
+cmmib10 CMMIB10 <cmmib10.pfb
+
+cmmi5 CMMI5 <cmmi5.pfb
+cmmi6 CMMI6 <cmmi6.pfb
+cmmi7 CMMI7 <cmmi7.pfb
+cmmi8 CMMI8 <cmmi8.pfb
+cmmi9 CMMI9 <cmmi9.pfb
+cmmi10 CMMI10 <cmmi10.pfb
+cmmi12 CMMI12 <cmmi12.pfb
+
+cmr5 CMR5 <cmr5.pfb
+cmr6 CMR6 <cmr6.pfb
+cmr7 CMR7 <cmr7.pfb
+cmr8 CMR8 <cmr8.pfb
+cmr9 CMR9 <cmr9.pfb
+cmr10 CMR10 <cmr10.pfb
+cmr12 CMR12 <cmr12.pfb
+cmr17 CMR17 <cmr17.pfb
+
+cmsl8 CMSL8 <cmsl8.pfb
+cmsl9 CMSL9 <cmsl9.pfb
+cmsl10 CMSL10 <cmsl10.pfb
+cmsl12 CMSL12 <cmsl12.pfb
+
+cmsltt10 CMSLTT10 <cmsltt10.pfb
+
+cmss8 CMSS8 <cmss8.pfb
+cmss9 CMSS9 <cmss9.pfb
+cmss10 CMSS10 <cmss10.pfb
+cmss12 CMSS12 <cmss12.pfb
+cmss17 CMSS17 <cmss17.pfb
+
+cmssbx10 CMSSBX10 <cmssbx10.pfb
+cmssdc10 CMSSDC10 <cmssdc10.pfb
+
+cmssi8 CMSSI8 <cmssi8.pfb
+cmssi9 CMSSI9 <cmssi9.pfb
+cmssi10 CMSSI10 <cmssi10.pfb
+cmssi12 CMSSI12 <cmssi12.pfb
+cmssi17 CMSSI17 <cmssi17.pfb
+
+cmssq8 CMSSQ8 <cmssq8.pfb
+cmssqi8 CMSSQI8 <cmssqi8.pfb
+
+cmsy5 CMSY5 <cmsy5.pfb
+cmsy6 CMSY6 <cmsy6.pfb
+cmsy7 CMSY7 <cmsy7.pfb
+cmsy8 CMSY8 <cmsy8.pfb
+cmsy9 CMSY9 <cmsy9.pfb
+cmsy10 CMSY10 <cmsy10.pfb
+
+cmtcsc10 CMTCSC10 <cmtcsc10.pfb
+
+cmtex8 CMTEX8 <cmtex8.pfb
+cmtex9 CMTEX9 <cmtex9.pfb
+cmtex10 CMTEX10 <cmtex10.pfb
+
+cmti7 CMTI7 <cmti7.pfb
+cmti8 CMTI8 <cmti8.pfb
+cmti9 CMTI9 <cmti9.pfb
+cmti10 CMTI10 <cmti10.pfb
+cmti12 CMTI12 <cmti12.pfb
+
+cmtt8 CMTT8 <cmtt8.pfb
+cmtt9 CMTT9 <cmtt9.pfb
+cmtt10 CMTT10 <cmtt10.pfb
+cmtt12 CMTT12 <cmtt12.pfb
+
+cmu10 CMU10 <cmu10.pfb
+cmvtt10 CMVTT10 <cmvtt10.pfb
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/original-ams-euler.map b/Master/texmf-dist/fonts/map/pdftex/context/original-ams-euler.map
new file mode 100644
index 00000000000..ecbd65b77a0
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/original-ams-euler.map
@@ -0,0 +1,25 @@
+euex10 EUEX10 <euex10.pfb
+
+eufb5 EUFB5 <eufb5.pfb
+eufb7 EUFB7 <eufb7.pfb
+eufb10 EUFB10 <eufb10.pfb
+
+eufm5 EUFM5 <eufm5.pfb
+eufm7 EUFM7 <eufm7.pfb
+eufm10 EUFM10 <eufm10.pfb
+
+eurb5 EURB5 <eurb5.pfb
+eurb7 EURB7 <eurb7.pfb
+eurb10 EURB10 <eurb10.pfb
+
+eurm5 EURM5 <eurm5.pfb
+eurm7 EURM7 <eurm7.pfb
+eurm10 EURM10 <eurm10.pfb
+
+eusb5 EUSB5 <eusb5.pfb
+eusb7 EUSB7 <eusb7.pfb
+eusb10 EUSB10 <eusb10.pfb
+
+eusm5 EUSM5 <eusm5.pfb
+eusm7 EUSM7 <eusm7.pfb
+eusm10 EUSM10 <eusm10.pfb \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/original-base.map b/Master/texmf-dist/fonts/map/pdftex/context/original-base.map
new file mode 100644
index 00000000000..637a87aa518
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/original-base.map
@@ -0,0 +1,63 @@
+% ralph
+
+rsfs7 rsfs5 <rsfs7.pfb
+rsfs5 rsfs7 <rsfs5.pfb
+rsfs10 rsfs10 <rsfs10.pfb
+
+% marvosym
+
+fmvr8x MarVoSym <marvosym.pfb
+fmvri8x MarVoSym ".167 SlantFont" <marvosym.pfb
+
+% context
+
+contnav ContextNavigation <contnav.pfb
+hans Hans-Regular <hans.pfb
+hans-sh Hans-sh-Regular <hans-sh.pfb
+
+% dingbats
+
+uzdr Dingbats <uzdr.pfb
+pzdr Dingbats <pzdr.pfb
+
+% symbols
+
+usyr StandardSymL <usyr.pfb
+
+% xypic
+
+xyatip10 XYATIP10 <xyatip10.pfb
+xybsql10 XYBSQL10 <xybsql10.pfb
+xybtip10 XYBTIP10 <xybtip10.pfb
+xycirc10 XYCIRC10 <xycirc10.pfb
+xydash10 XYDASH10 <xydash10.pfb
+
+xycmat10 XYCMAT10 <xycmat10.pfb
+xycmbt10 XYCMBT10 <xycmbt10.pfb
+xyeuat10 XYEUAT10 <xyeuat10.pfb
+xyeubt10 XYEUBT10 <xyeubt10.pfb
+
+xycmat11 XYCMAT10 "1.1 ExtendFont" <xycmat10.pfb
+xycmbt11 XYCMBT10 "1.1 ExtendFont" <xycmbt10.pfb
+xyeuat11 XYEUAT10 "1.1 ExtendFont" <xyeuat10.pfb
+xyeubt11 XYEUBT10 "1.1 ExtendFont" <xyeubt10.pfb
+
+xycmat12 XYCMAT10 "1.2 ExtendFont" <xycmat10.pfb
+xycmbt12 XYCMBT10 "1.2 ExtendFont" <xycmbt10.pfb
+xyeuat12 XYEUAT10 "1.2 ExtendFont" <xyeuat10.pfb
+xyeubt12 XYEUBT10 "1.2 ExtendFont" <xyeubt10.pfb
+
+% euro
+
+zpeub EuroSerif-Bold <zpeub.pfb
+zpeubi EuroSerif-BoldItalic <zpeubi.pfb
+zpeubis EuroSans-BoldItalic <zpeubis.pfb
+zpeubit EuroMono-BoldItalic <zpeubit.pfb
+zpeubs EuroSans-Bold <zpeubs.pfb
+zpeubt EuroMono-Bold <zpeubt.pfb
+zpeur EuroSerif-Regular <zpeur.pfb
+zpeuri EuroSerif-Italic <zpeuri.pfb
+zpeuris EuroSans-Italic <zpeuris.pfb
+zpeurit EuroMono-Italic <zpeurit.pfb
+zpeurs EuroSans-Regular <zpeurs.pfb
+zpeurt EuroMono-Regular <zpeurt.pfb
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/original-context-symbol.map b/Master/texmf-dist/fonts/map/pdftex/context/original-context-symbol.map
new file mode 100644
index 00000000000..ace5cfe8e49
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/original-context-symbol.map
@@ -0,0 +1,3 @@
+contnav ContextNavigation <contnav.pfb
+hans Hans-Regular <hans.pfb
+hans-sh Hans-sh-Regular <hans-sh.pfb
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/original-dummy.map b/Master/texmf-dist/fonts/map/pdftex/context/original-dummy.map
new file mode 100644
index 00000000000..c4843945cdf
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/original-dummy.map
@@ -0,0 +1 @@
+% no entries in here
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/original-empty.map b/Master/texmf-dist/fonts/map/pdftex/context/original-empty.map
new file mode 100644
index 00000000000..84d22b78228
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/original-empty.map
@@ -0,0 +1,4 @@
+
+
+% this is an empty map file
+
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/original-micropress-informal.map b/Master/texmf-dist/fonts/map/pdftex/context/original-micropress-informal.map
new file mode 100644
index 00000000000..01a61516fd6
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/original-micropress-informal.map
@@ -0,0 +1,7 @@
+ifrm10cm Informal Regular <cm.enc <ifrg.pfb
+ifrb10cm InformalBold <cm.enc <ifb.pfb
+ifro10cm InformalOblique <cm.enc <ifo.pfb
+ifbo10cm InformalBoldOblique <cm.enc <ifbo.pfb
+ifex10 InformalExtendedMathSymbols <ifex10.pfb
+ifmi10 InformalMathItalics <ifmi10.pfb
+ifsy10 InformalMathSymbols <ifsy10.pfb \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/original-public-csr.map b/Master/texmf-dist/fonts/map/pdftex/context/original-public-csr.map
new file mode 100644
index 00000000000..4814d375dfb
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/original-public-csr.map
@@ -0,0 +1,56 @@
+csr5 CSR5 <csr1.enc <csr5.pfb
+csr6 CSR6 <csr.enc <csr6.pfb
+csr7 CSR7 <csr.enc <csr7.pfb
+csr8 CSR8 <csr.enc <csr8.pfb
+csr9 CSR9 <csr.enc <csr9.pfb
+csr10 CSR10 <csr.enc <csr10.pfb
+csr12 CSR12 <csr.enc <csr12.pfb
+csr17 CSR17 <csr.enc <csr17.pfb
+csbx5 CSBX5 <csr.enc <csbx5.pfb
+csbx6 CSBX6 <csr.enc <csbx6.pfb
+csbx7 CSBX7 <csr.enc <csbx7.pfb
+csbx8 CSBX8 <csr.enc <csbx8.pfb
+csbx9 CSBX9 <csr.enc <csbx9.pfb
+csbx10 CSBX10 <csr.enc <csbx10.pfb
+csbx12 CSBX12 <csr.enc <csbx12.pfb
+csb10 CSB10 <csr.enc <csb10.pfb
+csti7 CSTI7 <csr.enc <csti7.pfb
+csti8 CSTI8 <csr.enc <csti8.pfb
+csti9 CSTI9 <csr.enc <csti9.pfb
+csti10 CSTI10 <csr.enc <csti10.pfb
+csti12 CSTI12 <csr.enc <csti12.pfb
+cstt8 CSTT8 <cstt.enc <cstt8.pfb
+cstt9 CSTT9 <cstt.enc <cstt9.pfb
+cstt10 CSTT10 <cstt.enc <cstt10.pfb
+cstt12 CSTT12 <cstt.enc <cstt12.pfb
+cssltt10 CSSLTT10 <cstt.enc <cssltt10.pfb
+csvtt10 CSVTT10 <cstt.enc <csvtt10.pfb
+csss8 CSSS8 <csr.enc <csss8.pfb
+csss9 CSSS9 <csr.enc <csss9.pfb
+csss10 CSSS10 <csr.enc <csss10.pfb
+csss12 CSSS12 <csr.enc <csss12.pfb
+csss17 CSSS17 <csr.enc <csss17.pfb
+csssi8 CSSSI8 <csr.enc <csssi8.pfb
+csssi9 CSSSI9 <csr.enc <csssi9.pfb
+csssi10 CSSSI10 <csr.enc <csssi10.pfb
+csssi12 CSSSI12 <csr.enc <csssi12.pfb
+csssi17 CSSSI17 <csr.enc <csssi17.pfb
+cssl8 CSSL8 <csr.enc <cssl8.pfb
+cssl9 CSSL9 <csr.enc <cssl9.pfb
+cssl10 CSSL10 <csr.enc <cssl10.pfb
+cssl12 CSSL12 <csr.enc <cssl12.pfb
+csssq8 CSSSQ8 <csr.enc <csssq8.pfb
+csssqi8 CSSSQI8 <csr.enc <csssqi8.pfb
+csssdc10 CSSSDC10 <csr.enc <csssdc10.pfb
+csssbx10 CSSSBX10 <csr.enc <csssbx10.pfb
+csinch CSINCH <csin.enc <csinch.pfb
+csdunh10 CSDUNH10 <csr.enc <csdunh10.pfb
+csbxsl10 CSBXSL10 <csr.enc <csbxsl10.pfb
+csff10 CSFF10 <csr.enc <csff10.pfb
+csfib8 CSFIB8 <csr.enc <csfib8.pfb
+csbxti10 CSBXTI10 <csr.enc <csbxti10.pfb
+csitt10 CSITT10 <cstt.enc <csitt10.pfb
+csu10 CSU10 <csr.enc <csu10.pfb
+csfi10 CSFI10 <csr.enc <csfi10.pfb
+cscsc10 CSCSC10 <csr1.enc <cscsc10.pfb
+cstcsc10 CSTCSC10 <cstt.enc <cstcsc10.pfb
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/original-public-lm.map b/Master/texmf-dist/fonts/map/pdftex/context/original-public-lm.map
new file mode 100644
index 00000000000..3d5ada70d2a
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/original-public-lm.map
@@ -0,0 +1,170 @@
+% LM replacement, thanks to Jacko
+
+% official
+%
+% cmb10 LMRomanDemi10-Regular <lm-rep-cmrm.enc <lmb10.pfb
+% cmbx10 LMRoman10-Bold <lm-rep-cmrm.enc <lmbx10.pfb
+% cmbx12 LMRoman12-Bold <lm-rep-cmrm.enc <lmbx12.pfb
+% cmbx5 LMRoman5-Bold <lm-rep-cmrm.enc <lmbx5.pfb
+% cmbx6 LMRoman6-Bold <lm-rep-cmrm.enc <lmbx6.pfb
+% cmbx7 LMRoman7-Bold <lm-rep-cmrm.enc <lmbx7.pfb
+% cmbx8 LMRoman8-Bold <lm-rep-cmrm.enc <lmbx8.pfb
+% cmbx9 LMRoman9-Bold <lm-rep-cmrm.enc <lmbx9.pfb
+% cmbxsl10 LMSlanted10-BoldItalic <lm-rep-cmrm.enc <lmbxo10.pfb
+% cmbxti10 LMRoman10-BoldItalic <lm-rep-cmit.enc <lmbxi10.pfb
+% cmbxti12 LMRoman10-BoldItalic <lm-rep-cmit.enc <lmbxti10.pfb
+% cmbxti7 LMRoman10-BoldItalic <lm-rep-cmit.enc <lmbxti10.pfb
+% cmcsc10 LMCaps10-Regular <lm-rep-cmsc.enc <lmcsc10.pfb
+% cmcsc8 LMCaps10-Regular <lm-rep-cmsc.enc <lmcsc10.pfb
+% cmcsc9 LMCaps10-Regular <lm-rep-cmsc.enc <lmcsc10.pfb
+% cminch LMSans10-Bold <lm-rep-cmin.enc <lmssbx10.pfb
+% cmitt10 LMTypewriter10-Italic <lm-rep-cmitt.enc <lmtti10.pfb
+% cmitt12 LMTypewriter10-Italic <lm-rep-cmitt.enc <lmtti10.pfb
+% cmitt9 LMTypewriter10-Italic <lm-rep-cmitt.enc <lmtti10.pfb
+% cmr10 LMRoman10-Regular <lm-rep-cmrm.enc <lmr10.pfb
+% cmr12 LMRoman12-Regular <lm-rep-cmrm.enc <lmr12.pfb
+% cmr17 LMRoman17-Regular <lm-rep-cmrm.enc <lmr17.pfb
+% cmr5 LMRoman5-Regular <lm-rep-cmsc.enc <lmr5.pfb
+% cmr6 LMRoman6-Regular <lm-rep-cmrm.enc <lmr6.pfb
+% cmr7 LMRoman7-Regular <lm-rep-cmrm.enc <lmr7.pfb
+% cmr8 LMRoman8-Regular <lm-rep-cmrm.enc <lmr8.pfb
+% cmr9 LMRoman9-Regular <lm-rep-cmrm.enc <lmr9.pfb
+% cmsl10 LMSlanted10-Italic <lm-rep-cmrm.enc <lmro10.pfb
+% cmsl12 LMSlanted12-Italic <lm-rep-cmrm.enc <lmro12.pfb
+% cmsl6 LMSlanted8-Italic <lm-rep-cmrm.enc <lmro8.pfb
+% cmsl8 LMSlanted8-Italic <lm-rep-cmrm.enc <lmro8.pfb
+% cmsl9 LMSlanted9-Italic <lm-rep-cmrm.enc <lmro9.pfb
+% cmsltt10 LMTypewriterSlanted10-Italic <lm-rep-cmtt.enc <lmtto10.pfb
+% cmsltt9 LMTypewriterSlanted10-Italic <lm-rep-cmtt.enc <lmtto10.pfb
+% cmss10 LMSans10-Regular <lm-rep-cmrm.enc <lmss10.pfb
+% cmss12 LMSans12-Regular <lm-rep-cmrm.enc <lmss12.pfb
+% cmss17 LMSans17-Regular <lm-rep-cmrm.enc <lmss17.pfb
+% cmss8 LMSans8-Regular <lm-rep-cmrm.enc <lmss8.pfb
+% cmss9 LMSans9-Regular <lm-rep-cmrm.enc <lmss9.pfb
+% cmssbx10 LMSans10-Bold <lm-rep-cmrm.enc <lmssbx10.pfb
+% cmssbxo10 LMSans10-BoldItalic <lm-rep-cmrm.enc <lmssbo10.pfb
+% cmssdc10 LMSansDemiCond10-Regular <lm-rep-cmrm.enc <lmssdc10.pfb
+% cmssi10 LMSans10-Italic <lm-rep-cmrm.enc <lmsso10.pfb
+% cmssi12 LMSans12-Italic <lm-rep-cmrm.enc <lmsso12.pfb
+% cmssi17 LMSans17-Italic <lm-rep-cmrm.enc <lmsso17.pfb
+% cmssi8 LMSans8-Italic <lm-rep-cmrm.enc <lmsso8.pfb
+% cmssi9 LMSans9-Italic <lm-rep-cmrm.enc <lmsso9.pfb
+% cmssq8 LMSansQuotation8-Regular <lm-rep-cmrm.enc <lmssq8.pfb
+% cmssqi8 LMSansQuotation8-Italic <lm-rep-cmrm.enc <lmssqo8.pfb
+% cmtcsc10 LMTypewriterCaps10-Regular <lm-rep-cmtt.enc <lmtcsc10.pfb
+% cmti10 LMRoman10-Italic <lm-rep-cmit.enc <lmri10.pfb
+% cmti12 LMRoman12-Italic <lm-rep-cmit.enc <lmri12.pfb
+% cmti7 LMRoman7-Italic <lm-rep-cmit.enc <lmri7.pfb
+% cmti8 LMRoman8-Italic <lm-rep-cmit.enc <lmri8.pfb
+% cmti9 LMRoman9-Italic <lm-rep-cmit.enc <lmri9.pfb
+% cmtt10 LMTypewriter10-Regular <lm-rep-cmtt.enc <lmtt10.pfb
+% cmtt12 LMTypewriter12-Regular <lm-rep-cmtt.enc <lmtt12.pfb
+% cmtt8 LMTypewriter8-Regular <lm-rep-cmtt.enc <lmtt8.pfb
+% cmtt9 LMTypewriter9-Regular <lm-rep-cmtt.enc <lmtt9.pfb
+% cmvtt10 LMTypewriterVarWd10-Regular <lm-rep-cmrm.enc <lmvtt10.pfb
+%
+% but more efficient since to-be-included old files have those names
+
+cmb10 CMB10 <lm-rep-cmrm.enc <lmb10.pfb
+cmbx10 CMBX10 <lm-rep-cmrm.enc <lmbx10.pfb
+cmbx12 CMBX12 <lm-rep-cmrm.enc <lmbx12.pfb
+cmbx5 CMBX5 <lm-rep-cmrm.enc <lmbx5.pfb
+cmbx6 CMBX6 <lm-rep-cmrm.enc <lmbx6.pfb
+cmbx7 CMBX7 <lm-rep-cmrm.enc <lmbx7.pfb
+cmbx8 CMBX8 <lm-rep-cmrm.enc <lmbx8.pfb
+cmbx9 CMBX9 <lm-rep-cmrm.enc <lmbx9.pfb
+cmbxsl10 CMBXSL10 <lm-rep-cmrm.enc <lmbxo10.pfb
+cmbxti10 CMBXTI10 <lm-rep-cmit.enc <lmbxi10.pfb
+cmbxti12 CMBXTI12 <lm-rep-cmit.enc <lmbxti10.pfb
+cmbxti7 CMBXTI7 <lm-rep-cmit.enc <lmbxti10.pfb
+cmcsc10 CMCSC10 <lm-rep-cmsc.enc <lmcsc10.pfb
+cmcsc8 CMCSC8 <lm-rep-cmsc.enc <lmcsc10.pfb
+cmcsc9 CMCSC9 <lm-rep-cmsc.enc <lmcsc10.pfb
+cminch CMINCH <lm-rep-cmin.enc <lmssbx10.pfb
+cmitt10 CMITT10 <lm-rep-cmitt.enc <lmtti10.pfb
+cmitt12 CMITT12 <lm-rep-cmitt.enc <lmtti10.pfb
+cmitt9 CMITT9 <lm-rep-cmitt.enc <lmtti10.pfb
+cmr10 CMR10 <lm-rep-cmrm.enc <lmr10.pfb
+cmr12 CMR12 <lm-rep-cmrm.enc <lmr12.pfb
+cmr17 CMR17 <lm-rep-cmrm.enc <lmr17.pfb
+cmr5 CMR5 <lm-rep-cmsc.enc <lmr5.pfb
+cmr6 CMR6 <lm-rep-cmrm.enc <lmr6.pfb
+cmr7 CMR7 <lm-rep-cmrm.enc <lmr7.pfb
+cmr8 CMR8 <lm-rep-cmrm.enc <lmr8.pfb
+cmr9 CMR9 <lm-rep-cmrm.enc <lmr9.pfb
+cmsl10 CMSL10 <lm-rep-cmrm.enc <lmro10.pfb
+cmsl12 CMSL12 <lm-rep-cmrm.enc <lmro12.pfb
+cmsl6 CMSL6 <lm-rep-cmrm.enc <lmro8.pfb
+cmsl8 CMSL8 <lm-rep-cmrm.enc <lmro8.pfb
+cmsl9 CMSL9 <lm-rep-cmrm.enc <lmro9.pfb
+cmsltt10 CMSLTT10 <lm-rep-cmtt.enc <lmtto10.pfb
+cmsltt9 CMSLTT9 <lm-rep-cmtt.enc <lmtto10.pfb
+cmss10 CMS10 <lm-rep-cmrm.enc <lmss10.pfb
+cmss12 CMS12 <lm-rep-cmrm.enc <lmss12.pfb
+cmss17 CMS17 <lm-rep-cmrm.enc <lmss17.pfb
+cmss8 CMS8 <lm-rep-cmrm.enc <lmss8.pfb
+cmss9 CMS9 <lm-rep-cmrm.enc <lmss9.pfb
+cmssbx10 CMSSBX10 <lm-rep-cmrm.enc <lmssbx10.pfb
+cmssbxo10 CMSSBXO10 <lm-rep-cmrm.enc <lmssbo10.pfb
+cmssdc10 CMSSDC10 <lm-rep-cmrm.enc <lmssdc10.pfb
+cmssi10 CMSI10 <lm-rep-cmrm.enc <lmsso10.pfb
+cmssi12 CMSI12 <lm-rep-cmrm.enc <lmsso12.pfb
+cmssi17 CMSI17 <lm-rep-cmrm.enc <lmsso17.pfb
+cmssi8 CMSSI8 <lm-rep-cmrm.enc <lmsso8.pfb
+cmssi9 CMSSI9 <lm-rep-cmrm.enc <lmsso9.pfb
+cmssq8 CMSQ8 <lm-rep-cmrm.enc <lmssq8.pfb
+cmssqi8 CMSSQI8 <lm-rep-cmrm.enc <lmssqo8.pfb
+cmtcsc10 CMTCSC10 <lm-rep-cmtt.enc <lmtcsc10.pfb
+cmti10 CMTI10 <lm-rep-cmit.enc <lmri10.pfb
+cmti12 CMTI12 <lm-rep-cmit.enc <lmri12.pfb
+cmti7 CMTI7 <lm-rep-cmit.enc <lmri7.pfb
+cmti8 CMTI8 <lm-rep-cmit.enc <lmri8.pfb
+cmti9 CMTI9 <lm-rep-cmit.enc <lmri9.pfb
+cmtt10 CMTT10 <lm-rep-cmtt.enc <lmtt10.pfb
+cmtt12 CMTT12 <lm-rep-cmtt.enc <lmtt12.pfb
+cmtt8 CMTT8 <lm-rep-cmtt.enc <lmtt8.pfb
+cmtt9 CMTT9 <lm-rep-cmtt.enc <lmtt9.pfb
+cmvtt10 CMVTT10 <lm-rep-cmrm.enc <lmvtt10.pfb
+
+% original
+
+cmbsy10 CMBSY10 <cmbsy10.pfb
+cmbsy5 CMBSY5 <cmbsy5.pfb
+cmbsy6 CMBSY7 <cmbsy7.pfb
+cmbsy7 CMBSY7 <cmbsy7.pfb
+cmbsy8 CMBSY7 <cmbsy7.pfb
+cmbsy9 CMBSY10 <cmbsy10.pfb
+cmdunh10 CMDUNH10 <cmdunh10.pfb
+cmex10 CMEX10 <cmex10.pfb
+cmex7 CMEX10 <cmex10.pfb
+cmex8 CMEX10 <cmex10.pfb
+cmex9 CMEX10 <cmex10.pfb
+cmff10 CMFF10 <cmff10.pfb
+cmfi10 CMFI10 <cmfi10.pfb
+cmfib8 CMFIB8 <cmfib8.pfb
+cmmi10 CMMI10 <cmmi10.pfb
+cmmi12 CMMI12 <cmmi12.pfb
+cmmi5 CMMI5 <cmmi5.pfb
+cmmi6 CMMI6 <cmmi6.pfb
+cmmi7 CMMI7 <cmmi7.pfb
+cmmi8 CMMI8 <cmmi8.pfb
+cmmi9 CMMI9 <cmmi9.pfb
+cmmib10 CMMIB10 <cmmib10.pfb
+cmmib5 CMMIB5 <cmmib5.pfb
+cmmib6 CMMIB7 <cmmib7.pfb
+cmmib7 CMMIB7 <cmmib7.pfb
+cmmib8 CMMIB7 <cmmib7.pfb
+cmmib9 CMMIB10 <cmmib10.pfb
+cmsy10 CMSY10 <cmsy10.pfb
+cmsy5 CMSY5 <cmsy5.pfb
+cmsy6 CMSY6 <cmsy6.pfb
+cmsy7 CMSY7 <cmsy7.pfb
+cmsy8 CMSY8 <cmsy8.pfb
+cmsy9 CMSY9 <cmsy9.pfb
+cmtex10 CMTEX10 <cmtex10.pfb
+cmtex8 CMTEX8 <cmtex8.pfb
+cmtex9 CMTEX9 <cmtex9.pfb
+
+% a weird one, not used in context
+
+cmu10 LMRoman10-Italic "-0.25 SlantFont" <lm-rep-cmit.enc <lmri10.pfb
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/original-public-plr.map b/Master/texmf-dist/fonts/map/pdftex/context/original-public-plr.map
new file mode 100644
index 00000000000..4fce40d3fba
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/original-public-plr.map
@@ -0,0 +1,77 @@
+plb10 PLB10 <plrm.enc <plb10.pfb
+plbsy10 PLBSY10 <plms.enc <plbsy10.pfb
+plbx5 PLBX5 <plrm.enc <plbx5.pfb
+plbx6 PLBX6 <plrm.enc <plbx6.pfb
+plbx7 PLBX7 <plrm.enc <plbx7.pfb
+plbx8 PLBX8 <plrm.enc <plbx8.pfb
+plbx9 PLBX9 <plrm.enc <plbx9.pfb
+plbx10 PLBX10 <plrm.enc <plbx10.pfb
+plbx12 PLBX12 <plrm.enc <plbx12.pfb
+plbxsl10 PLBXSL10 <plrm.enc <plbxsl10.pfb
+plbxti10 PLBXTI10 <plit.enc <plbxti10.pfb
+plcsc10 PLCSC10 <plsc.enc <plcsc10.pfb
+pldunh10 PLDUNH10 <plrm.enc <pldunh10.pfb
+plex9 PLEX9 <plme.enc <plex9.pfb
+plex10 PLEX10 <plme.enc <plex10.pfb
+plff10 PLFF10 <plrm.enc <plff10.pfb
+plfi10 PLFI10 <plit.enc <plfi10.pfb
+plfib8 PLFIB8 <plrm.enc <plfib8.pfb
+plinch PLINCH <plin.enc <plinch.pfb
+plitt10 PLITT10 <plitt.enc <plitt10.pfb
+plmi5 PLMI5 <plmi.enc <plmi5.pfb
+plmi6 PLMI6 <plmi.enc <plmi6.pfb
+plmi7 PLMI7 <plmi.enc <plmi7.pfb
+plmi8 PLMI8 <plmi.enc <plmi8.pfb
+plmi9 PLMI9 <plmi.enc <plmi9.pfb
+plmi10 PLMI10 <plmi.enc <plmi10.pfb
+plmi12 PLMI12 <plmi.enc <plmi12.pfb
+plmib10 PLMIB10 <plmi.enc <plmib10.pfb
+plr5 PLR5 <plsc.enc <plr5.pfb
+plr6 PLR6 <plrm.enc <plr6.pfb
+plr7 PLR7 <plrm.enc <plr7.pfb
+plr8 PLR8 <plrm.enc <plr8.pfb
+plr9 PLR9 <plrm.enc <plr9.pfb
+plr10 PLR10 <plrm.enc <plr10.pfb
+plr12 PLR12 <plrm.enc <plr12.pfb
+plr17 PLR17 <plrm.enc <plr17.pfb
+plsl8 PLSL8 <plrm.enc <plsl8.pfb
+plsl9 PLSL9 <plrm.enc <plsl9.pfb
+plsl10 PLSL10 <plrm.enc <plsl10.pfb
+plsl12 PLSL12 <plrm.enc <plsl12.pfb
+plsltt10 PLSLTT10 <pltt.enc <plsltt10.pfb
+plss8 PLSS8 <plrm.enc <plss8.pfb
+plss9 PLSS9 <plrm.enc <plss9.pfb
+plss10 PLSS10 <plrm.enc <plss10.pfb
+plss12 PLSS12 <plrm.enc <plss12.pfb
+plss17 PLSS17 <plrm.enc <plss17.pfb
+plssbi10 PLSSBI10 <plrm.enc <plssbi10.pfb
+plssbx10 PLSSBX10 <plrm.enc <plssbx10.pfb
+plssdc10 PLSSDC10 <plrm.enc <plssdc10.pfb
+plssi8 PLSSI8 <plrm.enc <plssi8.pfb
+plssi9 PLSSI9 <plrm.enc <plssi9.pfb
+plssi10 PLSSI10 <plrm.enc <plssi10.pfb
+plssi12 PLSSI12 <plrm.enc <plssi12.pfb
+plssi17 PLSSI17 <plrm.enc <plssi17.pfb
+plssq8 PLSSQ8 <plrm.enc <plssq8.pfb
+plssqi8 PLSSQI8 <plrm.enc <plssqi8.pfb
+plsy5 PLSY5 <plms.enc <plsy5.pfb
+plsy6 PLSY6 <plms.enc <plsy6.pfb
+plsy7 PLSY7 <plms.enc <plsy7.pfb
+plsy8 PLSY8 <plms.enc <plsy8.pfb
+plsy9 PLSY9 <plms.enc <plsy9.pfb
+plsy10 PLSY10 <plms.enc <plsy10.pfb
+pltcsc10 PLTCSC10 <pltt.enc <pltcsc10.pfb
+pltex8 PLTEX8 <plte.enc <pltex8.pfb
+pltex9 PLTEX9 <plte.enc <pltex9.pfb
+pltex10 PLTEX10 <plte.enc <pltex10.pfb
+plti7 PLTI7 <plit.enc <plti7.pfb
+plti8 PLTI8 <plit.enc <plti8.pfb
+plti9 PLTI9 <plit.enc <plti9.pfb
+plti10 PLTI10 <plit.enc <plti10.pfb
+plti12 PLTI12 <plit.enc <plti12.pfb
+pltt8 PLTT8 <pltt.enc <pltt8.pfb
+pltt9 PLTT9 <pltt.enc <pltt9.pfb
+pltt10 PLTT10 <pltt.enc <pltt10.pfb
+pltt12 PLTT12 <pltt.enc <pltt12.pfb
+plu10 PLU10 <plit.enc <plu10.pfb
+plvtt10 PLVTT10 <plrm.enc <plvtt10.pfb \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/original-public-vnr.map b/Master/texmf-dist/fonts/map/pdftex/context/original-public-vnr.map
new file mode 100644
index 00000000000..9b6018de126
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/original-public-vnr.map
@@ -0,0 +1,59 @@
+% this is the original file, i don't want to be surprised by changes,
+% so we copied it; some day soon we will use pdfmapline instead; well
+% we'll use latin modern in the end
+
+vnb10 VNB10 <vnb10.pfb
+vnbx10 VNBX10 <vnbx10.pfb
+vnbx12 VNBX12 <vnbx12.pfb
+vnbx5 VNBX5 <vnbx5.pfb
+vnbx6 VNBX6 <vnbx6.pfb
+vnbx7 VNBX7 <vnbx7.pfb
+vnbx8 VNBX8 <vnbx8.pfb
+vnbx9 VNBX9 <vnbx9.pfb
+vnbxsl10 VNBXSL10 <vnbxsl10.pfb
+vnbxti10 VNBXTI10 <vnbxti10.pfb
+vncsc10 VNCSC10 <vncsc10.pfb
+vndunh10 VNDUNH10 <vndunh10.pfb
+vnff10 VNFF10 <vnff10.pfb
+vnfi10 VNFI10 <vnfi10.pfb
+vnfib8 VNFIB8 <vnfib8.pfb
+vnitt10 VNITT10 <vnitt10.pfb
+vnr10 VNR10 <vnr10.pfb
+vnr12 VNR12 <vnr12.pfb
+vnr17 VNR17 <vnr17.pfb
+vnr5 VNR5 <vnr5.pfb
+vnr6 VNR6 <vnr6.pfb
+vnr7 VNR7 <vnr7.pfb
+vnr8 VNR8 <vnr8.pfb
+vnr9 VNR9 <vnr9.pfb
+vnsl10 VNSL10 <vnsl10.pfb
+vnsl12 VNSL12 <vnsl12.pfb
+vnsl8 VNSL8 <vnsl8.pfb
+vnsl9 VNSL9 <vnsl9.pfb
+vnsltt10 VNSLTT10 <vnsltt10.pfb
+vnss10 VNSS10 <vnss10.pfb
+vnss12 VNSS12 <vnss12.pfb
+vnss17 VNSS17 <vnss17.pfb
+vnss8 VNSS8 <vnss8.pfb
+vnss9 VNSS9 <vnss9.pfb
+vnssbx10 VNSSBX10 <vnssbx10.pfb
+vnssdc10 VNSSDC10 <vnssdc10.pfb
+vnssi10 VNSSI10 <vnssi10.pfb
+vnssi12 VNSSI12 <vnssi12.pfb
+vnssi17 VNSSI17 <vnssi17.pfb
+vnssi8 VNSSI8 <vnssi8.pfb
+vnssi9 VNSSI9 <vnssi9.pfb
+vnssq8 VNSSQ8 <vnssq8.pfb
+vnssqi8 VNSSQI8 <vnssqi8.pfb
+vntcsc10 VNTCSC10 <vntcsc10.pfb
+vnti10 VNTI10 <vnti10.pfb
+vnti12 VNTI12 <vnti12.pfb
+vnti7 VNTI7 <vnti7.pfb
+vnti8 VNTI8 <vnti8.pfb
+vnti9 VNTI9 <vnti9.pfb
+vntt10 VNTT10 <vntt10.pfb
+vntt12 VNTT12 <vntt12.pfb
+vntt8 VNTT8 <vntt8.pfb
+vntt9 VNTT9 <vntt9.pfb
+vnu10 VNU10 <vnu10.pfb
+vnvtt10 VNVTT10 <vnvtt10.pfb
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/original-vogel-symbol.map b/Master/texmf-dist/fonts/map/pdftex/context/original-vogel-symbol.map
new file mode 100644
index 00000000000..601d0317dab
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/original-vogel-symbol.map
@@ -0,0 +1,2 @@
+fmvr8x Marvosym < marvosym.pfb
+
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/original-wasy.map b/Master/texmf-dist/fonts/map/pdftex/context/original-wasy.map
new file mode 100644
index 00000000000..4a439634b1c
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/original-wasy.map
@@ -0,0 +1,7 @@
+wasy5 WASY5 <wasy5.pfb
+wasy6 WASY6 <wasy6.pfb
+wasy7 WASY7 <wasy7.pfb
+wasy8 WASY8 <wasy8.pfb
+wasy9 WASY9 <wasy9.pfb
+wasy10 WASY10 <wasy10.pfb
+wasyb10 WASYB10 <wasyb10.pfb
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/original-youngryu-px.map b/Master/texmf-dist/fonts/map/pdftex/context/original-youngryu-px.map
new file mode 100644
index 00000000000..87c1f48cf71
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/original-youngryu-px.map
@@ -0,0 +1,50 @@
+% This file a (slightly adapted) copy of the map file
+% that comes with the PX fonts by Young Ryu.
+
+% tx8r.enc replaced by 8r.enc
+
+% URW Palatino
+
+rpxpplb URWPalladioL-Bold <8r.enc <uplb8a.pfb
+rpxpplbo URWPalladioL-Bold ".167 SlantFont" <8r.enc <uplb8a.pfb
+rpxpplbi URWPalladioL-BoldItal <8r.enc <uplbi8a.pfb
+rpxpplr URWPalladioL-Roma <8r.enc <uplr8a.pfb
+rpxpplro URWPalladioL-Roma ".167 SlantFont" <8r.enc <uplr8a.pfb
+rpxpplri URWPalladioL-Ital <8r.enc <uplri8a.pfb
+
+% PX Text
+
+rpxr rpxr <rpxr.pfb
+rpxsl rpxr ".167 SlantFont" <rpxr.pfb
+rpxi rpxi <rpxi.pfb
+rpxsc rpxsc <rpxsc.pfb
+rpxb rpxb <rpxb.pfb
+rpxbsl rpxb ".167 SlantFont" <rpxb.pfb
+rpxbi rpxbi <rpxbi.pfb
+rpxbsc rpxbsc <rpxbsc.pfb
+rpcxb rpcxb <rpcxb.pfb
+rpcxbsl rpcxb ".167 SlantFont" <rpcxb.pfb
+rpcxbi rpcxbi <rpcxbi.pfb
+rpcxi rpcxi <rpcxi.pfb
+rpcxr rpcxr <rpcxr.pfb
+rpcxsl rpcxsl ".167 SlantFont" <rpcxr.pfb
+
+% PX Math
+
+rpxbmi rpxbmi <rpxbmi.pfb
+rpxmi rpxmi <rpxmi.pfb
+
+pxbex pxbex <pxbex.pfb
+pxbexa pxbexa <pxbexa.pfb
+pxbmia pxbmia <pxbmia.pfb
+pxbsy pxbsy <pxbsy.pfb
+pxbsya pxbsya <pxbsya.pfb
+pxbsyb pxbsyb <pxbsyb.pfb
+pxbsyc pxbsyc <pxbsyc.pfb
+pxex pxex <pxex.pfb
+pxexa pxexa <pxexa.pfb
+pxmia pxmia <pxmia.pfb
+pxsy pxsy <pxsy.pfb
+pxsya pxsya <pxsya.pfb
+pxsyb pxsyb <pxsyb.pfb
+pxsyc pxsyc <pxsyc.pfb
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/original-youngryu-tx.map b/Master/texmf-dist/fonts/map/pdftex/context/original-youngryu-tx.map
new file mode 100644
index 00000000000..5618ee8bc16
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/original-youngryu-tx.map
@@ -0,0 +1,89 @@
+% This file is a (slightly adapted) copy of the map file
+% that comes with the TX fonts by Young Ryu.
+
+% tx8r.enc replaced by 8r.enc
+
+% URW times
+
+rtxptmb NimbusRomNo9L-Medi <8r.enc <utmb8a.pfb
+rtxptmbo NimbusRomNo9L-Medi ".167 SlantFont" <8r.enc <utmb8a.pfb
+rtxptmbi NimbusRomNo9L-MediItal <8r.enc <utmbi8a.pfb
+rtxptmr NimbusRomNo9L-Regu <8r.enc <utmr8a.pfb
+rtxptmro NimbusRomNo9L-Regu ".167 SlantFont" <8r.enc <utmr8a.pfb
+rtxptmri NimbusRomNo9L-ReguItal <8r.enc <utmri8a.pfb
+
+% URW Helvetica
+
+rtxphvr NimbusSanL-Regu <8r.enc <uhv8a.pfb
+rtxphvro NimbusSanL-Regu ".167 SlantFont" <8r.enc <uhv8a.pfb
+rtxphvb NimbusSanL-Bold <8r.enc <uhvb8a.pfb
+rtxphvbo NimbusSanL-Bold ".167 SlantFont" <8r.enc <uhvb8a.pfb
+
+% TX Text
+
+rtxr rtxr <rtxr.pfb
+rtxsl rtxr ".167 SlantFont" <rtxr.pfb
+rtxi rtxi <rtxi.pfb
+rtxsc rtxsc <rtxsc.pfb
+rtxb rtxb <rtxb.pfb
+rtxbsl rtxb ".167 SlantFont" <rtxb.pfb
+rtxbi rtxbi <rtxbi.pfb
+rtxbsc rtxbsc <rtxbsc.pfb
+rtcxb rtcxb <rtcxb.pfb
+rtcxbsl rtcxb ".167 SlantFont" <rtcxb.pfb
+rtcxbi rtcxbi <rtcxbi.pfb
+rtcxi rtcxi <rtcxi.pfb
+rtcxr rtcxr <rtcxr.pfb
+rtcxsl rtcx ".167 SlantFont" <rtcxr.pfb
+
+% TX Math
+
+rtxbmi rtxbmi <rtxbmi.pfb
+rtxmi rtxmi <rtxmi.pfb
+
+txbex txbex <txbex.pfb
+txbexa txbexa <txbexa.pfb
+txbmia txbmia <txbmia.pfb
+txbsy txbsy <txbsy.pfb
+txbsya txbsya <txbsya.pfb
+txbsyb txbsyb <txbsyb.pfb
+txbsyc txbsyc <txbsyc.pfb
+txex txex <txex.pfb
+txexa txexa <txexa.pfb
+txmia txmia <txmia.pfb
+txsy txsy <txsy.pfb
+txsya txsya <txsya.pfb
+txsyb txsyb <txsyb.pfb
+txsyc txsyc <txsyc.pfb
+
+% TX TT Text
+
+txtt txtt <txtt.pfb
+txttsl txtt ".167 SlantFont" <txtt.pfb
+txttsc txttsc <txttsc.pfb
+txbtt txbtt <txbtt.pfb
+txbttsl txbtt ".167 SlantFont" <txbtt.pfb
+txbttsc txbttsc <txbttsc.pfb
+t1xtt t1xtt <t1xtt.pfb
+t1xttsl t1xtt ".167 SlantFont" <t1xtt.pfb
+t1xttsc t1xttsc <t1xttsc.pfb
+t1xbtt t1xbtt <t1xbtt.pfb
+t1xbttsl t1xbtt ".167 SlantFont" <t1xbtt.pfb
+t1xbttsc t1xbttsc <t1xbttsc.pfb
+tcxtt tcxtt <tcxtt.pfb
+tcxttsl tcxtt ".167 SlantFont" <tcxtt.pfb
+tcxbtt tcxbtt <tcxbtt.pfb
+tcxbttsl tcxbtt ".167 SlantFont" <tcxbtt.pfb
+
+% TX SS Text
+
+rtxss rtxss <rtxss.pfb
+rtxsssl rtxss ".167 SlantFont" <rtxss.pfb
+rtxsssc rtxsssc <rtxsssc.pfb
+rtxbss rtxbss <rtxbss.pfb
+rtxbsssl rtxbss ".167 SlantFont" <rtxbss.pfb
+rtxbsssc rtxbsssc <rtxbsssc.pfb
+rtcxss rtcxss <rtcxss.pfb
+rtcxbss rtcxbss <rtcxbss.pfb
+rtcxsssl rtcxss ".167 SlantFont" <rtcxss.pfb
+rtcxbsso rtcxbss ".167 SlantFont" <rtcxbss.pfb
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/qx-base.map b/Master/texmf-dist/fonts/map/pdftex/context/qx-base.map
new file mode 100644
index 00000000000..242426bdd79
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/qx-base.map
@@ -0,0 +1,55 @@
+% courier / urw
+
+qcrb <qcr.enc <qcrb.pfb
+qcrbi <qcr.enc <qcrbi.pfb
+qcrr <qcr.enc <qcrr.pfb
+qcrri <qcr.enc <qcrri.pfb
+
+% helvetica / urw
+
+qhvb <qhv.enc <qhvb.pfb
+qhvbi <qhv.enc <qhvbi.pfb
+qhvcb <qhv.enc <qhvcb.pfb
+qhvcbi <qhv.enc <qhvcbi.pfb
+qhvcr <qhv.enc <qhvcr.pfb
+qhvcri <qhv.enc <qhvcri.pfb
+qhvr <qhv.enc <qhvr.pfb
+qhvri <qhv.enc <qhvri.pfb
+
+% times / urw
+
+qtmb <qtm.enc <qtmb.pfb
+qtmbi <qtm.enc <qtmbi.pfb
+qtmr <qtm.enc <qtmr.pfb
+qtmri <qtm.enc <qtmri.pfb
+
+% palatino / urw
+
+qplb <qpl.enc <qplb.pfb
+qplbi <qpl.enc <qplbi.pfb
+qplr <qpl.enc <qplr.pfb
+qplri <qpl.enc <qplri.pfb
+
+% bookman / urw
+
+qbkb <qbk.enc <qbkb.pfb
+qbkbi <qbk.enc <qbkbi.pfb
+qbkr <qbk.enc <qbkr.pfb
+qbkri <qbk.enc <qbkri.pfb
+
+% chancery / urw
+
+qzcmi <qzc.enc <qzcmi.pfb
+
+% schoolbook / urw
+%
+% not available
+
+% utopia
+%
+% not available
+
+% charter
+%
+% not available
+
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/qx-os-public-lm.map b/Master/texmf-dist/fonts/map/pdftex/context/qx-os-public-lm.map
new file mode 100644
index 00000000000..57ddc0ebfc1
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/qx-os-public-lm.map
@@ -0,0 +1,69 @@
+qx-lmb10 LMRoman10-Demi "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmb10.pfb
+qx-lmbo10 LMRoman10-DemiOblique "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmbo10.pfb
+qx-lmbx10 LMRoman10-Bold "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmbx10.pfb
+qx-lmbx12 LMRoman12-Bold "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmbx12.pfb
+qx-lmbx5 LMRoman5-Bold "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmbx5.pfb
+qx-lmbx6 LMRoman6-Bold "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmbx6.pfb
+qx-lmbx7 LMRoman7-Bold "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmbx7.pfb
+qx-lmbx8 LMRoman8-Bold "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmbx8.pfb
+qx-lmbx9 LMRoman9-Bold "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmbx9.pfb
+qx-lmbxi10 LMRoman10-BoldItalic "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmbxi10.pfb
+qx-lmbxo10 LMRoman10-BoldOblique "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmbxo10.pfb
+qx-lmcsc10 LMRoman10-CapsRegular "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmcsc10.pfb
+qx-lmcsco10 LMRoman10-CapsOblique "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmcsco10.pfb
+qx-lmr10 LMRoman10-Regular "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmr10.pfb
+qx-lmr12 LMRoman12-Regular "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmr12.pfb
+qx-lmr17 LMRoman17-Regular "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmr17.pfb
+qx-lmr5 LMRoman5-Regular "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmr5.pfb
+qx-lmr6 LMRoman6-Regular "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmr6.pfb
+qx-lmr7 LMRoman7-Regular "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmr7.pfb
+qx-lmr8 LMRoman8-Regular "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmr8.pfb
+qx-lmr9 LMRoman9-Regular "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmr9.pfb
+qx-lmri10 LMRoman10-Italic "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmri10.pfb
+qx-lmri12 LMRoman12-Italic "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmri12.pfb
+qx-lmri7 LMRoman7-Italic "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmri7.pfb
+qx-lmri8 LMRoman8-Italic "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmri8.pfb
+qx-lmri9 LMRoman9-Italic "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmri9.pfb
+qx-lmro10 LMRoman10-Oblique "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmro10.pfb
+qx-lmro12 LMRoman12-Oblique "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmro12.pfb
+qx-lmro17 LMRoman17-Oblique "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmro17.pfb
+qx-lmro8 LMRoman8-Oblique "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmro8.pfb
+qx-lmro9 LMRoman9-Oblique "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmro9.pfb
+qx-lmss10 LMSans10-Regular "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmss10.pfb
+qx-lmss12 LMSans12-Regular "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmss12.pfb
+qx-lmss17 LMSans17-Regular "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmss17.pfb
+qx-lmss8 LMSans8-Regular "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmss8.pfb
+qx-lmss9 LMSans9-Regular "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmss9.pfb
+qx-lmssbo10 LMSans10-BoldOblique "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmssbo10.pfb
+qx-lmssbx10 LMSans10-Bold "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmssbx10.pfb
+qx-lmssdc10 LMSans10-DemiCondensed "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmssdc10.pfb
+qx-lmssdo10 LMSans10-DemiCondensedOblique "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmssdo10.pfb
+qx-lmsso10 LMSans10-Oblique "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmsso10.pfb
+qx-lmsso12 LMSans12-Oblique "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmsso12.pfb
+qx-lmsso17 LMSans17-Oblique "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmsso17.pfb
+qx-lmsso8 LMSans8-Oblique "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmsso8.pfb
+qx-lmsso9 LMSans9-Oblique "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmsso9.pfb
+qx-lmssq8 LMSansQuotation8-Regular "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmssq8.pfb
+qx-lmssqbo8 LMSansQuotation8-BoldOblique "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmssqbo8.pfb
+qx-lmssqbx8 LMSansQuotation8-Bold "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmssqbx8.pfb
+qx-lmssqo8 LMSansQuotation8-Oblique "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmssqo8.pfb
+qx-lmtcsc10 LMTypewriter10-CapsRegular "enclmqxostt ReEncodeFont" <lm-qxtt.enc <lmtcsc10.pfb
+qx-lmtcso10 LMTypewriter10-CapsOblique "enclmqxostt ReEncodeFont" <lm-qxtt.enc <lmtcso10.pfb
+qx-lmtl10 LMTypewriter10-Light "enclmqxostt ReEncodeFont" <lm-qxtt.enc <lmtl10.pfb
+qx-lmtlo10 LMTypewriter10-LightOblique "enclmqxostt ReEncodeFont" <lm-qxtt.enc <lmtlo10.pfb
+qx-lmtlc10 LMTypewriter10-LightCondensed "enclmqxostt ReEncodeFont" <lm-qxtt.enc <lmtlc10.pfb
+qx-lmtlco10 LMTypewriter10-LightCondensedOblique "enclmqxostt ReEncodeFont" <lm-qxtt.enc <lmtlco10.pfb
+qx-lmtk10 LMTypewriter10-Dark "enclmqxostt ReEncodeFont" <lm-qxtt.enc <lmtk10.pfb
+qx-lmtko10 LMTypewriter10-DarkOblique "enclmqxostt ReEncodeFont" <lm-qxtt.enc <lmtko10.pfb
+qx-lmtt10 LMTypewriter10-Regular "enclmqxostt ReEncodeFont" <lm-qxtt.enc <lmtt10.pfb
+qx-lmtt12 LMTypewriter12-Regular "enclmqxostt ReEncodeFont" <lm-qxtt.enc <lmtt12.pfb
+qx-lmtt8 LMTypewriter8-Regular "enclmqxostt ReEncodeFont" <lm-qxtt.enc <lmtt8.pfb
+qx-lmtt9 LMTypewriter9-Regular "enclmqxostt ReEncodeFont" <lm-qxtt.enc <lmtt9.pfb
+qx-lmtti10 LMTypewriter10-Italic "enclmqxostt ReEncodeFont" <lm-qxtt.enc <lmtti10.pfb
+qx-lmtto10 LMTypewriter10-Oblique "enclmqxostt ReEncodeFont" <lm-qxtt.enc <lmtto10.pfb
+qx-lmvtt10 LMTypewriterVarWd10-Regular "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmvtt10.pfb
+qx-lmvtto10 LMTypewriterVarWd10-Oblique "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmvtto10.pfb
+qx-lmvtl10 LMTypewriterVarWd10-Light "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmvtl10.pfb
+qx-lmvtlo10 LMTypewriterVarWd10-LightOblique "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmvtlo10.pfb
+qx-lmvtk10 LMTypewriterVarWd10-Dark "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmvtk10.pfb
+qx-lmvtko10 LMTypewriterVarWd10-DarkOblique "enclmqxos ReEncodeFont" <lm-qx-os.enc <lmvtko10.pfb
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/qx-public-lm.map b/Master/texmf-dist/fonts/map/pdftex/context/qx-public-lm.map
new file mode 100644
index 00000000000..d69d50d936c
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/qx-public-lm.map
@@ -0,0 +1,69 @@
+qx-lmb10 LMRoman10-Demi "enclmqx ReEncodeFont" <lm-qx.enc <lmb10.pfb
+qx-lmbo10 LMRoman10-DemiOblique "enclmqx ReEncodeFont" <lm-qx.enc <lmbo10.pfb
+qx-lmbx10 LMRoman10-Bold "enclmqx ReEncodeFont" <lm-qx.enc <lmbx10.pfb
+qx-lmbx12 LMRoman12-Bold "enclmqx ReEncodeFont" <lm-qx.enc <lmbx12.pfb
+qx-lmbx5 LMRoman5-Bold "enclmqx ReEncodeFont" <lm-qx.enc <lmbx5.pfb
+qx-lmbx6 LMRoman6-Bold "enclmqx ReEncodeFont" <lm-qx.enc <lmbx6.pfb
+qx-lmbx7 LMRoman7-Bold "enclmqx ReEncodeFont" <lm-qx.enc <lmbx7.pfb
+qx-lmbx8 LMRoman8-Bold "enclmqx ReEncodeFont" <lm-qx.enc <lmbx8.pfb
+qx-lmbx9 LMRoman9-Bold "enclmqx ReEncodeFont" <lm-qx.enc <lmbx9.pfb
+qx-lmbxi10 LMRoman10-BoldItalic "enclmqx ReEncodeFont" <lm-qx.enc <lmbxi10.pfb
+qx-lmbxo10 LMRoman10-BoldOblique "enclmqx ReEncodeFont" <lm-qx.enc <lmbxo10.pfb
+qx-lmcsc10 LMRoman10-CapsRegular "enclmqx ReEncodeFont" <lm-qx.enc <lmcsc10.pfb
+qx-lmcsco10 LMRoman10-CapsOblique "enclmqx ReEncodeFont" <lm-qx.enc <lmcsco10.pfb
+qx-lmr10 LMRoman10-Regular "enclmqx ReEncodeFont" <lm-qx.enc <lmr10.pfb
+qx-lmr12 LMRoman12-Regular "enclmqx ReEncodeFont" <lm-qx.enc <lmr12.pfb
+qx-lmr17 LMRoman17-Regular "enclmqx ReEncodeFont" <lm-qx.enc <lmr17.pfb
+qx-lmr5 LMRoman5-Regular "enclmqx ReEncodeFont" <lm-qx.enc <lmr5.pfb
+qx-lmr6 LMRoman6-Regular "enclmqx ReEncodeFont" <lm-qx.enc <lmr6.pfb
+qx-lmr7 LMRoman7-Regular "enclmqx ReEncodeFont" <lm-qx.enc <lmr7.pfb
+qx-lmr8 LMRoman8-Regular "enclmqx ReEncodeFont" <lm-qx.enc <lmr8.pfb
+qx-lmr9 LMRoman9-Regular "enclmqx ReEncodeFont" <lm-qx.enc <lmr9.pfb
+qx-lmri10 LMRoman10-Italic "enclmqx ReEncodeFont" <lm-qx.enc <lmri10.pfb
+qx-lmri12 LMRoman12-Italic "enclmqx ReEncodeFont" <lm-qx.enc <lmri12.pfb
+qx-lmri7 LMRoman7-Italic "enclmqx ReEncodeFont" <lm-qx.enc <lmri7.pfb
+qx-lmri8 LMRoman8-Italic "enclmqx ReEncodeFont" <lm-qx.enc <lmri8.pfb
+qx-lmri9 LMRoman9-Italic "enclmqx ReEncodeFont" <lm-qx.enc <lmri9.pfb
+qx-lmro10 LMRoman10-Oblique "enclmqx ReEncodeFont" <lm-qx.enc <lmro10.pfb
+qx-lmro12 LMRoman12-Oblique "enclmqx ReEncodeFont" <lm-qx.enc <lmro12.pfb
+qx-lmro17 LMRoman17-Oblique "enclmqx ReEncodeFont" <lm-qx.enc <lmro17.pfb
+qx-lmro8 LMRoman8-Oblique "enclmqx ReEncodeFont" <lm-qx.enc <lmro8.pfb
+qx-lmro9 LMRoman9-Oblique "enclmqx ReEncodeFont" <lm-qx.enc <lmro9.pfb
+qx-lmss10 LMSans10-Regular "enclmqx ReEncodeFont" <lm-qx.enc <lmss10.pfb
+qx-lmss12 LMSans12-Regular "enclmqx ReEncodeFont" <lm-qx.enc <lmss12.pfb
+qx-lmss17 LMSans17-Regular "enclmqx ReEncodeFont" <lm-qx.enc <lmss17.pfb
+qx-lmss8 LMSans8-Regular "enclmqx ReEncodeFont" <lm-qx.enc <lmss8.pfb
+qx-lmss9 LMSans9-Regular "enclmqx ReEncodeFont" <lm-qx.enc <lmss9.pfb
+qx-lmssbo10 LMSans10-BoldOblique "enclmqx ReEncodeFont" <lm-qx.enc <lmssbo10.pfb
+qx-lmssbx10 LMSans10-Bold "enclmqx ReEncodeFont" <lm-qx.enc <lmssbx10.pfb
+qx-lmssdc10 LMSans10-DemiCondensed "enclmqx ReEncodeFont" <lm-qx.enc <lmssdc10.pfb
+qx-lmssdo10 LMSans10-DemiCondensedOblique "enclmqx ReEncodeFont" <lm-qx.enc <lmssdo10.pfb
+qx-lmsso10 LMSans10-Oblique "enclmqx ReEncodeFont" <lm-qx.enc <lmsso10.pfb
+qx-lmsso12 LMSans12-Oblique "enclmqx ReEncodeFont" <lm-qx.enc <lmsso12.pfb
+qx-lmsso17 LMSans17-Oblique "enclmqx ReEncodeFont" <lm-qx.enc <lmsso17.pfb
+qx-lmsso8 LMSans8-Oblique "enclmqx ReEncodeFont" <lm-qx.enc <lmsso8.pfb
+qx-lmsso9 LMSans9-Oblique "enclmqx ReEncodeFont" <lm-qx.enc <lmsso9.pfb
+qx-lmssq8 LMSansQuotation8-Regular "enclmqx ReEncodeFont" <lm-qx.enc <lmssq8.pfb
+qx-lmssqbo8 LMSansQuotation8-BoldOblique "enclmqx ReEncodeFont" <lm-qx.enc <lmssqbo8.pfb
+qx-lmssqbx8 LMSansQuotation8-Bold "enclmqx ReEncodeFont" <lm-qx.enc <lmssqbx8.pfb
+qx-lmssqo8 LMSansQuotation8-Oblique "enclmqx ReEncodeFont" <lm-qx.enc <lmssqo8.pfb
+qx-lmtcsc10 LMTypewriter10-CapsRegular "enclmqxtt ReEncodeFont" <lm-qxtt.enc <lmtcsc10.pfb
+qx-lmtcso10 LMTypewriter10-CapsOblique "enclmqxtt ReEncodeFont" <lm-qxtt.enc <lmtcso10.pfb
+qx-lmtl10 LMTypewriter10-Light "enclmqxtt ReEncodeFont" <lm-qxtt.enc <lmtl10.pfb
+qx-lmtlo10 LMTypewriter10-LightOblique "enclmqxtt ReEncodeFont" <lm-qxtt.enc <lmtlo10.pfb
+qx-lmtlc10 LMTypewriter10-LightCondensed "enclmqxtt ReEncodeFont" <lm-qxtt.enc <lmtlc10.pfb
+qx-lmtlco10 LMTypewriter10-LightCondensedOblique "enclmqxtt ReEncodeFont" <lm-qxtt.enc <lmtlco10.pfb
+qx-lmtk10 LMTypewriter10-Dark "enclmqxtt ReEncodeFont" <lm-qxtt.enc <lmtk10.pfb
+qx-lmtko10 LMTypewriter10-DarkOblique "enclmqxtt ReEncodeFont" <lm-qxtt.enc <lmtko10.pfb
+qx-lmtt10 LMTypewriter10-Regular "enclmqxtt ReEncodeFont" <lm-qxtt.enc <lmtt10.pfb
+qx-lmtt12 LMTypewriter12-Regular "enclmqxtt ReEncodeFont" <lm-qxtt.enc <lmtt12.pfb
+qx-lmtt8 LMTypewriter8-Regular "enclmqxtt ReEncodeFont" <lm-qxtt.enc <lmtt8.pfb
+qx-lmtt9 LMTypewriter9-Regular "enclmqxtt ReEncodeFont" <lm-qxtt.enc <lmtt9.pfb
+qx-lmtti10 LMTypewriter10-Italic "enclmqxtt ReEncodeFont" <lm-qxtt.enc <lmtti10.pfb
+qx-lmtto10 LMTypewriter10-Oblique "enclmqxtt ReEncodeFont" <lm-qxtt.enc <lmtto10.pfb
+qx-lmvtt10 LMTypewriterVarWd10-Regular "enclmqx ReEncodeFont" <lm-qx.enc <lmvtt10.pfb
+qx-lmvtto10 LMTypewriterVarWd10-Oblique "enclmqx ReEncodeFont" <lm-qx.enc <lmvtto10.pfb
+qx-lmvtl10 LMTypewriterVarWd10-Light "enclmqx ReEncodeFont" <lm-qx.enc <lmvtl10.pfb
+qx-lmvtlo10 LMTypewriterVarWd10-LightOblique "enclmqx ReEncodeFont" <lm-qx.enc <lmvtlo10.pfb
+qx-lmvtk10 LMTypewriterVarWd10-Dark "enclmqx ReEncodeFont" <lm-qx.enc <lmvtk10.pfb
+qx-lmvtko10 LMTypewriterVarWd10-DarkOblique "enclmqx ReEncodeFont" <lm-qx.enc <lmvtko10.pfb
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/t5-base.map b/Master/texmf-dist/fonts/map/pdftex/context/t5-base.map
new file mode 100644
index 00000000000..da05cafebb2
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/t5-base.map
@@ -0,0 +1,72 @@
+% courier / urw
+
+ucrr8v VnNimbusMonL-Regu "T5Encoding ReEncodeFont" <t5.enc <ucrr8v.pfb
+ucrro8v VnNimbusMonL-ReguObli "T5Encoding ReEncodeFont" <t5.enc <ucrro8v.pfb
+ucrb8v VnNimbusMonL-Bold "T5Encoding ReEncodeFont" <t5.enc <ucrb8v.pfb
+ucrbo8v VnNimbusMonL-BoldObli "T5Encoding ReEncodeFont" <t5.enc <ucrbo8v.pfb
+
+% helvetica / urw
+
+uhvr8v VnNimbusSanL-Regu "T5Encoding ReEncodeFont" <t5.enc <uhvr8v.pfb
+uhvro8v VnNimbusSanL-ReguItal "T5Encoding ReEncodeFont" <t5.enc <uhvro8v.pfb
+uhvb8v VnNimbusSanL-Bold "T5Encoding ReEncodeFont" <t5.enc <uhvb8v.pfb
+uhvbo8v VnNimbusSanL-BoldItal "T5Encoding ReEncodeFont" <t5.enc <uhvbo8v.pfb
+
+% times / urw
+
+utmr8v VnNimbusRomNo9L-Regu "T5Encoding ReEncodeFont" <t5.enc <utmr8v.pfb
+utmri8v VnNimbusRomNo9L-ReguItal "T5Encoding ReEncodeFont" <t5.enc <utmri8v.pfb
+utmb8v VnNimbusRomNo9L-Medi "T5Encoding ReEncodeFont" <t5.enc <utmb8v.pfb
+utmbi8v VnNimbusRomNo9L-MediItal "T5Encoding ReEncodeFont" <t5.enc <utmbi8v.pfb
+
+utmro8v VnNimbusRomNo9L-Regu "0.277 SlantFont T5Encoding ReEncodeFont" <t5.enc <utmr8v.pfb
+utmbo8v VnNimbusRomNo9L-Medi "0.277 SlantFont T5Encoding ReEncodeFont" <t5.enc <utmb8v.pfb
+
+% palatino / urw
+
+uplr8v VnURWPalladioL-Roma "T5Encoding ReEncodeFont" <t5.enc <uplr8v.pfb
+uplri8v VnURWPalladioL-Ital "T5Encoding ReEncodeFont" <t5.enc <uplri8v.pfb
+uplb8v VnURWPalladioL-Bold "T5Encoding ReEncodeFont" <t5.enc <uplb8v.pfb
+uplbi8v VnURWPalladioL-BoldItal "T5Encoding ReEncodeFont" <t5.enc <uplbi8v.pfb
+
+uplro8v VnURWPalladioL-Roma "0.277 SlantFont T5Encoding ReEncodeFont" <t5.enc <uplr8v.pfb
+uplbo8v VnURWPalladioL-Bold "0.277 SlantFont T5Encoding ReEncodeFont" <t5.enc <uplb8v.pfb
+
+% bookman / urw
+
+ubkl8v VnURWBookmanL-Ligh "T5Encoding ReEncodeFont" <t5.enc <ubkl8v.pfb
+ubkli8v VnURWBookmanL-LighItal "T5Encoding ReEncodeFont" <t5.enc <ubkli8v.pfb
+ubkd8v VnURWBookmanL-DemiBold "T5Encoding ReEncodeFont" <t5.enc <ubkd8v.pfb
+ubkdi8v VnURWBookmanL-DemiBoldItal "T5Encoding ReEncodeFont" <t5.enc <ubkdi8v.pfb
+
+ubklo8v VnURWBookmanL-Ligh "0.277 SlantFont T5Encoding ReEncodeFont" <t5.enc <ubkl8v.pfb
+ubkdo8v VnURWBookmanL-DemiBold "0.277 SlantFont T5Encoding ReEncodeFont" <t5.enc <ubkd8v.pfb
+
+% chancery / urw
+
+% not supported
+%
+% schoolbook / urw
+
+uncr8v VnCenturySchL-Roma "T5Encoding ReEncodeFont" <t5.enc <uncr8v.pfb
+uncri8v VnCenturySchL-Ital "T5Encoding ReEncodeFont" <t5.enc <uncri8v.pfb
+uncb8v VnCenturySchL-Bold "T5Encoding ReEncodeFont" <t5.enc <uncb8v.pfb
+uncbi8v VnCenturySchL-BoldItal "T5Encoding ReEncodeFont" <t5.enc <uncbi8v.pfb
+
+uncro8v VnCenturySchL-Roma "0.277 SlantFont T5Encoding ReEncodeFont" <t5.enc <uncr8v.pfb
+uncbo8v VnCenturySchL-Bold "0.277 SlantFont T5Encoding ReEncodeFont" <t5.enc <uncb8v.pfb
+
+% utopia
+%
+% not supported
+
+% charter
+%
+% not supported
+
+% gothic / urw
+
+uagk8v VnURWGothicL-Book "T5Encoding ReEncodeFont" <t5.enc <uagk8v.pfb
+uagko8v VnURWGothicL-BookObli "T5Encoding ReEncodeFont" <t5.enc <uagko8v.pfb
+uagd8v VnURWGothicL-Demi "T5Encoding ReEncodeFont" <t5.enc <uagd8v.pfb
+uagdo8v VnURWGothicL-DemiObli "T5Encoding ReEncodeFont" <t5.enc <uagdo8v.pfb
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/t5-os-public-lm.map b/Master/texmf-dist/fonts/map/pdftex/context/t5-os-public-lm.map
new file mode 100644
index 00000000000..c9e3c4dcb8f
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/t5-os-public-lm.map
@@ -0,0 +1,69 @@
+t5-lmb10 LMRoman10-Demi "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmb10.pfb
+t5-lmbo10 LMRoman10-DemiOblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmbo10.pfb
+t5-lmbx10 LMRoman10-Bold "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmbx10.pfb
+t5-lmbx12 LMRoman12-Bold "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmbx12.pfb
+t5-lmbx5 LMRoman5-Bold "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmbx5.pfb
+t5-lmbx6 LMRoman6-Bold "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmbx6.pfb
+t5-lmbx7 LMRoman7-Bold "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmbx7.pfb
+t5-lmbx8 LMRoman8-Bold "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmbx8.pfb
+t5-lmbx9 LMRoman9-Bold "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmbx9.pfb
+t5-lmbxi10 LMRoman10-BoldItalic "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmbxi10.pfb
+t5-lmbxo10 LMRoman10-BoldOblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmbxo10.pfb
+t5-lmcsc10 LMRoman10-CapsRegular "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmcsc10.pfb
+t5-lmcsco10 LMRoman10-CapsOblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmcsco10.pfb
+t5-lmr10 LMRoman10-Regular "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmr10.pfb
+t5-lmr12 LMRoman12-Regular "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmr12.pfb
+t5-lmr17 LMRoman17-Regular "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmr17.pfb
+t5-lmr5 LMRoman5-Regular "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmr5.pfb
+t5-lmr6 LMRoman6-Regular "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmr6.pfb
+t5-lmr7 LMRoman7-Regular "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmr7.pfb
+t5-lmr8 LMRoman8-Regular "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmr8.pfb
+t5-lmr9 LMRoman9-Regular "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmr9.pfb
+t5-lmri10 LMRoman10-Italic "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmri10.pfb
+t5-lmri12 LMRoman12-Italic "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmri12.pfb
+t5-lmri7 LMRoman7-Italic "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmri7.pfb
+t5-lmri8 LMRoman8-Italic "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmri8.pfb
+t5-lmri9 LMRoman9-Italic "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmri9.pfb
+t5-lmro10 LMRoman10-Oblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmro10.pfb
+t5-lmro12 LMRoman12-Oblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmro12.pfb
+t5-lmro17 LMRoman17-Oblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmro17.pfb
+t5-lmro8 LMRoman8-Oblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmro8.pfb
+t5-lmro9 LMRoman9-Oblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmro9.pfb
+t5-lmss10 LMSans10-Regular "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmss10.pfb
+t5-lmss12 LMSans12-Regular "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmss12.pfb
+t5-lmss17 LMSans17-Regular "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmss17.pfb
+t5-lmss8 LMSans8-Regular "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmss8.pfb
+t5-lmss9 LMSans9-Regular "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmss9.pfb
+t5-lmssbo10 LMSans10-BoldOblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmssbo10.pfb
+t5-lmssbx10 LMSans10-Bold "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmssbx10.pfb
+t5-lmssdc10 LMSans10-DemiCondensed "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmssdc10.pfb
+t5-lmssdo10 LMSans10-DemiCondensedOblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmssdo10.pfb
+t5-lmsso10 LMSans10-Oblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmsso10.pfb
+t5-lmsso12 LMSans12-Oblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmsso12.pfb
+t5-lmsso17 LMSans17-Oblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmsso17.pfb
+t5-lmsso8 LMSans8-Oblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmsso8.pfb
+t5-lmsso9 LMSans9-Oblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmsso9.pfb
+t5-lmssq8 LMSansQuotation8-Regular "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmssq8.pfb
+t5-lmssqbo8 LMSansQuotation8-BoldOblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmssqbo8.pfb
+t5-lmssqbx8 LMSansQuotation8-Bold "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmssqbx8.pfb
+t5-lmssqo8 LMSansQuotation8-Oblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmssqo8.pfb
+t5-lmtcsc10 LMTypewriter10-CapsRegular "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmtcsc10.pfb
+t5-lmtcso10 LMTypewriter10-CapsOblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmtcso10.pfb
+t5-lmtl10 LMTypewriter10-Light "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmtl10.pfb
+t5-lmtlo10 LMTypewriter10-LightOblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmtlo10.pfb
+t5-lmtlc10 LMTypewriter10-LightCondensed "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmtlc10.pfb
+t5-lmtlco10 LMTypewriter10-LightCondensedOblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmtlco10.pfb
+t5-lmtk10 LMTypewriter10-Dark "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmtk10.pfb
+t5-lmtko10 LMTypewriter10-DarkOblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmtko10.pfb
+t5-lmtt10 LMTypewriter10-Regular "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmtt10.pfb
+t5-lmtt12 LMTypewriter12-Regular "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmtt12.pfb
+t5-lmtt8 LMTypewriter8-Regular "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmtt8.pfb
+t5-lmtt9 LMTypewriter9-Regular "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmtt9.pfb
+t5-lmtti10 LMTypewriter10-Italic "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmtti10.pfb
+t5-lmtto10 LMTypewriter10-Oblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmtto10.pfb
+t5-lmvtt10 LMTypewriterVarWd10-Regular "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmvtt10.pfb
+t5-lmvtto10 LMTypewriterVarWd10-Oblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmvtto10.pfb
+t5-lmvtl10 LMTypewriterVarWd10-Light "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmvtl10.pfb
+t5-lmvtlo10 LMTypewriterVarWd10-LightOblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmvtlo10.pfb
+t5-lmvtk10 LMTypewriterVarWd10-Dark "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmvtk10.pfb
+t5-lmvtko10 LMTypewriterVarWd10-DarkOblique "enclmt5os ReEncodeFont" <lm-t5-os.enc <lmvtko10.pfb
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/t5-public-lm.map b/Master/texmf-dist/fonts/map/pdftex/context/t5-public-lm.map
new file mode 100644
index 00000000000..0e626d7e424
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/t5-public-lm.map
@@ -0,0 +1,69 @@
+t5-lmb10 LMRoman10-Demi "enclmt5 ReEncodeFont" <lm-t5.enc <lmb10.pfb
+t5-lmbo10 LMRoman10-DemiOblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmbo10.pfb
+t5-lmbx10 LMRoman10-Bold "enclmt5 ReEncodeFont" <lm-t5.enc <lmbx10.pfb
+t5-lmbx12 LMRoman12-Bold "enclmt5 ReEncodeFont" <lm-t5.enc <lmbx12.pfb
+t5-lmbx5 LMRoman5-Bold "enclmt5 ReEncodeFont" <lm-t5.enc <lmbx5.pfb
+t5-lmbx6 LMRoman6-Bold "enclmt5 ReEncodeFont" <lm-t5.enc <lmbx6.pfb
+t5-lmbx7 LMRoman7-Bold "enclmt5 ReEncodeFont" <lm-t5.enc <lmbx7.pfb
+t5-lmbx8 LMRoman8-Bold "enclmt5 ReEncodeFont" <lm-t5.enc <lmbx8.pfb
+t5-lmbx9 LMRoman9-Bold "enclmt5 ReEncodeFont" <lm-t5.enc <lmbx9.pfb
+t5-lmbxi10 LMRoman10-BoldItalic "enclmt5 ReEncodeFont" <lm-t5.enc <lmbxi10.pfb
+t5-lmbxo10 LMRoman10-BoldOblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmbxo10.pfb
+t5-lmcsc10 LMRoman10-CapsRegular "enclmt5 ReEncodeFont" <lm-t5.enc <lmcsc10.pfb
+t5-lmcsco10 LMRoman10-CapsOblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmcsco10.pfb
+t5-lmr10 LMRoman10-Regular "enclmt5 ReEncodeFont" <lm-t5.enc <lmr10.pfb
+t5-lmr12 LMRoman12-Regular "enclmt5 ReEncodeFont" <lm-t5.enc <lmr12.pfb
+t5-lmr17 LMRoman17-Regular "enclmt5 ReEncodeFont" <lm-t5.enc <lmr17.pfb
+t5-lmr5 LMRoman5-Regular "enclmt5 ReEncodeFont" <lm-t5.enc <lmr5.pfb
+t5-lmr6 LMRoman6-Regular "enclmt5 ReEncodeFont" <lm-t5.enc <lmr6.pfb
+t5-lmr7 LMRoman7-Regular "enclmt5 ReEncodeFont" <lm-t5.enc <lmr7.pfb
+t5-lmr8 LMRoman8-Regular "enclmt5 ReEncodeFont" <lm-t5.enc <lmr8.pfb
+t5-lmr9 LMRoman9-Regular "enclmt5 ReEncodeFont" <lm-t5.enc <lmr9.pfb
+t5-lmri10 LMRoman10-Italic "enclmt5 ReEncodeFont" <lm-t5.enc <lmri10.pfb
+t5-lmri12 LMRoman12-Italic "enclmt5 ReEncodeFont" <lm-t5.enc <lmri12.pfb
+t5-lmri7 LMRoman7-Italic "enclmt5 ReEncodeFont" <lm-t5.enc <lmri7.pfb
+t5-lmri8 LMRoman8-Italic "enclmt5 ReEncodeFont" <lm-t5.enc <lmri8.pfb
+t5-lmri9 LMRoman9-Italic "enclmt5 ReEncodeFont" <lm-t5.enc <lmri9.pfb
+t5-lmro10 LMRoman10-Oblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmro10.pfb
+t5-lmro12 LMRoman12-Oblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmro12.pfb
+t5-lmro17 LMRoman17-Oblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmro17.pfb
+t5-lmro8 LMRoman8-Oblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmro8.pfb
+t5-lmro9 LMRoman9-Oblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmro9.pfb
+t5-lmss10 LMSans10-Regular "enclmt5 ReEncodeFont" <lm-t5.enc <lmss10.pfb
+t5-lmss12 LMSans12-Regular "enclmt5 ReEncodeFont" <lm-t5.enc <lmss12.pfb
+t5-lmss17 LMSans17-Regular "enclmt5 ReEncodeFont" <lm-t5.enc <lmss17.pfb
+t5-lmss8 LMSans8-Regular "enclmt5 ReEncodeFont" <lm-t5.enc <lmss8.pfb
+t5-lmss9 LMSans9-Regular "enclmt5 ReEncodeFont" <lm-t5.enc <lmss9.pfb
+t5-lmssbo10 LMSans10-BoldOblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmssbo10.pfb
+t5-lmssbx10 LMSans10-Bold "enclmt5 ReEncodeFont" <lm-t5.enc <lmssbx10.pfb
+t5-lmssdc10 LMSans10-DemiCondensed "enclmt5 ReEncodeFont" <lm-t5.enc <lmssdc10.pfb
+t5-lmssdo10 LMSans10-DemiCondensedOblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmssdo10.pfb
+t5-lmsso10 LMSans10-Oblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmsso10.pfb
+t5-lmsso12 LMSans12-Oblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmsso12.pfb
+t5-lmsso17 LMSans17-Oblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmsso17.pfb
+t5-lmsso8 LMSans8-Oblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmsso8.pfb
+t5-lmsso9 LMSans9-Oblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmsso9.pfb
+t5-lmssq8 LMSansQuotation8-Regular "enclmt5 ReEncodeFont" <lm-t5.enc <lmssq8.pfb
+t5-lmssqbo8 LMSansQuotation8-BoldOblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmssqbo8.pfb
+t5-lmssqbx8 LMSansQuotation8-Bold "enclmt5 ReEncodeFont" <lm-t5.enc <lmssqbx8.pfb
+t5-lmssqo8 LMSansQuotation8-Oblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmssqo8.pfb
+t5-lmtcsc10 LMTypewriter10-CapsRegular "enclmt5 ReEncodeFont" <lm-t5.enc <lmtcsc10.pfb
+t5-lmtcso10 LMTypewriter10-CapsOblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmtcso10.pfb
+t5-lmtl10 LMTypewriter10-Light "enclmt5 ReEncodeFont" <lm-t5.enc <lmtl10.pfb
+t5-lmtlo10 LMTypewriter10-LightOblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmtlo10.pfb
+t5-lmtlc10 LMTypewriter10-LightCondensed "enclmt5 ReEncodeFont" <lm-t5.enc <lmtlc10.pfb
+t5-lmtlco10 LMTypewriter10-LightCondensedOblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmtlco10.pfb
+t5-lmtk10 LMTypewriter10-Dark "enclmt5 ReEncodeFont" <lm-t5.enc <lmtk10.pfb
+t5-lmtko10 LMTypewriter10-DarkOblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmtko10.pfb
+t5-lmtt10 LMTypewriter10-Regular "enclmt5 ReEncodeFont" <lm-t5.enc <lmtt10.pfb
+t5-lmtt12 LMTypewriter12-Regular "enclmt5 ReEncodeFont" <lm-t5.enc <lmtt12.pfb
+t5-lmtt8 LMTypewriter8-Regular "enclmt5 ReEncodeFont" <lm-t5.enc <lmtt8.pfb
+t5-lmtt9 LMTypewriter9-Regular "enclmt5 ReEncodeFont" <lm-t5.enc <lmtt9.pfb
+t5-lmtti10 LMTypewriter10-Italic "enclmt5 ReEncodeFont" <lm-t5.enc <lmtti10.pfb
+t5-lmtto10 LMTypewriter10-Oblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmtto10.pfb
+t5-lmvtt10 LMTypewriterVarWd10-Regular "enclmt5 ReEncodeFont" <lm-t5.enc <lmvtt10.pfb
+t5-lmvtto10 LMTypewriterVarWd10-Oblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmvtto10.pfb
+t5-lmvtl10 LMTypewriterVarWd10-Light "enclmt5 ReEncodeFont" <lm-t5.enc <lmvtl10.pfb
+t5-lmvtlo10 LMTypewriterVarWd10-LightOblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmvtlo10.pfb
+t5-lmvtk10 LMTypewriterVarWd10-Dark "enclmt5 ReEncodeFont" <lm-t5.enc <lmvtk10.pfb
+t5-lmvtko10 LMTypewriterVarWd10-DarkOblique "enclmt5 ReEncodeFont" <lm-t5.enc <lmvtko10.pfb
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/texnansi-base.map b/Master/texmf-dist/fonts/map/pdftex/context/texnansi-base.map
new file mode 100644
index 00000000000..3078a1d1f9b
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/texnansi-base.map
@@ -0,0 +1,142 @@
+% author: Hans Hagen
+%
+% This map file defines the texnansi alternatives of the public fonts,
+% beware, these are seldom present on your system. If you really want
+% to use these fonts, uncomment the relevant lines. If no fonts are
+% present, pdftex may get confused.
+
+% courier / urw
+
+% ucrb8y NimbusMonL-Bold <texnansi.enc <ucrb8a.pfb
+% ucrbo8y NimbusMonL-BoldObli <texnansi.enc <ucrbo8a.pfb
+% ucrr8y NimbusMonL-Regu <texnansi.enc <ucrr8a.pfb
+% ucrro8y NimbusMonL-ReguObli <texnansi.enc <ucrro8a.pfb
+
+% courier / adobe
+
+% pcrb8y NimbusMonL-Bold <texnansi.enc <ucrb8a.pfb
+% pcrbo8y NimbusMonL-BoldObli <texnansi.enc <ucrbo8a.pfb
+% pcrr8y NimbusMonL-Regu <texnansi.enc <ucrr8a.pfb
+% pcrro8y NimbusMonL-ReguObli <texnansi.enc <ucrro8a.pfb
+
+% helvetica / urw
+
+% uhvb8y NimbusSanL-Bold <texnansi.enc <uhvb8a.pfb
+% uhvbo8y NimbusSanL-BoldItal <texnansi.enc <uhvbo8a.pfb
+% uhvr8y NimbusSanL-Regu <texnansi.enc <uhvr8a.pfb
+% uhvro8y NimbusSanL-ReguItal <texnansi.enc <uhvro8a.pfb
+
+% helvetica / adobe
+
+% phvb8y NimbusSanL-Bold <texnansi.enc <uhvb8a.pfb
+% phvbo8y NimbusSanL-BoldItal <texnansi.enc <uhvbo8a.pfb
+% phvr8y NimbusSanL-Regu <texnansi.enc <uhvr8a.pfb
+% phvro8y NimbusSanL-ReguItal <texnansi.enc <uhvro8a.pfb
+
+% times / urw
+
+% utmb8y NimbusRomNo9L-Medi <texnansi.enc <utmb8a.pfb
+% utmbi8y NimbusRomNo9L-MediItal <texnansi.enc <utmbi8a.pfb
+% utmr8y NimbusRomNo9L-Regu <texnansi.enc <utmr8a.pfb
+% utmri8y NimbusRomNo9L-ReguItal <texnansi.enc <utmri8a.pfb
+
+% utmbo8y NimbusRomNo9L-Medi ".167 SlantFont" <texnansi.enc <utmb8a.pfb
+% utmro8y NimbusRomNo9L-Regu ".167 SlantFont" <texnansi.enc <utmr8a.pfb
+
+% times / adobe
+
+% ptmb8y NimbusRomNo9L-Medi <texnansi.enc <utmb8a.pfb
+% ptmbi8y NimbusRomNo9L-MediItal <texnansi.enc <utmbi8a.pfb
+% ptmr8y NimbusRomNo9L-Regu <texnansi.enc <utmr8a.pfb
+% ptmri8y NimbusRomNo9L-ReguItal <texnansi.enc <utmri8a.pfb
+
+% ptmbo8y NimbusRomNo9L-Medi ".167 SlantFont" <texnansi.enc <utmb8a.pfb
+% ptmro8y NimbusRomNo9L-Regu ".167 SlantFont" <texnansi.enc <utmr8a.pfb
+
+% palatino / urw
+
+% uplb8y URWPalladioL-Bold <texnansi.enc <uplb8a.pfb
+% uplbi8y URWPalladioL-BoldItal <texnansi.enc <uplbi8a.pfb
+% uplr8y URWPalladioL-Roma <texnansi.enc <uplr8a.pfb
+% uplri8y URWPalladioL-Ital <texnansi.enc <uplri8a.pfb
+
+% uplbo8y URWPalladioL-Bold ".167 SlantFont" <texnansi.enc <uplb8a.pfb
+% uplro8y URWPalladioL-Roma ".167 SlantFont" <texnansi.enc <uplr8a.pfb
+
+% palatino / adobe
+
+% pplb8y URWPalladioL-Bold <texnansi.enc <uplb8a.pfb
+% pplbi8y URWPalladioL-BoldItal <texnansi.enc <uplbi8a.pfb
+% pplr8y URWPalladioL-Roma <texnansi.enc <uplr8a.pfb
+% pplri8y URWPalladioL-Ital <texnansi.enc <uplri8a.pfb
+
+% pplbo8y URWPalladioL-Bold ".167 SlantFont" <texnansi.enc <uplb8a.pfb
+% pplro8y URWPalladioL-Roma ".167 SlantFont" <texnansi.enc <uplr8a.pfb
+
+% bookman / urw
+
+% ubkd8y URWBookmanL-DemiBold <texnansi.enc <ubkd8a.pfb
+% ubkdi8y URWBookmanL-DemiBoldItal <texnansi.enc <ubkdi8a.pfb
+% ubkl8y URWBookmanL-Ligh <texnansi.enc <ubkl8a.pfb
+% vubkli8y URWBookmanL-LighItal <texnansi.enc <ubkli8a.pfb
+
+% ubkdo8y URWBookmanL-DemiBold ".167 SlantFont" <texnansi.enc <ubkd8a.pfb
+% ubklo8y URWBookmanL-Ligh ".167 SlantFont" <texnansi.enc <ubkl8a.pfb
+
+% bookman / adobe
+
+% pbkd8y URWBookmanL-DemiBold <texnansi.enc <ubkd8a.pfb
+% pbkdi8y URWBookmanL-DemiBoldItal <texnansi.enc <ubkdi8a.pfb
+% pbkl8y URWBookmanL-Ligh <texnansi.enc <ubkl8a.pfb
+% pbkli8y URWBookmanL-LighItal <texnansi.enc <ubkli8a.pfb
+
+% pbkdo8y URWBookmanL-DemiBold ".167 SlantFont" <texnansi.enc <ubkd8a.pfb
+% pbklo8y URWBookmanL-Ligh ".167 SlantFont" <texnansi.enc <ubkl8a.pfb
+
+% chancery / urw
+
+% uzcmi8y URWChanceryL-MediItal <texnansi.enc <uzcmi8a.pfb
+
+% chancery / adobe
+
+% pzcmi8y URWChanceryL-MediItal <texnansi.enc <uzcmi8a.pfb
+
+% schoolbook / urw
+
+% uncb8y CenturySchL-Bold <texnansi.enc <uncb8a.pfb
+% uncbi8y CenturySchL-BoldItal <texnansi.enc <uncbi8a.pfb
+% uncr8y CenturySchL-Roma <texnansi.enc <uncr8a.pfb
+% uncri8y CenturySchL-Ital <texnansi.enc <uncri8a.pfb
+
+% uncbo8y CenturySchL-Bold ".167 SlantFont" <texnansi.enc <uncb8a.pfb
+% uncro8y CenturySchL-Roma ".167 SlantFont" <texnansi.enc <uncr8a.pfb
+
+% schoolbook / adobe
+
+% pncb8y CenturySchL-Bold <texnansi.enc <uncb8a.pfb
+% pncbi8y CenturySchL-BoldItal <texnansi.enc <uncbi8a.pfb
+% pncr8y CenturySchL-Roma <texnansi.enc <uncr8a.pfb
+% pncri8y CenturySchL-Ital <texnansi.enc <uncri8a.pfb
+
+% pncbo8y CenturySchL-Bold ".167 SlantFont" <texnansi.enc <uncb8a.pfb
+% pncro8y CenturySchL-Roma ".167 SlantFont" <texnansi.enc <uncr8a.pfb
+
+% utopia
+
+% putb8y Utopia-Bold <texnansi.enc <putb8a.pfb
+% putbi8y Utopia-BoldItalic <texnansi.enc <putbi8a.pfb
+% putr8y Utopia-Regular <texnansi.enc <putr8a.pfb
+% putri8y Utopia-Italic <texnansi.enc <putri8a.pfb
+
+% putbo8y Utopia-Bold ".167 SlantFont" <texnansi.enc <putb8a.pfb
+% putro8y Utopia-Regular ".167 SlantFont" <texnansi.enc <putr8a.pfb
+
+% charter
+
+% bchb8y CharterBT-Bold <texnansi.enc <bchb8a.pfb
+% bchbi8y CharterBT-BoldItalic <texnansi.enc <bchbi8a.pfb
+% bchr8y CharterBT-Roman <texnansi.enc <bchr8a.pfb
+% bchri8y CharterBT-Italic <texnansi.enc <bchri8a.pfb
+
+% bchbo8y CharterBT-Bold ".167 SlantFont" <texnansi.enc <bchb8a.pfb
+% bchro8y CharterBT-Roman ".167 SlantFont " <texnansi.enc <bchr8a.pfb \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/texnansi-os-public-lm.map b/Master/texmf-dist/fonts/map/pdftex/context/texnansi-os-public-lm.map
new file mode 100644
index 00000000000..85ba31a063d
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/texnansi-os-public-lm.map
@@ -0,0 +1,69 @@
+texnansi-lmb10 LMRoman10-Demi "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmb10.pfb
+texnansi-lmbo10 LMRoman10-DemiOblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmbo10.pfb
+texnansi-lmbx10 LMRoman10-Bold "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmbx10.pfb
+texnansi-lmbx12 LMRoman12-Bold "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmbx12.pfb
+texnansi-lmbx5 LMRoman5-Bold "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmbx5.pfb
+texnansi-lmbx6 LMRoman6-Bold "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmbx6.pfb
+texnansi-lmbx7 LMRoman7-Bold "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmbx7.pfb
+texnansi-lmbx8 LMRoman8-Bold "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmbx8.pfb
+texnansi-lmbx9 LMRoman9-Bold "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmbx9.pfb
+texnansi-lmbxi10 LMRoman10-BoldItalic "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmbxi10.pfb
+texnansi-lmbxo10 LMRoman10-BoldOblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmbxo10.pfb
+texnansi-lmcsc10 LMRoman10-CapsRegular "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmcsc10.pfb
+texnansi-lmcsco10 LMRoman10-CapsOblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmcsco10.pfb
+texnansi-lmr10 LMRoman10-Regular "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmr10.pfb
+texnansi-lmr12 LMRoman12-Regular "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmr12.pfb
+texnansi-lmr17 LMRoman17-Regular "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmr17.pfb
+texnansi-lmr5 LMRoman5-Regular "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmr5.pfb
+texnansi-lmr6 LMRoman6-Regular "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmr6.pfb
+texnansi-lmr7 LMRoman7-Regular "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmr7.pfb
+texnansi-lmr8 LMRoman8-Regular "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmr8.pfb
+texnansi-lmr9 LMRoman9-Regular "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmr9.pfb
+texnansi-lmri10 LMRoman10-Italic "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmri10.pfb
+texnansi-lmri12 LMRoman12-Italic "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmri12.pfb
+texnansi-lmri7 LMRoman7-Italic "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmri7.pfb
+texnansi-lmri8 LMRoman8-Italic "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmri8.pfb
+texnansi-lmri9 LMRoman9-Italic "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmri9.pfb
+texnansi-lmro10 LMRoman10-Oblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmro10.pfb
+texnansi-lmro12 LMRoman12-Oblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmro12.pfb
+texnansi-lmro17 LMRoman17-Oblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmro17.pfb
+texnansi-lmro8 LMRoman8-Oblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmro8.pfb
+texnansi-lmro9 LMRoman9-Oblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmro9.pfb
+texnansi-lmss10 LMSans10-Regular "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmss10.pfb
+texnansi-lmss12 LMSans12-Regular "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmss12.pfb
+texnansi-lmss17 LMSans17-Regular "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmss17.pfb
+texnansi-lmss8 LMSans8-Regular "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmss8.pfb
+texnansi-lmss9 LMSans9-Regular "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmss9.pfb
+texnansi-lmssbo10 LMSans10-BoldOblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmssbo10.pfb
+texnansi-lmssbx10 LMSans10-Bold "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmssbx10.pfb
+texnansi-lmssdc10 LMSans10-DemiCondensed "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmssdc10.pfb
+texnansi-lmssdo10 LMSans10-DemiCondensedOblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmssdo10.pfb
+texnansi-lmsso10 LMSans10-Oblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmsso10.pfb
+texnansi-lmsso12 LMSans12-Oblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmsso12.pfb
+texnansi-lmsso17 LMSans17-Oblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmsso17.pfb
+texnansi-lmsso8 LMSans8-Oblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmsso8.pfb
+texnansi-lmsso9 LMSans9-Oblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmsso9.pfb
+texnansi-lmssq8 LMSansQuotation8-Regular "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmssq8.pfb
+texnansi-lmssqbo8 LMSansQuotation8-BoldOblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmssqbo8.pfb
+texnansi-lmssqbx8 LMSansQuotation8-Bold "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmssqbx8.pfb
+texnansi-lmssqo8 LMSansQuotation8-Oblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmssqo8.pfb
+texnansi-lmtcsc10 LMTypewriter10-CapsRegular "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmtcsc10.pfb
+texnansi-lmtcso10 LMTypewriter10-CapsOblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmtcso10.pfb
+texnansi-lmtl10 LMTypewriter10-Light "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmtl10.pfb
+texnansi-lmtlo10 LMTypewriter10-LightOblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmtlo10.pfb
+texnansi-lmtlc10 LMTypewriter10-LightCondensed "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmtlc10.pfb
+texnansi-lmtlco10 LMTypewriter10-LightCondensedOblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmtlco10.pfb
+texnansi-lmtk10 LMTypewriter10-Dark "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmtk10.pfb
+texnansi-lmtko10 LMTypewriter10-DarkOblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmtko10.pfb
+texnansi-lmtt10 LMTypewriter10-Regular "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmtt10.pfb
+texnansi-lmtt12 LMTypewriter12-Regular "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmtt12.pfb
+texnansi-lmtt8 LMTypewriter8-Regular "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmtt8.pfb
+texnansi-lmtt9 LMTypewriter9-Regular "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmtt9.pfb
+texnansi-lmtti10 LMTypewriter10-Italic "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmtti10.pfb
+texnansi-lmtto10 LMTypewriter10-Oblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmtto10.pfb
+texnansi-lmvtt10 LMTypewriterVarWd10-Regular "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmvtt10.pfb
+texnansi-lmvtto10 LMTypewriterVarWd10-Oblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmvtto10.pfb
+texnansi-lmvtl10 LMTypewriterVarWd10-Light "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmvtl10.pfb
+texnansi-lmvtlo10 LMTypewriterVarWd10-LightOblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmvtlo10.pfb
+texnansi-lmvtk10 LMTypewriterVarWd10-Dark "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmvtk10.pfb
+texnansi-lmvtko10 LMTypewriterVarWd10-DarkOblique "enclmtexnansios ReEncodeFont" <lm-texnansi-os.enc <lmvtko10.pfb
diff --git a/Master/texmf-dist/fonts/map/pdftex/context/texnansi-public-lm.map b/Master/texmf-dist/fonts/map/pdftex/context/texnansi-public-lm.map
new file mode 100644
index 00000000000..af810611512
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/pdftex/context/texnansi-public-lm.map
@@ -0,0 +1,69 @@
+texnansi-lmb10 LMRoman10-Demi "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmb10.pfb
+texnansi-lmbo10 LMRoman10-DemiOblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmbo10.pfb
+texnansi-lmbx10 LMRoman10-Bold "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmbx10.pfb
+texnansi-lmbx12 LMRoman12-Bold "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmbx12.pfb
+texnansi-lmbx5 LMRoman5-Bold "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmbx5.pfb
+texnansi-lmbx6 LMRoman6-Bold "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmbx6.pfb
+texnansi-lmbx7 LMRoman7-Bold "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmbx7.pfb
+texnansi-lmbx8 LMRoman8-Bold "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmbx8.pfb
+texnansi-lmbx9 LMRoman9-Bold "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmbx9.pfb
+texnansi-lmbxi10 LMRoman10-BoldItalic "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmbxi10.pfb
+texnansi-lmbxo10 LMRoman10-BoldOblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmbxo10.pfb
+texnansi-lmcsc10 LMRoman10-CapsRegular "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmcsc10.pfb
+texnansi-lmcsco10 LMRoman10-CapsOblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmcsco10.pfb
+texnansi-lmr10 LMRoman10-Regular "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmr10.pfb
+texnansi-lmr12 LMRoman12-Regular "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmr12.pfb
+texnansi-lmr17 LMRoman17-Regular "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmr17.pfb
+texnansi-lmr5 LMRoman5-Regular "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmr5.pfb
+texnansi-lmr6 LMRoman6-Regular "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmr6.pfb
+texnansi-lmr7 LMRoman7-Regular "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmr7.pfb
+texnansi-lmr8 LMRoman8-Regular "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmr8.pfb
+texnansi-lmr9 LMRoman9-Regular "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmr9.pfb
+texnansi-lmri10 LMRoman10-Italic "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmri10.pfb
+texnansi-lmri12 LMRoman12-Italic "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmri12.pfb
+texnansi-lmri7 LMRoman7-Italic "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmri7.pfb
+texnansi-lmri8 LMRoman8-Italic "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmri8.pfb
+texnansi-lmri9 LMRoman9-Italic "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmri9.pfb
+texnansi-lmro10 LMRoman10-Oblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmro10.pfb
+texnansi-lmro12 LMRoman12-Oblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmro12.pfb
+texnansi-lmro17 LMRoman17-Oblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmro17.pfb
+texnansi-lmro8 LMRoman8-Oblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmro8.pfb
+texnansi-lmro9 LMRoman9-Oblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmro9.pfb
+texnansi-lmss10 LMSans10-Regular "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmss10.pfb
+texnansi-lmss12 LMSans12-Regular "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmss12.pfb
+texnansi-lmss17 LMSans17-Regular "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmss17.pfb
+texnansi-lmss8 LMSans8-Regular "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmss8.pfb
+texnansi-lmss9 LMSans9-Regular "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmss9.pfb
+texnansi-lmssbo10 LMSans10-BoldOblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmssbo10.pfb
+texnansi-lmssbx10 LMSans10-Bold "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmssbx10.pfb
+texnansi-lmssdc10 LMSans10-DemiCondensed "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmssdc10.pfb
+texnansi-lmssdo10 LMSans10-DemiCondensedOblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmssdo10.pfb
+texnansi-lmsso10 LMSans10-Oblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmsso10.pfb
+texnansi-lmsso12 LMSans12-Oblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmsso12.pfb
+texnansi-lmsso17 LMSans17-Oblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmsso17.pfb
+texnansi-lmsso8 LMSans8-Oblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmsso8.pfb
+texnansi-lmsso9 LMSans9-Oblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmsso9.pfb
+texnansi-lmssq8 LMSansQuotation8-Regular "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmssq8.pfb
+texnansi-lmssqbo8 LMSansQuotation8-BoldOblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmssqbo8.pfb
+texnansi-lmssqbx8 LMSansQuotation8-Bold "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmssqbx8.pfb
+texnansi-lmssqo8 LMSansQuotation8-Oblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmssqo8.pfb
+texnansi-lmtcsc10 LMTypewriter10-CapsRegular "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmtcsc10.pfb
+texnansi-lmtcso10 LMTypewriter10-CapsOblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmtcso10.pfb
+texnansi-lmtl10 LMTypewriter10-Light "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmtl10.pfb
+texnansi-lmtlo10 LMTypewriter10-LightOblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmtlo10.pfb
+texnansi-lmtlc10 LMTypewriter10-LightCondensed "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmtlc10.pfb
+texnansi-lmtlco10 LMTypewriter10-LightCondensedOblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmtlco10.pfb
+texnansi-lmtk10 LMTypewriter10-Dark "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmtk10.pfb
+texnansi-lmtko10 LMTypewriter10-DarkOblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmtko10.pfb
+texnansi-lmtt10 LMTypewriter10-Regular "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmtt10.pfb
+texnansi-lmtt12 LMTypewriter12-Regular "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmtt12.pfb
+texnansi-lmtt8 LMTypewriter8-Regular "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmtt8.pfb
+texnansi-lmtt9 LMTypewriter9-Regular "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmtt9.pfb
+texnansi-lmtti10 LMTypewriter10-Italic "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmtti10.pfb
+texnansi-lmtto10 LMTypewriter10-Oblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmtto10.pfb
+texnansi-lmvtt10 LMTypewriterVarWd10-Regular "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmvtt10.pfb
+texnansi-lmvtto10 LMTypewriterVarWd10-Oblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmvtto10.pfb
+texnansi-lmvtl10 LMTypewriterVarWd10-Light "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmvtl10.pfb
+texnansi-lmvtlo10 LMTypewriterVarWd10-LightOblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmvtlo10.pfb
+texnansi-lmvtk10 LMTypewriterVarWd10-Dark "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmvtk10.pfb
+texnansi-lmvtko10 LMTypewriterVarWd10-DarkOblique "enclmtexnansi ReEncodeFont" <lm-texnansi.enc <lmvtko10.pfb
diff --git a/Master/texmf-dist/fonts/pfm/hoekwater/context/contnav.pfm b/Master/texmf-dist/fonts/pfm/hoekwater/context/contnav.pfm
new file mode 100644
index 00000000000..2e6e2eebb6c
--- /dev/null
+++ b/Master/texmf-dist/fonts/pfm/hoekwater/context/contnav.pfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/pfm/jmn/hans/hans-sh.pfm b/Master/texmf-dist/fonts/pfm/jmn/hans/hans-sh.pfm
new file mode 100644
index 00000000000..80616774062
--- /dev/null
+++ b/Master/texmf-dist/fonts/pfm/jmn/hans/hans-sh.pfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/pfm/jmn/hans/hans.pfm b/Master/texmf-dist/fonts/pfm/jmn/hans/hans.pfm
new file mode 100644
index 00000000000..89f74d81eb4
--- /dev/null
+++ b/Master/texmf-dist/fonts/pfm/jmn/hans/hans.pfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/truetype/hoekwater/lm/lmtypewriter10-regular.ttf b/Master/texmf-dist/fonts/truetype/hoekwater/lm/lmtypewriter10-regular.ttf
new file mode 100644
index 00000000000..86d04bb3c2a
--- /dev/null
+++ b/Master/texmf-dist/fonts/truetype/hoekwater/lm/lmtypewriter10-regular.ttf
Binary files differ
diff --git a/Master/texmf-dist/metapost/context/base/metafun.mp b/Master/texmf-dist/metapost/context/base/metafun.mp
index 5071013c5f8..cfbf7b2f98c 100644
--- a/Master/texmf-dist/metapost/context/base/metafun.mp
+++ b/Master/texmf-dist/metapost/context/base/metafun.mp
@@ -23,10 +23,15 @@
%D that we use (unless overloaded) the settings of \type
%D {mpost}.
+%D First we input John Hobby's metapost plain file. However,
+%D because we want to prevent dependency problems and in the
+%D end even may use a patched version, we prefer to use a
+%D copy,
+
if unknown ahangle :
- input plain.mp ; % John Hobby's file
+ input mp-base.mp ; % input plain.mp ;
else :
- let dump = relax ;
+ let dump = relax ;
fi ;
input mp-tool.mp ;
@@ -34,6 +39,7 @@ input mp-spec.mp ;
input mp-core.mp ;
input mp-page.mp ;
input mp-text.mp ;
+input mp-txts.mp ;
input mp-shap.mp ;
input mp-butt.mp ;
input mp-char.mp ;
diff --git a/Master/texmf-dist/metapost/context/base/mp-base.mp b/Master/texmf-dist/metapost/context/base/mp-base.mp
new file mode 100644
index 00000000000..87f3fd2f742
--- /dev/null
+++ b/Master/texmf-dist/metapost/context/base/mp-base.mp
@@ -0,0 +1,556 @@
+% This is (currently) a copy of the plain.mp file. We use a copy
+% because (1) we want to make sure that there are no unresolved
+% dependencies, and (2) we may patch this file eventually.
+
+% This file gives the macros for plain MetaPost
+% It contains all the features of plain METAFONT except those specific to
+% font-making. (See The METAFONTbook by D.E. Knuth).
+% There are also a number of macros for labeling figures, etc.
+string base_name, base_version; base_name="plain"; base_version="0.63";
+
+message "Preloading the plain mem file, version "&base_version;
+
+delimiters (); % this makes parentheses behave like parentheses
+def upto = step 1 until enddef; % syntactic sugar
+def downto = step -1 until enddef;
+def exitunless expr c = exitif not c enddef;
+let relax = \; % ignore the word `relax', as in TeX
+let \\ = \; % double relaxation is like single
+def ]] = ] ] enddef; % right brackets should be loners
+def -- = {curl 1}..{curl 1} enddef;
+def --- = .. tension infinity .. enddef;
+def ... = .. tension atleast 1 .. enddef;
+
+def gobble primary g = enddef;
+primarydef g gobbled gg = enddef;
+def hide(text t) = exitif numeric begingroup t;endgroup; enddef;
+def ??? = hide(interim showstopping:=1; showdependencies) enddef;
+def stop expr s = message s; gobble readstring enddef;
+
+warningcheck:=1;
+tracinglostchars:=1;
+
+def interact = % sets up to make "show" commands stop
+ hide(showstopping:=1; tracingonline:=1) enddef;
+
+def loggingall = % puts tracing info into the log
+ tracingcommands:=3; tracingtitles:=1; tracingequations:=1;
+ tracingcapsules:=1; tracingspecs:=2; tracingchoices:=1; tracinglostchars:=1;
+ tracingstats:=1; tracingoutput:=1; tracingmacros:=1; tracingrestores:=1;
+ enddef;
+
+def tracingall = % turns on every form of tracing
+ tracingonline:=1; showstopping:=1; loggingall enddef;
+
+def tracingnone = % turns off every form of tracing
+ tracingcommands:=0; tracingtitles:=0; tracingequations:=0;
+ tracingcapsules:=0; tracingspecs:=0; tracingchoices:=0; tracinglostchars:=0;
+ tracingstats:=0; tracingoutput:=0; tracingmacros:=0; tracingrestores:=0;
+ enddef;
+
+
+
+%% dash patterns
+
+vardef dashpattern(text t) =
+ save on, off, w;
+ let on=_on_;
+ let off=_off_;
+ w = 0;
+ nullpicture t
+enddef;
+
+tertiarydef p _on_ d =
+ begingroup save pic;
+ picture pic; pic=p;
+ addto pic doublepath (w,w)..(w+d,w);
+ w := w+d;
+ pic shifted (0,d)
+ endgroup
+enddef;
+
+tertiarydef p _off_ d =
+ begingroup w:=w+d;
+ p shifted (0,d)
+ endgroup
+enddef;
+
+
+
+%% basic constants and mathematical macros
+
+% numeric constants
+newinternal eps,epsilon,infinity,_;
+eps := .00049; % this is a pretty small positive number
+epsilon := 1/256/256; % but this is the smallest
+infinity := 4095.99998; % and this is the largest
+_ := -1; % internal constant to make macros unreadable but shorter
+
+newinternal mitered, rounded, beveled, butt, squared;
+mitered:=0; rounded:=1; beveled:=2; % linejoin types
+butt:=0; rounded:=1; squared:=2; % linecap types
+
+
+% pair constants
+pair right,left,up,down,origin;
+origin=(0,0); up=-down=(0,1); right=-left=(1,0);
+
+% path constants
+path quartercircle,halfcircle,fullcircle,unitsquare;
+fullcircle = makepath pencircle;
+halfcircle = subpath (0,4) of fullcircle;
+quartercircle = subpath (0,2) of fullcircle;
+unitsquare=(0,0)--(1,0)--(1,1)--(0,1)--cycle;
+
+% transform constants
+transform identity;
+for z=origin,right,up: z transformed identity = z; endfor
+
+% color constants
+color black, white, red, green, blue, background;
+black = (0,0,0);
+white = (1,1,1);
+red = (1,0,0);
+green = (0,1,0);
+blue = (0,0,1);
+background = white; % The user can reset this
+
+% picture constants
+picture blankpicture,evenly,withdots;
+blankpicture=nullpicture; % `display blankpicture...'
+evenly=dashpattern(on 3 off 3); % `dashed evenly'
+withdots=dashpattern(off 2.5 on 0 off 2.5); % `dashed withdots'
+
+% string constants
+string ditto, EOF;
+ditto = char 34; % ASCII double-quote mark
+EOF = char 0; % end-of-file for readfrom and write..to
+
+% pen constants
+pen pensquare,penrazor,penspeck;
+pensquare = makepen(unitsquare shifted -(.5,.5));
+penrazor = makepen((-.5,0)--(.5,0)--cycle);
+penspeck=pensquare scaled eps;
+
+% nullary operators
+vardef whatever = save ?; ? enddef;
+
+% unary operators
+let abs = length;
+
+vardef round primary u =
+ if numeric u: floor(u+.5)
+ elseif pair u: (round xpart u, round ypart u)
+ else: u fi enddef;
+
+vardef ceiling primary x = -floor(-x) enddef;
+
+vardef byte primary s =
+ if string s: ASCII fi s enddef;
+
+vardef dir primary d = right rotated d enddef;
+
+vardef unitvector primary z = z/abs z enddef;
+
+vardef inverse primary T =
+ transform T_; T_ transformed T = identity; T_ enddef;
+
+vardef counterclockwise primary c =
+ if turningnumber c <= 0: reverse fi c enddef;
+
+vardef tensepath expr r =
+ for k=0 upto length r - 1: point k of r --- endfor
+ if cycle r: cycle else: point infinity of r fi enddef;
+
+vardef center primary p = .5[llcorner p, urcorner p] enddef;
+
+
+
+% binary operators
+
+primarydef x mod y = (x-y*floor(x/y)) enddef;
+primarydef x div y = floor(x/y) enddef;
+primarydef w dotprod z = (xpart w * xpart z + ypart w * ypart z) enddef;
+
+primarydef x**y = if y=2: x*x else: takepower y of x fi enddef;
+def takepower expr y of x =
+ if x>0: mexp(y*mlog x)
+ elseif (x=0) and (y>0): 0
+ else: 1
+ if y=floor y:
+ if y>=0: for n=1 upto y: *x endfor
+ else: for n=_ downto y: /x endfor
+ fi
+ else: hide(errmessage "Undefined power: " & decimal x&"**"&decimal y)
+ fi fi enddef;
+
+vardef direction expr t of p =
+ postcontrol t of p - precontrol t of p enddef;
+
+vardef directionpoint expr z of p =
+ a_:=directiontime z of p;
+ if a_<0: errmessage("The direction doesn't occur"); fi
+ point a_ of p enddef;
+
+secondarydef p intersectionpoint q =
+ begingroup save x_,y_; (x_,y_)=p intersectiontimes q;
+ if x_<0: errmessage("The paths don't intersect"); origin
+ else: .5[point x_ of p, point y_ of q] fi endgroup
+enddef;
+
+tertiarydef p softjoin q =
+ begingroup c_:=fullcircle scaled 2join_radius shifted point 0 of q;
+ a_:=ypart(c_ intersectiontimes p); b_:=ypart(c_ intersectiontimes q);
+ if a_<0:point 0 of p{direction 0 of p} else: subpath(0,a_) of p fi
+ ... if b_<0:{direction infinity of q}point infinity of q
+ else: subpath(b_,infinity) of q fi endgroup enddef;
+newinternal join_radius,a_,b_; path c_;
+
+
+path cuttings; % what got cut off
+
+tertiarydef a cutbefore b = % tries to cut as little as possible
+ begingroup save t;
+ (t, whatever) = a intersectiontimes b;
+ if t<0:
+ cuttings:=point 0 of a;
+ a
+ else: cuttings:= subpath (0,t) of a;
+ subpath (t,length a) of a
+ fi
+ endgroup
+enddef;
+
+tertiarydef a cutafter b =
+ reverse (reverse a cutbefore b)
+ hide(cuttings:=reverse cuttings)
+enddef;
+
+
+
+% special operators
+vardef incr suffix $ = $:=$+1; $ enddef;
+vardef decr suffix $ = $:=$-1; $ enddef;
+
+def reflectedabout(expr w,z) = % reflects about the line w..z
+ transformed
+ begingroup transform T_;
+ w transformed T_ = w; z transformed T_ = z;
+ xxpart T_ = -yypart T_; xypart T_ = yxpart T_; % T_ is a reflection
+ T_ endgroup enddef;
+
+def rotatedaround(expr z, d) = % rotates d degrees around z
+ shifted -z rotated d shifted z enddef;
+let rotatedabout = rotatedaround; % for roundabout people
+
+vardef min(expr u)(text t) = % t is a list of numerics, pairs, or strings
+ save u_; setu_ u; for uu = t: if uu<u_: u_:=uu; fi endfor
+ u_ enddef;
+
+vardef max(expr u)(text t) = % t is a list of numerics, pairs, or strings
+ save u_; setu_ u; for uu = t: if uu>u_: u_:=uu; fi endfor
+ u_ enddef;
+
+def setu_ primary u =
+ if pair u: pair u_ elseif string u: string u_ fi;
+ u_=u enddef;
+
+def flex(text t) = % t is a list of pairs
+ hide(n_:=0; for z=t: z_[incr n_]:=z; endfor
+ dz_:=z_[n_]-z_1)
+ z_1 for k=2 upto n_-1: ...z_[k]{dz_} endfor ...z_[n_] enddef;
+newinternal n_; pair z_[],dz_;
+
+def superellipse(expr r,t,l,b,s)=
+ r{up}...(s[xpart t,xpart r],s[ypart r,ypart t]){t-r}...
+ t{left}...(s[xpart t,xpart l],s[ypart l,ypart t]){l-t}...
+ l{down}...(s[xpart b,xpart l],s[ypart l,ypart b]){b-l}...
+ b{right}...(s[xpart b,xpart r],s[ypart r,ypart b]){r-b}...cycle enddef;
+
+vardef interpath(expr a,p,q) =
+ for t=0 upto length p-1: a[point t of p, point t of q]
+ ..controls a[postcontrol t of p, postcontrol t of q]
+ and a[precontrol t+1 of p, precontrol t+1 of q] .. endfor
+ if cycle p: cycle
+ else: a[point infinity of p, point infinity of q] fi enddef;
+
+vardef solve@#(expr true_x,false_x)= % @#(true_x)=true, @#(false_x)=false
+ tx_:=true_x; fx_:=false_x;
+ forever: x_:=.5[tx_,fx_]; exitif abs(tx_-fx_)<=tolerance;
+ if @#(x_): tx_ else: fx_ fi :=x_; endfor
+ x_ enddef; % now x_ is near where @# changes from true to false
+newinternal tolerance, tx_,fx_,x_; tolerance:=.01;
+
+vardef buildcycle(text ll) =
+ save ta_, tb_, k_, i_, pp_; path pp_[];
+ k_=0;
+ for q=ll: pp_[incr k_]=q; endfor
+ i_=k_;
+ for i=1 upto k_:
+ (ta_[i], length pp_[i_]-tb_[i_]) =
+ pp_[i] intersectiontimes reverse pp_[i_];
+ if ta_[i]<0:
+ errmessage("Paths "& decimal i &" and "& decimal i_ &" don't intersect");
+ fi
+ i_ := i;
+ endfor
+ for i=1 upto k_: subpath (ta_[i],tb_[i]) of pp_[i] .. endfor
+ cycle
+enddef;
+
+
+
+%% units of measure
+
+mm=2.83464; pt=0.99626; dd=1.06601; bp:=1;
+cm=28.34645; pc=11.95517; cc=12.79213; in:=72;
+
+vardef magstep primary m = mexp(46.67432m) enddef;
+
+
+
+%% macros for drawing and filling
+
+def drawoptions(text t) =
+ def _op_ = t enddef
+enddef;
+
+linejoin:=rounded; % parameters that effect drawing
+linecap:=rounded;
+miterlimit:=10;
+
+drawoptions();
+
+pen currentpen;
+picture currentpicture;
+
+def fill expr c = addto currentpicture contour c _op_ enddef;
+def draw expr p =
+ addto currentpicture
+ if picture p:
+ also p
+ else:
+ doublepath p withpen currentpen
+ fi
+ _op_
+enddef;
+def filldraw expr c =
+ addto currentpicture contour c withpen currentpen
+ _op_ enddef;
+def drawdot expr z =
+ addto currentpicture contour makepath currentpen shifted z
+ _op_ enddef;
+
+def unfill expr c = fill c withcolor background enddef;
+def undraw expr p = draw p withcolor background enddef;
+def unfilldraw expr c = filldraw c withcolor background enddef;
+def undrawdot expr z = drawdot z withcolor background enddef;
+def erase text t =
+ def _e_ = withcolor background hide(def _e_=enddef;) enddef;
+ t _e_
+enddef;
+def _e_= enddef;
+
+def cutdraw text t =
+ begingroup interim linecap:=butt; draw t _e_; endgroup enddef;
+
+vardef image(text t) =
+ save currentpicture;
+ picture currentpicture;
+ currentpicture := nullpicture;
+ t;
+ currentpicture
+enddef;
+
+def pickup secondary q =
+ if numeric q: numeric_pickup_ else: pen_pickup_ fi q enddef;
+def numeric_pickup_ primary q =
+ if unknown pen_[q]: errmessage "Unknown pen"; clearpen
+ else: currentpen:=pen_[q];
+ pen_lft:=pen_lft_[q];
+ pen_rt:=pen_rt_[q];
+ pen_top:=pen_top_[q];
+ pen_bot:=pen_bot_[q];
+ currentpen_path:=pen_path_[q] fi; enddef;
+def pen_pickup_ primary q =
+ currentpen:=q;
+ pen_lft:=xpart penoffset down of currentpen;
+ pen_rt:=xpart penoffset up of currentpen;
+ pen_top:=ypart penoffset left of currentpen;
+ pen_bot:=ypart penoffset right of currentpen;
+ path currentpen_path; enddef;
+newinternal pen_lft,pen_rt,pen_top,pen_bot,pen_count_;
+
+vardef savepen = pen_[incr pen_count_]=currentpen;
+ pen_lft_[pen_count_]=pen_lft;
+ pen_rt_[pen_count_]=pen_rt;
+ pen_top_[pen_count_]=pen_top;
+ pen_bot_[pen_count_]=pen_bot;
+ pen_path_[pen_count_]=currentpen_path;
+ pen_count_ enddef;
+
+def clearpen = currentpen:=nullpen;
+ pen_lft:=pen_rt:=pen_top:=pen_bot:=0;
+ path currentpen_path;
+ enddef;
+def clear_pen_memory =
+ pen_count_:=0;
+ numeric pen_lft_[],pen_rt_[],pen_top_[],pen_bot_[];
+ pen currentpen,pen_[];
+ path currentpen_path, pen_path_[];
+ enddef;
+
+vardef lft primary x = x + if pair x: (pen_lft,0) else: pen_lft fi enddef;
+vardef rt primary x = x + if pair x: (pen_rt,0) else: pen_rt fi enddef;
+vardef top primary y = y + if pair y: (0,pen_top) else: pen_top fi enddef;
+vardef bot primary y = y + if pair y: (0,pen_bot) else: pen_bot fi enddef;
+
+vardef penpos@#(expr b,d) =
+ (x@#r-x@#l,y@#r-y@#l)=(b,0) rotated d;
+ x@#=.5(x@#l+x@#r); y@#=.5(y@#l+y@#r) enddef;
+
+def penstroke text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ fill path_.l -- reverse path_.r -- cycle enddef;
+path path_.l,path_.r;
+
+
+
+%% High level drawing commands
+
+newinternal ahlength, ahangle;
+ahlength := 4; % default arrowhead length 4bp
+ahangle := 45; % default head angle 45 degrees
+
+vardef arrowhead expr p =
+ save q,e; path q; pair e;
+ e = point length p of p;
+ q = gobble(p shifted -e cutafter makepath(pencircle scaled 2ahlength))
+ cuttings;
+ (q rotated .5ahangle & reverse q rotated -.5ahangle -- cycle) shifted e
+enddef;
+
+path _apth;
+def drawarrow expr p = _apth:=p; _finarr enddef;
+def drawdblarrow expr p = _apth:=p; _findarr enddef;
+
+def _finarr text t =
+ draw _apth t;
+ filldraw arrowhead _apth t
+enddef;
+
+def _findarr text t =
+ draw _apth t;
+ fill arrowhead _apth withpen currentpen t;
+ fill arrowhead reverse _apth withpen currentpen t
+enddef;
+
+
+
+%% macros for labels
+
+newinternal bboxmargin; bboxmargin:=2bp;
+
+vardef bbox primary p =
+ llcorner p-(bboxmargin,bboxmargin) -- lrcorner p+(bboxmargin,-bboxmargin)
+ -- urcorner p+(bboxmargin,bboxmargin) -- ulcorner p+(-bboxmargin,bboxmargin)
+ -- cycle
+enddef;
+
+string defaultfont;
+newinternal defaultscale, labeloffset;
+defaultfont = "cmr10";
+defaultscale := 1;
+labeloffset := 3bp;
+
+vardef thelabel@#(expr s,z) = % Position s near z
+ save p; picture p;
+ if picture s: p=s
+ else: p = s infont defaultfont scaled defaultscale
+ fi;
+ p shifted (z + labeloffset*laboff@# -
+ (labxf@#*lrcorner p + labyf@#*ulcorner p
+ + (1-labxf@#-labyf@#)*llcorner p
+ )
+ )
+enddef;
+
+def label = draw thelabel enddef;
+newinternal dotlabeldiam; dotlabeldiam:=3bp;
+vardef dotlabel@#(expr s,z) =
+ label@#(s,z);
+ interim linecap:=rounded;
+ draw z withpen pencircle scaled dotlabeldiam;
+enddef;
+def makelabel = dotlabel enddef;
+
+pair laboff, laboff.lft, laboff.rt, laboff.top, laboff.bot;
+pair laboff.ulft, laboff.llft, laboff.urt, laboff.lrt;
+laboff =(0,0); labxf =.5; labyf =.5;
+laboff.lft=(-1,0); labxf.lft=1; labyf.lft=.5;
+laboff.rt =(1,0); labxf.rt =0; labyf.rt =.5;
+laboff.bot=(0,-1); labxf.bot=.5; labyf.bot=1;
+laboff.top=(0,1); labxf.top=.5; labyf.top=0;
+laboff.ulft=(-.7,.7);labxf.ulft=1; labyf.ulft=0;
+laboff.urt=(.7,.7); labxf.urt=0; labyf.urt=0;
+laboff.llft=-(.7,.7);labxf.llft=1; labyf.llft=1;
+laboff.lrt=(.7,-.7); labxf.lrt=0; labyf.lrt=1;
+
+vardef labels@#(text t) =
+ forsuffixes $=t:
+ label@#(str$,z$); endfor
+ enddef;
+vardef dotlabels@#(text t) =
+ forsuffixes $=t:
+ dotlabel@#(str$,z$); endfor
+ enddef;
+vardef penlabels@#(text t) =
+ forsuffixes $$=l,,r: forsuffixes $=t:
+ makelabel@#(str$.$$,z$.$$); endfor endfor
+ enddef;
+
+
+def range expr x = numtok[x] enddef;
+def numtok suffix x=x enddef;
+tertiarydef m thru n =
+ m for x=m+1 step 1 until n: , numtok[x] endfor enddef;
+
+
+
+%% Overall adminstration
+
+string extra_beginfig, extra_endfig;
+extra_beginfig = extra_endfig = "";
+
+def beginfig(expr c) =
+ begingroup
+ charcode:=c;
+ clearxy; clearit; clearpen;
+ pickup defaultpen;
+ drawoptions();
+ scantokens extra_beginfig;
+enddef;
+
+def endfig =
+ scantokens extra_endfig;
+ shipit;
+ endgroup
+enddef;
+
+
+%% last-minute items
+
+vardef z@#=(x@#,y@#) enddef;
+
+def clearxy = save x,y enddef;
+def clearit = currentpicture:=nullpicture enddef;
+def shipit = shipout currentpicture enddef;
+
+let bye = end; outer end,bye;
+
+clear_pen_memory; % initialize the `savepen' mechanism
+clearit;
+
+newinternal defaultpen;
+pickup pencircle scaled .5bp; % set default line width
+defaultpen := savepen;
diff --git a/Master/texmf-dist/metapost/context/base/mp-core.mp b/Master/texmf-dist/metapost/context/base/mp-core.mp
index eb038163e35..92036febfc9 100644
--- a/Master/texmf-dist/metapost/context/base/mp-core.mp
+++ b/Master/texmf-dist/metapost/context/base/mp-core.mp
@@ -350,13 +350,14 @@ enddef ;
numeric nofmultipars ; nofmultipars := 0 ;
-boolean obey_multi_par_hang ; obey_multi_par_hang := true ;
-boolean obey_multi_par_more ; obey_multi_par_more := true ;
-boolean snap_multi_par_tops ; snap_multi_par_tops := true ;
-boolean local_multi_par_area ; local_multi_par_area := false ;
-boolean ignore_multi_par_page ; ignore_multi_par_page := false ;
-
-boolean one_piece_multi_par ; one_piece_multi_par := false ;
+boolean obey_multi_par_hang ; obey_multi_par_hang := true ;
+boolean obey_multi_par_more ; obey_multi_par_more := true ;
+boolean snap_multi_par_tops ; snap_multi_par_tops := true ;
+boolean local_multi_par_area ; local_multi_par_area := false ;
+boolean ignore_multi_par_page ; ignore_multi_par_page := false ;
+boolean force_multi_par_chain ; force_multi_par_chain := true ;
+boolean one_piece_multi_par ; one_piece_multi_par := false ;
+boolean check_multi_par_chain ; check_multi_par_chain := true ; % extra page check
def simplify_multi_pars = % boundingbox ipv shape als optie
for i := 1 upto nofmultipars :
@@ -720,14 +721,24 @@ fi ;
% fallback
- multipar :=
+ % multipar :=
+ % llxy[fpos] --
+ % lrxy[tpos] --
+ % urxy[tpos] --
+ % ulxy[fpos] -- cycle ;
+ %
+ % save_multipar (1,1,multipar) ;
+
+ % we need to take the boundingbox because there can be
+ % more lines and we want a proper rectange
- llxy[fpos] --
- lrxy[tpos] --
+ multipar :=
+ ulxy[fpos] --
urxy[tpos] --
- ulxy[fpos] -- cycle ;
+ lrxy[fpos] --
+ llxy[tpos] -- cycle ;
- save_multipar (1,1,multipar) ;
+ save_multipar (1,1,boundingbox(multipar)) ;
else :
@@ -743,7 +754,6 @@ fi ;
if (nxy[fpos]=RealPageNumber) and (InsideTextArea(i,par_start_pos)) :
-
% first one in chain
ii := i ;
@@ -930,11 +940,16 @@ snapped_multi_pos(ulxy[tpos]) --
% second loop
+if force_multi_par_chain or (ii > 1) :
+
for i=ii+1 upto nn-1 :
% rest of chain / todo : hang
-%if (nxy[fpos]<=RealPageNumber) and (nxy[tpos]>=RealPageNumber) :
+% we need to test, else we get a <lineheight bottom one
+% triggering a whole text frame; weird
+
+if (not check_multi_par_chain) or ((nxy[fpos]<RealPageNumber) and (nxy[tpos]>RealPageNumber)) :
multipar := set_multipar(i) ;
@@ -951,10 +966,12 @@ snapped_multi_pos(ulxy[tpos]) --
save_multipar(i,2,multipar) ;
-%fi ;
+fi ;
endfor ;
+fi ;
+
% end of normal/fallback
fi ;
@@ -963,6 +980,14 @@ fi ;
endgroup ;
fi ;
+ % potential safeguard:
+
+ % for i=1 upto nofmultipars :
+ % if length p <= 4 :
+ % multipars[i] := boundingbox(multipars[i]) ;
+ % fi ;
+ % end ;
+
% quick hack for gb:
one_piece_multi_par := (nofmultipars=1) and (pn=tn) ;
@@ -990,20 +1015,24 @@ enddef ;
def draw_par = % 1 2 3 11 12
do_draw_par(pxy) ; do_draw_par(txy) ; do_draw_par(bxy) ;
for i = pxy, txy, bxy :
- if boxgridtype= 1 :
+ if boxgridtype = 1 :
boxgriddirection := origin ;
draw baseline_grid (i,boxgriddirection,true ) withcolor boxgridcolor ;
- elseif boxgridtype= 2 :
+ elseif boxgridtype = 2 :
boxgriddirection := origin ;
draw baseline_grid (i,boxgriddirection,false) withcolor boxgridcolor ;
- elseif boxgridtype= 3 :
+ elseif boxgridtype = 3 :
boxgriddirection := origin ;
draw baseline_grid (i,boxgriddirection,true ) withcolor boxgridcolor ;
draw baseline_grid (i,boxgriddirection,true )
shifted (0,ExHeight) withcolor boxgridcolor ;
- elseif boxgridtype=11 :
+ elseif boxgridtype = 4 :
+ boxgriddirection := origin ;
+ draw baseline_grid (i,boxgriddirection,true )
+ shifted (0,ExHeight/2) withcolor boxgridcolor ;
+ elseif boxgridtype = 11 :
draw graphic_grid(i,boxgriddistance,boxgriddistance,boxgriddistance/2,boxgriddistance/2) ;
- elseif boxgridtype=12 :
+ elseif boxgridtype = 12 :
draw graphic_grid(i,boxgriddistance,boxgriddistance,0,0) ;
fi ;
endfor ;
@@ -1090,6 +1119,9 @@ def draw_multi_pars =
draw baseline_grid (multipars[i],up,true ) withcolor boxgridcolor ;
draw baseline_grid (multipars[i],up,true )
shifted (0,ExHeight) withcolor boxgridcolor ;
+ elseif boxgridtype= 4 :
+ draw baseline_grid (multipars[i],up,true )
+ shifted (0,ExHeight/2) withcolor boxgridcolor ;
elseif boxgridtype=11 :
draw graphic_grid(multipars[i],boxgriddistance,boxgriddistance,boxgriddistance/2,boxgriddistance/2) ;
elseif boxgridtype=12 :
@@ -1349,4 +1381,4 @@ def ProcessSyncTask(expr p, c) =
fill p withcolor c ;
enddef ;
-endinput ; \ No newline at end of file
+endinput ;
diff --git a/Master/texmf-dist/metapost/context/base/mp-spec.mp b/Master/texmf-dist/metapost/context/base/mp-spec.mp
index 9fe3c724fdc..a46b09e92dd 100644
--- a/Master/texmf-dist/metapost/context/base/mp-spec.mp
+++ b/Master/texmf-dist/metapost/context/base/mp-spec.mp
@@ -35,6 +35,8 @@ numeric _special_counter_ ; _special_counter_ := 0 ;
numeric _color_counter_ ; _color_counter_ := 11 ; % < 10 reserved
numeric _special_signal_ ; _special_signal_ := 123 ;
+numeric _special_div_ ; _special_div_ := 1000 ;
+
%D When set to \type {true}, shading will be supported. Some
%D day I will also write an additional directive.
@@ -48,12 +50,31 @@ boolean _inline_specials_ ; _inline_specials_ := false ;
string _global_specials_ ; _global_specials_ := "" ;
string _local_specials_ ; _local_specials_ := "" ;
+% vardef add_special_signal = % write the version number
+% if (length _global_specials_>0) or (length _local_specials_ >0) :
+% special ("%%MetaPostSpecials: 1.0 " & decimal _special_signal_ ) ;
+% fi ;
+% enddef ;
+%
+% After some reported problems at the \CONTEXT\ mailing list,
+% Taco's came up with:
+
+% TH: \quotation {Ok, got it. There is a bug in mp-spec.mp (inside metafun).
+% Because of a wrapping number, it fails to recognize the fact that there
+% are embedded specials at all.} The corrected definition is:
+
vardef add_special_signal = % write the version number
- if (length _global_specials_>0) or (length _local_specials_ >0) :
- special ("%%MetaPostSpecials: 1.0 " & decimal _special_signal_ ) ;
+ if (length _global_specials_ <> 0) or (length _local_specials_ <> 0) :
+ special ("%%MetaPostSpecials: 2.0 " & decimal _special_signal_ & " " & decimal _special_div_) ;
fi ;
enddef ;
+% \quotation {It now tests for \quote {not equal to zero} instead of
+% \quote {larger than zero}: because of all the included files, the
+% string \type {_local_specials_} becomes longer than the maximum number
+% \quote {length} can return, so it returns -32768 instead, and that is
+% of course less than zero.}
+
vardef add_extra_specials =
scantokens _global_specials_ ;
scantokens _local_specials_ ;
@@ -263,12 +284,12 @@ enddef ;
primarydef p withshade sc = % == p withcolor shadecolor(sh)
hide (_color_counter_ := _color_counter_ + 1)
- p withcolor (_special_signal_/1000,_color_counter_/1000,sc/1000)
+ p withcolor (_special_signal_/_special_div_,_color_counter_/_special_div_,sc/_special_div_)
enddef ;
vardef shadecolor(expr sc) =
hide (_color_counter_ := _color_counter_ + 1)
- (_special_signal_/1000,_color_counter_/1000,sc/1000)
+ (_special_signal_/_special_div_,_color_counter_/_special_div_,sc/_special_div_)
enddef ;
%D Figure inclusion.
@@ -288,8 +309,7 @@ def doexternalfigure (expr filename) text transformation =
addto p contour unitsquare scaled 0 ;
setbounds p to unitsquare transformed t ;
_color_counter_ := _color_counter_ + 1 ;
- draw p withcolor (_special_signal_/1000,_color_counter_/1000,_special_counter_/1000) ;
-%draw p withcolor (_special_signal_/1000,cef/1000,_special_counter_/1000) ;
+ draw p withcolor (_special_signal_/_special_div_,_color_counter_/_special_div_,_special_counter_/_special_div_) ;
endgroup ;
enddef ;
@@ -312,11 +332,9 @@ def dohyperpath (expr destination) expr somepath =
flush_special(20, 7,
ddecimal (xpart llcorner somepath, ypart llcorner somepath) & " " &
ddecimal (xpart urcorner somepath, ypart urcorner somepath) & " " & destination) ;
-% currenthyperlink := currenthyperlink + 1 ;
_color_counter_ := _color_counter_ + 1 ;
fill boundingbox unitsquare scaled 0 withcolor
- (_special_signal_/1000,_color_counter_/1000,_special_counter_/1000) ;
-% (_special_signal_/1000,currenthyperlink/1000,_special_counter_/1000) ;
+ (_special_signal_/_special_div_,_color_counter_/_special_div_,_special_counter_/_special_div_) ;
endgroup ;
enddef ;
@@ -380,14 +398,14 @@ vardef cmyk(expr c,m,y,k) =
if not ok :
save s ; string s ; s := dddecimal (c,m,y) & " " & decimal k ;
_cmyk_counter_ := _cmyk_counter_ + 1 ;
- cmykcolorpattern[_cmyk_counter_/1000] := s ;
+ cmykcolorpattern[_cmyk_counter_/_special_div_] := s ;
cmykcolorhash[c][m][y][k] := _cmyk_counter_ ;
flush_special(1, 7, decimal _cmyk_counter_ & " " & s) ;
_local_specials_ := _local_specials_ &
" cmykcolorhash[" & decimal c & "][" & decimal m &
"][" & decimal y & "][" & decimal k & "] := -1 ; " ;
fi ;
- (_special_signal_/1000,1/1000,cmykcolorhash[c][m][y][k]/1000)
+ (_special_signal_/_special_div_,1/_special_div_,cmykcolorhash[c][m][y][k]/_special_div_)
else :
(1-c-k,1-m-k,1-y-k)
fi
@@ -414,68 +432,6 @@ resetspotcolors ; boolean spotcolors ; spotcolors := false ; % true
string spotcolorpattern[] ; % needed for transparancies
-% vardef spotcolor(expr p, s) =
-% if spotcolors :
-% save ok, pc_tag ; boolean ok ; string pc_tag ;
-% pc_tag := "_pct_"&p ;
-% if not unstringed(pc_tag) :
-% _spotcolor_number_ := _spotcolor_number_ + 1 ;
-% setunstringed(pc_tag,_spotcolor_number_) ;
-% fi ;
-% pp := getunstringed(pc_tag) ;
-% if unknown spotcolorhash[pp][s] :
-% ok := false ; % not yet defined
-% elseif spotcolorhash[pp][s] = -1 :
-% ok := false ; % locally defined and undefined
-% else :
-% ok := true ; % globally already defined
-% fi ;
-% if not ok :
-% save ss ; string ss ; ss := p & " " & decimal s ;
-% _spotcolor_counter_ := _spotcolor_counter_ + 1 ;
-% spotcolorpattern[_spotcolor_counter_/1000] := ss ;
-% spotcolorhash[pp][s] := _spotcolor_counter_ ;
-% flush_special(2, 5, decimal _spotcolor_counter_ & " " & ss) ;
-% _local_specials_ := _local_specials_ &
-% "spotcolorhash["&decimal pp&"]["&decimal s&"]:=-1;" ;
-% fi ;
-% (_special_signal_/1000,2/1000,spotcolorhash[pp][s]/1000)
-% else :
-% (1-s,1-s,1-s)
-% fi
-% enddef ;
-
-% vardef spotcolor(expr p, s) =
-% if spotcolors :
-% save ok, pc_tag ; boolean ok ; string pc_tag ;
-% pc_tag := "_pct_"&p ;
-% if not unstringed(pc_tag) :
-% _spotcolor_number_ := _spotcolor_number_ + 1 ;
-% setunstringed(pc_tag,_spotcolor_number_) ;
-% fi ;
-% pp := getunstringed(pc_tag) ;
-% if unknown spotcolorhash[pp][s] :
-% ok := false ; % not yet defined
-% elseif spotcolorhash[pp][s] = -1 :
-% ok := false ; % locally defined and undefined
-% else :
-% ok := true ; % globally already defined
-% fi ;
-% if not ok :
-% save ss ; string ss ; ss := p & " " & decimal s ;
-% _spotcolor_counter_ := _spotcolor_counter_ + 1 ;
-% spotcolorpattern[_spotcolor_counter_/1000] := ss ;
-% spotcolorhash[pp][s] := _spotcolor_counter_ ;
-% flush_special(2, 5, decimal _spotcolor_counter_ & " " & ss) ;
-% _local_specials_ := _local_specials_ &
-% "spotcolorhash["&decimal pp&"]["&decimal s&"]:=-1;" ;
-% fi ;
-% (_special_signal_/1000,2/1000,spotcolorhash[pp][s]/1000)
-% else :
-% (1-s,1-s,1-s)
-% fi
-% enddef ;
-
vardef spotcolor(expr p, s) =
multitonecolor(p, 1, "", decimal s)
enddef ;
@@ -505,13 +461,13 @@ vardef multitonecolor(expr n, f, d, p) = % name fractions names factors
if not ok :
save ss ; string ss ; ss := n & " " & decimal f & " " & if d = "" : n else : d fi & " " & p ;
_spotcolor_counter_ := _spotcolor_counter_ + 1 ;
- spotcolorpattern[_spotcolor_counter_/1000] := ss ;
+ spotcolorpattern[_spotcolor_counter_/_special_div_] := ss ;
spotcolorhash[pp][ps] := _spotcolor_counter_ ;
flush_special(2, 7, decimal _spotcolor_counter_ & " " & ss) ;
_local_specials_ := _local_specials_ &
"spotcolorhash["&decimal pp&"]["&decimal ps&"]:=-1;" ;
fi ;
- (_special_signal_/1000,2/1000,spotcolorhash[pp][ps]/1000)
+ (_special_signal_/_special_div_,2/_special_div_,spotcolorhash[pp][ps]/_special_div_)
else :
.5white
fi
@@ -529,64 +485,7 @@ differencetransparent := 11 ; exclusiontransparent := 12 ;
% nottransparent := 0 ;
% compatibletransparent := 99 ;
-% fill fullcircle scaled 10cm withcolor transparant(.8,3,color) ;
-
-% vardef transparent(expr n, t, c) =
-% save s, ss, nn, cc, is_cmyk, is_spot, ok ;
-% string s, ss ; numeric nn ; color cc ; boolean is_cmyk, is_spot, ok ;
-% % transparancy type
-% if string n :
-% if expandafter known scantokens(n&"transparent") :
-% nn := scantokens(n&"transparent") ;
-% else :
-% nn := 0 ;
-% fi
-% else : % nn := min(n,13)
-% nn := if n<13 : n else : nn := 0 fi ;
-% fi ;
-% % we need to expand the color (can be cmyk(..) or predefined)
-% cc := c ; % expand color
-% % check for cmyk special
-% is_cmyk := (redpart cc = _special_signal_/1000)
-% and (greenpart cc = 1/1000) ;
-% is_spot := (redpart cc = _special_signal_/1000)
-% and (greenpart cc = 2/1000) ;
-% % build special string, fetch cmyk components
-% s := decimal nn & " " & decimal t & " " &
-% if is_cmyk : cmykcolorpattern[bluepart cc]
-% elseif is_spot : spotcolorpattern[bluepart cc]
-% else : dddecimal cc fi ;
-% % check if this one is already used
-% ss := "tr_" & s ;
-% % efficiency hack
-% if expandafter unknown scantokens(ss) :
-% ok := false ; % not yet defined
-% elseif scantokens(ss) < 0 :
-% ok := false ; % locally defined and undefined
-% else :
-% ok := true ; % globally already defined
-% fi ;
-% if not ok :
-% if is_spot :
-% flush_special(5, 6, s) ;
-% elseif is_cmyk :
-% flush_special(4, 8, s) ;
-% else :
-% flush_special(3, 7, s) ;
-% fi ;
-% scantokens(ss) := _special_counter_ ;
-% _local_specials_ := _local_specials_ &
-% "scantokens(" & ditto & ss & ditto & ") := -1 ;" ;
-% fi ;
-% % go ahead
-% if is_spot :
-% (_special_signal_/1000,5/1000,scantokens(ss)/1000)
-% elseif is_cmyk :
-% (_special_signal_/1000,4/1000,scantokens(ss)/1000)
-% else :
-% (_special_signal_/1000,3/1000,scantokens(ss)/1000)
-% fi
-% enddef ;
+% fill fullcircle scaled 10cm withcolor transparant(8,.3,red) ;
vardef transparent(expr n, t, c) =
save s, ss, nn, cc, is_cmyk, is_spot, ok ;
@@ -604,10 +503,10 @@ vardef transparent(expr n, t, c) =
% we need to expand the color (can be cmyk(..) or predefined)
cc := c ; % expand color
% check for cmyk special
- is_cmyk := (redpart cc = _special_signal_/1000)
- and (greenpart cc = 1/1000) ;
- is_spot := (redpart cc = _special_signal_/1000)
- and (greenpart cc = 2/1000) ;
+ is_cmyk := (redpart cc = _special_signal_/_special_div_)
+ and (greenpart cc = 1/_special_div_) ;
+ is_spot := (redpart cc = _special_signal_/_special_div_)
+ and (greenpart cc = 2/_special_div_) ;
% build special string, fetch cmyk components
s := decimal nn & " " & decimal t & " " &
if is_cmyk : cmykcolorpattern[bluepart cc]
@@ -642,11 +541,11 @@ vardef transparent(expr n, t, c) =
fi ;
% go ahead
if is_spot :
- (_special_signal_/1000,5/1000,scantokens(ss)/1000)
+ (_special_signal_/_special_div_,5/_special_div_,scantokens(ss)/_special_div_)
elseif is_cmyk :
- (_special_signal_/1000,4/1000,scantokens(ss)/1000)
+ (_special_signal_/_special_div_,4/_special_div_,scantokens(ss)/_special_div_)
else :
- (_special_signal_/1000,3/1000,scantokens(ss)/1000)
+ (_special_signal_/_special_div_,3/_special_div_,scantokens(ss)/_special_div_)
fi
enddef ;
@@ -712,7 +611,7 @@ endinput ;
% vardef normalgray(expr s ) = (s,s,s) enddef ;
% vardef normalrgb (expr r,g,b ) = (r,g,b) enddef ;
-% vardef normalcmyk(expr c,m,y,k) = if cmykcolors : save ok ; boolean ok ; if unknown cmykcolorhash[c][m][y][k] : ok := false ; elseif cmykcolorhash[c][m][y][k] = -1 : ok := false ; else : ok := true ; fi ; if not ok : save s ; string s ; s := dddecimal (c,m,y) & " " & decimal k ; _cmyk_counter_ := _cmyk_counter_ + 1 ; cmykcolorpattern[_cmyk_counter_/1000] := s ; cmykcolorhash[c][m][y][k] := _cmyk_counter_ ; flush_special(1, 7, decimal _cmyk_counter_ & " " & s) ; _local_specials_ := _local_specials_ & " cmykcolorhash[" & decimal c & "][" & decimal m & "][" & decimal y & "][" & decimal k & "] := -1 ; " ; fi ; (_special_signal_/1000,1/1000,cmykcolorhash[c][m][y][k]/1000) else : (1-c-k,1-m-k,1-y-k) fi enddef ;
+% vardef normalcmyk(expr c,m,y,k) = if cmykcolors : save ok ; boolean ok ; if unknown cmykcolorhash[c][m][y][k] : ok := false ; elseif cmykcolorhash[c][m][y][k] = -1 : ok := false ; else : ok := true ; fi ; if not ok : save s ; string s ; s := dddecimal (c,m,y) & " " & decimal k ; _cmyk_counter_ := _cmyk_counter_ + 1 ; cmykcolorpattern[_cmyk_counter_/_special_div_] := s ; cmykcolorhash[c][m][y][k] := _cmyk_counter_ ; flush_special(1, 7, decimal _cmyk_counter_ & " " & s) ; _local_specials_ := _local_specials_ & " cmykcolorhash[" & decimal c & "][" & decimal m & "][" & decimal y & "][" & decimal k & "] := -1 ; " ; fi ; (_special_signal_/_special_div_,1/_special_div_,cmykcolorhash[c][m][y][k]/_special_div_) else : (1-c-k,1-m-k,1-y-k) fi enddef ;
% vardef gray(expr s) = normalgray(s ) enddef ;
% vardef rgb (expr r,g,b) = normalrgb (r,g,b ) enddef ;
diff --git a/Master/texmf-dist/metapost/context/base/mp-tool.mp b/Master/texmf-dist/metapost/context/base/mp-tool.mp
index 925b9ca4449..3b52b9d5d47 100644
--- a/Master/texmf-dist/metapost/context/base/mp-tool.mp
+++ b/Master/texmf-dist/metapost/context/base/mp-tool.mp
@@ -994,6 +994,7 @@ enddef ;
vardef arrowheadonpath (expr p, s) =
save autoarrows ; boolean autoarrows ; autoarrows := true ;
+ set_ahlength(scaled ahfactor) ; % added
arrowhead p if s<1 : cutafter (point (s*arclength(p)+.5ahlength) on p) fi
enddef ;
@@ -1174,7 +1175,10 @@ boolean autoarrows ; autoarrows := false ;
numeric ahfactor ; ahfactor := 2.5 ;
def set_ahlength (text t) =
- ahlength := (ahfactor*pen_size(_op_ t)) ; % _op_ added
+% ahlength := (ahfactor*pen_size(_op_ t)) ; % _op_ added
+% problem: _op_ can contain color so a no-go, we could apply the transform
+% but i need to figure out the best way (fakepicture and take components).
+ ahlength := (ahfactor*pen_size(t)) ;
enddef ;
vardef pen_size (text t) =
@@ -1204,7 +1208,6 @@ enddef ;
vardef pointarrow (expr pat, loc, len, off) =
save l, r, s, t ; path l, r ; numeric s ; pair t ;
t := if pair loc : loc else : point loc along pat fi ;
-% draw t withpen pencircle scaled 10 withcolor .5white ;
s := len/2 - off ; if s<=0 : s := 0 elseif s>len : s := len fi ;
r := pat cutbefore t ;
r := (r cutafter point (arctime s of r) of r) ;
@@ -2361,6 +2364,12 @@ vardef c_phantom (expr b) (text t) =
fi ;
enddef ;
+% mark paths (for external progs to split)
+
+% def somepath(expr p)
+% p
+% enddef ;
+
% done
endinput ;
diff --git a/Master/texmf-dist/metapost/context/base/mp-txts.mp b/Master/texmf-dist/metapost/context/base/mp-txts.mp
new file mode 100644
index 00000000000..f208c714900
--- /dev/null
+++ b/Master/texmf-dist/metapost/context/base/mp-txts.mp
@@ -0,0 +1,67 @@
+%D \module
+%D [ file=mp-txts.mp,
+%D version=2006.06.08,
+%D title=\CONTEXT\ \METAPOST\ graphics,
+%D subtitle=more text 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 licen-en.pdf for
+%C details.
+
+if unknown context_tool : input mp-tool ; fi ;
+if known context_txts : endinput ; fi ;
+
+boolean context_txts ; context_txts := true ;
+
+%D The real code:
+
+string txtfile ; txtfile := "" ;
+string txtfont ; txtfont := defaultfont ;
+string txtpref ; txtpref := "00001::::" ;
+numeric txtnext ; txtnext := 0 ;
+numeric txtdepth ; txtdepth := 0 ;
+
+vardef nexttxt =
+ txtnext := txtnext + 1 ;
+ txtnext
+enddef ;
+
+picture savedtxts[] ;
+numeric depthtxts[] ;
+
+vardef zerofilled(expr fd) =
+ if fd<10: "0000" else :
+ if fd<100: "000" else :
+ if fd<1000: "00" else :
+ if fd<10000: "0" else :
+ fi fi fi fi & decimal fd
+enddef;
+
+vardef savetxt(expr n,w,h,d) text t =
+ depthtxts[n] := d ;
+ savedtxts[n] := ((txtpref & zerofilled(n)) infont txtfont) xysized(w,h+d) t
+enddef ;
+
+vardef sometxt(expr n) =
+ if known savedtxts[n] :
+ txtdepth := depthtxts[n] ; savedtxts[n]
+ else :
+ txtdepth := 0 ; nullpicture
+ fi
+enddef ;
+
+def loadtxts =
+ if txtfile <> "" :
+ readfile(txtfile) ;
+ fi ;
+enddef ;
+
+def StartTexts =
+ loadtxts ;
+enddef ;
+
+def StopTexts =
+enddef ;
diff --git a/Master/texmf-dist/scripts/context/lua/scite-ctx.lua b/Master/texmf-dist/scripts/context/lua/scite-ctx.lua
new file mode 100644
index 00000000000..5836bcbfb71
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/lua/scite-ctx.lua
@@ -0,0 +1,925 @@
+-- version : 1.0.0 - 07/2005
+-- author : Hans Hagen - PRAGMA ADE - www.pragma-ade.com
+-- copyright : public domain or whatever suits
+-- remark : part of the context distribution
+
+-- todo: name space for local functions
+
+-- loading: scite-ctx.properties
+
+-- # environment variable
+-- #
+-- # CTXSPELLPATH=t:/spell
+-- #
+-- # auto language detection
+-- #
+-- # % version =1.0 language=uk
+-- # <?xml version='1.0' language='uk' ?>
+
+-- ext.lua.startup.script=$(SciteDefaultHome)/scite-ctx.lua
+--
+-- # extension.$(file.patterns.context)=scite-ctx.lua
+-- # extension.$(file.patterns.example)=scite-ctx.lua
+--
+-- # ext.lua.reset=1
+-- # ext.lua.auto.reload=1
+-- # ext.lua.startup.script=t:/lua/scite-ctx.lua
+--
+-- ctx.menulist.default=\
+-- wrap=wrap_text|\
+-- unwrap=unwrap_text|\
+-- sort=sort_text|\
+-- document=document_text|\
+-- quote=quote_text|\
+-- compound=compound_text|\
+-- check=check_text
+--
+-- ctx.spellcheck.language=auto
+-- ctx.spellcheck.wordsize=4
+-- ctx.spellcheck.wordpath=ENV(CTXSPELLPATH)
+--
+-- ctx.spellcheck.wordfile.all=spell-uk.txt,spell-nl.txt
+--
+-- ctx.spellcheck.wordfile.uk=spell-uk.txt
+-- ctx.spellcheck.wordfile.nl=spell-nl.txt
+-- ctx.spellcheck.wordsize.uk=4
+-- ctx.spellcheck.wordsize.nl=4
+--
+-- command.name.21.*=CTX Action List
+-- command.subsystem.21.*=3
+-- command.21.*=show_menu $(ctx.menulist.default)
+-- command.groupundo.21.*=yes
+-- command.shortcut.21.*=Shift+F11
+--
+-- command.name.22.*=CTX Check Text
+-- command.subsystem.22.*=3
+-- command.22.*=check_text
+-- command.groupundo.22.*=yes
+-- command.shortcut.22.*=Ctrl+L
+--
+-- command.name.23.*=CTX Wrap Text
+-- command.subsystem.23.*=3
+-- command.23.*=wrap_text
+-- command.groupundo.23.*=yes
+-- command.shortcut.23.*=Ctrl+M
+--
+-- # command.21.*=check_text
+-- # command.21.*=dofile e:\context\lua\scite-ctx.lua
+
+-- generic functions
+
+local crlf = "\n"
+
+function traceln(str)
+ trace(str .. crlf)
+ io.flush()
+end
+
+table.len = table.getn
+table.join = table.concat
+
+function table.found(tab, str)
+ local l, r, p
+ if string.len(str) == 0 then
+ return false
+ else
+ l, r = 1, table.len(tab)
+ while l <= r do
+ p = math.floor((l+r)/2)
+ if str < tab[p] then
+ r = p - 1
+ elseif str > tab[p] then
+ l = p + 1
+ else
+ return true
+ end
+ end
+ return false
+ end
+end
+
+function string.grab(str, delimiter)
+ local list = {}
+ for snippet in string.gfind(str,delimiter) do
+ table.insert(list, snippet)
+ end
+ return list
+end
+
+function string.join(list, delimiter)
+ local size, str = table.len(list), ''
+ if size > 0 then
+ str = list[1]
+ for i = 2, size, 1 do
+ str = str .. delimiter .. list[i]
+ end
+ end
+ return str
+end
+
+function string.spacy(str)
+ if string.find(str,"^%s*$") then
+ return true
+ else
+ return false
+ end
+end
+
+function string.alphacmp(a,b,i) -- slow but ok
+ if i and i > 0 then
+ return string.lower(string.gsub(string.sub(a,i),'0',' ')) < string.lower(string.gsub(string.sub(b,i),'0',' '))
+ else
+ return string.lower(a) < string.lower(b)
+ end
+end
+
+function table.alphasort(list,i)
+ table.sort(list, function(a,b) return string.alphacmp(a,b,i) end)
+end
+
+function io.exists(filename)
+ local ok, result, message = pcall(io.open,filename)
+ if result then
+ io.close(result)
+ return true
+ else
+ return false
+ end
+end
+
+function os.envvar(str)
+ if os.getenv(str) ~= '' then
+ return os.getenv(str)
+ elseif os.getenv(string.upper(str)) ~= '' then
+ return os.getenv(string.upper(str))
+ elseif os.getenv(string.lower(str)) ~= '' then
+ return os.getenv(string.lower(str))
+ else
+ return ''
+ end
+end
+
+function string.expand(str)
+ return string.gsub(str, "ENV%((%w+)%)", os.envvar)
+end
+
+function string.strip(str)
+ return string.gsub(string.gsub(str,"^%s+",''),"%s+$",'')
+end
+
+function string.replace(original,pattern,replacement)
+ local str = string.gsub(original,pattern,replacement)
+-- print(str) -- indirect, since else str + nofsubs
+ return str -- indirect, since else str + nofsubs
+end
+
+-- support functions, maybe editor namespace
+
+-- function column_of_position(position)
+-- local line = editor:LineFromPosition(position)
+-- local oldposition = editor.CurrentPos
+-- local column = 0
+-- editor:GotoPos(position)
+-- while editor.CurrentPos ~= 0 and line == editor:LineFromPosition(editor.CurrentPos) do
+-- editor:CharLeft()
+-- column = column + 1
+-- end
+-- editor:GotoPos(oldposition)
+-- if line > 0 then
+-- return column -1
+-- else
+-- return column
+-- end
+-- end
+
+-- function line_of_position(position)
+-- return editor:LineFromPosition(position)
+-- end
+
+function extend_to_start()
+ local selectionstart = editor.SelectionStart
+ local selectionend = editor.SelectionEnd
+ local line = editor:LineFromPosition(selectionstart)
+ if line > 0 then
+ while line == editor:LineFromPosition(selectionstart-1) do
+ selectionstart = selectionstart - 1
+ editor:SetSel(selectionstart,selectionend)
+ end
+ else
+ selectionstart = 0
+ end
+ editor:SetSel(selectionstart,selectionend)
+ return selectionstart
+end
+
+function extend_to_end() -- editor:LineEndExtend() does not work
+ local selectionstart = editor.SelectionStart
+ local selectionend = editor.SelectionEnd
+ local line = editor:LineFromPosition(selectionend)
+ while line == editor:LineFromPosition(selectionend+1) do
+ selectionend = selectionend + 1
+ editor:SetSel(selectionstart,selectionend)
+ end
+ editor:SetSel(selectionstart,selectionend)
+ return selectionend
+end
+
+function getfiletype()
+ local firstline = editor:GetLine(0)
+ if editor.Lexer == SCLEX_TEX then
+ return 'tex'
+ elseif editor.Lexer == SCLEX_XML then
+ return 'xml'
+ elseif string.find(firstline,"^%%") then
+ return 'tex'
+ elseif string.find(firstline,"^<%?xml") then
+ return 'xml'
+ else
+ return 'unknown'
+ end
+end
+
+-- inspired by LuaExt's scite_Files
+
+function get_dir_list(mask)
+ local f
+ if props['PLAT_GTK'] and props['PLAT_GTK'] ~= "" then
+ f = io.popen('ls -1 ' .. mask)
+ else
+ mask = string.gsub(mask, '/','\\')
+ local tmpfile = 'scite-ctx.tmp'
+ local cmd = 'dir /b "' .. mask .. '" > ' .. tmpfile
+ os.execute(cmd)
+ f = io.open(tmpfile)
+ end
+ local files = {}
+ if not f then -- path check added
+ return files
+ end
+ for line in f:lines() do
+ table.insert(files, line)
+ end
+ f:close()
+ return files
+end
+
+-- banner
+
+print("loading scite-ctx.lua definition file")
+print("")
+print("- see scite-ctx.properties for configuring info")
+print("")
+print("- ctx.spellcheck.wordpath set to " .. props['ctx.spellcheck.wordpath'])
+if string.find(string.lower(props['ctx.spellcheck.wordpath']), "ctxspellpath") then
+ if os.getenv('ctxspellpath') then
+ print("- ctxspellpath set to " .. os.getenv('CTXSPELLPATH'))
+ else
+ print("- 'ctxspellpath is not set")
+ end
+ print("- ctx.spellcheck.wordpath expands to " .. string.expand(props['ctx.spellcheck.wordpath']))
+end
+print("")
+print("- ctx.wraptext.length is set to " .. props['ctx.wraptext.length'])
+if props['ctx.helpinfo'] ~= '' then
+ print("- key bindings:")
+ print("")
+ print(string.replace(string.strip(props['ctx.helpinfo']),"%s*\|%s*","\n")) -- indirect, since else str + nofsubs
+end
+print("")
+print("- recognized first lines:")
+print("")
+print("xml <?xml version='1.0' language='nl'")
+print("tex % language=nl")
+
+
+-- text functions
+
+-- written while listening to Talk Talk
+
+local magicstring = string.rep("<ctx-crlf/>", 2)
+
+function wrap_text()
+
+ -- We always go to the end of a line, so in fact some of
+ -- the variables set next are not needed.
+
+ local length = props["ctx.wraptext.length"]
+
+ if length == '' then length = 80 else length = tonumber(length) end
+
+ local startposition = editor.SelectionStart
+ local endposition = editor.SelectionEnd
+
+ if startposition == endposition then return end
+
+ editor:LineEndExtend()
+
+ startposition = editor.SelectionStart
+ endposition = editor.SelectionEnd
+
+ -- local startline = line_of_position(startposition)
+ -- local endline = line_of_position(endposition)
+ -- local startcolumn = column_of_position(startposition)
+ -- local endcolumn = column_of_position(endposition)
+ --
+ -- editor:SetSel(startposition,endposition)
+
+ local startline = props['SelectionStartLine']
+ local endline = props['SelectionEndLine']
+ local startcolumn = props['SelectionStartColumn'] - 1
+ local endcolumn = props['SelectionEndColumn'] - 1
+
+ local indentation = string.rep(' ', startcolumn)
+-- local selection = string.gsub(editor:GetSelText(),"[\n\r][\n\r]+", ' ' .. magicstring .. ' ')
+ local selection = string.gsub(editor:GetSelText(),"[\n\r][\n\r]", "\n")
+ local selection = string.gsub(selection,"\n\n+", ' ' .. magicstring .. ' ')
+ local replacement = ''
+ local templine = ''
+
+ selection = string.gsub(selection,"^%s", '')
+
+ for snippet in string.gfind(selection, "%S+") do
+ if snippet == magicstring then
+ replacement = replacement .. templine .. "\n\n"
+ templine = ''
+ elseif string.len(templine) + string.len(snippet) > length then
+ replacement = replacement .. templine .. "\n"
+ templine = indentation .. snippet
+ elseif string.len(templine) == 0 then
+ templine = indentation .. snippet
+ else
+ templine = templine .. ' ' .. snippet
+ end
+ end
+
+ replacement = replacement .. templine
+ replacement = string.gsub(replacement, "^%s+", '')
+
+ if endcolumn == 0 then
+ replacement = replacement .. "\n"
+ end
+
+ editor:ReplaceSel(replacement)
+
+end
+
+function unwrap_text()
+
+ local startposition = editor.SelectionStart
+ local endposition = editor.SelectionEnd
+
+ if startposition == endposition then return end
+
+ editor:HomeExtend()
+ editor:LineEndExtend()
+
+ startposition = editor.SelectionStart
+ endposition = editor.SelectionEnd
+
+ local magicstring = string.rep("<multiplelines/>", 2)
+ local selection = string.gsub(editor:GetSelText(),"[\n\r][\n\r]+", ' ' .. magicstring .. ' ')
+ local replacement = ''
+
+ for snippet in string.gfind(selection, "%S+") do
+ if snippet == magicstring then
+ replacement = replacement .. "\n"
+ else
+ replacement = replacement .. snippet .. "\n"
+ end
+ end
+
+ if endcolumn == 0 then replacement = replacement .. "\n" end
+
+ editor:ReplaceSel(replacement)
+
+end
+
+function sort_text()
+
+ local startposition = editor.SelectionStart
+ local endposition = editor.SelectionEnd
+
+ if startposition == endposition then return end
+
+ -- local startcolumn = column_of_position(startposition)
+ -- local endcolumn = column_of_position(endposition)
+ --
+ -- editor:SetSel(startposition,endposition)
+
+ local startline = props['SelectionStartLine']
+ local endline = props['SelectionEndLine']
+ local startcolumn = props['SelectionStartColumn'] - 1
+ local endcolumn = props['SelectionEndColumn'] - 1
+
+ startposition = extend_to_start()
+ endposition = extend_to_end()
+
+ local selection = string.gsub(editor:GetSelText(), "%s*$", '')
+
+ list = string.grab(selection,"[^\n\r]+")
+ table.alphasort(list, startcolumn)
+ local replacement = table.concat(list, "\n")
+
+ editor:GotoPos(startposition)
+ editor:SetSel(startposition,endposition)
+
+ if endcolumn == 0 then replacement = replacement .. "\n" end
+
+ editor:ReplaceSel(replacement)
+
+end
+
+function document_text()
+
+ local startposition = editor.SelectionStart
+ local endposition = editor.SelectionEnd
+
+ if startposition == endposition then return end
+
+ startposition = extend_to_start()
+ endposition = extend_to_end()
+
+ editor:SetSel(startposition,endposition)
+
+ local filetype = getfiletype()
+
+ local replacement = ''
+ for i = editor:LineFromPosition(startposition), editor:LineFromPosition(endposition) do
+ local str = editor:GetLine(i)
+ if filetype == 'xml' then
+ if string.find(str,"^<%!%-%- .* %-%->%s*$") then
+ replacement = replacement .. string.gsub(str,"^<%!%-%- (.*) %-%->(%s*)$", "%1\n")
+ elseif not string.spacy(str) then
+ replacement = replacement .. '<!-- ' .. string.gsub(str,"(%s*)$", '') .. " -->\n"
+ else
+ replacement = replacement .. str
+ end
+ else
+ if string.find(str,"^%%D%s+$") then
+ replacement = replacement .. "\n"
+ elseif string.find(str,"^%%D ") then
+ replacement = replacement .. string.gsub(str,"^%%D ", '')
+ else
+ replacement = replacement .. '%D ' .. str
+ end
+ end
+ end
+
+ editor:ReplaceSel(string.gsub(replacement, "[\n\r]$", ''))
+
+end
+
+function quote_text()
+
+ local filetype, leftquotation, rightquotation = getfiletype(), '', ''
+
+ if filetype == 'xml' then
+ leftquotation, rightquotation = "<quotation>", "</quotation>"
+ leftquote, rightquote = "<quotation>", "</quote>"
+ else
+ leftquotation, rightquotation = "\\quotation {", "}"
+ leftquote, rightquote = "\\quote {", "}"
+ end
+
+ local replacement = editor:GetSelText()
+ replacement = string.gsub(replacement, "\`\`(.-)\'\'", leftquotation .. "%1" .. rightquotation)
+ replacement = string.gsub(replacement, "\"(.-)\"", leftquotation .. "%1" .. rightquotation)
+ replacement = string.gsub(replacement, "\`(.-)\'", leftquote .. "%1" .. rightquote )
+ replacement = string.gsub(replacement, "\'(.-)\'", leftquote .. "%1" .. rightquote )
+ editor:ReplaceSel(replacement)
+
+end
+
+function compound_text()
+
+ local filetype = getfiletype()
+
+ if filetype == 'xml' then
+ editor:ReplaceSel(string.gsub(editor:GetSelText(),"(>[^<%-][^<%-]+)([-\/])(%w%w+)","%1<compound token='%2'/>%3"))
+ else
+ editor:ReplaceSel(string.gsub(editor:GetSelText(),"([^\|])([-\/]+)([^\|])","%1|%2|%3"))
+ end
+
+end
+
+-- written while listening to Alanis Morissette's acoustic
+-- Jagged Little Pill and Tori Amos' Beekeeper after
+-- reinstalling on my good old ATH-7
+
+local language = props["ctx.spellcheck.language"]
+local wordsize = props["ctx.spellcheck.wordsize"]
+local wordpath = props["ctx.spellcheck.wordpath"]
+
+if language == '' then language = 'uk' end
+if wordsize == '' then wordsize = 4 else wordsize = tonumber(wordsize) end
+
+local wordfile = ""
+local wordlist = {}
+local worddone = 0
+
+-- we use wordlist as a hash so that we can add entries without the
+-- need to sort and also use a fast (built in) search
+
+-- function kpsewhich_file(filename,filetype,progname)
+-- local progflag, typeflag = '', ''
+-- local tempname = os.tmpname()
+-- if progname then
+-- progflag = " --progname=" .. progname .. " "
+-- end
+-- if filetype then
+-- typeflag = " --format=" .. filetype .. " "
+-- end
+-- local command = "kpsewhich" .. progflag .. typeflag .. " " .. filename .. " > " .. tempname
+-- os.execute(command)
+-- for line in io.lines(tempname) do
+-- return string.gsub(line, "\s*$", '')
+-- end
+-- end
+
+function check_text()
+
+ local dlanguage = props["ctx.spellcheck.language"]
+ local dwordsize = props["ctx.spellcheck.wordsize"]
+ local dwordpath = props["ctx.spellcheck.wordpath"]
+
+ if dlanguage ~= '' then dlanguage = tostring(language) end
+ if dwordsize ~= '' then dwordsize = tonumber(wordsize) end
+
+ local firstline, skipfirst = editor:GetLine(0), false
+ local filetype, wordskip, wordgood = getfiletype(), '', ''
+
+ if filetype == 'tex' then
+ wordskip = "\\"
+ elseif filetype == 'xml' then
+ wordskip = "<"
+ wordgood = ">"
+ end
+
+ if props["ctx.spellcheck.language"] == 'auto' then
+ if filetype == 'tex' then
+ -- % version =1.0 language=uk
+ firstline = string.gsub(firstline, "^%%%s*", '')
+ firstline = string.gsub(firstline, "%s*$", '')
+ for key, val in string.gfind(firstline,"(%w+)=(%w+)") do
+ if key == "language" then
+ language = val
+ traceln("auto document language " .. "'" .. language .. "' (tex)")
+ end
+ end
+ skipfirst = true
+ elseif filetype == 'xml' then
+ -- <?xml version='1.0' language='uk' ?>
+ firstline = string.gsub(firstline, "^%<%?xml%s*", '')
+ firstline = string.gsub(firstline, "%s*%?%>%s*$", '')
+ for key, val in string.gfind(firstline,"(%w+)=[\"\'](.-)[\"\']") do
+ if key == "language" then
+ language = val
+ traceln("auto document language " .. "'" .. language .. "' (xml)")
+ end
+ end
+ skipfirst = true
+ end
+ end
+
+ local fname = props["ctx.spellcheck.wordfile." .. language]
+ local fsize = props["ctx.spellcheck.wordsize." .. language]
+
+ if fsize ~= '' then wordsize = tonumber(fsize) end
+
+ if fname ~= '' and fname ~= wordfile then
+ wordfile, worddone, wordlist = fname, 0, {}
+ for filename in string.gfind(wordfile,"[^%,]+") do
+ if wordpath ~= '' then
+ filename = string.expand(wordpath) .. '/' .. filename
+ end
+ if io.exists(filename) then
+ traceln("loading " .. filename)
+ for line in io.lines(filename) do
+ if not string.find(line,"^[\%\#\-]") then
+ str = string.gsub(line,"%s*$", '')
+ rawset(wordlist,str,true) -- table.insert(wordlist,str)
+ worddone = worddone + 1
+ end
+ end
+ else
+ traceln("unknown file '" .. filename .."'")
+ end
+ end
+ traceln(worddone .. " words loaded")
+ end
+
+ reset_text()
+
+ if worddone == 0 then
+ traceln("no (valid) language or wordfile specified")
+ else
+ traceln("start checking")
+ if wordskip ~= '' then
+ traceln("ignoring " .. wordskip .. "..." .. wordgood)
+ end
+ local i, j, lastpos, startpos, endpos, snippet, len, first = 0, 0, -1, 0, 0, '', 0, 0
+ local ok, skip, ch = false, false, ''
+ if skipfirst then first = string.len(firstline) end
+ for k = first, editor.TextLength do
+ ch = editor:textrange(k,k+1)
+ if wordgood ~= '' and ch == wordgood then
+ skip = false
+ elseif ch == wordskip then
+ skip = true
+ end
+ if string.find(ch,"%w") and not string.find(ch,"%d") then
+ if not skip then
+ if ok then
+ endpos = k
+ else
+ startpos = k
+ endpos = k
+ ok = true
+ end
+ end
+ elseif ok and not skip then
+ len = endpos - startpos + 1
+ if len >= wordsize then
+ snippet = editor:textrange(startpos,endpos+1)
+ i = i + 1
+ if wordlist[snippet] or wordlist[string.lower(snippet)] then -- table.found(wordlist,snippet)
+ j = j + 1
+ else
+ editor:StartStyling(startpos,INDICS_MASK)
+ editor:SetStyling(len,INDIC2_MASK) -- INDIC0_MASK+2
+ end
+ end
+ ok = false
+ elseif wordgood == '' then
+ skip = (ch == wordskip)
+ end
+ end
+ traceln(i .. " words checked, " .. (i-j) .. " errors")
+ end
+
+end
+
+function reset_text()
+ editor:StartStyling(0,INDICS_MASK)
+ editor:SetStyling(editor.TextLength,INDIC_PLAIN)
+end
+
+-- menu
+
+local menuactions = {}
+local menufunctions = {}
+
+function UserListShow(menutrigger, menulist)
+ local menuentries = {}
+ local list = string.grab(menulist,"[^%|]+")
+ menuactions = {}
+ for i=1, table.len(list) do
+ if list[i] ~= '' then
+ for key, val in string.gfind(list[i],"%s*(.+)=(.+)%s*") do
+ table.insert(menuentries,key)
+ rawset(menuactions,key,val)
+ end
+ end
+ end
+ local menustring = table.join(menuentries,'|')
+ if menustring == "" then
+ traceln("There are no templates defined for this file type.")
+ else
+ editor.AutoCSeparator = string.byte('|')
+ editor:UserListShow(menutrigger,menustring)
+ editor.AutoCSeparator = string.byte(' ')
+ end
+end
+
+function OnUserListSelection(trigger,choice)
+ if menufunctions[trigger] and menuactions[choice] then
+ return menufunctions[trigger](menuactions[choice])
+ else
+ return false
+ end
+end
+
+-- main menu
+
+local menutrigger = 12
+
+function show_menu(menulist)
+ UserListShow(menutrigger, menulist)
+end
+
+function process_menu(action)
+ if not string.find(action,"%(%)$") then
+ assert(loadstring(action .. "()"))()
+ else
+ assert(loadstring(action))()
+ end
+end
+
+menufunctions[12] = process_menu
+
+-- templates
+
+local templatetrigger = 13
+
+-- local ctx_template_paths = { "./ctx-templates", "../ctx-templates", "../../ctx-templates" }
+-- local ctx_auto_templates = false
+-- local ctx_template_list = ""
+-- local ctx_dir_list = { }
+-- local ctx_dir_name = "./ctx-templates"
+
+-- local ctx_path_list = {}
+-- local ctx_path_done = {}
+
+-- function ctx_list_loaded()
+-- return ctx_dir_list and table.getn(ctx_dir_list) > 0
+-- end
+
+-- function insert_template(templatelist)
+-- if props["ctx.template.scan"] == "yes" then
+-- local current = props["FileDir"] .. "+" .. props["FileExt"] -- no name
+-- local rescan = props["ctx.template.rescan"] == "yes"
+-- local suffix = props["ctx.template.suffix."..props["FileExt"]] -- alas, no suffix expansion here
+-- if rescan then
+-- print("re-scanning enabled")
+-- end
+-- if current ~= ctx_file_path then
+-- rescan = true
+-- ctx_file_path = current
+-- ctx_file_done = false
+-- ctx_template_list = ""
+-- end
+-- if not ctx_file_done or rescan then
+-- local pattern = "*.*"
+-- for i, pathname in ipairs(ctx_template_paths) do
+-- print("scanning " .. pathname .. " for " .. pattern)
+-- ctx_dir_name = pathname
+-- ctx_dir_list = get_dir_list(pathname .. "/" .. pattern)
+-- if ctx_list_loaded() then
+-- break
+-- end
+-- end
+-- ctx_file_done = true
+-- end
+-- if ctx_list_loaded() then
+-- ctx_template_list = ""
+-- local pattern = "%." .. suffix .. "$"
+-- for j, filename in ipairs(ctx_dir_list) do
+-- if string.find(filename,pattern) then
+-- local menuname = string.gsub(filename,"%..-$","")
+-- if ctx_template_list ~= "" then
+-- ctx_template_list = ctx_template_list .. "|"
+-- end
+-- ctx_template_list = ctx_template_list .. menuname .. "=" .. ctx_dir_name .. "/" .. filename
+-- end
+-- end
+-- else
+-- print("no template files found")
+-- end
+-- if ctx_template_list == "" then
+-- ctx_auto_templates = false
+-- print("no file related templates found")
+-- else
+-- ctx_auto_templates = true
+-- templatelist = ctx_template_list
+-- end
+-- end
+-- if templatelist ~= "" then
+-- UserListShow(templatetrigger, templatelist)
+-- end
+-- end
+
+local ctx_template_paths = { "./ctx-templates", "../ctx-templates", "../../ctx-templates" }
+local ctx_auto_templates = false
+local ctx_template_list = ""
+
+local ctx_path_list = {}
+local ctx_path_done = {}
+local ctx_path_name = {}
+
+function ctx_list_loaded(path)
+ return ctx_path_list[path] and table.getn(ctx_path_list[path]) > 0
+end
+
+function insert_template(templatelist)
+ if props["ctx.template.scan"] == "yes" then
+ local path = props["FileDir"]
+ local rescan = props["ctx.template.rescan"] == "yes"
+ local suffix = props["ctx.template.suffix." .. props["FileExt"]] -- alas, no suffix expansion here
+ local current = path .. "+" .. props["FileExt"]
+ if rescan then
+ print("re-scanning enabled")
+ end
+ ctx_template_list = ""
+ if not ctx_path_done[path] or rescan then
+ local pattern = "*.*"
+ for i, pathname in ipairs(ctx_template_paths) do
+ print("scanning " .. string.gsub(path,"\\","/") .. "/" .. pathname)
+ ctx_path_name[path] = pathname
+ ctx_path_list[path] = get_dir_list(pathname .. "/" .. pattern)
+ if ctx_list_loaded(path) then
+ print("finished locating template files")
+ break
+ end
+ end
+ if ctx_list_loaded(path) then
+ print(table.getn(ctx_path_list[path]) .. " template files found")
+ else
+ print("no template files found")
+ end
+ end
+ if ctx_list_loaded(path) then
+ ctx_template_list = ""
+ local pattern = "%." .. suffix .. "$"
+ local n = 0
+ for j, filename in ipairs(ctx_path_list[path]) do
+ if string.find(filename,pattern) then
+ n = n + 1
+ local menuname = string.gsub(filename,"%..-$","")
+ if ctx_template_list ~= "" then
+ ctx_template_list = ctx_template_list .. "|"
+ end
+ ctx_template_list = ctx_template_list .. menuname .. "=" .. ctx_path_name[path] .. "/" .. filename
+ end
+ end
+ if not ctx_path_done[path] then
+ print(n .. " suitable template files found")
+ end
+ end
+ ctx_path_done[path] = true
+ if ctx_template_list == "" then
+ ctx_auto_templates = false
+ else
+ ctx_auto_templates = true
+ templatelist = ctx_template_list
+ end
+ else
+ ctx_auto_templates = false
+ end
+ if templatelist ~= "" then
+ UserListShow(templatetrigger, templatelist)
+ end
+end
+
+
+-- ctx.template.[whatever].[filetype]
+-- ctx.template.[whatever].data.[filetype]
+-- ctx.template.[whatever].file.[filetype]
+-- ctx.template.[whatever].list.[filetype]
+
+function process_template_one(action)
+ local text = nil
+ if ctx_auto_templates then
+ local f = io.open(action,"r")
+ if f then
+ text = string.gsub(f:read("*all"),"\n$","")
+ f:close()
+ else
+ print("unable to auto load template file " .. text)
+ text = nil
+ end
+ end
+ if not text or text == "" then
+ text = props["ctx.template." .. action .. ".file"]
+ if not text or text == "" then
+ text = props["ctx.template." .. action .. ".data"]
+ if not text or text == "" then
+ text = props["ctx.template." .. action]
+ end
+ else
+ local f = io.open(text,"r")
+ if f then
+ text = string.gsub(f:read("*all"),"\n$","")
+ f:close()
+ else
+ print("unable to load template file " .. text)
+ text = nil
+ end
+ end
+ end
+ if text then
+ text = string.replace(text,"\\n","\n")
+ local pos = string.find(text,"%?")
+ text = string.replace(text,"%?","")
+ editor:insert(editor.CurrentPos,text)
+ if pos then
+ editor.CurrentPos = editor.CurrentPos + pos - 1
+ editor.SelectionStart = editor.CurrentPos
+ editor.SelectionEnd = editor.CurrentPos
+ editor:GotoPos(editor.CurrentPos)
+ end
+ end
+end
+
+menufunctions[13] = process_template_one
+menufunctions[14] = process_template_two
+
+-- command.name.26.*=Open Logfile
+-- command.subsystem.26.*=3
+-- command.26.*=open_log
+-- command.save.before.26.*=2
+-- command.groupundo.26.*=yes
+-- command.shortcut.26.*=Ctrl+E
+
+function open_log()
+ scite.Open(props['FileName'] .. ".log")
+end
diff --git a/Master/texmf-dist/scripts/context/perl/makempy.pl b/Master/texmf-dist/scripts/context/perl/makempy.pl
index 49fd9bbd21a..f263dd4259d 100644
--- a/Master/texmf-dist/scripts/context/perl/makempy.pl
+++ b/Master/texmf-dist/scripts/context/perl/makempy.pl
@@ -46,8 +46,6 @@ my $format = "plain" ; # can be "context" for plain users too
"force" => \$force ,
"pdftops" => \$pmethod ,
"xpdf" => \$pmethod ,
-# "acrobat" => \$amethod , # nowadays the reader is not that clear about this being permitted
- "reader" => \$amethod ,
"gs" => \$gmethod ,
"ghostscript" => \$gmethod ,
"noclean" => \$noclean ) ;
@@ -202,15 +200,13 @@ sub show_help_info
report ("--force : force processing (ignore checksum)" ) ;
report ("--silent : don't show messages" ) ;
print "\n" ;
- report ("--acrobat : use acrobat (reader) for pdf->ps (on unix)") ;
report ("--pdftops : use pdftops (xpdf) pdf->ps") ;
report ("--ghostscript : use ghostscript (gs) for pdf->ps") ;
print "\n" ;
report ("input file : metapost file with graphics") ;
report ("programs needed : texexec and english context") ;
report (" : pdftops from the xpdf suite, or") ; # page size buggy
- report (" : pdf2ps and ghostscript, or") ;
- report (" : acrobat reader for unix, and") ;
+ report (" : pdf2ps and ghostscript, and") ;
report (" : pstoedit and ghostscript") ;
report ("output file : metapost file with pictures") ;
exit }
diff --git a/Master/texmf-dist/scripts/context/perl/mptopdf.pl b/Master/texmf-dist/scripts/context/perl/mptopdf.pl
index efbc5ba0122..f85c36891b9 100644
--- a/Master/texmf-dist/scripts/context/perl/mptopdf.pl
+++ b/Master/texmf-dist/scripts/context/perl/mptopdf.pl
@@ -5,7 +5,7 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $
#D \module
#D [ file=mptopdf.pl,
-#D version=2005.10.31,
+#D version=2000.05.29,
#D title=converting MP to PDF,
#D subtitle=\MPTOPDF,
#D author=Hans Hagen,
@@ -22,6 +22,7 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $
use Config ;
use Getopt::Long ;
use strict ;
+use File::Basename ;
$Getopt::Long::passthrough = 1 ; # no error message
$Getopt::Long::autoabbrev = 1 ; # partial switch accepted
@@ -36,88 +37,118 @@ my $PassOn = '' ;
"passon" => \$PassOn,
"latex" => \$Latex ) ;
-my $program = "MPtoPDF 1.3" ;
-my $pattern = $ARGV[0] ;
+my $program = "MPtoPDF 1.3.2" ;
+my $pattern = "@ARGV" ; # was $ARGV[0]
+my $miktex = 0 ;
my $done = 0 ;
my $report = '' ;
my $texlatexswitch = " --tex=latex --format=latex " ;
my $mplatexswitch = " --tex=latex " ;
-my $dosish = ($Config{'osname'} =~ /^(ms)?dos|^os\/2|^(ms|cyg)win/i) ;
-my $miktex = ($ENV{"TEXSYSTEM"} =~ /miktex/io);
-my $escapeshell = ( ($ENV{'SHELL'}) && ($ENV{'SHELL'} =~ m/sh/i ));
+my $dosish = ($Config{'osname'} =~/^(ms)?dos|^os\/2|^mswin/i) ;
+my $escapeshell = (($ENV{'SHELL'}) && ($ENV{'SHELL'} =~ m/sh/i ));
+
+if ($ENV{"TEXSYSTEM"}) {
+ $miktex = ($ENV{"TEXSYSTEM"} =~ /miktex/io) ;
+}
my @files ;
my $command = my $mpbin = '' ;
-sub CopyFile # agressive copy, works for open files like in gs
- { my ($From,$To) = @_ ;
- return unless open(INP,"<$From") ; binmode INP ;
- return unless open(OUT,">$To") ; binmode OUT ;
- while (<INP>) { print OUT $_ }
+# agressive copy, works for open files like in gs
+
+sub CopyFile {
+ my ($From,$To) = @_ ;
+ return unless open(INP,"<$From") ;
+ return unless open(OUT,">$To") ;
+ binmode INP ;
+ binmode OUT ;
+ while (<INP>) {
+ print OUT $_ ;
+ }
close (INP) ;
- close (OUT) }
-
-if (($pattern eq '')||($Help))
- { print "\n$program : provide MP output file (or pattern)\n" ;
- exit }
-elsif ($pattern =~ /\.mp$/io)
- { shift @ARGV ; my $rest = join(" ", @ARGV) ;
- if (open(INP,$pattern))
- { while (<INP>)
- { if (/(documentstyle|documentclass|begin\{document\})/io)
- { $Latex = 1 ; last } }
- close (INP) }
- if ($RawMP)
- { if ($Latex)
- { $rest .= " $mplatexswitch" }
+ close (OUT) ;
+}
+
+if (($pattern eq '')||($Help)) {
+ print "\n$program : provide MP output file (or pattern)\n" ;
+ exit ;
+} elsif ($pattern =~ /\.mp$/io) {
+ shift @ARGV ; my $rest = join(" ", @ARGV) ;
+ if (open(INP,$pattern)) {
+ while (<INP>) {
+ if (/(documentstyle|documentclass|begin\{document\})/io) {
+ $Latex = 1 ; last ;
+ }
+ }
+ close (INP) ;
+ }
+ if ($RawMP) {
+ if ($Latex) {
+ $rest .= " $mplatexswitch" ;
+ }
if ($MetaFun) {
- $mpbin = 'mpost --mem=metafun --progname=mpost' ;
+ $mpbin = "mpost --progname=mpost --mem=metafun" ;
} else {
- $mpbin = 'mpost --mem=mpost' ;
+ $mpbin = "mpost --mem=mpost" ;
}
+ } else {
+ if ($Latex) {
+ $rest .= " $texlatexswitch" ;
+ }
+ $mpbin = "texexec --mptex $PassOn" ;
}
- else
- { if ($Latex)
- { $rest .= " $texlatexswitch" }
- $mpbin = 'texexec --mptex $PassOn' }
+ print "\n$program : running '$mpbin'\n" ;
my $error = system ("$mpbin $rest $pattern") ;
- if ($error)
- { print "\n$program : error while processing mp file\n" ; exit }
- else
- { $pattern =~ s/\.mp$//io ;
- @files = glob "$pattern.*" } }
-elsif (-e $pattern)
- { @files = ($pattern) }
-elsif ($pattern =~ /.\../o)
- { @files = glob "$pattern" }
-else
- { $pattern .= '.*' ;
- @files = glob "$pattern" }
-
-foreach my $file (@files)
- { $_ = $file ;
- if (s/\.(\d+|mps)$// && -e $file)
- { if ($miktex)
- { $command = "pdfetex -undump=mptopdf" }
- else
- { $command = "pdfetex --fmt=mptopdf --progname=context" }
- if ($dosish)
- { $command = "$command \\relax $file" }
- else
- { $command = "$command \\\\relax $file" }
- #~ print $command ;
+ if ($error) {
+ print "\n$program : error while processing mp file\n" ;
+ exit ;
+ } else {
+ $pattern =~ s/\.mp$//io ;
+ @files = glob "$pattern.*" ;
+ }
+} elsif (-e $pattern) {
+ @files = ($pattern) ;
+} elsif ($pattern =~ /.\../o) {
+ @files = glob "$pattern" ;
+} else {
+ $pattern .= '.*' ;
+ @files = glob "$pattern" ;
+}
+
+foreach my $file (@files) {
+ $_ = $file ;
+ if (s/\.(\d+|mps)$// && -e $file) {
+ if ($miktex) {
+ $command = "pdfetex -undump=mptopdf" ;
+ } else {
+ $command = "pdfetex -fmt=mptopdf -progname=context" ;
+ }
+ if ($dosish) {
+ $command = "$command \\relax $file" ;
+ } else {
+ $command = "$command \\\\relax $file" ;
+ }
system($command) ;
- rename ("$_.pdf", "$_-$1.pdf") ;
- if (-e "$_.pdf") { CopyFile ("$_.pdf", "$_-$1.pdf") }
- if ($done) { $report .= " +" }
+ my $pdfsrc = basename($_).".pdf";
+ rename ($pdfsrc, "$_-$1.pdf") ;
+ if (-e $pdfsrc) {
+ CopyFile ($pdfsrc, "$_-$1.pdf") ;
+ }
+ if ($done) {
+ $report .= " +" ;
+ }
$report .= " $_-$1.pdf" ;
- ++$done } }
+ ++$done ;
+ }
+}
-if ($report eq '')
- { $report = '*' }
+if ($report eq '') {
+ $report = '*' ;
+}
-if ($done)
- { print "\n$program : $pattern is converted to$report\n" }
-else
- { print "\n$program : no filename matches $pattern\n" }
+if ($done) {
+ print "\n$program : $pattern is converted to$report\n" ;
+} else {
+ print "\n$program : no filename matches $pattern\n" ;
+}
diff --git a/Master/texmf-dist/scripts/context/perl/pdftrimwhite.pl b/Master/texmf-dist/scripts/context/perl/pdftrimwhite.pl
new file mode 100644
index 00000000000..08c1de5d778
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/perl/pdftrimwhite.pl
@@ -0,0 +1,525 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+#D \module
+#D [ file=pdftrimwhite.pl,
+#D version=2000.07.13,
+#D title=PDF postprocessing,
+#D subtitle=cropping whitespace from pdf files,
+#D author=Hans Hagen,
+#D date=\currentdate,
+#D copyright=PRAGMA ADE]
+
+#C This module is part of the \CONTEXT\ macro||package and is
+#C therefore copyrighted by \PRAGMA. See readme.pdf for
+#C details.
+
+#D This script can be used to crop margins that contain
+#D useless information from a \PDF\ image. It does so by:
+#D
+#D \startitemize[packed,n]
+#D \som cropping the image into an alternative file
+#D \som determining the boundingbox of the alternative
+#D \som cropping the image into a resulting file
+#D \stoppacked
+#D
+#D In the process, some checks are carried out. Step~1 is
+#D taken care of by \PDFTEX, step~2 by \GHOSTSCRIPT, using a
+#D file generated by \PDFTOPS, and \PDFTEX\ is responsible
+#D for step~3.
+#D
+#D \startuseMPgraphic{original}
+#D numeric n ; n = 1cm ;
+#D path p ; p := fullsquare xyscaled (8n,12n) ;
+#D path q ; q := fullsquare xyscaled (2n,3n) shifted (n,n) ;
+#D path r ; r := ((0,0)--(3n,0)) shifted (0, 5.5n) ;
+#D path s ; s := ((0,0)--(3n,0)) shifted (0,-5.5n) ;
+#D path t ; t := (-2n,-4n) ;
+#D path u ; u := p enlarged -.75n ;
+#D path v ; v := p enlarged (-1.75n,-2n) shifted (n,1.25n) ;
+#D path w ; w := q enlarged .25n ;
+#D fill p withcolor .7white ;
+#D fill q withcolor .7green ;
+#D draw r withpen pencircle scaled .25n withcolor .7green ;
+#D draw s withpen pencircle scaled .25n withcolor .7green ;
+#D draw t withpen pencircle scaled .50n withcolor .7green ;
+#D draw u withpen pencircle scaled .10n withcolor white ;
+#D draw v withpen pencircle scaled .10n withcolor .7red ;
+#D draw w withpen pencircle scaled .10n ;
+#D verbatimtex \tttf \setupframed[frame=off,align=left] etex ;
+#D label (btex \framed{crap} etex, center r) ;
+#D label (btex \framed{crap} etex, center s) ;
+#D label (btex \framed{crap} etex, center t) ;
+#D label (btex \framed{graphic} etex, center q) ;
+#D label.urt(btex \framed{page} etex, llcorner p) ;
+#D label.urt(btex \framed{crop} etex, llcorner u) ;
+#D label.lft(btex \framed{leftcrop\\
+#D rightcrop\\
+#D topcrop\\
+#D bottomcrop} etex, .5[ulcorner v,llcorner v]) ;
+#D label.bot(btex \framed{offset} etex, .5[llcorner w,lrcorner w]) ;
+#D \stopuseMPgraphic
+#D
+#D \placefigure
+#D [here][fig:cropcrap]
+#D {Crops and offsets.}
+#D {\useMPgraphic{original}}
+#D
+#D The \TEX\ part has two alternatives, one using \CONTEXT, and
+#D another using plain \TEX. The \CONTEXT\ method is slower but
+#D can be extended more easily.
+#D
+#D The script is executed as follows:
+#D
+#D \starttyping
+#D cropcrap <original> [<result>] [<switches>]
+#D \stoptyping
+#D
+#D The next call crops \type {test.pdf} to its natural
+#D boundingbox.
+#D
+#D \starttyping
+#D cropcrap test
+#D \stoptyping
+#D
+#D If the file has some crap at the bottom, you can say:
+#D
+#D \starttyping
+#D cropcrap test --bottomcrop=2cm
+#D \stoptyping
+#D
+#D This clips 2cm from the bottom. You can clip on all sides
+#D individually, in combination or at once, like in:
+#D
+#D \starttyping
+#D cropcrap test --bottomcrop=2cm --crop=1cm
+#D \stoptyping
+#D
+#D The final result is a tightly cropped image. In order to get
+#D a 5mm margin around this image, you can say:
+#D
+#D \starttyping
+#D cropcrap test --bottomcrop=2cm --offset=5mm
+#D \stoptyping
+#D
+#D By default, the script intercepts logging messages and
+#D writes them to a logfile with the same name as the
+#D resulting image and the prefix \type {log}. If no name is
+#D given, the name \type {cropcrap} is used for all resulting
+#D files.
+#D
+#D By default, \CONTEXT\ is used. When installed properly, you
+#D can also use plain \TEX, by adding a switch \type
+#D {--plain}. Partial switched are accepted, so the next call
+#D is valid:
+#D
+#D \starttyping
+#D cropcrap test result --bot=2cm --off=5mm --plain
+#D \stoptyping
+#D
+#D The current implementation uses an intermediate \POSTSCRIPT\
+#D file. This may change as \GHOSTSCRIPT\ gets more clever with
+#D \PDF\ files.
+#D
+#D In \in {figure} [fig:cropcrap] the green rectangle is the
+#D picture we want to keep. Around this picture, we want a
+#D margin, represented by the black rectangle, and specified by
+#D \type {--offset}. The white rectangle is the cropbox
+#D defined by \type {--crop}. That way we get rid of header
+#D and footerlines. The red rectangle results from an
+#D additional \type {--leftcrop} and \type {-bottomcrop} and
+#D takes care of some content, as represented by the green
+#D dot.
+#D
+#D The \type {--verbose} switch can be used to disable the
+#D interception of log messages.
+
+#D We load a few \PERL\ modules \unknown\
+
+use Config ;
+use Getopt::Long ;
+
+use strict ;
+
+#D \unknown\ and initialize them.
+
+Getopt::Long::Configure
+ ("auto_abbrev",
+ "ignore_case",
+ "pass_through") ;
+
+#D Before fetching the switches, we initialize the
+#D variables.
+
+my $Crop = "0cm" ;
+
+my $LeftCrop = "0cm" ;
+my $RightCrop = "0cm" ;
+my $TopCrop = "0cm" ;
+my $BottomCrop = "0cm" ;
+
+my $Offset = "0cm" ;
+
+my $GSbin = "" ;
+my $Verbose = 0 ;
+my $Help = 0 ;
+my $UsePlain = 0 ;
+
+my $Page = 1 ;
+
+#D On \MSWINDOWS\ and \UNIX\ the following defaults, combined
+#D with the check later, should work out okay.
+
+my $pdfps = "pdftops" ;
+my $gs = "gs" ;
+
+my $thisisunix = $Config{'osname'} !~ /dos|mswin/i ;
+
+#D When no resulting file is given, we use \type {cropcrap}
+#D as name (checked later).
+
+my $figurefile = "" ;
+my $resultfile = "" ;
+my $tempfile = "" ;
+
+my $programname = "cropcrap" ;
+
+#D Messages are temporarily saved and written to a log file
+#D afterwards.
+
+my $results = "" ;
+my $pipe = "" ;
+my $result = "" ;
+
+#D Unfortunately we need this information, first since
+#D \PDFTOPS\ does not honor the cropbox, and second because
+#D the vertical coordinated are swapped.
+
+my $pwidth = 597 ;
+my $pheight = 847 ;
+my $hoffset = 0 ;
+my $voffset = 0 ;
+
+#D A few more variables.
+
+my $width = my $height = my $llx = my $lly = my $urx = my $ury = 0 ;
+
+#D Here are the switches we accept. The \type {--gsbin} switch
+#D is a bonus one, and the \type {--help} switch comes
+#D naturally.
+
+&GetOptions
+ ( "leftcrop=s" => \$LeftCrop ,
+ "rightcrop=s" => \$RightCrop ,
+ "topcrop=s" => \$TopCrop ,
+ "bottomcrop=s" => \$BottomCrop,
+ "crop=s" => \$Crop ,
+ "offset=s" => \$Offset ,
+ "verbose" => \$Verbose ,
+ "gsbin=s" => \$GSbin ,
+ "plain" => \$UsePlain ,
+ "page=i" => \$Page ,
+ "help" => \$Help ) ;
+
+#D If asked for, or if no file is given, we provide some
+#D help information.
+
+sub PrintHelp
+ { print "This is PdfTrimWhite\n\n" .
+ "usage:\n\n" .
+ "cropcrap [switches] filename result\n\n" .
+ "switches:\n\n" .
+ "--crop=<dimen>\n" .
+ "--offset=<dimen>\n" .
+ "--leftcrop=<dimen>\n" .
+ "--rightcrop=<dimen>\n" .
+ "--topcrop=<dimen>\n" .
+ "--bottomcrop=<dimen>\n" .
+ "--gsbin=<string>\n" .
+ "--page=<number>\n" .
+ "--plain\n" .
+ "--verbose\n" }
+
+#D The preparations:
+
+sub GetItRight
+ { if ($Help)
+ { PrintHelp() ; exit }
+ $figurefile = $ARGV[0] ; $figurefile =~ s/\.pdf$//oi ;
+ $resultfile = $ARGV[1] ; $resultfile =~ s/\.pdf$//oi ;
+ $tempfile = "pdftrimwhite-$resultfile" ;
+ if ($figurefile eq '')
+ { PrintHelp() ; exit }
+ unless ($thisisunix)
+ { $gs = "gswin32c" }
+ if ($GSbin ne '')
+ { $gs = $GSbin }
+ unless (-e "$figurefile.pdf")
+ { print "Something is terribly wrong: no file found\n" ;
+ exit }
+ if (($resultfile eq '')||($resultfile=~/(^\-|\.)/io))
+ { $resultfile = $programname }
+ $pipe = "2>&1" ;
+ if ($thisisunix)
+ { $pipe = "2>&1" } }
+
+#D Something common.
+
+sub SavePageData
+ { return "% saving page data
+\\immediate\\openout\\scratchwrite=$figurefile.tmp
+\\immediate\\write\\scratchwrite
+ {\\HOffsetBP\\space\\VOffsetBP\\space
+ \\FigureWidthBP\\space\\FigureHeightBP}
+\\immediate\\closeout\\scratchwrite\n" }
+
+sub MakePageConTeXt
+ { return "% the real work
+\\definepapersize
+ [Crap]
+ [width=\\FigureWidth,
+ height=\\FigureHeight]
+\\setuppapersize
+ [Crap][Crap]
+\\setuplayout
+ [topspace=0cm,backspace=0pt,
+ height=middle,width=middle,
+ header=0pt,footer=0pt]
+\\starttext
+ \\startstandardmakeup
+ \\clip
+ [voffset=\\VOffset,
+ hoffset=\\HOffset,
+ width=\\FigureWidth,
+ height=\\FigureHeight]
+ {\\externalfigure[$figurefile.pdf][page=$Page]\\hss}
+ \\stopstandardmakeup
+\\stoptext\n" }
+
+sub MakePagePlainTeX
+ { return "% the real work
+\\output{}
+\\hoffset=-1in
+\\voffset=\\hoffset
+\\pdfpageheight=\\FigureHeight
+\\pdfpagewidth=\\FigureWidth
+\\vbox to \\pdfpageheight
+ {\\offinterlineskip
+ \\vskip-\\VOffset
+ \\hbox to \\pdfpagewidth{\\hskip-\\HOffset\\box0\\hss}
+ \\vss}
+\\end\n" }
+
+sub CalculateClip
+ { return "% some calculations
+\\dimen0=\\figurewidth
+\\dimen2=\\figureheight
+\\dimen4=$Crop
+\\dimen6=$Crop
+\\advance\\dimen4 by $LeftCrop
+\\advance\\dimen6 by $TopCrop
+\\advance\\dimen0 by -\\dimen4
+\\advance\\dimen0 by -$Crop
+\\advance\\dimen0 by -$RightCrop
+\\advance\\dimen2 by -\\dimen6
+\\advance\\dimen2 by -$Crop
+\\advance\\dimen2 by -$BottomCrop
+\\edef\\FigureWidth {\\the\\dimen0}
+\\edef\\FigureHeight{\\the\\dimen2}
+\\edef\\HOffset {\\the\\dimen4}
+\\edef\\VOffset {\\the\\dimen6}
+\\ScaledPointsToWholeBigPoints{\\number\\dimen0}\\FigureWidthBP
+\\ScaledPointsToWholeBigPoints{\\number\\dimen2}\\FigureHeightBP
+\\ScaledPointsToWholeBigPoints{\\number\\dimen4}\\HOffsetBP
+\\ScaledPointsToWholeBigPoints{\\number\\dimen6}\\VOffsetBP\n" }
+
+sub RecalculateClip
+ { return "% some calculations
+\\dimen0=${width}bp
+\\dimen2=${height}bp
+\\dimen4=${hoffset}bp
+\\dimen6=${pheight}bp
+\\advance\\dimen0 by $Offset
+\\advance\\dimen0 by $Offset
+\\advance\\dimen2 by $Offset
+\\advance\\dimen2 by $Offset
+\\advance\\dimen4 by ${llx}bp
+\\advance\\dimen4 by -$Offset
+\\advance\\dimen6 by -${lly}bp
+\\advance\\dimen6 by $Offset
+\\advance\\dimen6 by -\\dimen2
+\\advance\\dimen6 by $TopCrop
+\\edef\\FigureWidth {\\the\\dimen0}
+\\edef\\FigureHeight{\\the\\dimen2}
+\\edef\\HOffset {\\the\\dimen4}
+\\edef\\VOffset {\\the\\dimen6}\n" }
+
+#D The previous scripts could be more sparse, but for the
+#D moment we prefer readability. Both scripts save some
+#D information in temporary file. We choose between them with
+#D the following sub routine.
+
+#D The first pass:
+
+sub PrepareConTeXt
+ { return "% interface=en
+\\setupoutput[pdftex]
+\\getfiguredimensions[$figurefile.pdf][page=$Page]\n" }
+
+sub PreparePlainTeX
+ { return "% plain tex alternative, needs recent supp-mis
+\\input supp-mis
+\\pdfoutput=1
+\\newdimen\\figurewidth
+\\newdimen\\figureheight
+\\setbox0=\\hbox
+ {\\immediate\\pdfximage page $Page {$figurefile.pdf}\\pdfrefximage\\pdflastximage}
+\\figurewidth=\\wd0
+\\figureheight=\\ht0\n" }
+
+sub PrepareFirstPass
+ { open (TEX, ">$tempfile.tex") ;
+ if ($UsePlain)
+ { print TEX
+ PreparePlainTeX .
+ CalculateClip .
+ SavePageData .
+ MakePagePlainTeX }
+ else
+ { print TEX
+ PrepareConTeXt .
+ CalculateClip .
+ SavePageData .
+ MakePageConTeXt }
+ close TEX }
+
+#D The second pass looks much like the first one, but this
+#D time we don't save information, use the natural
+#D boundingbox, and provide the offset.
+
+sub SetupConTeXt
+ { return "% interface=en
+\\setupoutput[pdftex]\n" }
+
+sub SetupPlainTeX
+ { return "% plain tex alternative
+\\pdfoutput=1
+\\setbox0=\\hbox
+ {\\immediate\\pdfximage page $Page {$figurefile.pdf}\\pdfrefximage\\pdflastximage}\n" }
+
+sub PrepareSecondPass
+ { open (TEX, ">$tempfile.tex") ;
+ if ($UsePlain)
+ { print TEX
+ SetupPlainTeX .
+ RecalculateClip .
+ MakePagePlainTeX }
+ else
+ { print TEX
+ SetupConTeXt .
+ RecalculateClip .
+ MakePageConTeXt }
+ close TEX }
+
+#D The information we save in the first pass, is loaded here.
+
+sub FetchPaperSize
+ { open (TMP,"$figurefile.tmp") ;
+ while (<TMP>)
+ { chomp ;
+ if (/^(\d+) (\d+) (\d+) (\d+) *$/oi)
+ { $hoffset = $1 ;
+ $voffset = $2 ;
+ $pwidth = $3 ;
+ $pheight = $4 ;
+ last } }
+ close (TMP) }
+
+#D Here we try to find the natural boundingbox. We need to
+#D pick up the page dimensions here.
+
+sub RunTeX
+ { if ($UsePlain)
+ { $result = `pdftex -prog=pdftex -fmt=plain -int=batchmode $tempfile` }
+ else
+ { $result = `texexec --batch --once --purge $tempfile` }
+ print $result if $Verbose ; $results .= "$result\n" }
+
+sub FindBoundingBox
+ { $result = `$gs -sDEVICE=bbox -dNOPAUSE -dBATCH $tempfile.pdf $pipe` ;
+ print $result if $Verbose ; $results .= "$result\n" }
+
+sub IdentifyCropBox
+ { RunTeX() ;
+ FetchPaperSize () ;
+ FindBoundingBox() }
+
+#D Just to be sure, we check if there is some image data, so
+#D that we can retry if something went wrong. Unfortunately we cannot
+#D safely check on a high res boundingbox.
+
+my $digits = '([\-\d\.]+)' ;
+
+sub ValidatedCropBox
+ { if ($result =~ /BoundingBox:\s*$digits\s+$digits\s+$digits\s+$digits\s*/mois)
+ { $llx = $1 ; $lly = $2 ; $urx = $3 ; $ury = $4 }
+ else
+ { print "Something is terribly wrong: no boundingbox:\n$result\n" ; exit }
+ $width = abs($urx - $llx) ;
+ $height = abs($ury - $lly) ;
+ if ($width&&$height)
+ { return 1 }
+ else
+ { unless ($width)
+ { print "Something seems wrong: no width\n" ;
+ $LeftCrop = "0cm" ; $RightCrop = "0cm" ; $Crop = "0cm" }
+ unless ($height)
+ { print "Something seems wrong: no height\n" ;
+ $TopCrop = "0cm" ; $BottomCrop = "0cm" ; $Crop = "0cm" }
+ return 0 } }
+
+#D This is the main cropping routine.
+
+sub FixCropBox
+ { RunTeX() }
+
+#D For error tracing we save the log information in a file.
+
+sub RenameResult
+ { unlink "$resultfile.pdf" ;
+ rename "$tempfile.pdf", "$resultfile.pdf" }
+
+sub SaveLogInfo
+ { open (LOG, ">$resultfile.log") ;
+ print LOG $results ;
+ close (LOG) }
+
+#D We remove all temporary files.
+
+sub CleanUp
+ { unless ($Verbose)
+ { unlink "$tempfile.tex" ;
+ unlink "$tempfile.tuo" ;
+ unlink "$tempfile.tui" ;
+ unlink "$figurefile.tmp" } }
+
+#D Here it all comes together.
+
+GetItRight() ;
+
+PrepareFirstPass() ;
+
+IdentifyCropBox () ;
+
+unless (ValidatedCropBox())
+ { PrepareFirstPass() ;
+ IdentifyCropBox () }
+
+if (ValidatedCropBox())
+ { PrepareSecondPass() ;
+ FixCropBox() }
+
+RenameResult() ;
+SaveLogInfo() ;
+
+CleanUp () ;
diff --git a/Master/texmf-dist/scripts/context/perl/texexec.pl b/Master/texmf-dist/scripts/context/perl/texexec.pl
index 2f3b89e0461..fb564bbd5ed 100644
--- a/Master/texmf-dist/scripts/context/perl/texexec.pl
+++ b/Master/texmf-dist/scripts/context/perl/texexec.pl
@@ -11,7 +11,7 @@ eval '(exit $?0)' && eval 'exec perl -w -S $0 ${1+"$@"}' && eval 'exec perl -w -
#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 licen-en.pdf for
+#C therefore copyrighted by \PRAGMA. See readme.pdf for
#C details.
# Thanks to Tobias Burnus for the german translations.
@@ -151,6 +151,7 @@ my $PdfCombine = 0;
my $PdfOpen = 0;
my $PdfClose = 0;
my $AutoPdf = 0;
+my $UseXPdf = 0;
my $PrintFormat = 'standard';
my $ProducePdfT = 0;
my $ProducePdfM = 0;
@@ -255,6 +256,7 @@ my $MakeMpy = '';
"once" => \$RunOnce,
"output=s" => \$OutputFormat,
"pages=s" => \$Pages,
+ "paper=s" => \$PaperFormat,
"paperformat=s" => \$PaperFormat,
"passon=s" => \$PassOn,
"path=s" => \$InpPath,
@@ -275,6 +277,7 @@ my $MakeMpy = '';
"selection=s" => \$Selection,
"combination=s" => \$Combination,
"noduplex" => \$NoDuplex,
+ "offset=s" => \$PaperOffset,
"paperoffset=s" => \$PaperOffset,
"backspace=s" => \$BackSpace,
"topspace=s" => \$TopSpace,
@@ -310,6 +313,7 @@ my $MakeMpy = '';
"pdfclose" => \$PdfClose,
"pdfopen" => \$PdfOpen,
"autopdf" => \$AutoPdf,
+ "xpdf" => \$UseXPdf,
"modefile=s" => \$ModeFile, # additional modes file
"globalfile" => \$GlobalFile,
"nomapfiles" => \$NoMapFiles,
@@ -351,6 +355,12 @@ if ( $ARGV[0] && $ARGV[0] =~ /\.mpx$/io ) { # catch -tex=.... bug in mpost
####
+if ($Version) {
+ $Purge = 1 ;
+ }
+
+####
+
if ($Paranoid) {
$ENV{shell_escape} = 'f' ;
$ENV{openout_any} = 'p' ;
@@ -406,6 +416,16 @@ if ($AutoPdf) {
$PdfOpen = $PdfClose = 1 ;
}
+my $PdfOpenCall = "" ;
+
+if ($PdfOpen) {
+ $PdfOpenCall = "pdfopen --file" ;
+}
+
+if ($UseXPdf && !$dosish) {
+ $PdfOpenCall = "xpdfopen" ;
+}
+
# this is our hook into paranoid path extensions, assumes that
# these three vars are part of path specs in texmf.cnf
@@ -900,7 +920,7 @@ $OutputFormats{dviwindo} = "dviwindo";
$OutputFormats{dviview} = "dviview";
-my @ConTeXtFormats = ( "nl", "en", "de", "cz", "uk", "it", "ro", "xx");
+my @ConTeXtFormats = ( "nl", "en", "de", "fr", "cz", "uk", "it", "ro", "xx");
sub SetInterfaces {
my ( $short, $long, $full ) = @_;
@@ -915,8 +935,9 @@ sub SetInterfaces {
SetInterfaces( "nl", "dutch", "dutch" );
SetInterfaces( "en", "english", "english" );
SetInterfaces( "de", "german", "german" );
+SetInterfaces( "fr", "french", "french" );
SetInterfaces( "cz", "czech", "czech" );
-SetInterfaces( "uk", "brittish", "english" );
+SetInterfaces( "uk", "british", "english" );
SetInterfaces( "it", "italian", "italian" );
SetInterfaces( "no", "norwegian", "norwegian" );
SetInterfaces( "ro", "romanian", "romanian" );
@@ -1203,6 +1224,11 @@ sub MakeOptionFile {
print OPT "\\setupcolors[\\c!split=$Separation]\n";
}
if ($SetupPath) { print OPT "\\setupsystem[\\c!directory=\{$SetupPath\}]\n" }
+ if ($dosish) {
+ print OPT "\\setupsystem[\\c!type=mswin]\n"
+ } else { # no darwin handling in old texexec
+ print OPT "\\setupsystem[\\c!type=unix]\n"
+ }
print OPT "\\setupsystem[\\c!n=$KindOfRun]\n";
$_ = $PaperFormat;
#unless (($PdfArrange)||($PdfSelect)||($PdfCombine)||($PdfCopy))
@@ -1945,11 +1971,11 @@ sub RunConTeXtFile {
{
unlink "$JobName.$JobSuffix";
}
- if ((!$Problems) && ($PdfOpen)) {
+ if ((!$Problems) && ($PdfOpen) && ($PdfOpenCall)) {
if ($Result ne '') {
- System("pdfopen --file $Result.pdf") if -f "$Result.pdf"
+ System("$PdfOpenCall $Result.pdf") if -f "$Result.pdf"
} else {
- System("pdfopen --file $JobName.pdf") if -f "$JobName.pdf"
+ System("$PdfOpenCall $JobName.pdf") if -f "$JobName.pdf"
}
}
}
@@ -2008,7 +2034,11 @@ sub checktexformatpath {
if ($texformats eq '') {
if ($UseEnginePath) {
if ($dosish) {
- $texformats = `kpsewhich --engine=$TeXExecutable --expand-var=\$TEXFORMATS` ;
+ if ( $TeXShell =~ /MikTeX/io ) {
+ $texformats = `kpsewhich --alias=$TeXExecutable --expand-var=\$TEXFORMATS` ;
+ } else {
+ $texformats = `kpsewhich --engine=$TeXExecutable --expand-var=\$TEXFORMATS` ;
+ }
} else {
$texformats = `kpsewhich --engine=$TeXExecutable --expand-var=\\\$TEXFORMATS` ;
}
@@ -2363,7 +2393,11 @@ sub LocatedFormatPath { # watch out $engine is lowercase in kpse
# expanded paths
print " assuming engine : $EnginePath\n";
if (($UseEnginePath)&&($EngineDone)) {
- $FormatPath = `$kpsewhich --engine=$EnginePath --show-path=fmt` ;
+ if ( $TeXShell =~ /MikTeX/io ) {
+ $FormatPath = `$kpsewhich --alias=$EnginePath --show-path=fmt` ;
+ } else {
+ $FormatPath = `$kpsewhich --engine=$EnginePath --show-path=fmt` ;
+ }
} else {
$FormatPath = `$kpsewhich --show-path=fmt` ;
}
@@ -2375,7 +2409,11 @@ sub LocatedFormatPath { # watch out $engine is lowercase in kpse
if ($FormatPath eq '') {
if (($UseEnginePath)&&($EngineDone)) {
if ($dosish) {
- $FormatPath = `$kpsewhich --engine=$EnginePath --expand-path=\$TEXFORMATS` ;
+ if ( $TeXShell =~ /MikTeX/io ) {
+ $FormatPath = `$kpsewhich --alias=$EnginePath --expand-path=\$TEXFORMATS` ;
+ } else {
+ $FormatPath = `$kpsewhich --engine=$EnginePath --expand-path=\$TEXFORMATS` ;
+ }
} else {
$FormatPath = `$kpsewhich --engine=$EnginePath --expand-path=\\\$TEXFORMATS` ;
}
@@ -2998,7 +3036,7 @@ sub show_version_info {
$contextversion = <IN>;
close IN;
}
- $contextversion =~ s/.*contextversion\{([0-9.]+)\}.*/$1/s;
+ $contextversion =~ s/.*contextversion\{([0-9\.\:\s]+)\}.*/$1/s;
}
$EnterBatchMode = 1;
$Format = 'cont-en';
@@ -3007,7 +3045,7 @@ sub show_version_info {
print " tex : $texengine\n" ;
print " context : ver: $contextversion\n" ;
print " cont-en : $type\n" ;
- foreach my $a (qw(cz de it nl ro uk xx)) {
+ foreach my $a (qw(cz de fr it nl ro uk xx)) {
my $test = Pipe("$kpsewhich -format='fmt' cont-$a") ;
if (defined $test && $test) {
$Format = 'cont-' . $a;
@@ -3063,6 +3101,9 @@ $TotalTime = time - $TotalTime;
unless ($HelpAsked) { print "\n total run time : $TotalTime seconds\n" }
+print "\n" ;
+print " warning : use 'texmfstart texexec' instead\n" ;
+
if ($Problems) { exit 1 }
__DATA__
@@ -3108,8 +3149,9 @@ interface user interface
=en English
=nl Dutch
=de German
+=fr French
=cz Czech
-=uk Brittish
+=uk British
=it Italian
-----------
language main hyphenation language
@@ -3136,7 +3178,7 @@ module typeset tex/pl/mp module
-----------
mptex run an MetaPost plus btex-etex cycle
-----------
-mpxtex generatet an MetaPostmpx file
+mpxtex generate an MetaPost mpx file
-----------
noarrange process but ignore arrange
-----------
@@ -3149,8 +3191,8 @@ automprun MetaPost at runtime when needed
once run TeX only once (no TeXUtil either)
-----------
output specials to use
-=pdftex Han The Than's pdf backend
-=dvips Thomas Rokicky's dvi to ps converter
+=pdftex Han The Thanh's pdf backend
+=dvips Tomas Rokicky's dvi to ps converter
=dvipsone YandY's dvi to ps converter
=dviwindo YandY's windows previewer
=dvipdfm Mark Wicks' dvi to pdf converter
@@ -3243,7 +3285,7 @@ verbose shows some additional info
-----------
help show this or more, e.g. '--help interface'
-----------
-alone bypass utilities (e.g. fmtutil for non-standard fmt's)
+alone bypass utilities (e.g. fmtutil for non-standard fmts)
-----------
texutil force TeXUtil run
-----------
diff --git a/Master/texmf-dist/scripts/context/perl/texexec.rme b/Master/texmf-dist/scripts/context/perl/texexec.rme
index f38b4be7fe0..43f142f9da4 100644
--- a/Master/texmf-dist/scripts/context/perl/texexec.rme
+++ b/Master/texmf-dist/scripts/context/perl/texexec.rme
@@ -120,7 +120,7 @@ for miktex set TeXVirginFlag to --initialize
for miktex set TeXPassString to --alias=context --translate-file=natural.tcx
for miktex set TeXBatchFlag to --interaction=batchmode
for miktex set TeXNonStopFlag to --interaction=nonstopmode
-for miktex set MpToTeXExecutable to mptotex
+for miktex set MpToTeXExecutable to mpto
for miktex set MpVirginFlag to --initialize
for miktex set MpPassString to --alias=mpost --translate-file=natural.tcx
for miktex set MpBatchFlag to --interaction=batchmode
diff --git a/Master/texmf-dist/scripts/context/perl/texshow.pl b/Master/texmf-dist/scripts/context/perl/texshow.pl
index 79222c9f03c..629c28f99ec 100644
--- a/Master/texmf-dist/scripts/context/perl/texshow.pl
+++ b/Master/texmf-dist/scripts/context/perl/texshow.pl
@@ -3,7 +3,7 @@ eval '(exit $?0)' && eval 'exec perl -w -S $0 ${1+"$@"}' && eval 'exec perl -w -
#D \module
#D [ file=texshow.pl,
-#D version=2005.01.06,
+#D version=2006.08.04,
#D title=TeXShow,
#D subtitle=showing \CONTEXT\ commands,
#D author=Taco Hoekwater,
@@ -23,6 +23,12 @@ eval '(exit $?0)' && eval 'exec perl -w -S $0 ${1+"$@"}' && eval 'exec perl -w -
#D one to be used.
#D
#D Hans Hagen - Januari 2005
+#D
+#D ChangeLog:
+#D \startitemize
+#D \item Add keyboard bindings for quitting the app: Ctrl-q,Ctrl-x,Alt-F4 (2006/07/19)
+#D \item Support for define --resolve (2006/08/04)
+#D \stopitemize
use strict;
use Getopt::Long ;
@@ -63,7 +69,7 @@ my %crosslinks;
print "\n";
-show('TeXShow-XML 0.2 beta','Taco Hoekwater 2004',"/");
+show('TeXShow-XML 0.3 beta','Taco Hoekwater 2006',"/");
print "\n";
@@ -220,6 +226,11 @@ sub initialize_display {
$mainwindow -> bind ( "<BackSpace>", sub { delete_request() } ) ;
$mainwindow -> bind ( "<Prior>", sub { prev_command() } ) ;
$mainwindow -> bind ( "<Next>", sub { next_command() } ) ;
+ $mainwindow -> bind ( "<Control-x>", sub { exit(0) } ) ;
+ $mainwindow -> bind ( "<Control-X>", sub { exit(0) } ) ;
+ $mainwindow -> bind ( "<Control-q>", sub { exit(0) } ) ;
+ $mainwindow -> bind ( "<Control-Q>", sub { exit(0) } ) ;
+ $mainwindow -> bind ( "<Alt-F4>", sub { exit(0) } ) ;
}
sub show {
@@ -312,41 +323,50 @@ sub setups_found {
sub load_setup {
my ($path,$filename) = @_;
+ my $localdefs = {};
unless (keys %{$setups{$filename}}) {
if (open(IN,"<${path}$filename.xml")) {
my $position = 0 ;
local $/ = '</cd:command>';
while (my $data= <IN>) {
- if ($data =~ /\<\/cd:interface/) {
- next;
- }
- if ($data =~ /\<cd:interface/) {
- $data =~ s/^(.*?)\<cd:command/\<cd:command/sm;
- my $meta = $1;
- }
- #
- $data =~ s/\s*\n\s*//g;
- $data =~ /\<cd:command(.*?)\>/;
- my $info = $1;
- my ($name,$environment) = ('','');
- while ($info =~ s/^\s*(.*?)\s*=\s*(["'])(.*?)\2\s*//) {
- my $a = $1; my $b = $3;
- if ($a eq 'name') {
- $name = $b;
- } elsif ($a eq 'type') {
- $environment = $b;
+ next if $data =~ /\<\/cd:interface/;
+ if ($data =~ /\<cd:interface/) {
+ $data =~ s/^(.*?)\<cd:command/\<cd:command/sm;
+ my $meta = $1;
+ while ($meta =~ s!<cd:define name=(['"])(.*?)\1>(.*?)</cd:define>!!sm) {
+ my $localdef = $2;
+ my $localval = $3;
+ $localdefs->{$localdef} = $localval;
+ }
+ }
+ #
+ if (keys %$localdefs) {
+ while ($data =~ /<cd:resolve/) {
+ $data =~ s/<cd:resolve name=(['"])(.*?)\1\/>/$localdefs->{$2}/ms;
+ }
+ }
+ $data =~ s/\s*\n\s*//g;
+ $data =~ /\<cd:command(.*?)\>/;
+ my $info = $1;
+ my ($name,$environment) = ('','');
+ while ($info =~ s/^\s*(.*?)\s*=\s*(["'])(.*?)\2\s*//) {
+ my $a = $1; my $b = $3;
+ if ($a eq 'name') {
+ $name = $b;
+ } elsif ($a eq 'type') {
+ $environment = $b;
+ }
+ }
+ my $cmd = $name;
+ if ($environment) {
+ $cmd = "start" . $name;
+ }
+ $setups {$filename}{$cmd} = $data ;
+ $trees {$filename}{$cmd} = undef;
+ $positions {$filename}{$cmd} = ++$position ;
+ $crosslinks{$filename}[$position] = $cmd ;
}
- }
- my $cmd = $name;
- if ($environment) {
- $cmd = "start" . $name;
- }
- $setups {$filename}{$cmd} = $data ;
- $trees {$filename}{$cmd} = undef;
- $positions {$filename}{$cmd} = ++$position ;
- $crosslinks{$filename}[$position] = $cmd ;
- }
- close IN;
+ close IN;
# now get explanations as well ...
my $explname = $filename;
$explname =~ s/cont-/expl-/;
diff --git a/Master/texmf-dist/scripts/context/perl/texutil.pl b/Master/texmf-dist/scripts/context/perl/texutil.pl
index 0a0d2975354..ca364501584 100644
--- a/Master/texmf-dist/scripts/context/perl/texutil.pl
+++ b/Master/texmf-dist/scripts/context/perl/texutil.pl
@@ -44,7 +44,7 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $
#D binary version, like scanning illustrations other than \EPS.
#D I would suggest to keep an eye on the version number:
-$Program = "TeXUtil 9.0.0 - ConTeXt / PRAGMA ADE 1992-2004" ;
+$Program = "TeXUtil 9.0.1 - ConTeXt / PRAGMA ADE 1992-2006" ;
#D By the way, this is my first \PERL\ script, which means
#D that it will be improved as soon as I find new and/or more
@@ -54,6 +54,11 @@ $Program = "TeXUtil 9.0.0 - ConTeXt / PRAGMA ADE 1992-2004" ;
#D users in english as well as some other languages. One can
#D set his favourite language by saying something like:
+#D This one has a real old date, 1992. This is because it is
+#D a converted modula program that was used in the very early
+#D days of our \TEX\ history (macros for proper inclusion of
+#D graphics were among the first thatwe wrote).
+
#D \starttypen
#D perl texutil.pl --int=de --fig *.eps *.tif *.pdf *.png *.jpg
#D \stoptypen
@@ -823,7 +828,7 @@ sub InitializeKeys
{ my $filename = $ARGV[0] ;
return unless (open(TEX,"$filename.tex")) ;
for ($i=0;$i<=255;$i++)
- { @Filter[$i] = $i }
+ { $Filter[$i] = $i }
if ($TcXPath eq '')
{ foreach (@paths)
{ my $p = checked_path($_) . 'kpsewhich' ;
@@ -848,7 +853,7 @@ sub InitializeKeys
{ Report ("LoadedFilter", $Translation) ;
while (<ASC>)
{ if (/^(\d+)\s*(\d+)/)
- { @Filter[$2] = $1 } }
+ { $Filter[$2] = $1 } }
close (ASC) }
elsif ($TcXPath ne '')
{ Report ("WrongFilterPath", $TcXPath) }
@@ -861,7 +866,7 @@ sub HandleKey
{ ++$SortN ;
$RestOfLine =~ s/\{(.*)\}/$1/o ;
my ($lan, $enc, $str, $chr, $map, $alf) = split(/\}\s*\{/, $RestOfLine) ;
- if ($str =~ /^(\d+)/) { $str = ''.chr(@Filter[$1]) }
+ if ($str =~ /^(\d+)/) { $str = ''.chr($Filter[$1]) }
$map = chr(ord($MAP[$i])+128) ;
$STR[$SortN] = $str ;
$CHR[$SortN] = $chr ;
@@ -1279,8 +1284,8 @@ sub HandleRegister # the } { makes sure that local {} is ok
#
if ($Key eq "")
{ $Key = SanitizedString($Entry) }
- if ($SortMethod ne '')
- { $ProcessHigh = 0 }
+ # if ($SortMethod ne '')
+ # { $ProcessHigh = 0 }
if ($ProcessHigh)
{ $Key = HighConverted($Key) }
$KeyTag = substr $Key, 0, 1 ;
@@ -2075,7 +2080,7 @@ sub SaveFigurePresets
{ $Figures[$NOfFigures] .= ",t=\{$FTit\}" }
if ($FCre)
{ $Figures[$NOfFigures] .= ",c=\{$FCre\}" }
- $Figures[$NOfFigures] .= ",s=$FSiz]\n" } }
+ $Figures[$NOfFigures] .= ",s=$FSiz]" } }
#D The \EPS\ to \PDF\ conversion pipe to \GHOSTSCRIPT\ is
#D inspired by a script posted by Sebastian Ratz at the
@@ -2580,8 +2585,10 @@ sub FlushFigures
open ( TUF, ">$OutputFile" ) ;
print TUF "%\n" . "% $Program / Figures\n" . "%\n" ;
print TUF "\\thisisfigureversion\{1996.06.01\}\n" . "%\n" ;
+ # a joins is nicer
for ($n=1 ; $n<=$NOfFigures ; ++$n)
- { print TUF $Figures[$n] }
+ { print TUF "$Figures[$n]%\n" }
+ print TUF "\\endinput";
close (TUF) ;
if ($NOfFigures)
{ Report("OutputFile", $OutputFile ) }
@@ -2772,7 +2779,9 @@ if ($PurgeAllFiles)
{ push @forsuresuffixes, @texnonesuffixes ; @texnonesuffixes = [] }
sub PurgeFiles # no my in foreach
- { my $pattern = $ARGV[0] ; my $strippedname, $basename ;
+ { my $pattern = $ARGV[0] ;
+ my $strippedname ;
+ my $basename ;
my @files = () ;
if ($pattern eq '')
{ $pattern = "*.*" ;
@@ -2895,8 +2904,11 @@ elsif ($PurgeFiles ) { PurgeFiles }
elsif ($PurgeAllFiles ) { PurgeFiles }
elsif ($AnalyzeFile ) { AnalyzeFile }
elsif ($FilterPages ) { FilterPages }
-elsif ($SciteApi ) { GenerateSciteApi }
elsif ($ProcessHelp ) { ShowHelpInfo } # redundant
else { ShowHelpInfo }
+print "\n" ;
+print " remark : 'texutil' is now part of 'texexec'\n" ;
+print " warning : use 'texmfstart texutil' instead\n" ;
+
#D So far.
diff --git a/Master/texmf-dist/scripts/context/ruby/base/ctx.rb b/Master/texmf-dist/scripts/context/ruby/base/ctx.rb
index 852c3f7046e..0baf5a88b1b 100644
--- a/Master/texmf-dist/scripts/context/ruby/base/ctx.rb
+++ b/Master/texmf-dist/scripts/context/ruby/base/ctx.rb
@@ -23,6 +23,8 @@ class CtxRunner
attr_reader :environments, :modules, :filters
+ @@suffix = 'prep'
+
def initialize(jobname=nil,logger=nil)
if @logger = logger then
def report(str='')
@@ -52,17 +54,42 @@ class CtxRunner
end
if not @ctxname then
- report('provide ctx file')
+ report('no ctx file specified')
return
end
- if not FileTest.file?(@ctxname) and defaultname and FileTest.file?(defaultname) then
- @ctxname = defaultname
- end
-
+ # name can be kpse:res-make.ctx
if not FileTest.file?(@ctxname) then
- report('provide ctx file')
- return
+ fullname, done = '', false
+ if @ctxname =~ /^kpse:/ then
+ begin
+ if fullname = Kpse.found(@ctxname.sub(/^kpse:/,'')) then
+ @ctxname, done = fullname, true
+ end
+ rescue
+ # should not happen
+ end
+ else
+ ['..','../..'].each do |path|
+ begin
+ fullname = File.join(path,@ctxname)
+ if FileTest.file?(fullname) then
+ @ctxname, done = fullname, true
+ end
+ rescue
+ # probably strange join
+ end
+ break if done
+ end
+ end
+ if ! done && defaultname && FileTest.file?(defaultname) then
+ report("using default ctxfile #{defaultname}")
+ @ctxname = defaultname
+ end
+ if not done then
+ report('no ctx file found')
+ return false
+ end
end
@xmldata = IO.read(@ctxname)
@@ -101,16 +128,44 @@ class CtxRunner
@modules << justtext(mod)
end
REXML::XPath.each(@xmldata.root,"/ctx:job/ctx:process/ctx:resources/ctx:filter") do |fil|
- @filters << justtext(mod)
+ @filters << justtext(fil)
+ end
+ commands = Hash.new
+ REXML::XPath.each(@xmldata.root,"/ctx:job/ctx:preprocess/ctx:processors/ctx:processor") do |pre|
+ begin
+ commands[pre.attributes['name']] = pre
+ rescue
+ end
+ end
+ suffix = @@suffix
+ begin
+ suffix = REXML::XPath.match(@xmldata.root,"/ctx:job/ctx:preprocess/@suffix").to_s
+ rescue
+ suffix = @@suffix
+ else
+ if suffix && suffix.empty? then suffix = @@suffix end
end
REXML::XPath.each(@xmldata.root,"/ctx:job/ctx:preprocess/ctx:files") do |files|
REXML::XPath.each(files,"ctx:file") do |pattern|
preprocessor = pattern.attributes['processor']
if preprocessor and not preprocessor.empty? then
+ begin
+ variables['old'] = @jobname
+ variables['new'] = ""
+ REXML::XPath.each(pattern,"ctx:value") do |value|
+ if name = value.attributes['name'] then
+ substititute(value,variables[name.to_s])
+ end
+ end
+ rescue
+ report('unable to resolve file pattern')
+ return
+ end
pattern = justtext(pattern)
Dir.glob(pattern).each do |oldfile|
- newfile = "#{oldfile}.prep"
+ newfile = "#{oldfile}.#{suffix}"
if File.needsupdate(oldfile,newfile) then
+ report("#{oldfile} needs preprocessing")
begin
File.delete(newfile)
rescue
@@ -118,11 +173,17 @@ class CtxRunner
end
# there can be a sequence of processors
preprocessor.split(',').each do |pp|
- if command = REXML::XPath.first(@xmldata.root,"/ctx:job/ctx:preprocess/ctx:processors/ctx:processor[@name='#{pp}']") then
+ if command = commands[pp] then
# a lie: no <?xml ...?>
command = REXML::Document.new(command.to_s) # don't infect original
command = command.elements["ctx:processor"]
- report("preprocessing #{oldfile} using #{pp}")
+ begin
+ if suf = command.attributes['suffix'] then
+ newfile = "#{oldfile}.#{suf}"
+ end
+ rescue
+ end
+ report("preprocessing #{oldfile} into #{newfile} using #{pp}")
REXML::XPath.each(command,"ctx:old") do |value| replace(value,oldfile) end
REXML::XPath.each(command,"ctx:new") do |value| replace(value,newfile) end
variables['old'] = oldfile
@@ -172,7 +233,8 @@ class CtxRunner
log << "<?xml version='1.0' standalone='yes'?>\n\n"
log << "<ctx:preplist>\n"
@prepfiles.keys.sort.each do |prep|
- log << "\t<ctx:prepfile done='#{yes_or_no(@prepfiles[prep])}'>#{File.basename(prep)}</ctx:prepfile>\n"
+ # log << "\t<ctx:prepfile done='#{yes_or_no(@prepfiles[prep])}'>#{File.basename(prep)}</ctx:prepfile>\n"
+ log << "\t<ctx:prepfile done='#{yes_or_no(@prepfiles[prep])}'>#{prep}</ctx:prepfile>\n"
end
log << "</ctx:preplist>\n"
log.close
@@ -196,17 +258,27 @@ class CtxRunner
name = e.attributes.get_attribute(attribute).to_s
name = e.text.to_s if name.empty?
name.strip! if name
- if name and not name.empty? and FileTest.file?(name) then
- if f = File.open(name,'r') and i = REXML::Document.new(f) then
- report("including ctx file #{name}")
- REXML::XPath.each(i.root,"*") do |ii|
- xmldata.root.insert_after(e,ii)
- more = true
+ done = false
+ if name and not name.empty? then
+ ['.',File.dirname(@ctxname),'..','../..'].each do |path|
+ begin
+ fullname = if path == '.' then name else File.join(path,name) end
+ if FileTest.file?(fullname) then
+ if f = File.open(fullname,'r') and i = REXML::Document.new(f) then
+ report("including ctx file #{name}")
+ REXML::XPath.each(i.root,"*") do |ii|
+ xmldata.root.insert_after(e,ii)
+ more = true
+ end
+ end
+ done = true
+ end
+ rescue
end
end
- else
- report("no valid ctx inclusion file #{name}")
+ break if done
end
+ report("no valid ctx inclusion file #{name}") unless done
rescue Exception
# skip this file
ensure
@@ -278,7 +350,10 @@ class CtxRunner
when 'suffix' then if str =~ /^.*\.(.*?)$/o then $1 else '' end
when 'nosuffix' then if str =~ /^(.*)\..*?$/o then $1 else str end
when 'nopath' then if str =~ /^.*[\\\/](.*?)$/o then $1 else str end
- else str
+ when 'full' then str
+ when 'complete' then str
+ when 'expand' then File.expand_path(str).gsub(/\\/,"/")
+ else str
end
end
diff --git a/Master/texmf-dist/scripts/context/ruby/base/exa.rb b/Master/texmf-dist/scripts/context/ruby/base/exa.rb
new file mode 100644
index 00000000000..fdc5b5093e1
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/base/exa.rb
@@ -0,0 +1,406 @@
+# \setuplayout[width=3cm]
+#
+# tex.setup.setuplayout.width.[integer|real|dimension|string|key]
+# tex.[mp]var.whatever.width.[integer|real|dimension|string|key]
+
+require 'ftools'
+require 'md5'
+
+# this can become a lua thing
+
+# no .*? but 0-9a-z\:\. because other too slow (and greedy)
+
+class Hash
+
+ def subset(pattern)
+ h = Hash.new
+ r = /^#{pattern.gsub('.','\.')}/
+ self.keys.each do |k|
+ h[k] = self[k].dup if k =~ r
+ end
+ return h
+ end
+
+end
+
+module ExaEncrypt
+
+ def ExaEncrypt.encrypt_base(logger, oldfilename, newfilename)
+ if FileTest.file?(oldfilename) then
+ logger.report("checking #{oldfilename}") if logger
+ if data = IO.read(oldfilename) then
+ done = false
+ # cfg file:
+ #
+ # banner : exa configuration file
+ # user : domain, name = password, projectlist
+ #
+ if data =~ /^\s*banner\s*\:\s*exa\s*configuration\s*file/ then
+ data.gsub!(/^(\s*user\s*\:\s*.+?\s*\,\s*.+?\s*\=\s*)(.+?)(\s*\,\s*.+\s*)$/) do
+ pre, password, post = $1, $2, $3
+ unless password =~ /MD5:/i then
+ done = true
+ password = "MD5:" + MD5.new(password).hexdigest.upcase
+ end
+ "#{pre}#{password}#{post}"
+ end
+ else
+ data.gsub!(/<exa:password([^>]*?)>(.*?)<\/exa:password>/mois) do
+ attributes, password = $1, $2
+ unless password =~ /^([0-9A-F][0-9A-F])+$/ then
+ done = true
+ password = MD5.new(password).hexdigest.upcase
+ attributes = " encryption='md5'#{attributes}"
+ end
+ "<exa:password#{attributes}>#{password}</exa:password>"
+ end
+ end
+ begin
+ File.open(newfilename,'w') do |f|
+ f.puts(data)
+ end
+ rescue
+ logger.report("#{newfilename} cannot be written") if logger
+ else
+ logger.report("#{oldfilename} encrypted into #{newfilename}") if done and logger
+ end
+ end
+ end
+ end
+
+end
+
+module ExaModes
+
+ @@modefile = 'examodes.tex'
+
+ @@request = /(<exa:request.*?)(>.*?<\/exa:request>)/mo
+ @@redone = /<exa:request[^>]*?texified=([\'\"])yes\1.*?>/mo
+ @@reload = /<(exa:variable)([^>]+?label\=)([\"\'])([0-9A-Za-z\-\.\:]+?)(\3[^\/]*?)>(.*?)<(\/exa:variable)>/mo
+ @@recalc = /<(exa:variable)([^>]+?label\=)([\"\'])([0-9A-Za-z\-\.\:]+?)([\.\:]calcmath)(\3[^\/]*?)>(.*?)<(\/exa:variable)>/mo
+ @@rename = /<(exa:variable)([^>]+?label\=)([\"\'])([0-9A-Za-z\-\.\:]+?)(\3[^\/]*?)>(.*?)<(\/exa:variable)>/mo
+ @@refile = /<(exa:filename|exa:filelist)>(.*?)<(\/\1)>/mo
+
+ def ExaModes.cleanup_request(logger,filename='request.exa',modefile=@@modefile)
+ begin File.delete(filename+'.raw') ; rescue ; end
+ begin File.delete(modefile) ; rescue ; end
+ if FileTest.file?(filename) then
+ data, done = nil, false
+ begin
+ data = IO.read(filename)
+ rescue
+ data = nil
+ end
+ if data =~ @@request and data !~ @@redone then
+ data.gsub!(@@rename) do
+ done = true
+ '<' + $1 + $2 + $3 + $4 + $5 + '>' +
+ texifiedstr($4,$6) +
+ '<' + $7 + '>'
+ end
+ data.gsub!(@@refile) do
+ done = true
+ '<' + $1 + '>' +
+ cleanpath($2) +
+ '<' + $3 + '>'
+ end
+ data.gsub!(@@recalc) do
+ done = true
+ '<' + $1 + $2 + $3 + $4 + ":raw" + $6 + '>' + $7 + '<' + $8 + '>' +
+ '<' + $1 + $2 + $3 + $4 + $6 + '>' +
+ calculatortexmath($7,false) +
+ '<' + $8 + '>'
+ end
+ if done then
+ data.gsub!(@@request) do
+ $1 + " texified='yes'" + $2
+ end
+ begin File.copy(filename, filename+'.raw') ; rescue ; end
+ begin
+ logger.report("rewriting #{filename}") if logger
+ File.open(filename,'w') do |f|
+ f.puts(data)
+ end
+ rescue
+ logger.report("#{filename} cannot be rewritten") if logger
+ end
+ end
+ else
+ logger.report("#{filename} is already ok") if logger
+ end
+ @variables = Hash.new
+ data.scan(@@reload) do
+ @variables[$4] = $5
+ end
+ vars = @variables.subset('data.tex.var')
+ mpvars = @variables.subset('data.tex.mpvar')
+ modes = @variables.subset('data.tex.mode')
+ setups = @variables.subset('data.tex.setup')
+ if not (modes.empty? and setups.empty? and vars.empty? and mpvars.empty?) then
+ begin
+ File.open(modefile,'w') do |mod|
+ logger.report("saving modes and setups in #{modefile}") if logger
+ if not modes.empty? then
+ for key in modes.keys do
+ k = key.dup
+ k.gsub!(/\./,'-')
+ mod.puts("\\enablemode[#{k}-#{modes[key]}]\n")
+ if modes[key] =~ /(on|yes|start)/o then # ! ! ! ! !
+ mod.puts("\\enablemode[#{k}]\n")
+ end
+ end
+ mod.puts("\n\\readfile{cont-mod}{}{}\n")
+ end
+ if not setups.empty? then
+ for key in setups.keys
+ if key =~ /^(.+?)\.(.+?)\.(.+?)$/o then
+ command, key, type, value = $1, $2, $3, setups[key]
+ value = cleanedup(key,type,value)
+ mod.puts("\\#{$1}[#{key}=#{value}]\n")
+ elsif key =~ /^(.+?)\.(.+?)$/o then
+ command, type, value = $1, $2, setups[key]
+ mod.puts("\\#{$1}[#{value}]\n")
+ end
+ end
+ end
+ savevaroptions(vars, 'setvariables', mod)
+ savevaroptions(mpvars,'setMPvariables',mod)
+ end
+ rescue
+ logger.report("#{modefile} cannot be saved") if logger
+ end
+ else
+ logger.report("#{modefile} is not created") if logger
+ end
+ end
+ end
+
+ private
+
+ def ExaModes.autoparenthesis(str)
+ if str =~ /[\+\-]/o then '[1]' + str + '[1]' else str end
+ end
+
+ def ExaModes.cleanedup(key,type,value)
+ if type == 'dimension' then
+ unless value =~ /(cm|mm|in|bp|sp|pt|dd|em|ex)/o
+ value + 'pt'
+ else
+ value
+ end
+ elsif type == 'calcmath' then
+ '{' + calculatortexmath(value,true) + '}'
+ elsif type =~ /^filename|filelist$/ or key =~ /^filename|filelist$/ then
+ cleanpath(value)
+ else
+ value
+ end
+ end
+
+ def ExaModes.cleanpath(str)
+ (str ||'').gsub(/\\/o,'/')
+ end
+
+ def ExaModes.texifiedstr(key,val)
+ case key
+ when 'filename' then
+ cleanpath(val)
+ when 'filelist' then
+ cleanpath(val)
+ else
+ val
+ end
+ end
+
+ def ExaModes.savevaroptions(vars,setvariables,mod)
+ if not vars.empty? then
+ for key in vars.keys do
+ # var.whatever.width.dimension.value
+ if key =~ /^(.+?)\.(.+?)\.(.+?)$/o then
+ tag, key, type, value = $1, $2, $3, vars[key]
+ value = cleanedup(key,type,value)
+ mod.puts("\\#{setvariables}[#{tag}][#{key}=#{value}]\n")
+ elsif key =~ /^(.+?)\.(.+?)$/o then
+ tag, key, value = $1, $2, vars[key]
+ mod.puts("\\#{setvariables}[#{tag}][#{key}=#{value}]\n")
+ end
+ end
+ end
+ end
+
+ def ExaModes.calculatortexmath(str,tx=true)
+ if tx then
+ bdisp, edisp = "\\displaymath\{", "\}"
+ binln, einln = "\\inlinemath\{" , "\}"
+ egraf = "\\endgraf"
+ else
+ bdisp, edisp = "<displaytexmath>", "</displaytexmath>"
+ binln, einln = "<inlinetexmath>" , "</inlinetexmath>"
+ egraf = "<p/>"
+ end
+ str.gsub!(/\n\s*\n+/mois, "\\ENDGRAF ")
+ str.gsub!(/(\[\[)\s*(.*?)\s*(\]\])/mos) do
+ $1 + docalculatortexmath($2) + $3
+ end
+ str.gsub!(/(\\ENDGRAF)+\s*(\[\[)\s*(.*?)\s*(\]\])/mois) do
+ $1 + bdisp + $3 + edisp
+ end
+ str.gsub!(/(\[\[)\s*(.*?)\s*(\]\])/o) do
+ binln + $2 + einln
+ end
+ str.gsub!(/\\ENDGRAF/mos, egraf)
+ str
+ end
+
+ def ExaModes.docalculatortexmath(str)
+ str.gsub!(/\n/o) { ' ' }
+ str.gsub!(/\s+/o) { ' ' }
+ str.gsub!(/&gt;/o) { '>' }
+ str.gsub!(/&lt;/o) { '<' }
+ str.gsub!(/&.*?;/o) { }
+ level = 0
+ str.gsub!(/([\(\)])/o) do |chr|
+ if chr == '(' then
+ level = level + 1
+ chr = '[' + level.to_s + ']'
+ elsif chr == ')' then
+ chr = '[' + level.to_s + ']'
+ level = level - 1
+ end
+ chr
+ end
+ # ...E...
+ loop do
+ break unless str.gsub!(/([\d\.]+)E([\-\+]{0,1}[\d\.]+)/o) do
+ "\{\\SCINOT\{#{$1}\}\{#{$2}\}\}"
+ end
+ end
+ # ^-..
+ loop do
+ break unless str.gsub!(/\^([\-\+]*\d+)/o) do
+ "\^\{#{$1}\}"
+ end
+ end
+ # ^(...)
+ loop do
+ break unless str.gsub!(/\^(\[\d+\])(.*?)\1/o) do
+ "\^\{#{$2}\}"
+ end
+ end
+ # 1/x^2
+ loop do
+ break unless str.gsub!(/([\d\w\.]+)\/([\d\w\.]+)\^([\d\w\.]+)/o) do
+ "@\{#{$1}\}\{#{$2}\^\{#{$3}\}\}"
+ end
+ end
+ # int(a,b,c)
+ loop do
+ break unless str.gsub!(/(int|sum|prod)(\[\d+\])(.*?),(.*?),(.*?)\2/o) do
+ "\\#{$1.upcase}\^\{#{$4}\}\_\{#{$5}\}\{#{autoparenthesis($3)}\}"
+ end
+ end
+ # int(a,b)
+ loop do
+ break unless str.gsub!(/(int|sum|prod)(\[\d+\])(.*?),(.*?)\2/o) do
+ "\\#{$1.upcase}\_\{#{$4}\}\{#{autoparenthesis($3)}\}"
+ end
+ end
+ # int(a)
+ loop do
+ break unless str.gsub!(/(int|sum|prod)(\[\d+\])(.*?)\2/o) do
+ "\\#{$1.upcase}\{#{autoparenthesis($3)}\}"
+ end
+ end
+ # sin(x) => {\sin(x)}
+ loop do
+ break unless str.gsub!(/(median|min|max|round|sqrt|sin|cos|tan|sinh|cosh|tanh|ln|log)\s*(\[\d+\])(.*?)\2/o) do
+ "\{\\#{$1.upcase}\{#{$2}#{$3}#{$2}\}\}"
+ end
+ end
+ # mean
+ str.gsub!(/(mean)(\[\d+\])(.*?)\2/o) do
+ "\{\\OVERLINE\{#{$3}\}\}"
+ end
+ # sin x => {\sin(x)}
+ # ...
+ # (1+x)/(1+x) => \frac{1+x}{1+x}
+ loop do
+ break unless str.gsub!(/(\[\d+\])(.*?)\1\/(\[\d+\])(.*?)\3/o) do
+ "@\{#{$2}\}\{#{$4}\}"
+ end
+ end
+ # (1+x)/x => \frac{1+x}{x}
+ loop do
+ break unless str.gsub!(/(\[\d+\])(.*?)\1\/([a-zA-Z0-9]+)/o) do
+ "@\{#{$2}\}\{#{$3}\}"
+ end
+ end
+ # 1/(1+x) => \frac{1}{1+x}
+ loop do
+ break unless str.gsub!(/([a-zA-Z0-9]+)\/(\[\d+\])(.*?)\2/o) do
+ "@\{#{$1}\}\{#{$3}\}"
+ end
+ end
+ # 1/x => \frac{1}{x}
+ loop do
+ break unless str.gsub!(/([a-zA-Z0-9]+)\/([a-zA-Z0-9]+)/o) do
+ "@\{#{$1}\}\{#{$2}\}"
+ end
+ end
+ #
+ str.gsub!(/\@/o) do
+ "\\FRAC "
+ end
+ str.gsub!(/\*/o) do
+ " "
+ end
+ str.gsub!(/\<\=/o) do
+ "\\LE "
+ end
+ str.gsub!(/\>\=/o) do
+ "\\GE "
+ end
+ str.gsub!(/\=/o) do
+ "\\EQ "
+ end
+ str.gsub!(/\</o) do
+ "\\LT "
+ end
+ str.gsub!(/\>/) do
+ "\\GT "
+ end
+ str.gsub!(/(D)(\[\d+\])(.*?)\2/o) do
+ "\{\\FRAC\{\\MBOX{d}\}\{\\MBOX{d}x\}\{#{$2}#{$3}#{$2}\}\}"
+ end
+ str.gsub!(/(exp)(\[\d+\])(.*?)\2/o) do
+ "\{e^\{#{$3}\}\}"
+ end
+ str.gsub!(/(abs)(\[\d+\])(.*?)\2/o) do
+ "\{\\left\|#{$3}\\right\|\}"
+ end
+ str.gsub!(/D([x|y])/o) do
+ "\\FRAC\{\{\\rm d\}#{$1}\}\{\{\\rm d\}x\}"
+ end
+ str.gsub!(/D([f|g])(\[\d+\])(.*?)\2/o) do
+ "\{\\rm #{$1}\}'#{$2}#{$3}#{$2}"
+ end
+ str.gsub!(/([f|g])(\[\d+\])(.*?)\2/o) do
+ "\{\\rm #{$1}\}#{$2}#{$3}#{$2}"
+ end
+ str.gsub!(/(pi|inf)/io) do
+ "\\#{$1} "
+ end
+ loop do
+ break unless str.gsub!(/(\[\d+?\])(.*?)\1/o) do
+ "\\left(#{$2}\\right)"
+ end
+ end
+ str.gsub!(/\\([A-Z]+?)([\s\{\^\_\\])/io) do
+ "\\#{$1.downcase}#{$2}"
+ end
+ str
+ end
+
+end
+
+# ExaModes.cleanup_request()
diff --git a/Master/texmf-dist/scripts/context/ruby/base/file.rb b/Master/texmf-dist/scripts/context/ruby/base/file.rb
index 42fb346c409..39bb7d46731 100644
--- a/Master/texmf-dist/scripts/context/ruby/base/file.rb
+++ b/Master/texmf-dist/scripts/context/ruby/base/file.rb
@@ -105,12 +105,13 @@ class File
end
def File.silentdelete(filename)
- begin File.delete(filename) ; rescue ; end
+ File.delete(filename) rescue false
end
def File.silentcopy(oldname,newname)
return if File.expand_path(oldname) == File.expand_path(newname)
- begin File.copy(oldname,newname) ; rescue ; end
+ File.makedirs(File.dirname(newname)) rescue false
+ File.copy(oldname,newname) rescue false
end
def File.silentrename(oldname,newname)
@@ -118,11 +119,12 @@ class File
# maybe working over multiple file systems or
# apps may have mildly locked files (like gs does)
return if File.expand_path(oldname) == File.expand_path(newname)
- begin File.delete(newname) ; rescue ; end
+ File.delete(newname) rescue false
begin
File.rename(oldname,newname)
rescue
- begin File.copy(oldname,newname) ; rescue ; end
+ File.makedirs(File.dirname(newname)) rescue false
+ File.copy(oldname,newname) rescue false
end
end
diff --git a/Master/texmf-dist/scripts/context/ruby/base/kpse.rb b/Master/texmf-dist/scripts/context/ruby/base/kpse.rb
index dc4898ffc58..b0321672fc1 100644
--- a/Master/texmf-dist/scripts/context/ruby/base/kpse.rb
+++ b/Master/texmf-dist/scripts/context/ruby/base/kpse.rb
@@ -18,6 +18,26 @@ require 'rbconfig'
#
# miktex has mem|fmt|base paths
+class String
+
+ def split_path
+ if self =~ /\;/o || self =~ /^[a-z]\:/io then
+ self.split(";")
+ else
+ self.split(":")
+ end
+ end
+
+end
+
+class Array
+
+ def join_path
+ self.join(File::PATH_SEPARATOR)
+ end
+
+end
+
module Kpse
@@located = Hash.new
@@ -32,11 +52,21 @@ module Kpse
@@crossover = true
@@mswindows = Config::CONFIG['host_os'] =~ /mswin/
- @@distribution = 'miktex' if ENV['PATH'] =~ /miktex[\\\/]bin/o
+ # @@distribution = 'miktex' if ENV['PATH'] =~ /miktex[\\\/]bin/o
- @@usekpserunner = false || ENV['KPSEFAST'] == 'yes'
+ if ENV['PATH'] =~ /(.*?)miktex[\\\/]bin/i then
+ @@distribution = 'miktex' unless $1 =~ /(texmf\-mswin[\/\\]bin|bin[\/\\]win32)/i
+ end
+
+ @@re_true = /yes|on|true|1/i
- require 'base/tool' if @@usekpserunner
+ if (ENV['KPSEFAST'] =~ @@re_true) || (ENV['CTXMINIMAL'] =~ @@re_true) then
+ @@usekpserunner = true
+ require 'base/kpsefast'
+ require 'base/kpserunner'
+ else
+ @@usekpserunner = false
+ end
if @@crossover then
ENV.keys.each do |k|
@@ -113,12 +143,10 @@ module Kpse
begin
if @@problems then
results = ''
+ elsif @@usekpserunner then
+ results = KpseRunner.kpsewhich(arguments).chomp
else
- if @@usekpserunner then
- results = KpseRunner.kpsewhich(arguments).chomp
- else
- results = `kpsewhich #{arguments}`.chomp
- end
+ results = `kpsewhich #{arguments}`.chomp
end
rescue
puts "unable to run kpsewhich" if @@tracing
@@ -132,7 +160,7 @@ module Kpse
# maybe we should check for writeability
unless @@paths.key?('formatpaths') then
begin
- setpath('formatpaths',run("--show-path=fmt").gsub(/\\/,'/').split(File::PATH_SEPARATOR))
+ setpath('formatpaths',run("--show-path=fmt").gsub(/\\/,'/').split_path)
rescue
setpath('formatpaths',[])
end
@@ -189,30 +217,51 @@ module Kpse
end
# locate writable path
if ! formatpath.empty? then
- formatpath.split(File::PATH_SEPARATOR).each do |fp|
- fp.gsub!(/\\/,'/')
+ formatpaths, done = formatpath.split_path, false
+ formatpaths.collect! do |fp|
+ fp.gsub!(/\\/o,'/')
+ fp.gsub!(/\/\/$/o,'/')
# remove funny patterns
- fp.sub!(/^!!/,'')
- fp.sub!(/\/+$/,'')
- fp.sub!(/unsetengine/,if enginepath then engine else '' end)
- if ! fp.empty? && (fp != '.') then
- # strip (possible engine) and test for writeability
- fpp = fp.sub(/#{engine}\/*$/,'')
+ fp.sub!(/^!!/o,'')
+ fp.sub!(/\/+$/o,'')
+ fp.sub!(/(unsetengine|unset)/o,if enginepath then engine else '' end)
+ fp
+ end
+ formatpaths.delete_if do |fp|
+ fp.empty? || fp == '.'
+ end
+ # the engine path may not yet be present, find first writable
+ formatpaths.each do |fp|
+ # strip (possible engine) and test for writeability
+ fpp = fp.sub(/#{engine}\/*$/o,'')
+ if FileTest.directory?(fpp) && FileTest.writable?(fpp) then
+ # use this path
+ formatpath, done = fp.dup, true
+ break
+ end
+ end
+ unless done then
+ formatpaths.each do |fp|
+ fpp = fp.sub(/#{engine}\/*$/o,'')
+ File.makedirs(fpp) rescue false # maybe we don't have an path yet
if FileTest.directory?(fpp) && FileTest.writable?(fpp) then
# use this path
- formatpath = fp.dup
+ formatpath, done = fp.dup, true
break
end
end
end
+ unless done then
+ formatpath = '.'
+ end
end
# needed !
- begin File.makedirs(formatpath) ; rescue ; end ;
+ File.makedirs(formatpath) rescue false
# fall back to current path
formatpath = '.' if formatpath.empty? || ! FileTest.writable?(formatpath)
# append engine but prevent duplicates
formatpath = File.join(formatpath.sub(/\/*#{engine}\/*$/,''), engine) if enginepath
- begin File.makedirs(formatpath) ; rescue ; end ;
+ File.makedirs(formatpath) rescue false
setpath(engine,formatpath)
# ENV['engine'] = savedengine
end
@@ -283,6 +332,10 @@ module Kpse
`#{cmd}`
end
+ def Kpse.searchmethod
+ if @@usekpserunner then 'kpsefast' else 'kpsewhich' end
+ end
+
private
def Kpse.setvariable(key,value)
diff --git a/Master/texmf-dist/scripts/context/ruby/base/kpse/drb.rb b/Master/texmf-dist/scripts/context/ruby/base/kpse/drb.rb
new file mode 100644
index 00000000000..db1ce0eec87
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/base/kpse/drb.rb
@@ -0,0 +1,57 @@
+require 'drb'
+require 'base/kpse/trees'
+
+class KpseServer
+
+ attr_accessor :port
+
+ def initialize(port=7000)
+ @port = port
+ end
+
+ def start
+ puts "starting drb service at port #{@port}"
+ DRb.start_service("druby://localhost:#{@port}", KpseTrees.new)
+ trap(:INT) do
+ DRb.stop_service
+ end
+ DRb.thread.join
+ end
+
+ def stop
+ # todo
+ end
+
+end
+
+class KpseClient
+
+ attr_accessor :port
+
+ def initialize(port=7000)
+ @port = port
+ @kpse = nil
+ end
+
+ def start
+ # only needed when callbacks are used / slow, due to Socket::getaddrinfo
+ # DRb.start_service
+ end
+
+ def object
+ @kpse = DRbObject.new(nil,"druby://localhost:#{@port}")
+ end
+
+end
+
+
+# SERVER_URI="druby://localhost:8787"
+#
+# # Start a local DRbServer to handle callbacks.
+# #
+# # Not necessary for this small example, but will be required
+# # as soon as we pass a non-marshallable object as an argument
+# # to a dRuby call.
+# DRb.start_service
+#
+# timeserver = DRbObject.new_with_uri(SERVER_URI)
diff --git a/Master/texmf-dist/scripts/context/ruby/base/kpse/soap.rb b/Master/texmf-dist/scripts/context/ruby/base/kpse/soap.rb
new file mode 100644
index 00000000000..c9ed75c446b
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/base/kpse/soap.rb
@@ -0,0 +1,79 @@
+require 'soap/rpc/standaloneServer'
+require 'soap/rpc/driver'
+
+require 'base/kpse/trees'
+
+class KpseService < SOAP::RPC::StandaloneServer
+
+ def on_init
+ kpse = KpseTrees.new
+ add_method(kpse, 'choose', 'files', 'environment')
+ add_method(kpse, 'load', 'files', 'environment')
+ add_method(kpse, 'expand_variables', 'tree')
+ add_method(kpse, 'expand_braces', 'tree', 'str')
+ add_method(kpse, 'expand_path', 'tree', 'str')
+ add_method(kpse, 'expand_var', 'tree', 'str')
+ add_method(kpse, 'show_path', 'tree', 'str')
+ add_method(kpse, 'var_value', 'tree', 'str')
+ add_method(kpse, 'find_file', 'tree', 'filename')
+ add_method(kpse, 'find_files', 'tree', 'filename', 'first')
+ end
+
+end
+
+class KpseServer
+
+ @@url = 'http://kpse.thismachine.org/KpseService'
+
+ attr_accessor :port
+
+ def initialize(port=7000)
+ @port = port
+ @server = nil
+ end
+
+ def start
+ puts "starting soap service at port #{@port}"
+ @server = KpseService.new('KpseServer', @@url, '0.0.0.0', @port.to_i)
+ trap(:INT) do
+ @server.shutdown
+ end
+ status = @server.start
+ end
+
+ def stop
+ @server.shutdown rescue false
+ end
+
+end
+
+class KpseClient
+
+ @@url = 'http://kpse.thismachine.org/KpseService'
+
+ attr_accessor :port
+
+ def initialize(port=7000)
+ @port = port
+ @kpse = nil
+ end
+
+ def start
+ @kpse = SOAP::RPC::Driver.new("http://localhost:#{port}/", @@url)
+ @kpse.add_method('choose','files', 'environment')
+ @kpse.add_method('load','files', 'environment')
+ @kpse.add_method('expand_variables', 'tree')
+ @kpse.add_method('expand_braces', 'tree', 'str')
+ @kpse.add_method('expand_path', 'tree', 'str')
+ @kpse.add_method('expand_var', 'tree', 'str')
+ @kpse.add_method('show_path', 'tree', 'str')
+ @kpse.add_method('var_value', 'tree', 'str')
+ @kpse.add_method('find_file', 'tree', 'filename')
+ @kpse.add_method('find_files', 'tree', 'filename', 'first')
+ end
+
+ def object
+ @kpse
+ end
+
+end
diff --git a/Master/texmf-dist/scripts/context/ruby/base/kpse/trees.rb b/Master/texmf-dist/scripts/context/ruby/base/kpse/trees.rb
new file mode 100644
index 00000000000..9c872eb18c1
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/base/kpse/trees.rb
@@ -0,0 +1,84 @@
+require 'monitor'
+require 'base/kpsefast'
+
+class KpseTrees < Monitor
+
+ def initialize
+ @trees = Hash.new
+ end
+
+ def pattern(filenames)
+ filenames.join('|').gsub(/\\+/o,'/').downcase
+ end
+
+ def choose(filenames,environment)
+ current = pattern(filenames)
+ load(filenames,environment) unless @trees[current]
+ puts "enabling tree #{current}"
+ current
+ end
+
+ def fetch(filenames,environment) # will send whole object !
+ current = pattern(filenames)
+ load(filenames,environment) unless @trees[current]
+ puts "fetching tree #{current}"
+ @trees[current]
+ end
+
+ def load(filenames,environment)
+ current = pattern(filenames)
+ puts "loading tree #{current}"
+ @trees[current] = KpseFast.new
+ @trees[current].push_environment(environment)
+ @trees[current].load_cnf(filenames)
+ @trees[current].expand_variables
+ @trees[current].load_lsr
+ end
+
+ def set(tree,key,value)
+ case key
+ when 'progname' then @trees[tree].progname = value
+ when 'engine' then @trees[tree].engine = value
+ when 'format' then @trees[tree].format = value
+ end
+ end
+ def get(tree,key)
+ case key
+ when 'progname' then @trees[tree].progname
+ when 'engine' then @trees[tree].engine
+ when 'format' then @trees[tree].format
+ end
+ end
+
+ def load_cnf(tree)
+ @trees[tree].load_cnf
+ end
+ def load_lsr(tree)
+ @trees[tree].load_lsr
+ end
+ def expand_variables(tree)
+ @trees[tree].expand_variables
+ end
+ def expand_braces(tree,str)
+ @trees[tree].expand_braces(str)
+ end
+ def expand_path(tree,str)
+ @trees[tree].expand_path(str)
+ end
+ def expand_var(tree,str)
+ @trees[tree].expand_var(str)
+ end
+ def show_path(tree,str)
+ @trees[tree].show_path(str)
+ end
+ def var_value(tree,str)
+ @trees[tree].var_value(str)
+ end
+ def find_file(tree,filename)
+ @trees[tree].find_file(filename)
+ end
+ def find_files(tree,filename,first)
+ @trees[tree].find_files(filename,first)
+ end
+
+end
diff --git a/Master/texmf-dist/scripts/context/ruby/base/kpsedirect.rb b/Master/texmf-dist/scripts/context/ruby/base/kpsedirect.rb
new file mode 100644
index 00000000000..6fa8c8601a9
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/base/kpsedirect.rb
@@ -0,0 +1,34 @@
+class KpseDirect
+
+ attr_accessor :progname, :format, :engine
+
+ def initialize
+ @progname, @format, @engine = '', '', ''
+ end
+
+ def expand_path(str)
+ clean_name(`kpsewhich -expand-path=#{str}`.chomp)
+ end
+
+ def expand_var(str)
+ clean_name(`kpsewhich -expand-var=#{str}`.chomp)
+ end
+
+ def find_file(str)
+ clean_name(`kpsewhich #{_progname_} #{_format_} #{str}`.chomp)
+ end
+
+ def _progname_
+ if @progname.empty? then '' else "-progname=#{@progname}" end
+ end
+ def _format_
+ if @format.empty? then '' else "-format=\"#{@format}\"" end
+ end
+
+ private
+
+ def clean_name(str)
+ str.gsub(/\\/,'/')
+ end
+
+end
diff --git a/Master/texmf-dist/scripts/context/ruby/base/kpsefast.rb b/Master/texmf-dist/scripts/context/ruby/base/kpsefast.rb
index 52ab28d0fe7..20c07c70a4e 100644
--- a/Master/texmf-dist/scripts/context/ruby/base/kpsefast.rb
+++ b/Master/texmf-dist/scripts/context/ruby/base/kpsefast.rb
@@ -10,6 +10,26 @@
# todo: multiple cnf files
+class String
+
+ def split_path
+ if self =~ /\;/o || self =~ /^[a-z]\:/io then
+ self.split(";")
+ else
+ self.split(":")
+ end
+ end
+
+end
+
+class Array
+
+ def join_path
+ self.join(File::PATH_SEPARATOR)
+ end
+
+end
+
class File
def File.locate_file(path,name)
@@ -37,7 +57,70 @@ class File
end
-class KPSEFAST
+module KpseUtil
+
+ # to be adapted, see loading cnf file
+
+ @@texmftrees = ['texmf-local','texmf.local','../..','texmf'] # '../..' is for gwtex
+ @@texmfcnf = 'texmf.cnf'
+
+ def KpseUtil::identify
+ # we mainly need to identify the local tex stuff and wse assume that
+ # the texmfcnf variable is set; otherwise we need to expand the
+ # TEXMF variable and that takes time since it may involve more
+ ownpath = File.expand_path($0)
+ if ownpath.gsub!(/texmf.*?$/o, '') then
+ ENV['SELFAUTOPARENT'] = ownpath
+ else
+ ENV['SELFAUTOPARENT'] = '.' # fall back
+ # may be too tricky:
+ #
+ # (ENV['PATH'] ||'').split_path.each do |p|
+ # if p.gsub!(/texmf.*?$/o, '') then
+ # ENV['SELFAUTOPARENT'] = p
+ # break
+ # end
+ # end
+ end
+ filenames = Array.new
+ if ENV['TEXMFCNF'] && ! ENV['TEXMFCNF'].empty? then
+ ENV['TEXMFCNF'].to_s.split_path.each do |path|
+ filenames << File.join(path,@@texmfcnf)
+ end
+ elsif ENV['SELFAUTOPARENT'] == '.' then
+ filenames << File.join('.',@@texmfcnf)
+ else
+ @@texmftrees.each do |tree|
+ filenames << File.join(ENV['SELFAUTOPARENT'],tree,'web2c',@@texmfcnf)
+ end
+ end
+ loop do
+ busy = false
+ filenames.collect! do |f|
+ f.gsub(/\$([a-zA-Z0-9\_\-]+)/o) do
+ if (! ENV[$1]) || (ENV[$1] == $1) then
+ "$#{$1}"
+ else
+ busy = true
+ ENV[$1]
+ end
+ end
+ end
+ break unless busy
+ end
+ filenames.delete_if do |f|
+ ! FileTest.file?(f)
+ end
+ return filenames
+ end
+
+ def KpseUtil::environment
+ Hash.new.merge(ENV)
+ end
+
+end
+
+class KpseFast
# formats are an incredible inconsistent mess
@@ -45,6 +128,8 @@ class KPSEFAST
@@formats = Hash.new
@@suffixmap = Hash.new
+ @@texmfcnf = 'texmf.cnf'
+
@@suffixes['gf'] = ['.<resolution>gf'] # todo
@@suffixes['pk'] = ['.<resolution>pk'] # todo
@@suffixes['tfm'] = ['.tfm']
@@ -121,7 +206,7 @@ class KPSEFAST
@@formats['bst'] = ''
@@formats['cnf'] = ''
@@formats['ls-R'] = ''
- @@formats['fmt'] = ''
+ @@formats['fmt'] = 'TEXFORMATS'
@@formats['map'] = 'TEXFONTMAPS'
@@formats['mem'] = 'MPMEMS'
@@formats['mf'] = 'MFINPUTS'
@@ -170,27 +255,41 @@ class KPSEFAST
@@cacheversion = '1'
def initialize
- @rootpath = ''
- @treepath = ''
- @progname = 'kpsewhich'
- @engine = 'pdfetex'
- @variables = Hash.new
- @expansions = Hash.new
- @files = Hash.new
- @found = Hash.new
- @kpsevars = Hash.new
- @lsrfiles = Array.new
- @cnffiles = Array.new
- @verbose = true
- @remember = true
- @scandisk = true
- @diskcache = true
- @renewcache = false
- @isolate = false
-
- @diskcache = false
- @cachepath = nil
- @cachefile = 'tmftools.log'
+ @rootpath = ''
+ @treepath = ''
+ @progname = 'kpsewhich'
+ @engine = 'pdfetex'
+ @variables = Hash.new
+ @expansions = Hash.new
+ @files = Hash.new
+ @found = Hash.new
+ @kpsevars = Hash.new
+ @lsrfiles = Array.new
+ @cnffiles = Array.new
+ @verbose = true
+ @remember = true
+ @scandisk = true
+ @diskcache = true
+ @renewcache = false
+ @isolate = false
+
+ @diskcache = false
+ @cachepath = nil
+ @cachefile = 'tmftools.log'
+
+ @environment = ENV
+ end
+
+ def set(key,value)
+ case key
+ when 'progname' then @progname = value
+ when 'engine' then @engine = value
+ when 'format' then @format = value
+ end
+ end
+
+ def push_environment(env)
+ @environment = env
end
# {$SELFAUTOLOC,$SELFAUTODIR,$SELFAUTOPARENT}{,{/share,}/texmf{-local,}/web2c}
@@ -201,36 +300,42 @@ class KPSEFAST
#
# since we live in scriptpath we need a slightly different method
- def load_cnf
- ownpath = File.expand_path($0)
- if ownpath.gsub!(/texmf.*?$/o, '') then
- ENV['SELFAUTOPARENT'] = ownpath
- else
- ENV['SELFAUTOPARENT'] = '.'
- end
- unless @treepath.empty? then
+ def load_cnf(filenames=nil)
+ unless filenames then
+ ownpath = File.expand_path($0)
+ if ownpath.gsub!(/texmf.*?$/o, '') then
+ @environment['SELFAUTOPARENT'] = ownpath
+ else
+ @environment['SELFAUTOPARENT'] = '.'
+ end
+ unless @treepath.empty? then
+ unless @rootpath.empty? then
+ @treepath = @treepath.split(',').collect do |p| File.join(@rootpath,p) end.join(',')
+ end
+ @environment['TEXMF'] = @treepath
+ # only the first one
+ @environment['TEXMFCNF'] = File.join(@treepath.split(',').first,'texmf/web2c')
+ end
unless @rootpath.empty? then
- @treepath = @treepath.split(',').collect do |p| File.join(@rootpath,p) end.join(',')
+ @environment['TEXMFCNF'] = File.join(@rootpath,'texmf/web2c')
+ @environment['SELFAUTOPARENT'] = @rootpath
+ @isolate = true
end
- ENV['TEXMF'] = @treepath
- ENV['TEXMFCNF'] = File.join(@treepath.split(',').first,'texmf/web2c')
- end
- unless @rootpath.empty? then
- ENV['TEXMFCNF'] = File.join(@rootpath,'texmf/web2c')
- ENV['SELFAUTOPARENT'] = @rootpath
- @isolate = true
- end
- filenames = Array.new
- if ENV['TEXMFCNF'] and not ENV['TEXMFCNF'].empty? then
- filenames << File.join(ENV['TEXMFCNF'],'texmf.cnf')
- elsif ENV['SELFAUTOPARENT'] == '.' then
- filenames << File.join('.','texmf.cnf')
- else
- ['texmf-local','texmf'].each do |tree|
- filenames << File.join(ENV['SELFAUTOPARENT'],tree,'web2c','texmf.cnf')
+ filenames = Array.new
+ if @environment['TEXMFCNF'] and not @environment['TEXMFCNF'].empty? then
+ @environment['TEXMFCNF'].to_s.split_path.each do |path|
+ filenames << File.join(path,@@texmfcnf)
+ end
+ elsif @environment['SELFAUTOPARENT'] == '.' then
+ filenames << File.join('.',@@texmfcnf)
+ else
+ ['texmf-local','texmf'].each do |tree|
+ filenames << File.join(@environment['SELFAUTOPARENT'],tree,'web2c',@@texmfcnf)
+ end
end
end
# <root>/texmf/web2c/texmf.cnf
+ filenames = _expanded_path_(filenames)
@rootpath = filenames.first
3.times do
@rootpath = File.dirname(@rootpath)
@@ -280,9 +385,9 @@ class KPSEFAST
@files = Hash.new
if @diskcache then
['HOME','TEMP','TMP','TMPDIR'].each do |key|
- if ENV[key] then
- if FileTest.directory?(ENV[key]) then
- @cachepath = ENV[key]
+ if @environment[key] then
+ if FileTest.directory?(@environment[key]) then
+ @cachepath = @environment[key]
@cachefile = [@rootpath.gsub(/[^A-Z0-9]/io, '-').gsub(/\-+/,'-'),File.basename(@cachefile)].join('-')
break
end
@@ -342,14 +447,14 @@ class KPSEFAST
def expand_variables
@expansions = Hash.new
if @isolate then
- @variables['TEXMFCNF'] = ENV['TEXMFCNF'].dup
- @variables['SELFAUTOPARENT'] = ENV['SELFAUTOPARENT'].dup
+ @variables['TEXMFCNF'] = @environment['TEXMFCNF'].dup
+ @variables['SELFAUTOPARENT'] = @environment['SELFAUTOPARENT'].dup
else
- ENV.keys.each do |e|
+ @environment.keys.each do |e|
if e =~ /^([a-zA-Z]+)\_(.*)\s*$/o then
- @expansions["#{$1}.#{$2}"] = ENV[e].dup
+ @expansions["#{$1}.#{$2}"] = (@environment[e] ||'').dup
else
- @expansions[e] = ENV[e].dup
+ @expansions[e] = (@environment[e] ||'').dup
end
end
end
@@ -465,7 +570,8 @@ class KPSEFAST
end
end
pathlist = pathlist.uniq.collect do |path|
- p = path.gsub(/^\/+/o) do '' end
+ p = path
+ # p.gsub(/^\/+/o) do '' end
# p.gsub!(/(.)\/\/(.)/o) do "#{$1}/#{$2}" end
# p.gsub!(/\/\/+$/o) do '//' end
p.gsub!(/\/\/+/o) do '//' end
@@ -485,8 +591,8 @@ class KPSEFAST
end
def var_of_format_or_suffix(str)
- if @@formats.key?(@format) then
- @@formats[@format]
+ if @@formats.key?(str) then
+ @@formats[str]
elsif @@suffixmap.key?(File.extname(str)) then # extname includes .
@@formats[@@suffixmap[File.extname(str)]] # extname includes .
else
@@ -496,7 +602,7 @@ class KPSEFAST
end
-class KPSEFAST
+class KpseFast
# test things
@@ -536,23 +642,23 @@ class KPSEFAST
puts ""
puts @variables ["KPSE_TEST_PATTERN_#{i}"]
puts ""
- puts expand_path("KPSE_TEST_PATTERN_#{i}").split(File::PATH_SEPARATOR)
+ puts expand_path("KPSE_TEST_PATTERN_#{i}").split_path
puts ""
end
end
end
-class KPSEFAST
+class KpseFast
# kpse stuff
def expand_braces(str) # output variable and brace expansion of STRING.
- _expanded_path_(original_variable(str).split(";")).join(File::PATH_SEPARATOR)
+ _expanded_path_(original_variable(str).split_path).join_path
end
def expand_path(str) # output complete path expansion of STRING.
- _expanded_path_(expanded_variable(str).split(";")).join(File::PATH_SEPARATOR)
+ _expanded_path_(expanded_variable(str).split_path).join_path
end
def expand_var(str) # output variable expansion of STRING.
@@ -560,7 +666,7 @@ class KPSEFAST
end
def show_path(str) # output search path for file type NAME
- expanded_path(var_of_format(str)).join(File::PATH_SEPARATOR)
+ expanded_path(str).join_path
end
def var_value(str) # output the value of variable $STRING.
@@ -569,97 +675,117 @@ class KPSEFAST
end
-class KPSEFAST
+class KpseFast
+
+ def _is_cnf_?(filename)
+ filename == File.basename((@cnffiles.first rescue @@texmfcnf) || @@texmfcnf)
+ end
def find_file(filename)
- find_files(filename,true)
+ if _is_cnf_?(filename) then
+ @cnffiles.first rescue ''
+ else
+ [find_files(filename,true)].flatten.first || ''
+ end
end
def find_files(filename,first=false)
- if @remember then
- stamp = "#{filename}--#{@format}--#{@engine}--#{@progname}"
- return @found[stamp] if @found.key?(stamp)
- end
- pathlist = expanded_path(filename)
- result = []
- filelist = if @files.key?(filename) then @files[filename].uniq else nil end
- done = false
- pathlist.each do |path|
- doscan = if path =~ /^\!\!/o then false else true end
- recurse = if path =~ /\/\/$/o then true else false end
- pathname = path.dup
- pathname.gsub!(/^\!+/o, '')
+ if _is_cnf_?(filename) then
+ result = @cnffiles.dup
+ else
+ if @remember then
+ # stamp = "#{filename}--#{@format}--#{@engine}--#{@progname}"
+ stamp = "#{filename}--#{@engine}--#{@progname}"
+ return @found[stamp] if @found.key?(stamp)
+ end
+ pathlist = expanded_path(filename)
+ result = []
+ filelist = if @files.key?(filename) then @files[filename].uniq else nil end
done = false
- if not done and filelist then
- # checking for exact match
- if filelist.include?(pathname) then
- result << pathname
+ if pathlist.size == 0 then
+ if FileTest.file?(filename) then
done = true
+ result << '.'
end
- if not done and recurse then
- # checking for fuzzy //
- pathname.gsub!(/\/+$/o, '/.*')
- # pathname.gsub!(/\/\//o,'/[\/]*/')
- pathname.gsub!(/\/\//o,'/.*?/')
- re = /^#{pathname}/
- filelist.each do |f|
- if re =~ f then
- result << f # duplicates will be filtered later
+ else
+ pathlist.each do |path|
+ doscan = if path =~ /^\!\!/o then false else true end
+ recurse = if path =~ /\/\/$/o then true else false end
+ pathname = path.dup
+ pathname.gsub!(/^\!+/o, '')
+ done = false
+ if not done and filelist then
+ # checking for exact match
+ if filelist.include?(pathname) then
+ result << pathname
done = true
end
- break if done
+ if not done and recurse then
+ # checking for fuzzy //
+ pathname.gsub!(/\/+$/o, '/.*')
+ # pathname.gsub!(/\/\//o,'/[\/]*/')
+ pathname.gsub!(/\/\//o,'/.*?/')
+ re = /^#{pathname}/
+ filelist.each do |f|
+ if re =~ f then
+ result << f # duplicates will be filtered later
+ done = true
+ end
+ break if done
+ end
+ end
end
+ if not done and doscan then
+ # checking for path itself
+ pname = pathname.sub(/\.\*$/,'')
+ if not pname =~ /\*/o and FileTest.file?(File.join(pname,filename)) then
+ result << pname
+ done = true
+ end
+ end
+ break if done and first
end
end
- if not done and doscan then
- # checking for path itself
- pname = pathname.sub(/\.\*$/,'')
- if not pname =~ /\*/o and FileTest.file?(File.join(pname,filename)) then
- result << pname
- done = true
- end
- end
- break if done and first
- end
- if not done and @scandisk then
- pathlist.each do |path|
- pathname = path.dup
- unless pathname.gsub!(/^\!+/o, '') then # !! prevents scan
- recurse = pathname.gsub!(/\/+$/o, '')
- complex = pathname.gsub!(/\/\//o,'/*/')
- if recurse then
- if complex then
- if ok = File.glob_file("#{pathname}/**/#{filename}") then
+ if not done and @scandisk then
+ pathlist.each do |path|
+ pathname = path.dup
+ unless pathname.gsub!(/^\!+/o, '') then # !! prevents scan
+ recurse = pathname.gsub!(/\/+$/o, '')
+ complex = pathname.gsub!(/\/\//o,'/*/')
+ if recurse then
+ if complex then
+ if ok = File.glob_file("#{pathname}/**/#{filename}") then
+ result << File.dirname(ok)
+ done = true
+ end
+ elsif ok = File.locate_file(pathname,filename) then
result << File.dirname(ok)
done = true
end
- elsif ok = File.locate_file(pathname,filename) then
- result << File.dirname(ok)
- done = true
- end
- elsif complex then
- if ok = File.glob_file("#{pathname}/#{filename}") then
- result << File.dirname(ok)
+ elsif complex then
+ if ok = File.glob_file("#{pathname}/#{filename}") then
+ result << File.dirname(ok)
+ done = true
+ end
+ elsif FileTest.file?(File.join(pathname,filename)) then
+ result << pathname
done = true
end
- elsif FileTest.file?(File.join(pathname,filename)) then
- result << pathname
- done = true
+ break if done and first
end
- break if done and first
end
end
+ result = result.uniq.collect do |pathname|
+ File.join(pathname,filename)
+ end
+ @found[stamp] = result if @remember
end
- result = result.uniq.collect do |pathname|
- File.join(pathname,filename)
- end
- @found[stamp] = result if @remember
return result # redundant
end
end
-class KPSEFAST
+class KpseFast
class FileData
attr_accessor :tag, :name, :size, :date
@@ -673,12 +799,9 @@ class KPSEFAST
end
def report
case @tag
- when 1
- "deleted | #{@size.to_s.rjust(8)} | #{@date.strftime('%m/%d/%Y %I:%M')} | #{@name}"
- when 2
- "present | #{@size.to_s.rjust(8)} | #{@date.strftime('%m/%d/%Y %I:%M')} | #{@name}"
- when 3
- "obsolete | #{' '*8} | #{' '*16} | #{@name}"
+ when 1 then "deleted | #{@size.to_s.rjust(8)} | #{@date.strftime('%m/%d/%Y %I:%M')} | #{@name}"
+ when 2 then "present | #{@size.to_s.rjust(8)} | #{@date.strftime('%m/%d/%Y %I:%M')} | #{@name}"
+ when 3 then "obsolete | #{' '*8} | #{' '*16} | #{@name}"
end
end
end
@@ -769,88 +892,16 @@ class KPSEFAST
end
-module KpseRunner
-
- @@kpse = nil
-
- def KpseRunner.kpsewhich(arg='')
- options, arguments = split_args(arg)
- unless @@kpse then
- @@kpse = KPSEFAST.new
- @@kpse.load_cnf
- @@kpse.progname = options['progname'] || ''
- @@kpse.engine = options['engine'] || ''
- @@kpse.format = options['format'] || ''
- @@kpse.expand_variables
- @@kpse.load_lsr
- else
- @@kpse.progname = options['progname'] || ''
- @@kpse.engine = options['engine'] || ''
- @@kpse.format = options['format'] || ''
- @@kpse.expand_variables
- end
- if option = options['expand-braces'] and not option.empty? then
- @@kpse.expand_braces(option)
- elsif option = options['expand-path'] and not option.empty? then
- @@kpse.expand_path(option)
- elsif option = options['expand-var'] and not option.empty? then
- @@kpse.expand_var(option)
- elsif option = options['show-path'] and not option.empty? then
- @@kpse.show_path(option)
- elsif option = options['var-value'] and not option.empty? then
- @@kpse.expand_var(option)
- elsif arguments.size > 0 then
- files = Array.new
- arguments.each do |option|
- if file = @@kpse.find_file(option) and not file.empty? then
- files << file
- end
- end
- files.join("\n")
- else
- ''
- end
- end
-
- def KpseRunner.kpsereset
- @@kpse = nil
- end
-
- private
+# if false then
- def KpseRunner.split_args(arg)
- vars, args = Hash.new, Array.new
- arg.gsub!(/([\"\'])(.*?)\1/o) do
- $2.gsub(' ','<space/>')
- end
- arg = arg.split(/\s+/o)
- arg.collect! do |a|
- a.gsub('<space/>',' ')
- end
- arg.each do |a|
- if a =~ /^(.*?)\=(.*?)$/o then
- k, v = $1, $2
- vars[k.sub(/^\-+/,'')] = v
- else
- args << a
- end
- end
- # puts vars.inspect
- # puts args.inspect
- return vars, args
- end
-
-end
-
-if false then
+ # k = KpseFast.new # (root)
+ # k.set_test_patterns
+ # k.load_cnf
+ # k.expand_variables
+ # k.load_lsr
- k = KPSEFAST.new # (root)
- k.set_test_patterns
- k.load_cnf
- k.expand_variables
- k.load_lsr
+ # k.show_test_patterns
- k.show_test_patterns
# puts k.list_variables
# puts k.list_expansions
# k.list_lsr
@@ -876,6 +927,6 @@ if false then
# puts "expand value $TEXINPUTS.context"
# puts k.var_value("$TEXINPUTS.context")
- exit
+ # exit
-end
+# end
diff --git a/Master/texmf-dist/scripts/context/ruby/base/kpseremote.rb b/Master/texmf-dist/scripts/context/ruby/base/kpseremote.rb
new file mode 100644
index 00000000000..9a73b88b00e
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/base/kpseremote.rb
@@ -0,0 +1,116 @@
+require 'base/kpsefast'
+
+case ENV['KPSEMETHOD']
+ when /soap/o then require 'base/kpse/soap'
+ when /drb/o then require 'base/kpse/drb'
+ else require 'base/kpse/drb'
+end
+
+class KpseRemote
+
+ @@port = ENV['KPSEPORT'] || 7000
+ @@method = ENV['KPSEMETHOD'] || 'drb'
+
+ def KpseRemote::available?
+ @@method && @@port
+ end
+
+ def KpseRemote::start_server(port=nil)
+ kpse = KpseServer.new(port || @@port)
+ kpse.start
+ end
+
+ def KpseRemote::start_client(port=nil) # keeps object in server
+ kpseclient = KpseClient.new(port || @@port)
+ kpseclient.start
+ kpse = kpseclient.object
+ tree = kpse.choose(KpseUtil::identify, KpseUtil::environment)
+ [kpse, tree]
+ end
+
+ def KpseRemote::fetch(port=nil) # no need for defining methods but slower, send whole object
+ kpseclient = KpseClient.new(port || @@port)
+ kpseclient.start
+ kpseclient.object.fetch(KpseUtil::identify, KpseUtil::environment) rescue nil
+ end
+
+ def initialize(port=nil)
+ if KpseRemote::available? then
+ begin
+ @kpse, @tree = KpseRemote::start_client(port)
+ rescue
+ @kpse, @tree = nil, nil
+ end
+ else
+ @kpse, @tree = nil, nil
+ end
+ end
+
+ def progname=(value)
+ @kpse.set(@tree,'progname',value)
+ end
+ def format=(value)
+ @kpse.set(@tree,'format',value)
+ end
+ def engine=(value)
+ @kpse.set(@tree,'engine',value)
+ end
+
+ def progname
+ @kpse.get(@tree,'progname')
+ end
+ def format
+ @kpse.get(@tree,'format')
+ end
+ def engine
+ @kpse.get(@tree,'engine')
+ end
+
+ def load
+ @kpse.load(KpseUtil::identify, KpseUtil::environment)
+ end
+ def okay?
+ @kpse && @tree
+ end
+ def set(key,value)
+ @kpse.set(@tree,key,value)
+ end
+ def load_cnf
+ @kpse.load_cnf(@tree)
+ end
+ def load_lsr
+ @kpse.load_lsr(@tree)
+ end
+ def expand_variables
+ @kpse.expand_variables(@tree)
+ end
+ def expand_braces(str)
+ clean_name(@kpse.expand_braces(@tree,str))
+ end
+ def expand_path(str)
+ clean_name(@kpse.expand_path(@tree,str))
+ end
+ def expand_var(str)
+ clean_name(@kpse.expand_var(@tree,str))
+ end
+ def show_path(str)
+ clean_name(@kpse.show_path(@tree,str))
+ end
+ def var_value(str)
+ clean_name(@kpse.var_value(@tree,str))
+ end
+ def find_file(filename)
+ clean_name(@kpse.find_file(@tree,filename))
+ end
+ def find_files(filename,first=false)
+ # dodo: each filename
+ @kpse.find_files(@tree,filename,first)
+ end
+
+ private
+
+ def clean_name(str)
+ str.gsub(/\\/,'/')
+ end
+
+end
diff --git a/Master/texmf-dist/scripts/context/ruby/base/kpserunner.rb b/Master/texmf-dist/scripts/context/ruby/base/kpserunner.rb
new file mode 100644
index 00000000000..cfc2ad4fbfd
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/base/kpserunner.rb
@@ -0,0 +1,87 @@
+require 'base/kpsefast'
+
+module KpseRunner
+
+ @@kpse = nil
+
+ def KpseRunner.kpsewhich(arg='')
+ options, arguments = split_args(arg)
+ unless @@kpse then
+ if ENV['KPSEMETHOD'] && ENV['KPSEPORT'] then
+ require 'base/kpseremote'
+ @@kpse = KpseRemote.new
+ else
+ @@kpse = nil
+ end
+ if @@kpse && @@kpse.okay? then
+ @@kpse.progname = options['progname'] || ''
+ @@kpse.engine = options['engine'] || ''
+ @@kpse.format = options['format'] || ''
+ else
+ require 'base/kpsefast'
+ @@kpse = KpseFast.new
+ @@kpse.load_cnf
+ @@kpse.progname = options['progname'] || ''
+ @@kpse.engine = options['engine'] || ''
+ @@kpse.format = options['format'] || ''
+ @@kpse.expand_variables
+ @@kpse.load_lsr
+ end
+ else
+ @@kpse.progname = options['progname'] || ''
+ @@kpse.engine = options['engine'] || ''
+ @@kpse.format = options['format'] || ''
+ @@kpse.expand_variables
+ end
+ if option = options['expand-braces'] and not option.empty? then
+ @@kpse.expand_braces(option)
+ elsif option = options['expand-path'] and not option.empty? then
+ @@kpse.expand_path(option)
+ elsif option = options['expand-var'] and not option.empty? then
+ @@kpse.expand_var(option)
+ elsif option = options['show-path'] and not option.empty? then
+ @@kpse.show_path(option)
+ elsif option = options['var-value'] and not option.empty? then
+ @@kpse.expand_var(option)
+ elsif arguments.size > 0 then
+ files = Array.new
+ arguments.each do |option|
+ if file = @@kpse.find_file(option) and not file.empty? then
+ files << file
+ end
+ end
+ files.join("\n")
+ else
+ ''
+ end
+ end
+
+ def KpseRunner.kpsereset
+ @@kpse = nil
+ end
+
+ private
+
+ def KpseRunner.split_args(arg)
+ vars, args = Hash.new, Array.new
+ arg.gsub!(/([\"\'])(.*?)\1/o) do
+ $2.gsub(' ','<space/>')
+ end
+ arg = arg.split(/\s+/o)
+ arg.collect! do |a|
+ a.gsub('<space/>',' ')
+ end
+ arg.each do |a|
+ if a =~ /^(.*?)\=(.*?)$/o then
+ k, v = $1, $2
+ vars[k.sub(/^\-+/,'')] = v
+ else
+ args << a
+ end
+ end
+ # puts vars.inspect
+ # puts args.inspect
+ return vars, args
+ end
+
+end
diff --git a/Master/texmf-dist/scripts/context/ruby/base/merge.rb b/Master/texmf-dist/scripts/context/ruby/base/merge.rb
new file mode 100644
index 00000000000..c6ea6c09e66
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/base/merge.rb
@@ -0,0 +1,139 @@
+# module : base/merge
+# copyright : PRAGMA Advanced Document Engineering
+# version : 2006
+# author : Hans Hagen
+#
+# project : ConTeXt / eXaMpLe
+# concept : Hans Hagen
+# info : j.hagen@xs4all.nl
+# www : www.pragma-ade.com
+
+# --selfmerg ewill create stand alone script (--selfcleanup does the opposite)
+
+# this module will package all the used modules in the file itself
+# so that we can relocate the file at wish, usage:
+#
+# merge:
+#
+# unless SelfMerge::ok? && SelfMerge::merge then
+# puts("merging should happen on the path were the base inserts reside")
+# end
+#
+# cleanup:
+#
+# unless SelfMerge::cleanup then
+# puts("merging should happen on the path were the base inserts reside")
+# end
+
+module SelfMerge
+
+ @@kpsemergestart = "\# kpse_merge_start"
+ @@kpsemergestop = "\# kpse_merge_stop"
+ @@kpsemergefile = "\# kpse_merge_file: "
+ @@kpsemergedone = "\# kpse_merge_done: "
+
+ @@filename = File.basename($0)
+ @@ownpath = File.expand_path(File.dirname($0))
+ @@modroot = '(base|graphics|rslb|www)' # needed in regex in order not to mess up SelfMerge
+ @@modules = $".collect do |file| File.expand_path(file) end
+
+ @@modules.delete_if do |file|
+ file !~ /^#{@@ownpath}\/#{@@modroot}.*$/
+ end
+
+ def SelfMerge::ok?
+ begin
+ @@modules.each do |file|
+ return false unless FileTest.file?(file)
+ end
+ rescue
+ return false
+ else
+ return true
+ end
+ end
+
+ def SelfMerge::merge
+ begin
+ if SelfMerge::ok? && rbfile = IO.read(@@filename) then
+ begin
+ inserts = "#{@@kpsemergestart}\n\n"
+ @@modules.each do |file|
+ inserts << "#{@@kpsemergefile}'#{file}'\n\n"
+ inserts << IO.read(file).gsub(/^#.*?\n$/,'')
+ inserts << "\n\n"
+ end
+ inserts << "#{@@kpsemergestop}\n\n"
+ # no gsub! else we end up in SelfMerge
+ rbfile.sub!(/#{@@kpsemergestart}\s*#{@@kpsemergestop}/mois) do
+ inserts
+ end
+ rbfile.gsub!(/^(.*)(require [\"\'].*?#{@@modroot}.*)$/) do
+ pre, post = $1, $2
+ if pre =~ /#{@@kpsemergedone}/ then
+ "#{pre}#{post}"
+ else
+ "#{pre}#{@@kpsemergedone}#{post}"
+ end
+ end
+ rescue
+ return false
+ else
+ begin
+ File.open(@@filename,'w') do |f|
+ f << rbfile
+ end
+ rescue
+ return false
+ end
+ end
+ end
+ rescue
+ return false
+ else
+ return true
+ end
+ end
+
+ def SelfMerge::cleanup
+ begin
+ if rbfile = IO.read(@@filename) then
+ begin
+ rbfile.sub!(/#{@@kpsemergestart}(.*)#{@@kpsemergestop}\s*/mois) do
+ "#{@@kpsemergestart}\n\n#{@@kpsemergestop}\n\n"
+ end
+ rbfile.gsub!(/^(.*#{@@kpsemergedone}.*)$/) do
+ str = $1
+ if str =~ /require [\"\']/ then
+ str.gsub(/#{@@kpsemergedone}/, '')
+ else
+ str
+ end
+ end
+ rescue
+ return false
+ else
+ begin
+ File.open(@@filename,'w') do |f|
+ f << rbfile
+ end
+ rescue
+ return false
+ end
+ end
+ end
+ rescue
+ return false
+ else
+ return true
+ end
+ end
+
+ def SelfMerge::replace
+ if SelfMerge::ok? then
+ SelfMerge::cleanup
+ SelfMerge::merge
+ end
+ end
+
+end
diff --git a/Master/texmf-dist/scripts/context/ruby/base/mp.rb b/Master/texmf-dist/scripts/context/ruby/base/mp.rb
new file mode 100644
index 00000000000..b30be111091
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/base/mp.rb
@@ -0,0 +1,167 @@
+# module : base/mp
+# copyright : PRAGMA Advanced Document Engineering
+# version : 2005-2006
+# author : Hans Hagen
+#
+# project : ConTeXt / eXaMpLe
+# concept : Hans Hagen
+# info : j.hagen@xs4all.nl
+# www : www.pragma-ade.com
+
+module MPTools
+
+ @@definitions, @@start, @@stop, @@before, @@after = Hash.new, Hash.new, Hash.new, Hash.new, Hash.new
+
+
+ @@definitions['plain'] = <<EOT
+\\gdef\\mpxshipout{\\shipout\\hbox\\bgroup
+ \\setbox0=\\hbox\\bgroup}
+
+\\gdef\\stopmpxshipout{\\egroup \\dimen0=\\ht0 \\advance\\dimen0\\dp0
+ \\dimen1=\\ht0 \\dimen2=\\dp0
+ \\setbox0=\\hbox\\bgroup
+ \\box0
+ \\ifnum\\dimen0>0 \\vrule width1sp height\\dimen1 depth\\dimen2
+ \\else \\vrule width1sp height1sp depth0sp\\relax
+ \\fi\\egroup
+ \\ht0=0pt \\dp0=0pt \\box0 \\egroup}
+EOT
+
+ @@start ['plain'] = ""
+ @@before['plain'] = "\\mpxshipout"
+ @@after ['plain'] = "\\stopmpxshipout"
+ @@stop ['plain'] = "\\end{document}"
+
+ @@definitions['context'] = <<EOT
+\\ifx\\startMPXpage\\undefined
+
+ \\ifx\\loadallfontmapfiles\\undefined \\let\\loadallfontmapfiles\\relax \\fi
+
+ \\gdef\\startMPXpage
+ {\\shipout\\hbox
+ \\bgroup
+ \\setbox0=\\hbox
+ \\bgroup}
+
+ \\gdef\\stopMPXpage
+ {\\egroup
+ \\dimen0=\\ht0
+ \\advance\\dimen0\\dp0
+ \\dimen1=\\ht0
+ \\dimen2=\\dp0
+ \\setbox0=\\hbox\\bgroup
+ \\box0
+ \\ifnum\\dimen0>0
+ \\vrule width 1sp height \\dimen1 depth \\dimen2
+ \\else
+ \\vrule width 1sp height 1sp depth 0sp \\relax
+ \\fi
+ \\egroup
+ \\ht0=0pt
+ \\dp0=0pt
+ \\loadallfontmapfiles
+ \\box0
+ \\egroup}
+
+\\fi
+
+\\ifx\\starttext\\undefined
+
+ \\let\\starttext\\relax
+ \\def\\stoptext{\\end{document}}
+
+\\fi
+EOT
+
+ @@start ['context'] = "\\starttext"
+ @@before['context'] = "\\startMPXpage"
+ @@after ['context'] = "\\stopMPXpage"
+ @@stop ['context'] = "\\stoptext"
+
+ # todo: \usemodule[m-mpx ] and test fo defined
+
+ def MPTools::mptotex(from,to=nil,method='plain')
+ begin
+ if from && data = IO.read(from) then
+ f = if to then File.open(to,'w') else $stdout end
+ f.puts("% file: #{from}")
+ f.puts("")
+ f.puts(@@definitions[method])
+ unless @@start[method].empty? then
+ f.puts("")
+ f.puts(@@start[method])
+ end
+ data.gsub!(/[^\\]%.*?$/mo) do
+ ''
+ end
+ data.scan(/(verbatim|b)tex\s*(.*?)\s*etex/mo) do
+ tag, text = $1, $2
+ f.puts("")
+ if tag == 'b' then
+ f.puts(@@before[method])
+ f.puts("#{text}%")
+ f.puts(@@after [method])
+ else
+ f.puts("#{text}")
+ end
+ f.puts("")
+ end
+ f.puts("")
+ f.puts(@@stop[method])
+ f.close
+ else
+ return false
+ end
+ rescue
+ File.delete(to) rescue false
+ return false
+ else
+ return true
+ end
+ end
+
+ @@splitMPlines = false
+
+ def MPTools::splitmplines(str)
+ if @@splitMPlines then
+ btex, verbatimtex, strings, result = Array.new, Array.new, Array.new, str.dup
+ # protect texts
+ result.gsub!(/btex\s*(.*?)\s*etex/) do
+ btex << $1
+ "btex(#{btex.length-1})"
+ end
+ result.gsub!(/verbatimtex\s*(.*?)\s*etex/) do
+ verbatimtex << $1
+ "verbatimtex(#{verbatimtex.length-1})"
+ end
+ result.gsub!(/\"(.*?)\"/) do
+ strings << $1
+ "\"#{strings.length-1}\""
+ end
+ result.gsub!(/\;/) do
+ ";\n"
+ end
+ result.gsub!(/(.{80,})(\-\-\-|\-\-|\.\.\.|\.\.)/) do
+ "#{$1}#{$2}\n"
+ end
+ result.gsub!(/\n[\s\n]+/mois) do
+ "\n"
+ end
+ result.gsub!(/btex\((\d+)\)/) do
+ "btex #{btex[$1.to_i]} etex"
+ end
+ result.gsub!(/verbatimtex\((\d+)\)/) do
+ "verbatimtex #{verbatimtex[$1.to_i]} etex"
+ end
+ result.gsub!(/\"(\d+)\"/) do
+ "\"#{strings[$1.to_i]}\""
+ end
+ # return result # let's catch xetex bug
+ return result.gsub(/\^\^(M|J)/o, "\n")
+ else
+ # return str # let's catch xetex bug
+ return str.gsub(/\^\^(M|J)/o, "\n")
+ end
+ end
+
+end
diff --git a/Master/texmf-dist/scripts/context/ruby/base/pdf.rb b/Master/texmf-dist/scripts/context/ruby/base/pdf.rb
index d8cbf9e0523..9f4e9a6c3f6 100644
--- a/Master/texmf-dist/scripts/context/ruby/base/pdf.rb
+++ b/Master/texmf-dist/scripts/context/ruby/base/pdf.rb
@@ -1,14 +1,34 @@
module PDFview
- @files = Hash.new
+ @files = Hash.new
+ @opencalls = Hash.new
+ @closecalls = Hash.new
+ @allcalls = Hash.new
+
+ @method = 'default' # 'xpdf'
+
+ @opencalls['default'] = "pdfopen --file"
+ @opencalls['xpdf'] = "xpdfopen"
+
+ @closecalls['default'] = "pdfclose --file"
+ @closecalls['xpdf'] = nil
+
+ @allcalls['default'] = "pdfclose --all"
+ @allcalls['xpdf'] = nil
+
+ def PDFview.setmethod(method)
+ @method = method
+ end
def PDFview.open(*list)
begin
[*list].flatten.each do |file|
filename = fullname(file)
if FileTest.file?(filename) then
- result = `pdfopen --file #{filename} 2>&1`
- @files[filename] = true
+ if @opencalls[@method] then
+ result = `#{@opencalls[@method]} #{filename} 2>&1`
+ @files[filename] = true
+ end
end
end
rescue
@@ -20,7 +40,9 @@ module PDFview
filename = fullname(file)
begin
if @files.key?(filename) then
- result = `pdfclose --file #{filename} 2>&1`
+ if @closecalls[@method] then
+ result = `#{@closecalls[@method]} #{filename} 2>&1`
+ end
else
closeall
return
@@ -33,7 +55,9 @@ module PDFview
def PDFview.closeall
begin
- result = `pdfclose --all 2>&1`
+ if @allcalls[@method] then
+ result = `#{@allcalls[@method]} 2>&1`
+ end
rescue
end
@files.clear
diff --git a/Master/texmf-dist/scripts/context/ruby/base/state.rb b/Master/texmf-dist/scripts/context/ruby/base/state.rb
index f57231592a7..4b208812875 100644
--- a/Master/texmf-dist/scripts/context/ruby/base/state.rb
+++ b/Master/texmf-dist/scripts/context/ruby/base/state.rb
@@ -56,7 +56,7 @@ class FileState
sum = ''
begin
if FileTest.file?(filename) && (data = IO.read(filename)) then
- data.gsub!(/\n.*?(#{[omit].flatten.join('|')}).*?\n/ms,"\n") if omit
+ data.gsub!(/\n.*?(#{[omit].flatten.join('|')}).*?\n/) do "\n" end if omit
sum = MD5.new(data).hexdigest.upcase
end
rescue
diff --git a/Master/texmf-dist/scripts/context/ruby/base/switch.rb b/Master/texmf-dist/scripts/context/ruby/base/switch.rb
index 64d518bd42f..5187a795f03 100644
--- a/Master/texmf-dist/scripts/context/ruby/base/switch.rb
+++ b/Master/texmf-dist/scripts/context/ruby/base/switch.rb
@@ -33,12 +33,18 @@ end
class File
+ @@update_eps = 1
+
def File.needsupdate(oldname,newname)
begin
- if $mswindows then
- return File.stat(oldname).mtime > File.stat(newname).mtime
+ oldtime = File.stat(oldname).mtime.to_i
+ newtime = File.stat(newname).mtime.to_i
+ if newtime >= oldtime then
+ return false
+ elsif oldtime-newtime < @@update_eps then
+ return false
else
- return File.stat(oldname).mtime != File.stat(newname).mtime
+ return true
end
rescue
return true
@@ -46,11 +52,12 @@ class File
end
def File.syncmtimes(oldname,newname)
+ return
begin
if $mswindows then
- # does not work (yet)
- t = File.mtime(oldname) # i'm not sure if the time is frozen, so we do it here
- File.utime(0,t,oldname,newname)
+ # does not work (yet) / gives future timestamp
+ # t = File.mtime(oldname) # i'm not sure if the time is frozen, so we do it here
+ # File.utime(0,t,oldname,newname)
else
t = File.mtime(oldname) # i'm not sure if the time is frozen, so we do it here
File.utime(0,t,oldname,newname)
@@ -493,15 +500,21 @@ class CommandLine
unless foundkey then
@registered.each do |option, shortcut, kind|
n = 0
- if option =~ /^#{key}/i then
- case n
- when 0
- foundkey, foundkind = option, kind
- n = 1
- when 1
- # ambiguous matches, like --fix => --fixme --fixyou
- foundkey, foundkind = nil, nil
- break
+ begin
+ re = /^#{key}/i
+ rescue
+ key = key.inspect.sub(/^\"(.*)\"$/) do $1 end
+ re = /^#{key}/i
+ ensure
+ if option =~ re then
+ case n
+ when 0
+ foundkey, foundkind, n = option, kind, 1
+ when 1
+ # ambiguous matches, like --fix => --fixme --fixyou
+ foundkey, foundkind = nil, nil
+ break
+ end
end
end
end
diff --git a/Master/texmf-dist/scripts/context/ruby/base/system.rb b/Master/texmf-dist/scripts/context/ruby/base/system.rb
index ed8c2756e2b..267a22cb98f 100644
--- a/Master/texmf-dist/scripts/context/ruby/base/system.rb
+++ b/Master/texmf-dist/scripts/context/ruby/base/system.rb
@@ -33,6 +33,13 @@ module System
if @@mswindows then 'nul' else '/dev/null/' end
end
+ def System.unix?
+ not @@mswindows
+ end
+ def System.mswin?
+ @@mswindows
+ end
+
def System.binnames(str)
if @@binnames.key?(str) then
@@binnames[str]
@@ -41,6 +48,18 @@ module System
end
end
+ def System.prependengine(str)
+ if str =~ /^\S+\.(pl|rb|lua|py)/io then
+ case $1
+ when 'pl' then return "perl #{str}"
+ when 'rb' then return "ruby #{str}"
+ when 'lua' then return "lua #{str}"
+ when 'py' then return "python #{str}"
+ end
+ end
+ return str
+ end
+
def System.locatedprogram(program)
if @@located.key?(program) then
return @@located[program]
@@ -49,7 +68,7 @@ module System
if binname =~ /\..*$/io then
@@binpaths.each do |path|
if FileTest.file?(str = File.join(path,binname)) then
- return @@located[program] = str
+ return @@located[program] = System.prependengine(str)
end
end
end
@@ -57,7 +76,7 @@ module System
@@binpaths.each do |path|
@@binsuffixes.each do |suffix|
if FileTest.file?(str = File.join(path,"#{binname}#{suffix}")) then
- return @@located[program] = str
+ return @@located[program] = System.prependengine(str)
end
end
end
@@ -74,7 +93,7 @@ module System
end
program = program + ' ' + arguments if ! arguments.empty?
program.gsub!(/\s+/io, ' ')
- program.gsub!(/(\.\/)+/io, '')
+ #program.gsub!(/(\/\.\/)+/io, '/')
program.gsub!(/\\/io, '/')
return program
end
diff --git a/Master/texmf-dist/scripts/context/ruby/base/tex.rb b/Master/texmf-dist/scripts/context/ruby/base/tex.rb
index 2cc9d25422e..a6403dcde2b 100644
--- a/Master/texmf-dist/scripts/context/ruby/base/tex.rb
+++ b/Master/texmf-dist/scripts/context/ruby/base/tex.rb
@@ -8,8 +8,11 @@
# info : j.hagen@xs4all.nl
# www : www.pragma-ade.com
-# todo: write systemcall for mpost to file so that it can be run
-# faster
+# todo:
+#
+# - write systemcall for mpost to file so that it can be run faster
+# - use -8bit and -progname
+#
# report ?
@@ -20,6 +23,7 @@ require 'base/state'
require 'base/pdf'
require 'base/file'
require 'base/ctx'
+require 'base/mp'
class String
@@ -33,6 +37,12 @@ class String
end
+# class String
+ # def utf_bom?
+ # self.match(/^\357\273\277/o).length>0 rescue false
+ # end
+# end
+
class Array
def standard?
@@ -43,6 +53,10 @@ class Array
end
end
+ def join_path
+ self.join(File::PATH_SEPARATOR)
+ end
+
end
class TEX
@@ -56,6 +70,7 @@ class TEX
@@texengines = Hash.new
@@mpsengines = Hash.new
@@backends = Hash.new
+ @@mappaths = Hash.new
@@runoptions = Hash.new
@@texformats = Hash.new
@@mpsformats = Hash.new
@@ -68,11 +83,32 @@ class TEX
@@texmethods = Hash.new
@@mpsmethods = Hash.new
- ['tex','pdftex','pdfetex','standard'] .each do |e| @@texengines[e] = 'pdfetex' end
+ @@pdftex = 'pdftex' # new default, pdfetex is gone
+
+ ENV['PATH'].split(File::PATH_SEPARATOR).each do |p|
+ if System.unix? then
+ pp, pe = "#{p}/pdftex" , "#{p}/pdfetex"
+ else
+ pp, pe = "#{p}/pdftex.exe", "#{p}/pdfetex.exe"
+ end
+ if FileTest.file?(pe) then
+ # we assume no update
+ @@pdftex = 'pdfetex'
+ break
+ elsif FileTest.file?(pp) then
+ # we assume an update
+ @@pdftex = 'pdftex'
+ break
+ end
+ end
+
+ ['etex','pdfetex','standard'] .each do |e| @@texengines[e] = @@pdftex end
+ ['tex','pdftex'] .each do |e| @@texengines[e] = 'pdftex' end
['aleph','omega'] .each do |e| @@texengines[e] = 'aleph' end
['xetex'] .each do |e| @@texengines[e] = 'xetex' end
+ ['luatex'] .each do |e| @@texengines[e] = 'luatex' end
- ['metapost','mpost','standard'] .each do |e| @@mpsengines[e] = 'mpost' end
+ ['metapost','mpost', 'standard'] .each do |e| @@mpsengines[e] = 'mpost' end
['pdfetex','pdftex','pdf','pdftex','standard'] .each do |b| @@backends[b] = 'pdftex' end
['dvipdfmx','dvipdfm','dpx','dpm'] .each do |b| @@backends[b] = 'dvipdfmx' end
@@ -80,6 +116,13 @@ class TEX
['dvips','ps'] .each do |b| @@backends[b] = 'dvips' end
['dvipsone'] .each do |b| @@backends[b] = 'dvipsone' end
['acrobat','adobe','distiller'] .each do |b| @@backends[b] = 'acrobat' end
+ ['xdv','xdv2pdf'] .each do |b| @@backends[b] = 'xdv2pdf' end
+
+ ['tex','standard'] .each do |b| @@mappaths[b] = 'dvips' end
+ ['pdftex','pdfetex'] .each do |b| @@mappaths[b] = 'pdftex' end
+ ['aleph','omega','xetex'] .each do |b| @@mappaths[b] = 'dvipdfm' end
+ ['dvipdfm', 'dvipdfmx', 'xdvipdfmx'] .each do |b| @@mappaths[b] = 'dvipdfm' end
+ ['xdv','xdv2pdf'] .each do |b| @@mappaths[b] = 'dvips' end
# todo norwegian (no)
@@ -88,6 +131,7 @@ class TEX
['cont-nl','nl','dutch'] .each do |f| @@texformats[f] = 'cont-nl' end
['cont-de','de','german'] .each do |f| @@texformats[f] = 'cont-de' end
['cont-it','it','italian'] .each do |f| @@texformats[f] = 'cont-it' end
+ ['cont-fr','fr','french'] .each do |f| @@texformats[f] = 'cont-fr' end
['cont-cz','cz','czech'] .each do |f| @@texformats[f] = 'cont-cz' end
['cont-ro','ro','romanian'] .each do |f| @@texformats[f] = 'cont-ro' end
['cont-uk','uk','brittish'] .each do |f| @@texformats[f] = 'cont-uk' end
@@ -98,12 +142,13 @@ class TEX
['plain','mpost'] .each do |f| @@mpsformats[f] = 'plain' end
['metafun','context','standard'] .each do |f| @@mpsformats[f] = 'metafun' end
- ['pdfetex','aleph','omega'] .each do |p| @@prognames[p] = 'context' end
+ ['pdftex','pdfetex','aleph','omega',
+ 'xetex','luatex'] .each do |p| @@prognames[p] = 'context' end
['mpost'] .each do |p| @@prognames[p] = 'metafun' end
['plain','default','standard','mptopdf'] .each do |f| @@texmethods[f] = 'plain' end
['cont-en','cont-nl','cont-de','cont-it',
- 'cont-cz','cont-ro','cont-uk'] .each do |f| @@texmethods[f] = 'context' end
+ 'cont-fr','cont-cz','cont-ro','cont-uk'] .each do |f| @@texmethods[f] = 'context' end
['latex'] .each do |f| @@texmethods[f] = 'latex' end
['plain','default','standard'] .each do |f| @@mpsmethods[f] = 'plain' end
@@ -113,28 +158,35 @@ class TEX
@@mpsmakestr['plain'] = "\\dump"
['cont-en','cont-nl','cont-de','cont-it',
- 'cont-cz','cont-ro','cont-uk'] .each do |f| @@texprocstr[f] = "\\emergencyend" end
+ 'cont-fr','cont-cz','cont-ro','cont-uk'] .each do |f| @@texprocstr[f] = "\\emergencyend" end
- @@runoptions['xetex'] = ['--no-pdf']
+ # @@runoptions['xetex'] = ['--output-driver \\\"-d 4 -V 5\\\"'] # we need the pos pass
+ @@runoptions['xetex'] = ['--8bit -no-pdf'] # from now on we assume (x)dvipdfmx to be used
+ @@runoptions['pdfetex'] = ['--8bit ']
+ @@runoptions['pdftex'] = ['--8bit '] # pdftex is now pdfetex
+ @@runoptions['luatex'] = ['--8bit ']
+ @@runoptions['aleph'] = ['--8bit ']
@@booleanvars = [
'batchmode', 'nonstopmode', 'fast', 'fastdisabled', 'silentmode', 'final',
'paranoid', 'notparanoid', 'nobanner', 'once', 'allpatterns',
- 'nompmode', 'nomprun', 'automprun',
+ 'nompmode', 'nomprun', 'automprun', 'combine',
'nomapfiles', 'local',
'arrange', 'noarrange',
'forcexml', 'foxet',
+ 'alpha', 'beta',
'mpyforce', 'forcempy',
'forcetexutil', 'texutil',
'globalfile', 'autopath',
- 'purge', 'purgeall', 'autopdf', 'simplerun', 'verbose',
- 'nooptionfile'
+ 'purge', 'purgeall', 'keep', 'autopdf', 'xpdf', 'simplerun', 'verbose',
+ 'nooptionfile', 'nobackend', 'noctx', 'utfbom'
]
@@stringvars = [
'modefile', 'result', 'suffix', 'response', 'path',
'filters', 'usemodules', 'environments', 'separation', 'setuppath',
- 'arguments', 'input', 'output', 'randomseed', 'modes', 'filename',
- 'modefile', 'ctxfile'
+ 'arguments', 'input', 'output', 'randomseed', 'modes', 'mode', 'filename',
+ 'ctxfile', 'printformat', 'paperformat', 'paperoffset',
+ 'timeout'
]
@@standardvars = [
'mainlanguage', 'bodyfont', 'language'
@@ -148,16 +200,22 @@ class TEX
@@extrastringvars = []
def booleanvars
- [@@booleanvars,@@extrabooleanvars].flatten
+ [@@booleanvars,@@extrabooleanvars].flatten.uniq
end
def stringvars
- [@@stringvars,@@extrastringvars].flatten
+ [@@stringvars,@@extrastringvars].flatten.uniq
end
def standardvars
- @@standardvars
+ [@@standardvars].flatten.uniq
end
def knownvars
- @@knownvars
+ [@@knownvars].flatten.uniq
+ end
+ def allbooleanvars
+ [@@booleanvars,@@extrabooleanvars].flatten.uniq
+ end
+ def allstringvars
+ [@@stringvars,@@extrastringvars,@@standardvars,@@knownvars].flatten.uniq
end
def setextrastringvars(vars)
@@ -201,13 +259,18 @@ class TEX
setvariable('engine', 'standard') # replaced by tex/mpsengine
setvariable('backend', 'pdftex')
setvariable('runs', '8')
- setvariable('randomseed', rand(1440).to_s)
+ setvariable('randomseed', rand(1440).to_s) # we want the same seed for one run
# files
setvariable('files', [])
# defaults
setvariable('texengine', 'standard')
setvariable('mpsengine', 'standard')
setvariable('backend', 'standard')
+ setvariable('error', '')
+ end
+
+ def error?
+ not getvariable('error').empty?
end
def runtime
@@ -218,10 +281,17 @@ class TEX
report("runtime: #{runtime}")
end
+ def runcommand(something)
+ command = [something].flatten.join(' ')
+ report("running: #{command}") if getvariable('verbose')
+ system(command)
+ end
+
def inspect(name=nil)
if ! name || name.empty? then
name = [booleanvars,stringvars,standardvars,knownvars]
end
+ str = '' # allocate
[name].flatten.each do |n|
if str = getvariable(n) then
unless (str.class == String) && str.empty? then
@@ -249,11 +319,14 @@ class TEX
begin
Dir.glob("#{@@temprunfile}*").each do |name|
if File.file?(name) && (File.splitname(name)[1] !~ /(pdf|dvi)/o) then
- begin File.delete(name) ; rescue ; end
+ File.delete(name) rescue false
end
end
rescue
end
+ ['mpgraph.mp'].each do |file|
+ (File.delete(file) if (FileTest.size?(file) rescue 10) < 10) rescue false
+ end
end
def backends() @@backends.keys.sort end
@@ -301,11 +374,12 @@ class TEX
end
def prefixed(format,engine)
+ # format
case engine
- when /etex|eetex|pdfetex|pdfeetex|pdfxtex|xpdfetex|eomega|aleph|xetex/io then
- "*#{format}"
- else
- format
+ when /etex|pdftex|pdfetex|aleph|xetex|luatex/io then
+ "*#{format}"
+ else
+ format
end
end
@@ -318,18 +392,24 @@ class TEX
if str.class == String then str.split(',') else str.flatten end
end
- def validtexformat(str) validsomething(str,@@texformats) end
- def validmpsformat(str) validsomething(str,@@mpsformats) end
- def validtexengine(str) validsomething(str,@@texengines) end
- def validmpsengine(str) validsomething(str,@@mpsengines) end
+ def validtexformat(str) validsomething(str,@@texformats,'tex') end
+ def validmpsformat(str) validsomething(str,@@mpsformats,'mp' ) end
+ def validtexengine(str) validsomething(str,@@texengines,'pdfetex') end
+ def validmpsengine(str) validsomething(str,@@mpsengines,'mpost' ) end
def validtexmethod(str) [validsomething(str,@@texmethods)].flatten.first end
def validmpsmethod(str) [validsomething(str,@@mpsmethods)].flatten.first end
- def validsomething(str,something)
+ def validsomething(str,something,type=nil)
if str then
list = [str].flatten.collect do |s|
- something[s]
+ if something[s] then
+ something[s]
+ elsif type && s =~ /\.#{type}$/ then
+ s
+ else
+ nil
+ end
end .compact.uniq
if list.length>0 then
if str.class == String then list.first else list end
@@ -384,20 +464,20 @@ class TEX
# upward compatibility problems) but stuck to the bas/mem/fmt flags
if engine then
case validmpsengine(engine)
- when /mpost/ then "--mem"
- when /mfont/ then "--bas"
- else "--fmt"
+ when /mpost/ then "-mem"
+ when /mfont/ then "-bas"
+ else "-fmt"
end
else
- "--fmt"
+ "-fmt"
end
end
def prognameflag(progname=nil)
case getvariable('distribution')
- when 'standard' then prefix = "--progname"
- when /web2c/io then prefix = "--progname"
- when /miktex/io then prefix = "--alias"
+ when 'standard' then prefix = "-progname"
+ when /web2c/io then prefix = "-progname"
+ when /miktex/io then prefix = "-alias"
else return ""
end
if progname then
@@ -422,7 +502,7 @@ class TEX
if Kpse.miktex? then
"-tcx=#{file}"
else
- "--translate-file=#{file}"
+ "-translate-file=#{file}"
end
end
@@ -436,7 +516,7 @@ class TEX
filename = Kpse.found('context.tex')
version = 'unknown'
begin
- if FileTest.file?(filename) && IO.read(filename).match(/\\contextversion\{(\d+\.\d+\.\d+)\}/) then
+ if FileTest.file?(filename) && IO.read(filename).match(/\\contextversion\{(\d+\.\d+\.\d+.*?)\}/) then
version = $1
end
rescue
@@ -445,6 +525,10 @@ class TEX
end
def makeformats
+
+ checktestversion
+
+ report("using search method '#{Kpse.searchmethod}'")
if getvariable('fast') then
report('using existing database')
else
@@ -463,24 +547,27 @@ class TEX
# save current path
savedpath = Dir.getwd
# generate tex formats
+ unless texformats || mpsformats then
+ report('provide valid format (name.tex, name.mp, ...) or format id (metafun, en, nl, ...)')
+ end
if texformats && texengine && (progname = validprogname(getvariable('progname'),texengine)) then
report("using tex engine #{texengine}")
texformatpath = if getvariable('local') then '.' else Kpse.formatpath(texengine,true) end
# can be empty, to do
report("using tex format path #{texformatpath}")
- begin
- Dir.chdir(texformatpath)
- rescue
- end
- if texformats.length > 0 then
- makeuserfile
- makeresponsefile
- end
- texformats.each do |texformat|
- report("generating tex format #{texformat}")
- command = [quoted(texengine),prognameflag(progname),iniflag,tcxflag,prefixed(texformat,texengine),texmakeextras(texformat)].join(' ')
- report(command) if getvariable('verbose')
- system(command)
+ Dir.chdir(texformatpath) rescue false
+ if FileTest.writable?(texformatpath) then
+ if texformats.length > 0 then
+ makeuserfile
+ makeresponsefile
+ end
+ texformats.each do |texformat|
+ report("generating tex format #{texformat}")
+ runcommand([quoted(texengine),prognameflag(progname),iniflag,tcxflag,prefixed(texformat,texengine),texmakeextras(texformat)])
+ end
+ else
+ report("unable to make format due to lack of permissions")
+ texformatpath = ''
end
else
texformatpath = ''
@@ -490,15 +577,16 @@ class TEX
report("using mp engine #{mpsengine}")
mpsformatpath = if getvariable('local') then '.' else Kpse.formatpath(mpsengine,false) end
report("using mps format path #{mpsformatpath}")
- begin
- Dir.chdir(mpsformatpath)
- rescue
- end
- mpsformats.each do |mpsformat|
- report("generating mps format #{mpsformat}")
- command = [quoted(mpsengine),prognameflag(progname),iniflag,tcxflag,mpsformat,mpsmakeextras(mpsformat)].join(' ')
- report(command) if getvariable('verbose')
- system(command)
+ Dir.chdir(mpsformatpath) rescue false
+ if FileTest.writable?(mpsformatpath) then
+ mpsformats.each do |mpsformat|
+ report("generating mps format #{mpsformat}")
+ # runcommand([quoted(mpsengine),prognameflag(progname),iniflag,tcxflag,mpsformat,mpsmakeextras(mpsformat)])
+ runcommand([quoted(mpsengine),iniflag,tcxflag,mpsformat,mpsmakeextras(mpsformat)])
+ end
+ else
+ report("unable to make format due to lack of permissions")
+ mpsformatpath = ''
end
else
mpsformatpath = ''
@@ -560,7 +648,7 @@ class TEX
f.close
if FileTest.file?(tempfilename('tex')) then
format = File.basename(name)
- engine = if name =~ /(pdfetex|aleph|xetex)[\/\\]#{format}/ then $1 else '' end
+ engine = if name =~ /(pdftex|pdfetex|aleph|xetex|luatex)[\/\\]#{format}/ then $1 else '' end
if engine.empty? then
engineflag = ""
else
@@ -571,8 +659,8 @@ class TEX
interface = $1.sub(/cont\-/,'')
results.push('')
results.push("testing interface #{interface}")
- flags = ['--process','--batch','--once',"--interface=#{interface}",engineflag]
- # result = Kpse.pipescript('newtexexec',tempfilename,flags)
+ flags = ['--noctx','--process','--batch','--once',"--interface=#{interface}",engineflag]
+ # result = Kpse.pipescript('texexec',tempfilename,flags)
result = runtexexec([tempfilename], flags, 1)
if FileTest.file?("#{@@temprunfile}.log") then
logdata = IO.read("#{@@temprunfile}.log")
@@ -663,6 +751,7 @@ class TEX
@@preamblekeys = [
['tex','texengine'],
+ ['engine','texengine'],
['program','texengine'],
['translate','tcxfilter'],
['tcx','tcxfilter'],
@@ -670,22 +759,42 @@ class TEX
['mode','mode'],
['ctx','ctxfile'],
['version','contextversion'],
- ['format','texformat'],
- ['interface','texformat']
+ ['format','texformats'],
+ ['interface','texformats'],
]
+ @@re_utf_bom = /^\357\273\277/o
+
def scantexpreamble(filename)
begin
if FileTest.file?(filename) and tex = File.open(filename) then
+ bomdone = false
while str = tex.gets and str.chomp! do
+ unless bomdone then
+ if str.sub!(@@re_utf_bom, '')
+ report("utf mode forced (bom found)")
+ setvariable('utfbom',true)
+ end
+ bomdone = true
+ end
if str =~ /^\%\s*(.*)/o then
- vars = Hash.new
+ # we only accept lines with key=value pairs
+ vars, ok = Hash.new, true
$1.split(/\s+/o).each do |s|
k, v = s.split('=')
- vars[k] = v
+ if k && v then
+ vars[k] = v
+ else
+ ok = false
+ break
+ end
end
- @@preamblekeys.each do |v|
- setvariable(v[1],vars[v[0]]) if vars.key?(v[0])
+ if ok then
+ # we have a valid line
+ @@preamblekeys.each do |v|
+ setvariable(v[1],vars[v[0]]) if vars.key?(v[0]) && vars[v[0]]
+ end
+ break
end
else
break
@@ -699,37 +808,37 @@ class TEX
end
def scantexcontent(filename)
- if FileTest.file?(filename) and tex = File.open(filename) then
+ if FileTest.file?(filename) and tex = File.open(filename) then
while str = tex.gets do
case str.chomp
when /^\%/o then
# next
when /\\(starttekst|stoptekst|startonderdeel|startdocument|startoverzicht)/o then
- setvariable('texformat','nl') ; break
+ setvariable('texformats','nl') ; break
when /\\(stelle|verwende|umgebung|benutze)/o then
- setvariable('texformat','de') ; break
+ setvariable('texformats','de') ; break
when /\\(stel|gebruik|omgeving)/o then
- setvariable('texformat','nl') ; break
+ setvariable('texformats','nl') ; break
when /\\(use|setup|environment)/o then
- setvariable('texformat','en') ; break
+ setvariable('texformats','en') ; break
when /\\(usa|imposta|ambiente)/o then
- setvariable('texformat','it') ; break
+ setvariable('texformats','it') ; break
when /(height|width|style)=/o then
- setvariable('texformat','en') ; break
+ setvariable('texformats','en') ; break
when /(hoehe|breite|schrift)=/o then
- setvariable('texformat','de') ; break
+ setvariable('texformats','de') ; break
when /(hoogte|breedte|letter)=/o then
- setvariable('texformat','nl') ; break
+ setvariable('texformats','nl') ; break
when /(altezza|ampiezza|stile)=/o then
- setvariable('texformat','it') ; break
+ setvariable('texformats','it') ; break
when /externfiguur/o then
- setvariable('texformat','nl') ; break
+ setvariable('texformats','nl') ; break
when /externalfigure/o then
- setvariable('texformat','en') ; break
+ setvariable('texformats','en') ; break
when /externeabbildung/o then
- setvariable('texformat','de') ; break
+ setvariable('texformats','de') ; break
when /figuraesterna/o then
- setvariable('texformat','it') ; break
+ setvariable('texformats','it') ; break
end
end
tex.close
@@ -770,36 +879,11 @@ class TEX
end
end
- def makestubfile(rawname,forcexml=false)
- if tmp = File.open(File.suffixed(rawname,'run'),'w') then
+ def makestubfile(rawname,rawbase,forcexml=false)
+ if tmp = openedfile(File.suffixed(rawbase,'run')) then
tmp << "\\starttext\n"
if forcexml then
- if FileTest.file?(rawname) && (xml = File.open(rawname)) then
- xml.each do |line|
- case line
- when /<\?context\-directive\s+(\S+)\s+(\S+)\s+(\S+)\s*(.*?)\s*\?>/o then
- category, key, value, rest = $1, $2, $3, $4
- case category
- when 'job' then
- case key
- when 'control' then
- setvariable(value,if rest.empty? then true else rest end)
- when 'mode', 'modes' then
- tmp << "\\enablemode[#{value}]\n"
- when 'stylefile', 'environment' then
- tmp << "\\environment #{value}\n"
- when 'module' then
- tmp << "\\usemodule[#{value}]\n"
- when 'interface' then
- contextinterface = value
- end
- end
- when /<[a-z]+/io then # beware of order, first pi test
- break
- end
- end
- xml.close
- end
+ # tmp << checkxmlfile(rawname)
tmp << "\\processXMLfilegrouped{#{rawname}}\n"
else
tmp << "\\processfile{#{rawname}}\n"
@@ -812,16 +896,113 @@ class TEX
end
end
+ # def checkxmlfile(rawname)
+ # tmp = ''
+ # if FileTest.file?(rawname) && (xml = File.open(rawname)) then
+ # xml.each do |line|
+ # case line
+ # when /<\?context\-directive\s+(\S+)\s+(\S+)\s+(\S+)\s*(.*?)\s*\?>/o then
+ # category, key, value, rest = $1, $2, $3, $4
+ # case category
+ # when 'job' then
+ # case key
+ # when 'control' then
+ # setvariable(value,if rest.empty? then true else rest end)
+ # when 'mode', 'modes' then
+ # tmp << "\\enablemode[#{value}]\n"
+ # when 'stylefile', 'environment' then
+ # tmp << "\\environment #{value}\n"
+ # when 'module' then
+ # tmp << "\\usemodule[#{value}]\n"
+ # when 'interface' then
+ # contextinterface = value
+ # when 'ctxfile' then
+ # setvariable('ctxfile', value)
+ # report("using source driven ctxfile #{value}")
+ # end
+ # end
+ # when /<[a-z]+/io then # beware of order, first pi test
+ # break
+ # end
+ # end
+ # xml.close
+ # end
+ # return tmp
+ # end
+
+ def extendvariable(name,value)
+ set = getvariable(name).split(',')
+ set << value
+ str = set.uniq.join(',')
+ setvariable(name,str)
+ end
+
+ def checkxmlfile(rawname)
+ if FileTest.file?(rawname) && (xml = File.open(rawname)) then
+ xml.each do |line|
+ case line
+ when /<\?context\-directive\s+(\S+)\s+(\S+)\s+(\S+)\s*(.*?)\s*\?>/o then
+ category, key, value, rest = $1, $2, $3, $4
+ case category
+ when 'job' then
+ case key
+ when 'control' then
+ setvariable(value,if rest.empty? then true else rest end)
+ when /^(mode)(s|)$/ then
+ extendvariable('modes',value)
+ when /^(stylefile|environment)(s|)$/ then
+ extendvariable('environments',value)
+ when /^(use|)(module)(s|)$/ then
+ extendvariable('usemodules',value)
+ when /^(filter)(s|)$/ then
+ extendvariable('filters',value)
+ when 'interface' then
+ contextinterface = value
+ when 'ctxfile' then
+ setvariable('ctxfile', value)
+ report("using source driven ctxfile #{value}")
+ end
+ end
+ when /<[a-z]+/io then # beware of order, first pi test
+ break
+ end
+ end
+ xml.close
+ end
+ end
+
end
class TEX
+ def timedrun(delay, &block)
+ delay = delay.to_i rescue 0
+ if delay > 0 then
+ begin
+ report("job started with timeout '#{delay}'")
+ timeout(delay) do
+ yield block
+ end
+ rescue TimeoutError
+ report("job aborted due to timeout '#{delay}'")
+ rescue
+ report("job aborted due to error")
+ else
+ report("job finished within timeout '#{delay}'")
+ end
+ else
+ yield block
+ end
+ end
+
def processtex # much to do: mp, xml, runs etc
setvariable('texformats',[getvariable('interface')]) unless getvariable('interface').empty?
getarrayvariable('files').each do |filename|
setvariable('filename',filename)
report("processing document '#{filename}'")
- processfile
+ timedrun(getvariable('timeout')) do
+ processfile
+ end
end
reportruntime
end
@@ -835,152 +1016,284 @@ class TEX
reportruntime
end
+ private
+
+ def load_map_files(filename) # tui basename
+ # c \usedmapfile{=}{lm-texnansi}
+ begin
+ str = ""
+ IO.read(filename).scan(/^c\s+\\usedmapfile\{(.*?)\}\{(.*?)\}\s*$/o) do
+ str << "\\loadmapfile[#{$2}.map]\n"
+ end
+ rescue
+ return ""
+ else
+ return str
+ end
+ end
+
+ public
+
+ def processmpgraphic
+ getarrayvariable('files').each do |filename|
+ setvariable('filename',filename)
+ report("processing graphic '#{filename}'")
+ runtexmp(filename,'',false) # no purge
+ mapspecs = load_map_files(File.suffixed(filename,'temp','tui'))
+ unless getvariable('keep') then
+ # not enough: purge_mpx_files(filename)
+ Dir.glob(File.suffixed(filename,'temp*','*')).each do |fname|
+ File.delete(fname) unless File.basename(filename) == File.basename(fname)
+ end
+ end
+ begin
+ data = IO.read(File.suffixed(filename,'log'))
+ basename = filename.sub(/\.mp$/, '')
+ if data =~ /output files* written\:\s*(.*)$/mois then
+ files, number, range, list = $1.split(/\s+/), 0, false, []
+ files.each do |fname|
+ if fname =~ /^.*\.(\d+)$/ then
+ if range then
+ (number+1 .. $1.to_i).each do |i|
+ list << i
+ end
+ range = false
+ else
+ number = $1.to_i
+ list << number
+ end
+ elsif fname =~ /\.\./ then
+ range = true
+ else
+ range = false
+ next
+ end
+ end
+ begin
+ if getvariable('combine') then
+ fullname = "#{basename}.#{number}"
+ File.open("texexec.tex",'w') do |f|
+ f << "\\setupoutput[pdftex]\n"
+ f << "\\setupcolors[state=start]\n"
+ f << mapspecs
+ f << "\\starttext\n"
+ list.each do |number|
+ f << "\\startTEXpage\n"
+ f << "\\convertMPtoPDF{#{fullname}}{1}{1}"
+ f << "\\stopTEXpage\n"
+ end
+ f << "\\stoptext\n"
+ end
+ report("converting graphic '#{fullname}'")
+ runtex("texexec.tex")
+ pdffile = File.suffixed(basename,'pdf')
+ File.silentrename("texexec.pdf",pdffile)
+ report ("#{basename}.* converted to #{pdffile}")
+ else
+ list.each do |number|
+ begin
+ fullname = "#{basename}.#{number}"
+ File.open("texexec.tex",'w') do |f|
+ f << "\\setupoutput[pdftex]\n"
+ f << "\\setupcolors[state=start]\n"
+ f << mapspecs
+ f << "\\starttext\n"
+ f << "\\startTEXpage\n"
+ f << "\\convertMPtoPDF{#{fullname}}{1}{1}"
+ f << "\\stopTEXpage\n"
+ f << "\\stoptext\n"
+ end
+ report("converting graphic '#{fullname}'")
+ runtex("texexec.tex")
+ if files.length>1 then
+ pdffile = File.suffixed(basename,number.to_s,'pdf')
+ else
+ pdffile = File.suffixed(basename,'pdf')
+ end
+ File.silentrename("texexec.pdf",pdffile)
+ report ("#{fullname} converted to #{pdffile}")
+ end
+ end
+ end
+ rescue
+ report ("error when converting #{fullname} (#{$!})")
+ end
+ end
+ rescue
+ report("error in converting #{filename}")
+ end
+ end
+ reportruntime
+ end
+
def processmpxtex
getarrayvariable('files').each do |filename|
setvariable('filename',filename)
report("processing text of graphic '#{filename}'")
- processmpx(filename,true)
+ processmpx(filename,false,true,true)
end
reportruntime
end
def deleteoptionfile(rawname)
- begin
- File.delete(File.suffixed(rawname,'top'))
- rescue
+ ['top','top.keep'].each do |suffix|
+ begin
+ File.delete(File.suffixed(rawname,suffix))
+ rescue
+ end
end
end
- def makeoptionfile(rawname, jobname, jobsuffix, finalrun, fastdisabled, kindofrun)
- # jobsuffix = orisuffix
- if topname = File.suffixed(rawname,'top') and opt = File.open(topname,'w') then
- # local handies
- opt << "\% #{topname}\n"
- opt << "\\unprotect\n"
- opt << "\\setupsystem[\\c!n=#{kindofrun}]\n"
- opt << "\\def\\MPOSTformatswitch\{#{prognameflag('metafun')} #{formatflag('mpost')}=\}\n"
- if getvariable('batchmode') then
- opt << "\\batchmode\n"
- end
- if getvariable('nonstopmode') then
- opt << "\\nonstopmode\n"
- end
- if getvariable('paranoid') then
- opt << "\\def\\maxreadlevel{1}\n"
- end
- if (str = File.unixfied(getvariable('modefile'))) && ! str.empty? then
- opt << "\\readlocfile{#{str}}{}{}\n"
- end
- if (str = File.unixfied(getvariable('result'))) && ! str.empty? then
- opt << "\\setupsystem[file=#{str}]\n"
- elsif (str = getvariable('suffix')) && ! str.empty? then
- opt << "\\setupsystem[file=#{jobname}.#{str}]\n"
- end
- if (str = File.unixfied(getvariable('path'))) && ! str.empty? then
- opt << "\\usepath[#{str}]\n" unless str.empty?
- end
- if (str = getvariable('mainlanguage').downcase) && ! str.empty? && ! str.standard? then
- opt << "\\setuplanguage[#{str}]\n"
- end
- if str = validbackend(getvariable('backend')) then
- opt << "\\setupoutput[#{str}]\n"
- end
- if getvariable('color') then
- opt << "\\setupcolors[\\c!state=\\v!start]\n"
- end
- if getvariable('nompmode') || getvariable('nomprun') || getvariable('automprun') then
- opt << "\\runMPgraphicsfalse\n"
- end
- if getvariable('fast') && ! getvariable('fastdisabled') then
- opt << "\\fastmode\n"
- end
- if getvariable('silentmode') then
- opt << "\\silentmode\n"
- end
- if (str = getvariable('separation')) && ! str.empty? then
- opt << "\\setupcolors[\\c!split=#{str}]\n"
- end
- if (str = getvariable('setuppath')) && ! str.empty? then
- opt << "\\setupsystem[\\c!directory=\{#{str}\}]\n"
- end
- if (str = getvariable('paperformat')) && ! str.empty? && ! str.standard? then
- if str =~ /^([a-z]+\d+)([a-z]+\d+)$/io then # A5A4 A4A3 A2A1 ...
- opt << "\\setuppapersize[#{$1.upcase}][#{$2.upcase}]\n"
- else # ...*...
- pf = str.upcase.split(/[x\*]/o)
- pf << pf[0] if pd.size == 1
- opt << "\\setuppapersize[#{pf[0]}][#{pf[1]}]\n"
+ def makeoptionfile(rawname, jobname, jobsuffix, finalrun, fastdisabled, kindofrun, currentrun=1)
+ begin
+ # jobsuffix = orisuffix
+ if topname = File.suffixed(rawname,'top') and opt = File.open(topname,'w') then
+ report("writing option file #{topname}")
+ # local handies
+ opt << "\% #{topname}\n"
+ opt << "\\unprotect\n"
+ if getvariable('utfbom') then
+ opt << "\\enableregime[utf]"
end
- end
- if (str = getvariable('background')) && ! str.empty? then
- opt << "\\defineoverlay[whatever][{\\externalfigure[#{str}][\\c!factor=\\v!max]}]\n"
- opt << "\\setupbackgrounds[\\v!page][\\c!background=whatever]\n"
- end
- if getvariable('centerpage') then
- opt << "\\setuplayout[\\c!location=\\v!middle,\\c!marking=\\v!on]\n"
- end
- if getvariable('nomapfiles') then
- opt << "\\disablemapfiles\n"
- end
- if getvariable('noarrange') then
- opt << "\\setuparranging[\\v!disable]\n"
- elsif getvariable('arrange') then
- arrangement = Array.new
- if finalrun then
- arrangement << "\\v!doublesided" unless getvariable('noduplex')
- case printformat
- when '' then arrangement << "\\v!normal"
- when /.*up/oi then arrangement << "\\v!rotated"
- when /.*down/oi then arrangement << ["2DOWN","\\v!rotated"]
- when /.*side/oi then arrangement << ["2SIDE","\\v!rotated"]
+ opt << "\\setupsystem[\\c!n=#{kindofrun},\\c!m=#{currentrun}]\n"
+ opt << "\\def\\MPOSTformatswitch\{#{prognameflag('metafun')} #{formatflag('mpost')}=\}\n"
+ if getvariable('batchmode') then
+ opt << "\\batchmode\n"
+ end
+ if getvariable('nonstopmode') then
+ opt << "\\nonstopmode\n"
+ end
+ if getvariable('paranoid') then
+ opt << "\\def\\maxreadlevel{1}\n"
+ end
+ if (str = File.unixfied(getvariable('modefile'))) && ! str.empty? then
+ opt << "\\readlocfile{#{str}}{}{}\n"
+ end
+ if (str = File.unixfied(getvariable('result'))) && ! str.empty? then
+ opt << "\\setupsystem[file=#{str}]\n"
+ elsif (str = getvariable('suffix')) && ! str.empty? then
+ opt << "\\setupsystem[file=#{jobname}.#{str}]\n"
+ end
+ opt << "\\setupsystem[\\c!method=2]\n" # 1=oldtexexec 2=newtexexec (obsolete)
+ opt << "\\setupsystem[\\c!type=#{Tool.ruby_platform()}]\n"
+ if (str = File.unixfied(getvariable('path'))) && ! str.empty? then
+ opt << "\\usepath[#{str}]\n" unless str.empty?
+ end
+ if (str = getvariable('mainlanguage').downcase) && ! str.empty? && ! str.standard? then
+ opt << "\\setuplanguage[#{str}]\n"
+ end
+ if str = validbackend(getvariable('backend')) then
+ opt << "\\setupoutput[#{str}]\n"
+ elsif str = validbackend(getvariable('output')) then
+ opt << "\\setupoutput[#{str}]\n"
+ end
+ if getvariable('color') then
+ opt << "\\setupcolors[\\c!state=\\v!start]\n"
+ end
+ if getvariable('nompmode') || getvariable('nomprun') || getvariable('automprun') then
+ opt << "\\runMPgraphicsfalse\n"
+ end
+ if getvariable('fast') && ! getvariable('fastdisabled') then
+ opt << "\\fastmode\n"
+ end
+ if getvariable('silentmode') then
+ opt << "\\silentmode\n"
+ end
+ if (str = getvariable('separation')) && ! str.empty? then
+ opt << "\\setupcolors[\\c!split=#{str}]\n"
+ end
+ if (str = getvariable('setuppath')) && ! str.empty? then
+ opt << "\\setupsystem[\\c!directory=\{#{str}\}]\n"
+ end
+ if (str = getvariable('paperformat')) && ! str.empty? && ! str.standard? then
+ if str =~ /^([a-z]+\d+)([a-z]+\d+)$/io then # A5A4 A4A3 A2A1 ...
+ opt << "\\setuppapersize[#{$1.upcase}][#{$2.upcase}]\n"
+ else # ...*...
+ pf = str.upcase.split(/[x\*]/o)
+ pf << pf[0] if pf.size == 1
+ opt << "\\setuppapersize[#{pf[0]}][#{pf[1]}]\n"
end
- else
- arrangement << "\\v!disable"
end
- opt << "\\setuparranging[#{arrangement.flatten.join(',')}]\n" if arrangement.size > 0
- end
- if (str = getvariable('modes')) && ! str.empty? then
- opt << "\\enablemode[#{modes}]\n"
- end
- if (str = getvariable('arguments')) && ! str.empty? then
- opt << "\\setupenv[#{str}]\n"
- end
- if (str = getvariable('randomseed')) && ! str.empty? then
- opt << "\\setupsystem[\\c!random=#{str}]\n"
- end
- if (str = getvariable('input')) && ! str.empty? then
- opt << "\\setupsystem[inputfile=#{str}]\n"
- else
- opt << "\\setupsystem[inputfile=#{rawname}]\n"
- end
- if (str = getvariable('pages')) && ! str.empty? then
- if str.downcase == 'odd' then
- opt << "\\chardef\\whichpagetoshipout=1\n"
- elsif str.downcase == 'even' then
- opt << "\\chardef\\whichpagetoshipout=2\n"
+ if (str = getvariable('background')) && ! str.empty? then
+ opt << "\\defineoverlay[whatever][{\\externalfigure[#{str}][\\c!factor=\\v!max]}]\n"
+ opt << "\\setupbackgrounds[\\v!page][\\c!background=whatever]\n"
+ end
+ if getvariable('centerpage') then
+ opt << "\\setuplayout[\\c!location=\\v!middle,\\c!marking=\\v!on]\n"
+ end
+ if getvariable('nomapfiles') then
+ opt << "\\disablemapfiles\n"
+ end
+ if getvariable('noarrange') then
+ opt << "\\setuparranging[\\v!disable]\n"
+ elsif getvariable('arrange') then
+ arrangement = Array.new
+ if finalrun then
+ arrangement << "\\v!doublesided" unless getvariable('noduplex')
+ case getvariable('printformat')
+ when '' then arrangement << "\\v!normal"
+ when /.*up/oi then arrangement << ["2UP","\\v!rotated"]
+ when /.*down/oi then arrangement << ["2DOWN","\\v!rotated"]
+ when /.*side/oi then arrangement << ["2SIDE","\\v!rotated"]
+ end
+ else
+ arrangement << "\\v!disable"
+ end
+ opt << "\\setuparranging[#{arrangement.flatten.join(',')}]\n" if arrangement.size > 0
+ end
+ # we handle both "--mode" and "--modes", else "--mode" is
+ # mapped onto "--modefile"
+ if (str = getvariable('modes')) && ! str.empty? then
+ opt << "\\enablemode[#{str}]\n"
+ end
+ if (str = getvariable('mode')) && ! str.empty? then
+ opt << "\\enablemode[#{str}]\n"
+ end
+ if (str = getvariable('arguments')) && ! str.empty? then
+ opt << "\\setupenv[#{str}]\n"
+ end
+ if (str = getvariable('randomseed')) && ! str.empty? then
+ report("using randomseed #{str}")
+ opt << "\\setupsystem[\\c!random=#{str}]\n"
+ end
+ if (str = getvariable('input')) && ! str.empty? then
+ opt << "\\setupsystem[inputfile=#{str}]\n"
else
- pagelist = Array.new
- str.split(/\,/).each do |page|
- pagerange = page.split(/(\:|\.\.)/o )
- if pagerange.size > 1 then
- pagerange.first.to_i.upto(pagerange.last.to_i) do |p|
- pagelist << p.to_s
+ opt << "\\setupsystem[inputfile=#{rawname}]\n"
+ end
+ if (str = getvariable('pages')) && ! str.empty? then
+ if str.downcase == 'odd' then
+ opt << "\\chardef\\whichpagetoshipout=1\n"
+ elsif str.downcase == 'even' then
+ opt << "\\chardef\\whichpagetoshipout=2\n"
+ else
+ pagelist = Array.new
+ str.split(/\,/).each do |page|
+ pagerange = page.split(/\D+/o)
+ if pagerange.size > 1 then
+ pagerange.first.to_i.upto(pagerange.last.to_i) do |p|
+ pagelist << p.to_s
+ end
+ else
+ pagelist << page
end
- else
- pagelist << page
end
+ opt << "\\def\\pagestoshipout\{#{pagelist.join(',')}\}\n";
end
- opt << "\\def\\pagestoshipout\{pagelist.join(',')\}\n";
end
+ opt << "\\protect\n";
+ begin getvariable('filters' ).split(',').uniq.each do |f| opt << "\\useXMLfilter[#{f}]\n" end ; rescue ; end
+ begin getvariable('usemodules' ).split(',').uniq.each do |m| opt << "\\usemodule[#{m}]\n" end ; rescue ; end
+ begin getvariable('environments').split(',').uniq.each do |e| opt << "\\environment #{e}\n" end ; rescue ; end
+ # this will become:
+ # begin getvariable('environments').split(',').uniq.each do |e| opt << "\\useenvironment[#{e}]\n" end ; rescue ; end
+ opt << "\\endinput\n"
+ opt.close
+ else
+ report("unable to write option file #{topname}")
end
- opt << "\\protect\n";
- begin getvariable('filters' ).split(',').uniq.each do |f| opt << "\\useXMLfilter[#{f}]\n" end ; rescue ; end
- begin getvariable('usemodules' ).split(',').uniq.each do |m| opt << "\\usemodule[#{m}]\n" end ; rescue ; end
- begin getvariable('environments').split(',').uniq.each do |e| opt << "\\environment #{e}\n" end ; rescue ; end
- # this will become:
- # begin getvariable('environments').split(',').uniq.each do |e| opt << "\\useenvironment[#{e}]\n" end ; rescue ; end
- opt << "\\endinput\n"
- opt.close
+ rescue
+ report("fatal error in writing option file #{topname} (#{$!})")
end
end
@@ -1001,6 +1314,7 @@ class TEX
if ENV.key?('SHELL_ESCAPE') && (ENV['SHELL_ESCAPE'] == 'f') then
setvariable('automprun',true)
end
+ done = false
['TXRESOURCES','MPRESOURCES','MFRESOURCES'].each do |res|
[getvariable('runpath'),getvariable('path')].each do |pat|
unless pat.empty? then
@@ -1009,12 +1323,47 @@ class TEX
else
ENV[res] = pat
end
+ report("setting #{res} to #{ENV[res]}") unless done
end
end
+ done = true
end
end
+ def checktestversion
+ #
+ # one can set TEXMFALPHA and TEXMFBETA for test versions
+ # but keep in mind that the format as well as the test files
+ # then need the --alpha or --beta flag
+ #
+ done, tree = false, ''
+ ['alpha', 'beta'].each do |what|
+ if getvariable(what) then
+ if ENV["TEXMF#{what.upcase}"] then
+ done, tree = true, ENV["TEXMF#{what.upcase}"]
+ elsif ENV["TEXMFLOCAL"] then
+ done, tree = true, File.join(File.dirname(ENV['TEXMFLOCAL']), "texmf-#{what}")
+ end
+ end
+ break if done
+ end
+ if done then
+ tree = tree.strip
+ ENV['TEXMFPROJECT'] = tree
+ report("using test tree '#{tree}'")
+ ['MP', 'MF', 'TX'].each do |ctx|
+ ENV['CTXDEV#{ctx}PATH'] = ''
+ end
+ unless (FileTest.file?(File.join(tree,'ls-r')) || FileTest.file?(File.join(tree,'ls-R'))) then
+ report("no ls-r/ls-R file for tree '#{tree}' (run: mktexlsr #{tree})")
+ end
+ end
+ # puts `kpsewhich --expand-path=$TEXMF`
+ # exit
+ end
+
def runtex(filename)
+ checktestversion
texengine = validtexengine(getvariable('texengine'))
texformat = validtexformat(getarrayvariable('texformats').first)
progname = validprogname(getvariable('progname'))
@@ -1022,45 +1371,51 @@ class TEX
report("tex format: #{texformat}")
report("progname: #{progname}")
if texengine && texformat && progname then
- command = [quoted(texengine),prognameflag(progname),formatflag(texengine,texformat),runoptions(texengine),filename,texprocextras(texformat)].join(' ')
- report(command) if getvariable('verbose')
- system(command)
+ fixbackendvars(@@mappaths[texengine])
+ runcommand([quoted(texengine),prognameflag(progname),formatflag(texengine,texformat),tcxflag,runoptions(texengine),filename,texprocextras(texformat)])
+ # true
else
false
end
end
- def runmp(filename)
+ def runmp(mpname,mpx=false)
+ checktestversion
mpsengine = validmpsengine(getvariable('mpsengine'))
mpsformat = validmpsformat(getarrayvariable('mpsformats').first)
progname = validprogname(getvariable('progname'))
if mpsengine && mpsformat && progname then
- command = [quoted(mpsengine),prognameflag(progname),formatflag(mpsengine,mpsformat),runoptions(mpsengine),filename,mpsprocextras(mpsformat)].join(' ')
- report(command) if getvariable('verbose')
- system(command)
+ ENV["MPXCOMMAND"] = "0" unless mpx
+ # runcommand([quoted(mpsengine),prognameflag(progname),formatflag(mpsengine,mpsformat),tcxflag,runoptions(mpsengine),filename,mpsprocextras(mpsformat)])
+ runcommand([quoted(mpsengine),formatflag(mpsengine,mpsformat),tcxflag,runoptions(mpsengine),mpname,mpsprocextras(mpsformat)])
+ true
else
false
end
end
- def runtexmp(filename,filetype='')
- mpfile = File.suffixed(filename,filetype,'mp')
- if File.atleast?(mpfile,25) then
+ def runtexmp(filename,filetype='',purge=true)
+ checktestversion
+ mpname = File.suffixed(filename,filetype,'mp')
+ if File.atleast?(mpname,25) then
# first run needed
- File.silentdelete(File.suffixed(mpfile,'mpt'))
- doruntexmp(mpfile,false)
- mpgraphics = checkmpgraphics(mpfile)
- mplabels = checkmplabels(mpfile)
+ File.silentdelete(File.suffixed(mpname,'mpt'))
+ doruntexmp(mpname,nil,true,purge)
+ mpgraphics = checkmpgraphics(mpname)
+ mplabels = checkmplabels(mpname)
if mpgraphics || mplabels then
# second run needed
- doruntexmp(mpfile,mplabels)
+ doruntexmp(mpname,mplabels,true,purge)
+ else
+ # no labels
end
end
end
def runtexmpjob(filename,filetype='')
- mpfile = File.suffixed(filename,filetype,'mp')
- if File.atleast?(mpfile,25) && (data = File.silentread(mpfile)) then
+ checktestversion
+ mpname = File.suffixed(filename,filetype,'mp')
+ if File.atleast?(mpname,25) && (data = File.silentread(mpname)) then
textranslation = if data =~ /^\%\s+translate.*?\=([\w\d\-]+)/io then $1 else '' end
mpjobname = if data =~ /collected graphics of job \"(.+?)\"/io then $1 else '' end
if ! mpjobname.empty? and File.unsuffixed(filename) =~ /#{mpjobname}/ then # don't optimize
@@ -1071,8 +1426,9 @@ class TEX
options.push("--translate=#{textranslation}") unless textranslation.empty?
options.push("--batch") if getvariable('batchmode')
options.push("--nonstop") if getvariable('nonstopmode')
- options.push("--output=ps")
- return runtexexec(mpfile,options,2)
+ options.push("--output=ps") # options.push("--dvi")
+ options.push("--nobackend")
+ return runtexexec(mpname,options,2)
end
end
return false
@@ -1086,7 +1442,7 @@ class TEX
begin
logger = Logger.new('TeXUtil')
if tu = TeXUtil::Converter.new(logger) and tu.loaded(fname) then
- tu.saved if tu.processed
+ ok = tu.processed && tu.saved && tu.finalized
end
rescue
Kpse.runscript('texutil',fname,options)
@@ -1095,16 +1451,17 @@ class TEX
end
end
- # 1=tex 2=mptex 3=mpxtex
+ # 1=tex 2=mptex 3=mpxtex 4=mpgraphic
def runtexexec(filename=[], options=[], mode=nil)
begin
if mode and job = TEX.new(@logger) then
options.each do |option|
- if option=~ /^\-*(.*?)\=(.*)$/o then
- job.setvariable($1,$2)
- else
- job.setvariable(option,true)
+ case option
+ when /^\-*(.*?)\=(.*)$/o then
+ job.setvariable($1,$2)
+ when /^\-*(.*?)$/o then
+ job.setvariable($1,true)
end
end
job.setvariable("files",filename)
@@ -1112,6 +1469,7 @@ class TEX
when 1 then job.processtex
when 2 then job.processmptex
when 3 then job.processmpxtex
+ when 4 then job.processmpgraphic
end
job.inspect && Kpse.inspect if getvariable('verbose')
return true
@@ -1124,49 +1482,65 @@ class TEX
end
def fixbackendvars(backend)
- ENV['backend'] = backend ;
- ENV['progname'] = backend unless validtexengine(backend)
- ENV['TEXFONTMAPS'] = ".;\$TEXMF/fonts/map/{#{backend},pdftex,dvips,}//"
+ if backend then
+ report("fixing backend map path for #{backend}") if getvariable('verbose')
+ ENV['backend'] = backend ;
+ ENV['progname'] = backend unless validtexengine(backend)
+ ENV['TEXFONTMAPS'] = ['.',"\$TEXMF/fonts/map/{#{backend},pdftex,dvips,}//",'./fonts//'].join_path
+ else
+ report("unable to fix backend map path") if getvariable('verbose')
+ end
end
def runbackend(rawname)
- case validbackend(getvariable('backend'))
- when 'dvipdfmx' then
- fixbackendvars('dvipdfm')
- system("dvipdfmx -d 4 #{File.unsuffixed(rawname)}")
- when 'xetex' then
- fixbackendvars('xetex')
- system("xdv2pdf #{File.suffixed(jrawname,'xdv')}")
- when 'dvips' then
- fixbackendvars('dvips')
- mapfiles = ''
- begin
- if tuifile = File.suffixed(rawname,'tui') and FileTest.file?(tuifile) then
- IO.read(tuifile).scan(/^c \\usedmapfile\{.\}\{(.*?)\}\s*$/o) do
- mapfiles += "-u +#{$1} " ;
- end
+ unless getvariable('nobackend') then
+ case validbackend(getvariable('backend'))
+ when 'dvipdfmx' then
+ fixbackendvars('dvipdfm')
+ runcommand("dvipdfmx -d 4 -V 5 #{File.unsuffixed(rawname)}")
+ when 'xetex' then
+ # xetex now runs its own backend
+ xdvfile = File.suffixed(rawname,'xdv')
+ if FileTest.file?(xdvfile) then
+ fixbackendvars('dvipdfm')
+ runcommand("xdvipdfmx -d 4 -V 5 #{xdvfile}")
end
- rescue
+ when 'xdv2pdf' then
+ xdvfile = File.suffixed(rawname,'xdv')
+ if FileTest.file?(xdvfile) then
+ fixbackendvars('xdv2pdf')
+ runcommand("xdv2pdf #{xdvfile}")
+ end
+ when 'dvips' then
+ fixbackendvars('dvips')
mapfiles = ''
- end
- system("dvips #{mapfiles} #{File.unsuffixed(rawname)}")
- when 'pdftex' then
- # no need for postprocessing
- else
- report("no postprocessing needed")
+ begin
+ if tuifile = File.suffixed(rawname,'tui') and FileTest.file?(tuifile) then
+ IO.read(tuifile).scan(/^c \\usedmapfile\{.\}\{(.*?)\}\s*$/o) do
+ mapfiles += "-u +#{$1} " ;
+ end
+ end
+ rescue
+ mapfiles = ''
+ end
+ runcommand("dvips #{mapfiles} #{File.unsuffixed(rawname)}")
+ when 'pdftex' then
+ # no need for postprocessing
+ else
+ report("no postprocessing needed")
+ end
end
end
def processfile
takeprecautions
-
- rawname = getvariable('filename')
-
- jobname = getvariable('filename')
- suffix = getvariable('suffix')
- result = getvariable('result')
-
+ report("using search method '#{Kpse.searchmethod}'") if getvariable('verbose')
+ rawname = getvariable('filename')
+ jobname = getvariable('filename')
+ suffix = getvariable('suffix')
+ result = getvariable('result')
+ forcexml = getvariable('forcexml')
runonce = getvariable('once')
finalrun = getvariable('final') || (getvariable('arrange') && ! getvariable('noarrange'))
globalfile = getvariable('globalfile')
@@ -1188,9 +1562,13 @@ class TEX
setvariable('nomprun',true) if orisuffix == 'mpx' # else cylic run
+ PDFview.setmethod('xpdf') if getvariable('xpdf')
+
PDFview.closeall if getvariable('autopdf')
- forcexml = jobsuffix.match(/^(xml|fo|fox|rlg|exa)$/io) # nil or match
+ if jobsuffix =~ /^(htm|html|xhtml|xml|fo|fox|rlg|exa)$/io then
+ forcexml = true
+ end
dummyfile = false
@@ -1207,53 +1585,66 @@ class TEX
rawname = jobname + '.' + jobsuffix
+ rawpath = File.dirname(rawname)
+ rawbase = File.basename(rawname)
+
unless FileTest.file?(rawname) then
inppath.split(',').each do |ip|
break if dummyfile = FileTest.file?(File.join(ip,rawname))
end
end
+ if dummyfile || forcexml then
+ jobsuffix = makestubfile(rawname,rawbase,forcexml)
+ checkxmlfile(rawname)
+ end
+
+
# preprocess files
- ctx = CtxRunner.new(rawname,@logger)
- if getvariable('ctxfile').empty? then
- ctx.manipulate(File.suffixed(rawname,'ctx'),'jobname.ctx')
- else
- ctx.manipulate(File.suffixed(getvariable('ctxfile'),'ctx'))
- end
- ctx.savelog(File.suffixed(rawname,'ctl'))
+ unless getvariable('noctx') then
+ ctx = CtxRunner.new(rawname,@logger)
+ if getvariable('ctxfile').empty? then
+ if rawname == rawbase then
+ ctx.manipulate(File.suffixed(rawname,'ctx'),'jobname.ctx')
+ else
+ ctx.manipulate(File.suffixed(rawname,'ctx'),File.join(rawpath,'jobname.ctx'))
+ end
+ else
+ ctx.manipulate(File.suffixed(getvariable('ctxfile'),'ctx'))
+ end
+ ctx.savelog(File.suffixed(rawbase,'ctl'))
- envs = ctx.environments
- mods = ctx.modules
+ envs = ctx.environments
+ mods = ctx.modules
- # merge environment and module specs
+ # merge environment and module specs
- envs << getvariable('environments') unless getvariable('environments').empty?
- mods << getvariable('modules') unless getvariable('modules') .empty?
+ envs << getvariable('environments') unless getvariable('environments').empty?
+ mods << getvariable('modules') unless getvariable('modules') .empty?
- envs = envs.uniq.join(',')
- mods = mods.uniq.join(',')
+ envs = envs.uniq.join(',')
+ mods = mods.uniq.join(',')
- report("using environments #{envs}") if envs.length > 0
- report("using modules #{mods}") if mods.length > 0
+ report("using search method '#{Kpse.searchmethod}'") if getvariable('verbose')
+ report("using environments #{envs}") if envs.length > 0
+ report("using modules #{mods}") if mods.length > 0
- setvariable('environments', envs)
- setvariable('modules', mods)
+ setvariable('environments', envs)
+ setvariable('modules', mods)
+ end
# end of preprocessing and merging
- jobsuffix = makestubfile(rawname,forcexml) if dummyfile || forcexml
-
if globalfile || FileTest.file?(rawname) then
if not dummyfile and not globalfile then
scantexpreamble(rawname)
scantexcontent(rawname) if getvariable('texformats').standard?
end
-
result = File.suffixed(rawname,suffix) unless suffix.empty?
- pushresult(rawname,result)
+ pushresult(rawbase,result)
method = validtexmethod(validtexformat(getvariable('texformats')))
@@ -1263,64 +1654,114 @@ class TEX
when 'context' then
if getvariable('simplerun') || runonce then
- makeoptionfile(rawname,jobname,orisuffix,true,true,3) unless getvariable('nooptionfile')
- ok = runtex(rawname)
+ makeoptionfile(rawbase,jobname,orisuffix,true,true,3,1) unless getvariable('nooptionfile')
+ ok = runtex(if dummyfile || forcexml then rawbase else rawname end)
if ok then
- ok = runtexutil(rawname) if getvariable('texutil') || getvariable('forcetexutil')
- runbackend(rawname)
- popresult(rawname,result)
+ ok = runtexutil(rawbase) if getvariable('texutil') || getvariable('forcetexutil')
+ runbackend(rawbase)
+ popresult(rawbase,result)
+ end
+ if getvariable('keep') then
+ ['top','log','run'].each do |suffix|
+ File.silentrename(File.suffixed(rawbase,suffix),File.suffixed(rawbase,suffix+'.keep'))
+ end
end
- File.silentdelete(File.suffixed(rawname,'tmp'))
- File.silentrename(File.suffixed(rawname,'top'),File.suffixed(rawname,'tmp'))
else
mprundone, ok, stoprunning = false, true, false
texruns, nofruns = 0, getvariable('runs').to_i
state = FileState.new
['tub','tuo'].each do |s|
- state.register(File.suffixed(rawname,s))
+ state.register(File.suffixed(rawbase,s))
end
if getvariable('automprun') then # check this
['mprun','mpgraph'].each do |s|
- state.register(File.suffixed(rawname,s,'mp'),'randomseed')
+ state.register(File.suffixed(rawbase,s,'mp'),'randomseed')
end
end
while ! stoprunning && (texruns < nofruns) && ok do
texruns += 1
report("TeX run #{texruns}")
- if texruns == 1 then
- makeoptionfile(rawname,jobname,orisuffix,false,false,1) unless getvariable('nooptionfile')
- else
- makeoptionfile(rawname,jobname,orisuffix,false,false,2) unless getvariable('nooptionfile')
+ unless getvariable('nooptionfile') then
+ if texruns == nofruns then
+ makeoptionfile(rawbase,jobname,orisuffix,false,false,4,texruns) # last
+ elsif texruns == 1 then
+ makeoptionfile(rawbase,jobname,orisuffix,false,false,1,texruns) # first
+ else
+ makeoptionfile(rawbase,jobname,orisuffix,false,false,2,texruns) # unknown
+ end
end
- ok = runtex(File.suffixed(rawname,jobsuffix))
+ ok = runtex(File.suffixed(if dummyfile || forcexml then rawbase else rawname end,jobsuffix))
if ok && (nofruns > 1) then
unless getvariable('nompmode') then
- mprundone = runtexmpjob(rawname, "mpgraph")
- mprundone = runtexmpjob(rawname, "mprun")
+ mprundone = runtexmpjob(rawbase, "mpgraph")
+ mprundone = runtexmpjob(rawbase, "mprun")
end
- ok = runtexutil(rawname)
+ ok = runtexutil(rawbase)
state.update
stoprunning = state.stable?
end
end
- ok = runtexutil(rawname) if (nofruns == 1) && getvariable('texutil')
+ if not ok then
+ setvariable('error','error in tex file')
+ end
+ ok = runtexutil(rawbase) if (nofruns == 1) && getvariable('texutil')
if ok && finalrun && (nofruns > 1) then
- makeoptionfile(rawname,jobname,orisuffix,true,finalrun,4) unless getvariable('nooptionfile')
+ makeoptionfile(rawbase,jobname,orisuffix,true,finalrun,4,texruns) unless getvariable('nooptionfile')
report("final TeX run #{texruns}")
- ok = runtex(File.suffixed(rawname,jobsuffix))
+ ok = runtex(File.suffixed(if dummyfile || forcexml then rawbase else rawname end,jobsuffix))
end
- ['tmp','top'].each do |s| # previous tuo file / runtime option file
- File.silentdelete(File.suffixed(rawname,s))
+ if getvariable('keep') then
+ ['top','log','run'].each do |suffix|
+ File.silentrename(File.suffixed(rawbase,suffix),File.suffixed(rawbase,suffix+'.keep'))
+ end
+ else
+ File.silentrename(File.suffixed(rawbase,'top'),File.suffixed(rawbase,'tmp'))
end
- File.silentrename(File.suffixed(rawname,'top'),File.suffixed(rawname,'tmp'))
+ # ['tmp','top','log'].each do |s| # previous tuo file / runtime option file / log file
+ # File.silentdelete(File.suffixed(rawbase,s))
+ # end
if ok then
- runbackend(rawname)
- popresult(rawname,result)
+ runbackend(rawbase)
+ popresult(rawbase,result)
+ end
+ if true then # autopurge
+ begin
+ File.open(File.suffixed(rawbase, 'tuo')) do |f|
+ ok = 0
+ f.each do |line|
+ case ok
+ when 1 then
+ # next line is empty
+ ok = 2
+ when 2 then
+ if line =~ /^\%\s+\>\s+(.*?)\s+(\d+)/mois then
+ filename, n = $1, $2
+ done = File.delete(filename) rescue false
+ if done && getvariable('verbose') then
+ report("deleting #{filename} (#{n} times used)")
+ end
+ else
+ break
+ end
+ else
+ if line =~ /^\%\s+temporary files\:\s+(\d+)/mois then
+ if $1.to_i == 0 then
+ break
+ else
+ ok = 1
+ end
+ end
+ end
+ end
+ end
+ rescue
+ report("fatal error #{$!}")
+ end
end
end
- Kpse.runscript('ctxtools',rawname,'--purge') if getvariable('purge')
- Kpse.runscript('ctxtools',rawname,'--purgeall') if getvariable('purgeall')
+ Kpse.runscript('ctxtools',rawbase,'--purge') if getvariable('purge')
+ Kpse.runscript('ctxtools',rawbase,'--purge --all') if getvariable('purgeall')
when 'latex' then
@@ -1332,63 +1773,61 @@ class TEX
end
- if (dummyfile or forcexml) and FileTest.file?(rawname) then
+ if (dummyfile or forcexml) and FileTest.file?(rawbase) then
begin
- File.delete(File.suffixed(rawname,'run'))
+ File.delete(File.suffixed(rawbase,'run'))
rescue
report("unable to delete stub file")
end
end
if ok and getvariable('autopdf') then
- PDFview.open(File.suffixed(if result.empty? then rawname else result end,'pdf'))
+ PDFview.open(File.suffixed(if result.empty? then rawbase else result end,'pdf'))
end
+ else
+ report("nothing to process")
end
end
- # mp specific
+ # The labels are collected in the mergebe hash. Here we merge the relevant labels
+ # into beginfig/endfig. We could as well do this in metafun itself. Maybe some
+ # day ... (it may cost a bit of string space but that is cheap nowadays).
- def doruntexmp(mpname,mergebe=true,context=true)
+ def doruntexmp(mpname,mergebe=nil,context=true,purge=true)
texfound = false
- mpbetex = Hash.new
- mpfile = File.suffixed(mpname,'mp')
- mpcopy = File.suffixed(mpname,'copy','mp')
- setvariable('mp.file',mpfile)
+ mpname = File.suffixed(mpname,'mp')
+ mpcopy = File.suffixed(mpname,'mp.copy')
+ mpkeep = File.suffixed(mpname,'mp.keep')
+ setvariable('mp.file',mpname)
setvariable('mp.line','')
setvariable('mp.error','')
- if mpdata = File.silentread(mpfile) then
+ if mpdata = File.silentread(mpname) then
mpdata.gsub!(/^\#.*\n/o,'')
- File.silentrename(mpfile,mpcopy)
- texfound = mergebe || mpdata =~ /btex .*? etex/o
- if mp = File.silentopen(mpfile,'w') then
- mpdata.gsub!(/(btex.*?)\;(.*?etex)/o) do "#{$1}@@@#{$2}" end
- mpdata.gsub!(/(\".*?)\;(.*?\")/o) do "#{$1}@@@#{$2}" end
- mpdata.gsub!(/\;/o, "\;\n")
- mpdata.gsub!(/\n+/o, "\n")
- mpdata.gsub!(/(btex.*?)@@@(.*?etex)/o) do "#{$1}\;#{$2}" end
- mpdata.gsub!(/(\".*?)@@@(.*?\")/o) do "#{$1};#{$2}" end
+ File.silentrename(mpname,mpcopy)
+ texfound = mergebe || (mpdata =~ /btex .*? etex/mo)
+ if mp = openedfile(mpname) then
if mergebe then
- mpdata.gsub!(/beginfig\s*\((\d+)\)\s*\;(.*?)endfig\s*\;/o) do
+ mpdata.gsub!(/beginfig\s*\((\d+)\)\s*\;(.+?)endfig\s*\;/mo) do
n, str = $1, $2
- if str =~ /(.*?)(verbatimtex.*?etex)\s*\;(.*)/o then
- "beginfig(#{n})\;\n$1$2\;\n#{mpbetex(n)}\n$3\;endfig\;\n"
+ if str =~ /^(.*?)(verbatimtex.*?etex)\s*\;(.*)$/mo then
+ "beginfig(#{n})\;\n#{$1}#{$2}\;\n#{mergebe[n]}\n#{$3}\;endfig\;\n"
else
- "beginfig(#{n})\;\n#{mpbetex(n)}\n#{str}\;endfig\;\n"
+ "beginfig(#{n})\;\n#{mergebe[n]}\n#{str}\;endfig\;\n"
end
end
+ unless mpdata =~ /beginfig\s*\(\s*0\s*\)/o then
+ mp << mergebe['0'] if mergebe.key?('0')
+ end
end
- unless mpdata =~ /beginfig\s*\(\s*0\s*\)/o then
- mp << mpbetex[0] if mpbetex.key?(0)
- end
- mp << mpdata # ??
+ mp << MPTools::splitmplines(mpdata)
mp << "\n"
mp << "end"
mp << "\n"
mp.close
end
- processmpx(mpname) if texfound
+ processmpx(mpname,true,true,purge) if texfound
if getvariable('batchmode') then
options = ' --interaction=batch'
elsif getvariable('nonstopmode') then
@@ -1398,7 +1837,7 @@ class TEX
end
# todo plain|mpost|metafun
ok = runmp(mpname)
- if f = File.silentopen(File.suffixed(mpfile,'log')) then
+ if f = File.silentopen(File.suffixed(mpname,'log')) then
while str = f.gets do
if str =~ /^l\.(\d+)\s(.*?)\n/o then
setvariable('mp.line',$1)
@@ -1408,32 +1847,63 @@ class TEX
end
f.close
end
- File.silentrename(mpfile,"mptrace.tmp")
- File.silentrename(mpcopy, mpfile)
+ File.silentrename(mpname, mpkeep)
+ File.silentrename(mpcopy, mpname)
end
end
- def processmpx(mpname,context=true)
- mpname = File.suffixed(mpname,'mp')
- if File.atleast?(mpname,10) && (data = File.silentread(mpname)) then
+ # todo: use internal mptotext function and/or turn all btex/etex into textexts
+
+ def processmpx(mpname,force=false,context=true,purge=true)
+ unless force then
+ mpname = File.suffixed(mpname,'mp')
+ if File.atleast?(mpname,10) && (data = File.silentread(mpname)) then
+ if data =~ /(btex|etex|verbatimtex|textext)/o then
+ force = true
+ end
+ end
+ end
+ if force then
begin
- if data =~ /(btex|etex|verbatimtex)/o then
- mptex = File.suffixed(mpname,'temp','tex')
- mpdvi = File.suffixed(mpname,'temp','dvi')
- mplog = File.suffixed(mpname,'temp','log')
- mpmpx = File.suffixed(mpname,'temp','mpx')
- ok = system("mpto #{mpname} > #{mptex}")
- if ok && File.appended(mptex, "\\end\n") then
+ mptex = File.suffixed(mpname,'temp','tex')
+ mpdvi = File.suffixed(mpname,'temp','dvi')
+ mplog = File.suffixed(mpname,'temp','log')
+ mpmpx = File.suffixed(mpname,'mpx')
+ File.silentdelete(mptex)
+ if true then
+ report("using internal mptotex converter")
+ ok = MPTools::mptotex(mpname,mptex,'context')
+ else
+ command = "mpto #{mpname} > #{mptex}"
+ report(command) if getvariable('verbose')
+ ok = system(command)
+ end
+ # not "ok && ..." because of potential problem with return code and redirect (>)
+ if FileTest.file?(mptex) && File.appended(mptex, "\\end\n") then
+ # to be replaced by runtexexec([filenames],options,1)
+ if localjob = TEX.new(@logger) then
+ localjob.setvariable('files',mptex)
+ localjob.setvariable('backend','dvips')
+ localjob.setvariable('engine',getvariable('engine')) unless getvariable('engine').empty?
+ localjob.setvariable('once',true)
+ localjob.setvariable('nobackend',true)
if context then
- ok = RunConTeXtFile(mptex)
+ localjob.setvariable('texformats',[getvariable('interface')]) unless getvariable('interface').empty?
+ elsif getvariable('interface').empty? then
+ localjob.setvariable('texformats',['plain'])
else
- ok = RunSomeTeXFile(mptex)
- end
- ok = ok && FileTest.file?(mpdvi) && system("dvitomp #{mpdvi} #{mpmpx}")
- [mptex,mpdvi,mplog].each do |mpfil|
- File.silentdelete(mpfil)
+ localjob.setvariable('texformats',[getvariable('interface')])
end
+ localjob.processtex
+ ok = true # todo
+ else
+ ok = false
end
+ # so far
+ command = "dvitomp #{mpdvi} #{mpmpx}"
+ report(command) if getvariable('verbose')
+ ok = ok && FileTest.file?(mpdvi) && system(command)
+ purge_mpx_files(mpname) if purge
end
rescue
# error in processing mpx file
@@ -1441,6 +1911,14 @@ class TEX
end
end
+ def purge_mpx_files(mpname)
+ unless getvariable('keep') then
+ ['tex', 'log', 'tui', 'tuo', 'top'].each do |suffix|
+ File.silentdelete(File.suffixed(mpname,'temp',suffix))
+ end
+ end
+ end
+
def checkmpgraphics(mpname)
mpoptions = ''
if getvariable('makempy') then
@@ -1452,12 +1930,12 @@ class TEX
mponame = File.suffixed(mpname,'mpo')
mpyname = File.suffixed(mpname,'mpy')
return false unless File.atleast?(mponame,32)
- mpochecksum = State.new.checksum(mponame)
+ mpochecksum = FileState.new.checksum(mponame)
return false if mpochecksum.empty?
# where does the checksum get into the file?
# maybe let texexec do it?
# solution: add one if not present or update when different
- if f = File.open(mpyname) then
+ if f = File.silentopen(mpyname) then
str = f.gets.chomp
f.close
if str =~ /^\%\s*mpochecksum\s*\:\s*(\d+)/o then
@@ -1470,24 +1948,25 @@ class TEX
def checkmplabels(mpname)
mpname = File.suffixed(mpname,'mpt')
- if File.atleast?(mpname,10) && (mp = File.open(mpname)) then
+ if File.atleast?(mpname,10) && (mp = File.silentopen(mpname)) then
labels = Hash.new
while str = mp.gets do
- if str =~ /%\s*setup\s*:\s*(.*)/o then
- t = $1
- else
- t = ''
- end
- if str =~ /%\s*figure\s*(\d+)\s*:\s*(.*)/o then
+ t = if str =~ /^%\s*setup\s*:\s*(.*)$/o then $1 else '' end
+ if str =~ /^%\s*figure\s*(\d+)\s*:\s*(.*)$/o then
+ labels[$1] = labels[$1] || ''
unless t.empty? then
labels[$1] += "#{t}\n"
t = ''
end
- labels[$1] += "$2\n"
+ labels[$1] += "#{$2}\n"
end
end
mp.close
- return labels if labels.size>0
+ if labels.size>0 then
+ return labels
+ else
+ return nil
+ end
end
return nil
end
diff --git a/Master/texmf-dist/scripts/context/ruby/base/texutil.rb b/Master/texmf-dist/scripts/context/ruby/base/texutil.rb
index c279bcc97a6..2bca831675e 100644
--- a/Master/texmf-dist/scripts/context/ruby/base/texutil.rb
+++ b/Master/texmf-dist/scripts/context/ruby/base/texutil.rb
@@ -51,12 +51,21 @@ class TeXUtil
@logger = logger
end
+ def report(str)
+ @logger.report("fatal error in plugin (#{str}): #{$!}")
+ puts("\n")
+ $@.each do |line|
+ puts(" #{line}")
+ end
+ puts("\n")
+ end
+
def reset(name)
if @plugins.include?(name) then
begin
eval("#{name}").reset(@logger)
rescue Exception
- @logger.report("fatal error in resetting plugin")
+ report("resetting")
end
else
@logger.report("no plugin #{name}")
@@ -89,7 +98,7 @@ class TeXUtil
begin
eval("#{name}").reader(@logger,data.flatten)
rescue Exception
- @logger.report("fatal error in plugin reader #{name} (#{$!})")
+ report("reading")
end
else
@logger.report("no plugin #{name}")
@@ -107,7 +116,7 @@ class TeXUtil
begin
eval("#{p}").writer(@logger,handle)
rescue Exception
- @logger.report("fatal error in plugin writer #{p} (#{$!})")
+ report("writing")
end
end
end
@@ -117,7 +126,17 @@ class TeXUtil
begin
eval("#{p}").processor(@logger)
rescue Exception
- @logger.report("fatal error in plugin processor #{p} (#{$!})")
+ report("processing")
+ end
+ end
+ end
+
+ def finalizers
+ @plugins.each do |p|
+ begin
+ eval("#{p}").finalizer(@logger)
+ rescue Exception
+ report("finalizing")
end
end
end
@@ -126,6 +145,8 @@ class TeXUtil
class Sorter
+ @@downcase = true
+
def initialize(max=12)
@rep, @map, @exp, @div = Hash.new, Hash.new, Hash.new, Hash.new
@max = max
@@ -149,7 +170,7 @@ class TeXUtil
# sorter.expander('ijligature', 'y')
def expander(from,to=nil)
- from, to = converted(from), converted(to)
+ to = converted(to) # not from !!!
@max = [@max,to.length+1].max if to
@exp[from] = to || from || ''
end
@@ -179,16 +200,50 @@ class TeXUtil
end
if @map.size > 0 then
# watch out, order of match matters
- @rexb = /(\\[a-zA-Z]+|#{@map.keys.join('|')}|.)\s*/ # o
+ if @@downcase then
+ @rexb = /(\\[a-zA-Z]+|#{@map.keys.join('|')}|.)\s*/i # o
+ else
+ @rexb = /(\\[a-zA-Z]+|#{@map.keys.join('|')}|.)\s*/ # o
+ end
else
- @rexb = /(\\[a-zA-Z]+|.)\s*/o
+ if @@downcase then
+ @rexb = /(\\[a-zA-Z]+|.)\s*/io
+ else
+ @rexb = /(\\[a-zA-Z]+|.)\s*/o
+ end
+ end
+ if false then
+ @exp.keys.each do |e|
+ @exp[e].downcase!
+ end
end
end
+ def replace(str)
+ if @rexa then
+ str.gsub(@rexa) do
+ @rep[$1.escaped]
+ end
+ else
+ str
+ end
+ end
+
+ def normalize(str)
+ # replace(str).gsub(/ +/,' ')
+ replace(str).gsub(/\s\s+/," \\space")
+ end
+
+ def tokenize(str)
+ str.gsub(/\\strchr\{(.*?)\}/o) do "\\#{$1}" end
+ end
+
def remap(str)
s = str.dup
- s.gsub!(/(\d+)/o) do
- $1.rjust(10,'a') # rest is b .. k
+ if true then # numbers are treated special
+ s.gsub!(/(\d+)/o) do
+ $1.rjust(10,'a') # rest is b .. k
+ end
end
if @rexa then
s.gsub!(@rexa) do
@@ -198,6 +253,9 @@ class TeXUtil
if @rexb then
s.gsub!(@rexb) do
token = $1.sub(/\\/o, '')
+ if @@downcase then
+ token.downcase!
+ end
if @exp.key?(token) then
@exp[token].ljust(@max,' ')
elsif @map.key?(token) then
@@ -210,17 +268,16 @@ class TeXUtil
s
end
- def preset(shortcuts=[],expansions=[],reductions=[],divisions=[])
- # maybe we should move this to sort-def.tex
+ def preset(shortcuts=[],expansions=[],reductions=[],divisions=[],language='')
'a'.upto('z') do |c| expander(c) ; division(c) end
+ 'A'.upto('Z') do |c| expander(c) ; division(c) end
expander('1','b') ; expander('2','c') ; expander('3','e') ; expander('4','f')
expander('5','g') ; expander('6','h') ; expander('7','i') ; expander('8','i')
expander('9','j') ; expander('0','a') ; expander('-','-') ;
- # end potential move
- shortcuts.each do |s| shortcut(s[0],s[1]) end
- expansions.each do |e| expander(e[0],e[1]) end
- reductions.each do |r| reducer(r[0],r[1]) end
- divisions.each do |d| division(d[0],d[1]) end
+ shortcuts.each do |s| shortcut(s[1],s[2]) if s[0] == '' || s[0] == language end
+ expansions.each do |e| expander(e[1],e[2]) if e[0] == '' || e[0] == language end
+ reductions.each do |r| reducer(r[1],r[2]) if r[0] == '' || r[0] == language end
+ divisions.each do |d| division(d[1],d[2]) if d[0] == '' || d[0] == language end
end
def simplify(str)
@@ -240,7 +297,7 @@ class TeXUtil
# what to do with xml and utf-8
# \"e etc
# unknown \cs
- s.gsub!(/\\[a-z][a-z]+\s*\{(.*?)\}/o) do $1 end
+ s.gsub!(/\\[a-zA-Z][a-zA-Z]+\s*\{(.*?)\}/o) do $1 end
return s
end
@@ -256,6 +313,7 @@ class TeXUtil
def converted(str)
if str then
+ # puts str
str.gsub(/([\+\-]*\d+)/o) do
n = $1.to_i
if n > 0 then
@@ -277,20 +335,18 @@ class TeXUtil
module MyFiles
- @@files = Hash.new
+ @@files, @@temps = Hash.new, Hash.new
def MyFiles::reset(logger)
- @@files = Hash.new
+ @@files, @@temps = Hash.new, Hash.new
end
def MyFiles::reader(logger,data)
case data[0]
when 'b', 'e' then
- if @@files.key?(data[1]) then
- @@files[data[1]] += 1
- else
- @@files[data[1]] = 1
- end
+ @@files[data[1]] = (@@files[data[1]] ||0) + 1
+ when 't' then # temporary file
+ @@temps[data[1]] = (@@temps[data[1]] ||0) + 1
end
end
@@ -299,14 +355,24 @@ class TeXUtil
@@files.keys.sort.each do |k|
handle << "% > #{k} #{@@files[k]/2}\n"
end
+ handle << logger.banner("temporary files: #{@@temps.size}")
+ @@temps.keys.sort.each do |k|
+ handle << "% > #{k} #{@@temps[k]}\n"
+ end
end
def MyFiles::processor(logger)
@@files.keys.sort.each do |k|
unless (@@files[k] % 2) == 0 then
- logger.report("check loading of file #{k}, begin/end problem")
+ logger.report("check loading of file '#{k}', begin/end problem")
end
end
+ @@temps.keys.sort.each do |k|
+ # logger.report("temporary file '#{k}' can be deleted")
+ end
+ end
+
+ def MyFiles::finalizer(logger)
end
end
@@ -337,6 +403,9 @@ class TeXUtil
def MyCommands::processor(logger)
end
+ def MyCommands::finalizer(logger)
+ end
+
end
end
@@ -367,7 +436,15 @@ class TeXUtil
def MyExtras::processor(logger)
@@programs.each do |p|
- cmd = "texmfstart #{@@programs[p.to_i]}"
+ # cmd = @@programs[p.to_i]
+ # logger.report("running #{cmd}")
+ # system(cmd)
+ end
+ end
+
+ def MyExtras::finalizer(logger)
+ @@programs.each do |p|
+ cmd = @@programs[p.to_i]
logger.report("running #{cmd}")
system(cmd)
end
@@ -395,7 +472,8 @@ class TeXUtil
attr_writer :sortkey
def build(sorter)
- @sortkey = sorter.remap(sorter.simplify(@key.downcase))
+ @sortkey = sorter.normalize(sorter.tokenize(@sortkey))
+ @sortkey = sorter.remap(sorter.simplify(@key.downcase)) # ??
if @sortkey.empty? then
@sortkey = sorter.remap(@command.downcase)
end
@@ -418,16 +496,23 @@ class TeXUtil
end
- @@synonyms = Hash.new
+ @@synonyms = Hash.new
+ @@sorter = Hash.new
+ @@languages = Hash.new
def MySynonyms::reset(logger)
- @@synonyms = Hash.new
+ @@synonyms = Hash.new
+ @@sorter = Hash.new
+ @@languages = Hash.new
end
def MySynonyms::reader(logger,data)
- if data[0] == 'e' then
- @@synonyms[data[1]] = Array.new unless @@synonyms.key?(data[1])
- @@synonyms[data[1]].push(Synonym.new(data[1],data[2],data[3],data[4]))
+ case data[0]
+ when 'e' then
+ @@synonyms[data[1]] = Array.new unless @@synonyms.key?(data[1])
+ @@synonyms[data[1]].push(Synonym.new(data[1],data[2],data[3],data[4]))
+ when 'l' then
+ @@languages[data[1]] = data[2] || ''
end
end
@@ -441,17 +526,25 @@ class TeXUtil
end
def MySynonyms::processor(logger)
- sorter = Sorter.new
- sorter.preset(eval("MyKeys").shortcuts,eval("MyKeys").expansions,eval("MyKeys").reductions,eval("MyKeys").divisions)
- sorter.prepare
@@synonyms.keys.each do |s|
+ @@sorter[s] = Sorter.new
+ @@sorter[s].preset(
+ eval("MyKeys").shortcuts,
+ eval("MyKeys").expansions,
+ eval("MyKeys").reductions,
+ eval("MyKeys").divisions,
+ @@languages[s] || '')
+ @@sorter[s].prepare
@@synonyms[s].each_index do |i|
- @@synonyms[s][i].build(sorter)
+ @@synonyms[s][i].build(@@sorter[s])
end
@@synonyms[s] = @@synonyms[s].sort
end
end
+ def MySynonyms::finalizer(logger)
+ end
+
end
end
@@ -462,6 +555,9 @@ class TeXUtil
class Register
+ @@specialsymbol = "\000"
+ @@specialbanner = "" # \\relax"
+
@@debug = false
@@debug = true
@@ -475,6 +571,7 @@ class TeXUtil
@key = @entry.dup if @key.empty?
@sortkey = @key.dup
@nofentries, @nofpages = 0, 0
+ @normalizeentry = false
end
attr_reader :state, :type, :location, :key, :entry, :seetoo, :page, :realpage, :texthowto, :pagehowto
@@ -482,34 +579,55 @@ class TeXUtil
attr_writer :sortkey
def build(sorter)
- @entry, @key = [@entry, @key].collect do |target|
- # +a+b+c &a&b&c a+b+c a&b&c
- case target[0,1]
- when '&' then target = target.sub(/^./o,'').gsub(/([^\\])\&/o) do "#{$1}#{@@split}" end
- when '+' then target = target.sub(/^./o,'').gsub(/([^\\])\+/o) do "#{$1}#{@@split}" end
- else target = target .gsub(/([^\\])[\&\+]/o) do "#{$1}#{@@split}" end
+ # @entry, @key = sorter.normalize(@entry), sorter.normalize(sorter.tokenize(@key))
+ @entry = sorter.normalize(sorter.tokenize(@entry)) if @normalizeentry
+ @key = sorter.normalize(sorter.tokenize(@key))
+ if false then
+ @entry, @key = [@entry, @key].collect do |target|
+ # +a+b+c &a&b&c a+b+c a&b&c
+ case target[0,1]
+ when '&' then target = target.sub(/^./o,'').gsub(/([^\\])\&/o) do "#{$1}#{@@split}" end
+ when '+' then target = target.sub(/^./o,'').gsub(/([^\\])\+/o) do "#{$1}#{@@split}" end
+ else target = target .gsub(/([^\\])[\&\+]/o) do "#{$1}#{@@split}" end
+ end
+ # {a}{b}{c}
+ # if target =~ /^\{(.*)\}$/o then
+ # $1.split(/\} \{/o).join(@@split) # space between } { is mandate
+ # else
+ target
+ # end
end
- # {a}{b}{c}
- # if target =~ /^\{(.*)\}$/o then
- # $1.split(/\} \{/o).join(@@split) # space between } { is mandate
- # else
- target
- # end
+ else
+ @entry, @key = cleanupsplit(@entry), cleanupsplit(@key)
end
@sortkey = sorter.simplify(@key)
+ # special = @sortkey =~ /^([^a-zA-Z\\])/o
+ special = @sortkey =~ /^([\`\~\!\@\#\$\%\^\&\*\(\)\_\-\+\=\{\}\[\]\:\;\"\'\|\<\,\>\.\?\/\d])/o
@sortkey = @sortkey.split(@@split).collect do |c| sorter.remap(c) end.join(@@split)
- # if ($Key eq "") { $Key = SanitizedString($Entry) }
- # if ($ProcessHigh){ $Key = HighConverted($Key) }
+ if special then
+ @sortkey = "#{@@specialsymbol}#{@sortkey}"
+ end
@sortkey = [
@sortkey.downcase,
@sortkey,
+ @entry,
@texthowto.ljust(10,' '),
- @state,
- @realpage.rjust(6,' '),
+ # @state, # no, messes up things
+ (@realpage ||'').rjust(6,' ').gsub(/0/,' '),
+ # (@realpage ||'').rjust(6,' '),
@pagehowto
].join(@@split)
end
+ def cleanupsplit(target)
+ # +a+b+c &a&b&c a+b+c a&b&c
+ case target[0,1]
+ when '&' then target.sub(/^./o,'').gsub(/([^\\])\&/o) do "#{$1}#{@@split}" end
+ when '+' then target.sub(/^./o,'').gsub(/([^\\])\+/o) do "#{$1}#{@@split}" end
+ else target .gsub(/([^\\])[\&\+]/o) do "#{$1}#{@@split}" end
+ end
+ end
+
def <=> (other)
@sortkey <=> other.sortkey
end
@@ -555,18 +673,20 @@ class TeXUtil
else
testalpha = entry.sortkey[0,1].downcase
end
- if testalpha != alpha.downcase or alphaclass != entry.class then
+ if (testalpha != alpha.downcase) || (alphaclass != entry.class) then
alpha = testalpha
alphaclass = entry.class
if alpha != ' ' then
flushsavedline(handle)
if alpha =~ /^[a-zA-Z]$/o then
character = alpha.dup
+ elsif alpha == @@specialsymbol then
+ character = @@specialbanner
elsif alpha.length > 1 then
# character = "\\getvalue\{#{alpha}\}"
character = "\\#{alpha}"
else
- character = "\\#{alpha}"
+ character = "\\unknown"
end
handle << "\\registerentry{#{entry.type}}{#{character}}\n"
end
@@ -614,6 +734,7 @@ class TeXUtil
Register.flushsavedline(handle)
handle << "\\registersee{#{entry.type}}{#{entry.pagehowto},#{entry.texthowto}}{#{entry.seetoo}}{#{entry.page}}\n" ;
lastpage, lastrealpage = entry.page, entry.realpage
+ copied = false # no page !
elsif @@savedhowto != entry.pagehowto and ! entry.pagehowto.empty? then
@@savedhowto = entry.pagehowto
end
@@ -648,11 +769,13 @@ class TeXUtil
end
@@registers = Hash.new
- @@sorter = Sorter.new
+ @@sorter = Hash.new
+ @@languages = Hash.new
def MyRegisters::reset(logger)
@@registers = Hash.new
- @@sorter = Sorter.new
+ @@sorter = Hash.new
+ @@languages = Hash.new
end
def MyRegisters::reader(logger,data)
@@ -669,6 +792,8 @@ class TeXUtil
when 's' then
@@registers[data[1]] = Array.new unless @@registers.key?(data[1])
@@registers[data[1]].push(Register.new(4,data[1],data[2],data[3],data[4],data[5],data[6],nil))
+ when 'l' then
+ @@languages[data[1]] = data[2] || ''
end
end
@@ -676,23 +801,32 @@ class TeXUtil
if @@registers.size > 0 then
@@registers.keys.sort.each do |s|
handle << logger.banner("registers: #{s} #{@@registers[s].size}")
- Register.flush(@@registers[s],handle,@@sorter)
+ Register.flush(@@registers[s],handle,@@sorter[s])
# report("register #{@@registers[s].class}: #{@@registers[s].@nofentries} entries and #{@@registers[s].@nofpages} pages")
end
end
end
def MyRegisters::processor(logger)
- @@sorter.preset(eval("MyKeys").shortcuts,eval("MyKeys").expansions,eval("MyKeys").reductions,eval("MyKeys").divisions)
- @@sorter.prepare
@@registers.keys.each do |s|
+ @@sorter[s] = Sorter.new
+ @@sorter[s].preset(
+ eval("MyKeys").shortcuts,
+ eval("MyKeys").expansions,
+ eval("MyKeys").reductions,
+ eval("MyKeys").divisions,
+ @@languages[s] || '')
+ @@sorter[s].prepare
@@registers[s].each_index do |i|
- @@registers[s][i].build(@@sorter)
+ @@registers[s][i].build(@@sorter[s])
end
@@registers[s] = @@registers[s].sort
end
end
+ def MyRegisters::finalizer(logger)
+ end
+
end
end
@@ -730,6 +864,10 @@ class TeXUtil
@@plugins.processors if @@plugins
end
+ def MyPlugins::finalizer(logger)
+ @@plugins.finalizers if @@plugins
+ end
+
end
end
@@ -764,7 +902,7 @@ class TeXUtil
def MyKeys::reader(logger,data)
key = data.shift
- grp = data.shift # language code, todo
+ # grp = data.shift # language code, todo
case key
when 's' then @@shortcuts.push(data)
when 'e' then @@expansions.push(data)
@@ -783,6 +921,9 @@ class TeXUtil
logger.report("divisions : #{@@divisions.size}") # logger.report(@@divisions.inspect)
end
+ def MyKeys::finalizer(logger)
+ end
+
end
end
@@ -816,24 +957,31 @@ class TeXUtil
def loaded(filename)
begin
- report("parsing file #{filename}")
- if f = open(File.suffixed(filename,'tui')) then
- f.each do |line|
- case line.chomp
- when /^f (.*)$/o then @plugins.reader('MyFiles', $1.splitdata)
- when /^c (.*)$/o then @plugins.reader('MyCommands', [$1])
- when /^e (.*)$/o then @plugins.reader('MyExtras', $1.splitdata)
- when /^s (.*)$/o then @plugins.reader('MySynonyms', $1.splitdata)
- when /^r (.*)$/o then @plugins.reader('MyRegisters',$1.splitdata)
- when /^p (.*)$/o then @plugins.reader('MyPlugins', $1.splitdata)
- when /^x (.*)$/o then @plugins.reader('MyKeys', $1.splitdata)
- else report("unknown entry #{line[0,1]} in line #{line.chomp}")
+ tuifile = File.suffixed(filename,'tui')
+ if FileTest.file?(tuifile) then
+ report("parsing file #{tuifile}")
+ if f = open(tuifile) then
+ f.each do |line|
+ case line.chomp
+ when /^f (.*)$/o then @plugins.reader('MyFiles', $1.splitdata)
+ when /^c (.*)$/o then @plugins.reader('MyCommands', [$1])
+ when /^e (.*)$/o then @plugins.reader('MyExtras', $1.splitdata)
+ when /^s (.*)$/o then @plugins.reader('MySynonyms', $1.splitdata)
+ when /^r (.*)$/o then @plugins.reader('MyRegisters',$1.splitdata)
+ when /^p (.*)$/o then @plugins.reader('MyPlugins', $1.splitdata)
+ when /^x (.*)$/o then @plugins.reader('MyKeys', $1.splitdata)
+ when /^r (.*)$/o then # nothing, not handled here
+ else
+ # report("unknown entry #{line[0,1]} in line #{line.chomp}")
+ end
end
+ f.close
end
- f.close
+ else
+ report("unable to locate #{tuifile}")
end
rescue
- report("fatal error in parsing #{filename}")
+ report("fatal error in parsing #{tuifile}")
@filename = 'texutil'
else
@filename = filename
@@ -848,19 +996,27 @@ class TeXUtil
def saved(filename=@filename)
if @fatalerror then
report("fatal error, no tuo file saved")
+ return false
else
- begin
+ begin
if f = File.open(File.suffixed(filename,'tuo'),'w') then
@plugins.writers(f)
f.close
end
rescue
report("fatal error when saving file (#{$!})")
+ return false
else
report("tuo file saved")
+ return true
end
end
+ end
+
+ def finalized
+ @plugins.finalizers
@plugins.resets
+ return true # for the moment
end
def reset
diff --git a/Master/texmf-dist/scripts/context/ruby/base/tool.rb b/Master/texmf-dist/scripts/context/ruby/base/tool.rb
index 7f40e773d0c..9f120ca117a 100644
--- a/Master/texmf-dist/scripts/context/ruby/base/tool.rb
+++ b/Master/texmf-dist/scripts/context/ruby/base/tool.rb
@@ -132,7 +132,7 @@ module Tool
return old unless test(?f,old)
new = old.downcase
- new.gsub!(/[^A-Za-z0-9\-\.\\\/]/o) do # funny chars
+ new.gsub!(/[^A-Za-z0-9\_\-\.\\\/]/o) do # funny chars
'-'
end
if old =~ /[a-zA-Z]\:/o
diff --git a/Master/texmf-dist/scripts/context/ruby/base/variables.rb b/Master/texmf-dist/scripts/context/ruby/base/variables.rb
index 5cbc5ba538e..403b57716f4 100644
--- a/Master/texmf-dist/scripts/context/ruby/base/variables.rb
+++ b/Master/texmf-dist/scripts/context/ruby/base/variables.rb
@@ -12,6 +12,89 @@
require 'base/tool'
+class Hash
+
+ def nothing?(id)
+ ! self[id] || self[id].empty?
+ end
+
+ def subset(pattern)
+ h = Hash.new
+ p = pattern.gsub(/([\.\:\-])/) do "\\#{$1}" end
+ r = /^#{p}/
+ self.keys.each do |k|
+ h[k] = self[k].dup if k =~ r
+ end
+ return h
+ end
+
+end
+
+class ExtendedHash < Hash
+
+ @@re_var_a = /\%(.*?)\%/
+ @@re_var_b = /\$\((.*?)\)/
+
+ def set(key,value='',resolve=true)
+ if value then
+ self[key] = if resolve then resolved(value.to_s) else value.to_s end
+ else
+ self[key] = ''
+ end
+ end
+
+ def replace(key,value='')
+ self[key] = value if self?(key)
+ end
+
+ def get(key,default='')
+ if self.key?(key) then self[key] else default end
+ end
+
+ def true?(key)
+ self[key] =~ /^(yes|on|true|enable|enabled|y|start)$/io rescue false
+ end
+
+ def resolved(str)
+ begin
+ str.to_s.gsub(@@re_var_a) do
+ self[$1] || ''
+ end.gsub(@@re_var_b) do
+ self[$1] || ''
+ end
+ rescue
+ str.to_s rescue ''
+ end
+ end
+
+ def check(key,default='')
+ if self.key?(key) then
+ if self[key].empty? then self[key] = (default || '') end
+ else
+ self[key] = (default || '')
+ end
+ end
+
+ def checked(key,default='')
+ if self.key?(key) then
+ if self[key].empty? then default else self[key] end
+ else
+ default
+ end
+ end
+
+ def empty?(key)
+ self[key].empty?
+ end
+
+ # def downcase(key)
+ # self[key].downcase!
+ # end
+
+end
+
+# the next one is obsolete so we need to replace things
+
module Variables
def setvariable(key,value='')
@@ -26,6 +109,10 @@ module Variables
if @variables.key?(key) then @variables[key] else default end
end
+ def truevariable(key)
+ @variables[key] =~ /^(yes|on|true)$/io rescue false
+ end
+
def checkedvariable(str,default='')
if @variables.key?(key) then
if @variables[key].empty? then default else @variables[key] end
diff --git a/Master/texmf-dist/scripts/context/ruby/ctxtools.rb b/Master/texmf-dist/scripts/context/ruby/ctxtools.rb
index 94e6e735a20..0cf96e10d70 100644
--- a/Master/texmf-dist/scripts/context/ruby/ctxtools.rb
+++ b/Master/texmf-dist/scripts/context/ruby/ctxtools.rb
@@ -15,9 +15,38 @@
# todo: move scite here
#
-# todo: move kpse call to kpse class/module
+# todo: move kpse call to kpse class/module, faster and better
-banner = ['CtxTools', 'version 1.2.2', '2004/2005', 'PRAGMA ADE/POD']
+# Taco Hoekwater on patterns and lig building (see 'agr'):
+#
+# Any direct use of a ligature (as accessed by \char or through active
+# characters) is wrong and will create faulty hyphenation. Normally,
+# when TeX sees "office", it has six tokens, and it knows from the
+# patterns that it can hyphenate between the "ff". It will build an
+# internal list of four nodes, like this:
+#
+# [char, o , ffi ]
+# [lig , ffi, c ,[f,f,i]]
+# [char, c , e ]
+# [char, e , NULL]
+#
+# as you can see from the ffi line, it has remembered the original
+# characters. While hyphenating, it temporarily changes back to
+# that, then re-instates the ligature afterwards.
+#
+# If you feed it the ligature directly, like so:
+#
+# [char, o , ffi ]
+# [char, ffi , c ]
+# [char, c , e ]
+# [char, e , NULL]
+#
+# it cannot do that (it tries to hyphenate as if the "ffi" was a
+# character), and the result is wrong hyphenation.
+
+banner = ['CtxTools', 'version 1.3.3', '2004/2006', 'PRAGMA ADE/POD']
+
+# todo dirname
unless defined? ownpath
ownpath = $0.sub(/[\\\/][a-z0-9\-]*?\.rb/i,'')
@@ -29,6 +58,7 @@ require 'base/logger'
require 'base/system'
require 'rexml/document'
+require 'net/http'
require 'ftools'
require 'kconv'
@@ -84,24 +114,32 @@ class Commands
end
end
unless maincontextfile.empty? then
+ nextcontextfile = maincontextfile.sub(/context\.tex$/,"cont-new.tex")
case action
- when 1 then touchfile(maincontextfile)
- when 2 then reportversion(maincontextfile)
+ when 1 then
+ touchfile(maincontextfile)
+ touchfile(nextcontextfile,@@newcontextversion)
+ when 2 then
+ reportversion(maincontextfile)
+ reportversion(nextcontextfile,@@newcontextversion)
end
end
end
- def touchfile(filename)
+ @@contextversion = "\\\\contextversion"
+ @@newcontextversion = "\\\\newcontextversion"
+
+ def touchfile(filename,command=@@contextversion)
if FileTest.file?(filename) then
if data = IO.read(filename) then
- timestamp = Time.now.strftime('%Y.%m.%d')
+ timestamp = Time.now.strftime('%Y.%m.%d %H:%M')
prevstamp = ''
begin
- data.gsub!(/\\contextversion\{(\d+\.\d+\.\d+)\}/) do
+ data.gsub!(/#{command}\{(\d+\.\d+\.\d+.*?)\}/) do
prevstamp = $1
- "\\contextversion{#{timestamp}}"
+ "#{command.sub(/(\\)+/,"\\")}{#{timestamp}}"
end
rescue
else
@@ -133,11 +171,11 @@ class Commands
end
- def reportversion(filename)
+ def reportversion(filename,command=@@contextversion)
version = 'unknown'
begin
- if FileTest.file?(filename) && IO.read(filename).match(/\\contextversion\{(\d+\.\d+\.\d+)\}/) then
+ if FileTest.file?(filename) && IO.read(filename).match(/#{command}\{(\d+\.\d+\.\d+.*?)\}/) then
version = $1
end
rescue
@@ -145,7 +183,7 @@ class Commands
if @commandline.option("pipe") then
print version
else
- report("context version: #{version}")
+ report("context version: #{version} (#{filename})")
end
end
@@ -183,7 +221,7 @@ class Commands
interfaces = @commandline.arguments
if interfaces.empty? then
- interfaces = ['en', 'cz','de','it','nl','ro']
+ interfaces = ['en','cz','de','it','nl','ro','fr']
end
interfaces.each do |interface|
@@ -281,7 +319,7 @@ class Commands
interfaces = @commandline.arguments
if interfaces.empty? then
- interfaces = ['cz','de','it','nl','ro']
+ interfaces = ['cz','de','it','nl','ro','fr']
else
interfaces.delete('en')
end
@@ -353,6 +391,10 @@ class Commands
data.i_translate('cd:inherit' , 'name' , strings)
# data.i_translate('cd:command' , 'name' , strings)
+ data.gsub!(/(\<cd\:interface[^\>]*?language=")en(")/) do
+ $1 + interface + $2
+ end
+
report("saving #{outfile}")
begin
@@ -375,13 +417,19 @@ class Commands
public
- def purgefiles(all=false)
+ def purgefiles
pattern = @commandline.arguments
- purgeall = @commandline.option("all") || all
+ purgeall = @commandline.option("all")
recurse = @commandline.option("recurse")
$dontaskprefixes.push(Dir.glob("mpx-*"))
+
+ if purgeall then
+ $dontaskprefixes.push(Dir.glob("*.tex.prep"))
+ $dontaskprefixes.push(Dir.glob("*.xml.prep"))
+ end
+
$dontaskprefixes.flatten!
$dontaskprefixes.sort!
@@ -394,7 +442,7 @@ class Commands
if ! pattern || pattern.empty? then
globbed = if recurse then "**/*.*" else "*.*" end
files = Dir.glob(globbed)
- report("purging files : #{globbed}")
+ report("purging#{if purgeall then ' all' end} temporary files : #{globbed}")
else
pattern.each do |pat|
globbed = if recurse then "**/#{pat}-*.*" else "#{pat}-*.*" end
@@ -402,7 +450,7 @@ class Commands
globbed = if recurse then "**/#{pat}.*" else "#{pat}.*" end
files.push(Dir.glob(globbed))
end
- report("purging files : #{pattern.join(' ')}")
+ report("purging#{if purgeall then ' all' end} temporary files : #{pattern.join(' ')}")
end
files.flatten!
files.sort!
@@ -428,6 +476,9 @@ class Commands
end
end
end
+ $dummyfiles.each do |file|
+ (File.delete(file) if (FileTest.size?(file) rescue 10) < 10) rescue false
+ end
$texnonesuffixes.each do |suffix|
files.each do |file|
if file =~ /(.*)\.#{suffix}$/i then
@@ -461,10 +512,6 @@ class Commands
end
- def purgeallfiles
- purgefiles(true) # for old times sake
- end
-
private
$removedfiles = 0
@@ -486,7 +533,9 @@ class Commands
$forsuresuffixes = [
"tui", "tup", "ted", "tes", "top",
"log", "tmp", "run", "bck", "rlg",
- "mpt", "mpx", "mpd", "mpo"
+ "mpt", "mpx", "mpd", "mpo", "mpb",
+ "ctl",
+ "tmp.md5", "tmp.out"
]
$texonlysuffixes = [
"dvi", "ps", "pdf"
@@ -494,6 +543,9 @@ class Commands
$texnonesuffixes = [
"tuo", "tub", "top"
]
+ $dummyfiles = [
+ "mpgraph"
+ ]
def removecontextfile (filename)
if filename && FileTest.file?(filename) then
@@ -607,7 +659,7 @@ class Commands
str.chomp!
str.sub!(/\s*$/o, '')
case str
- when /^[%\#]D/io then
+ when /^[%\#]D($| )/io then
if skiplevel == 0 then
someline = if str.length < 3 then "" else str[3,str.length-1] end
if indocument then
@@ -625,7 +677,7 @@ class Commands
nofdocuments += 1
end
end
- when /^[%\#]M/io then
+ when /^[%\#]M($| )/io then
if skiplevel == 0 then
someline = if str.length < 3 then "" else str[3,str.length-1] end
ted.puts("#{someline}\n")
@@ -642,20 +694,25 @@ class Commands
else
if skiplevel == 0 then
inlocaldocument = indocument
+ inlocaldocument = false # else first line skipped when not empty
someline = str
if indocument then
ted.puts("\\stopdocumentation\n")
indocument = false
end
- if someline.empty? && indefinition then
- ted.puts("\\stopdefinition\n")
- indefinition = false
- elsif indefinition then
- ted.puts("#{someline}\n")
+ if indefinition then
+ if someline.empty? then
+ ted.puts("\\stopdefinition\n")
+ indefinition = false
+ else
+ ted.puts("#{someline}\n")
+ end
elsif ! someline.empty? then
ted.puts("\n\\startdefinition\n")
indefinition = true
- unless inlocaldocument then
+ if inlocaldocument then
+ # nothing
+ else
nofdefinitions += 1
ted.puts("#{someline}\n")
end
@@ -742,6 +799,56 @@ end
#
# Maybe I'll make this hyptools.tex
+class String
+
+ def markbraces
+ level = 0
+ self.gsub(/([\{\}])/o) do |chr|
+ if chr == '{' then
+ level = level + 1
+ chr = "((+#{level}))"
+ elsif chr == '}' then
+ chr = "((-#{level}))"
+ level = level - 1
+ end
+ chr
+ end
+ end
+
+ def unmarkbraces
+ self.gsub(/\(\(\+\d+?\)\)/o) do
+ "{"
+ end .gsub(/\(\(\-\d+?\)\)/o) do
+ "}"
+ end
+ end
+
+ def getargument(pattern)
+ if self =~ /(#{pattern})\s*\(\(\+(\d+)\)\)(.*?)\(\(\-\2\)\)/m then # no /o
+ return $3
+ else
+ return ""
+ end
+ end
+
+ def withargument(pattern, &block)
+ if self.markbraces =~ /^(.*)(#{pattern}\s*)\(\(\+(\d+)\)\)(.*?)\(\(\-\3\)\)(.*)$/m then # no /o
+ "#{$1.unmarkbraces}#{$2}{#{yield($4.unmarkbraces)}}#{$5.unmarkbraces}"
+ else
+ self
+ end
+ end
+
+ def filterargument(pattern, &block)
+ if self.markbraces =~ /^(.*)(#{pattern}\s*)\(\(\+(\d+)\)\)(.*?)\(\(\-\3\)\)(.*)$/m then # no /o
+ yield($4.unmarkbraces)
+ else
+ self
+ end
+ end
+
+end
+
class Language
include CommandBase
@@ -751,6 +858,7 @@ class Language
@language = language
@filenames = filenames
@remapping = Array.new
+ @demapping = Array.new
@unicode = Hash.new
@encoding = encoding
@data = ''
@@ -758,8 +866,11 @@ class Language
preload_accents()
preload_unicode() if @commandline.option('utf8')
case @encoding.downcase
- when 't1', 'ec', 'cork' then preload_vector('ec')
- when 'y', 'texnansi' then preload_vector('texnansi')
+ when 't1', 'ec', 'cork' then preload_vector('ec', 'enco-ec.tex')
+ when 'y', 'texnansi' then preload_vector('texnansi', 'enco-ans.tex')
+ when 'agr', 'agreek' then preload_vector('agr', 'enco-agr.tex')
+ when 't2a' then preload_vector('t2a', 'enco-cyr.tex')
+ when 'cyr' then preload_vector() # somehow loading t2a does not work out well
end
end
@@ -774,6 +885,9 @@ class Language
def remap(from, to)
@remapping.push([from,to])
end
+ def demap(from, to)
+ @demapping.push([from,to])
+ end
def load(filenames=@filenames)
begin
@@ -783,10 +897,11 @@ class Language
begin
if fname = located(filename) then
data = IO.read(fname)
- @data += data.gsub(/\%.*$/, '')
+ @data += data.gsub(/\%.*$/, '').gsub(/\\message\{.*?\}/, '')
data.gsub!(/(\\patterns|\\hyphenation)\s*\{.*/mo) do '' end
@read += "\n% preamble of file #{fname}\n\n#{data}\n"
report("file #{fname} is loaded")
+ @data.gsub!(/^[\s\n]+$/mois, '')
break # next fileset
end
rescue
@@ -806,11 +921,45 @@ class Language
def convert
if @data then
n = 0
- @remapping.each do |k|
- @data.gsub!(k[0]) do
- # report("#{k[0]} => #{k[1]}")
- n += 1
- k[1]
+ if true then
+ report("")
+ ["\\patterns","\\hyphenation"].each do |what|
+ @data = @data.withargument(what) do |content|
+ report("converting #{what}")
+ report("")
+ @demapping.each_index do |i|
+ content.gsub!(@demapping[i][0], @demapping[i][1])
+ end
+ content.gsub!(/\\delete\{.*?\}/o) do '' end
+ content.gsub!(/\\keep\{(.*?)\}/o) do $1 end
+ done = false
+ @remapping.each_index do |i|
+ from, to, m = @remapping[i][0], @remapping[i][1], 0
+ content.gsub!(from) do
+ done = true
+ m += 1
+ "[#{i}]"
+ end
+ report("#{m.to_s.rjust(5)} entries remapped to #{to}") unless m == 0
+ n += m
+ end
+ content.gsub!(/\[(\d+)\]/o) do
+ @remapping[$1.to_i][1]
+ end
+ report(" nothing remapped") unless done
+ report("")
+ content.to_s
+ end
+ end
+ else
+ @remapping.each do |k|
+ from, to, m = k[0], k[1], 0
+ @data.gsub!(from) do
+ m += 1
+ to
+ end
+ report("#{m.to_s.rjust(5)} entries remapped to #{to}") unless m == 0
+ n += m
end
end
report("#{n} changes in patterns and exceptions")
@@ -865,6 +1014,7 @@ class Language
end
def triggerunicode
+ return
if @commandline.option('utf8') then
"% xetex needs utf8 encoded patterns and for patterns\n" +
"% coded as such we need to enable this regime when\n" +
@@ -963,9 +1113,9 @@ class Language
begin
if f = File.open(patname,'w') then
data = ''
- @data.scan(/\\patterns\s*\{\s*(.*?)\s*\}/m) do
+ @data.filterargument('\\patterns') do |content|
report("merging patterns")
- data += $1 + "\n"
+ data += content.strip
end
data.gsub!(/(\s*\n\s*)+/mo, "\n")
@@ -989,9 +1139,9 @@ class Language
begin
if f = File.open(hypname,'w') then
data = ''
- @data.scan(/\\hyphenation\s*\{\s*(.*?)\s*\}/m) do
+ @data.filterargument('\\hyphenation') do |content|
report("merging exceptions")
- data += $1 + "\n"
+ data += content.strip
end
data.gsub!(/(\s*\n\s*)+/mo, "\n")
f << banner
@@ -1094,7 +1244,7 @@ class Language
end
- def preload_vector(encoding='')
+ def preload_vector(encoding='', filename='')
# funny polish
@@ -1117,41 +1267,285 @@ class Language
remap(/X/, "[aeligature]")
remap(/Y/, "[ostroke]")
remap(/Z/, "[aring]")
+ when 'hu' then
+ # nothing
when 'ca' then
- remap(/\\c\{.*?\}/, "")
+ demap(/\\c\{/, "\\delete{")
when 'de', 'deo' then
- remap(/\\c\{.*?\}/, "")
- remap(/\\n\{\}/, "")
+ demap(/\\c\{/, "\\delete{")
+ demap(/\\n\{/, "\\keep{")
remap(/\\3/, "[ssharp]")
remap(/\\9/, "[ssharp]")
remap(/\"a/, "[adiaeresis]")
remap(/\"o/, "[odiaeresis]")
remap(/\"u/, "[udiaeresis]")
when 'fr' then
+ demap(/\\n\{/, "\\keep{")
remap(/\\ae/, "[adiaeresis]")
remap(/\\oe/, "[odiaeresis]")
when 'la' then
# \lccode`'=`' somewhere else, todo
- remap(/\\c\{.*?\}/, "")
+ demap(/\\c\{/, "\\delete{")
remap(/\\a\s*/, "[aeligature]")
remap(/\\o\s*/, "[oeligature]")
+ when 'agr' then
+ remap(/\<\'a\|/, "[greekalphaiotasubdasiatonos]")
+ # remap(/\<\'a\|/, "[greekdasiatonos][greekAlpha][greekiota]")
+ remap(/\>\'a\|/, "[greekalphaiotasubpsilitonos]")
+ remap(/\<\`a\|/, "[greekalphaiotasubdasiavaria]")
+ remap(/\>\`a\|/, "[greekalphaiotasubpsilivaria]")
+ remap(/\<\~a\|/, "[greekalphaiotasubdasiaperispomeni]")
+ remap(/\>\~a\|/, "[greekalphaiotasubpsiliperispomeni]")
+ remap(/\'a\|/, "[greekalphaiotasubtonos]")
+ remap(/\`a\|/, "[greekalphaiotasubvaria]")
+ remap(/\~a\|/, "[greekalphaiotasubperispomeni]")
+ remap(/\<a\|/, "[greekalphaiotasubdasia]")
+ remap(/\>a\|/, "[greekalphaiotasubpsili]")
+ remap(/a\|/, "[greekalphaiotasub]")
+ remap(/\<\'h\|/, "[greeketaiotasubdasiatonos]")
+ remap(/\>\'h\|/, "[greeketaiotasubpsilitonos]")
+ remap(/\<\`h\|/, "[greeketaiotasubdasiavaria]")
+ remap(/\>\`h\|/, "[greeketaiotasubpsilivaria]")
+ remap(/\<\~h\|/, "[greeketaiotasubdasiaperispomeni]")
+ remap(/\>\~h\|/, "[greeketaiotasubpsiliperispomeni]")
+ remap(/\'h\|/, "[greeketaiotasubtonos]")
+ remap(/\`h\|/, "[greeketaiotasubvaria]")
+ remap(/\~h\|/, "[greeketaiotasubperispomeni]")
+ remap(/\<h\|/, "[greeketaiotasubdasia]")
+ remap(/\>h\|/, "[greeketaiotasubpsili]")
+ remap(/h\|/, "[greeketaiotasub]")
+ remap(/\<'w\|/, "[greekomegaiotasubdasiatonos]")
+ remap(/\>'w\|/, "[greekomegaiotasubpsilitonos]")
+ remap(/\<`w\|/, "[greekomegaiotasubdasiavaria]")
+ remap(/\>`w\|/, "[greekomegaiotasubpsilivaria]")
+ remap(/\<~w\|/, "[greekomegaiotasubdasiaperispomeni]")
+ remap(/\>~w\|/, "[greekomegaiotasubpsiliperispomeni]")
+ remap(/\<w\|/, "[greekomegaiotasubdasia]")
+ remap(/\>w\|/, "[greekomegaiotasubpsili]")
+ remap(/\'w\|/, "[greekomegaiotasubtonos]")
+ remap(/\`w\|/, "[greekomegaiotasubvaria]")
+ remap(/\~w\|/, "[greekomegaiotasubperispomeni]")
+ remap(/w\|/, "[greekomegaiotasub]")
+ remap(/\<\'i/, "[greekiotadasiatonos]")
+ remap(/\>\'i/, "[greekiotapsilitonos]")
+ remap(/\<\`i/, "[greekiotadasiavaria]")
+ remap(/\>\`i/, "[greekiotapsilivaria]")
+ remap(/\<\~i/, "[greekiotadasiaperispomeni]")
+ remap(/\>\~i/, "[greekiotapsiliperispomeni]")
+ remap(/\"\'i/, "[greekiotadialytikatonos]")
+ remap(/\"\`i/, "[greekiotadialytikavaria]")
+ remap(/\"\~i/, "[greekiotadialytikaperispomeni]")
+ remap(/\<i/, "[greekiotadasia]")
+ remap(/\>i/, "[greekiotapsili]")
+ remap(/\'i/, "[greekiotaoxia]")
+ remap(/\`i/, "[greekiotavaria]")
+ remap(/\~i/, "[greekiotaperispomeni]")
+ remap(/\"i/, "[greekiotadialytika]")
+ remap(/\>\~e/, "[greekepsilonpsiliperispomeni]")
+ remap(/\<\~e/, "[greekepsilondasiaperispomeni]")
+ remap(/\<\'e/, "[greekepsilondasiatonos]")
+ remap(/\>\'e/, "[greekepsilonpsilitonos]")
+ remap(/\<\`e/, "[greekepsilondasiavaria]")
+ remap(/\>\`e/, "[greekepsilonpsilivaria]")
+ remap(/\<e/, "[greekepsilondasia]")
+ remap(/\>e/, "[greekepsilonpsili]")
+ remap(/\'e/, "[greekepsilonoxia]")
+ remap(/\`e/, "[greekepsilonvaria]")
+ remap(/\~e/, "[greekepsilonperispomeni]")
+ remap(/\<\'a/, "[greekalphadasiatonos]")
+ remap(/\>\'a/, "[greekalphapsilitonos]")
+ remap(/\<\`a/, "[greekalphadasiavaria]")
+ remap(/\>\`a/, "[greekalphapsilivaria]")
+ remap(/\<\~a/, "[greekalphadasiaperispomeni]")
+ remap(/\>\~a/, "[greekalphapsiliperispomeni]")
+ remap(/\<a/, "[greekalphadasia]")
+ remap(/\>a/, "[greekalphapsili]")
+ remap(/\'a/, "[greekalphaoxia]")
+ remap(/\`a/, "[greekalphavaria]")
+ remap(/\~a/, "[greekalphaperispomeni]")
+ remap(/\<\'h/, "[greeketadasiatonos]")
+ remap(/\>\'h/, "[greeketapsilitonos]")
+ remap(/\<\`h/, "[greeketadasiavaria]")
+ remap(/\>\`h/, "[greeketapsilivaria]")
+ remap(/\<\~h/, "[greeketadasiaperispomeni]")
+ remap(/\>\~h/, "[greeketapsiliperispomeni]")
+ remap(/\<h/, "[greeketadasia]")
+ remap(/\>h/, "[greeketapsili]")
+ remap(/\'h/, "[greeketaoxia]")
+ remap(/\`h/, "[greeketavaria]")
+ remap(/\~h/, "[greeketaperispomeni]")
+ remap(/\<\~o/, "[greekomicrondasiaperispomeni]")
+ remap(/\>\~o/, "[greekomicronpsiliperispomeni]")
+ remap(/\<\'o/, "[greekomicrondasiatonos]")
+ remap(/\>\'o/, "[greekomicronpsilitonos]")
+ remap(/\<\`o/, "[greekomicrondasiavaria]")
+ remap(/\>\`o/, "[greekomicronpsilivaria]")
+ remap(/\<o/, "[greekomicrondasia]")
+ remap(/\>o/, "[greekomicronpsili]")
+ remap(/\'o/, "[greekomicronoxia]")
+ remap(/\`o/, "[greekomicronvaria]")
+ remap(/\~o/, "[greekomicronperispomeni]")
+ remap(/\<\'u/, "[greekupsilondasiatonos]")
+ remap(/\>\'u/, "[greekupsilonpsilitonos]")
+ remap(/\<\`u/, "[greekupsilondasiavaria]")
+ remap(/\>\'u/, "[greekupsilonpsilivaria]")
+ remap(/\<\~u/, "[greekupsilondasiaperispomeni]")
+ remap(/\>\~u/, "[greekupsilonpsiliperispomeni]")
+ remap(/\"\'u/, "[greekupsilondialytikatonos]")
+ remap(/\"\`u/, "[greekupsilondialytikavaria]")
+ remap(/\"\~u/, "[greekupsilondialytikaperispomeni]")
+ remap(/\<u/, "[greekupsilondasia]")
+ remap(/\>u/, "[greekupsilonpsili]")
+ remap(/\'u/, "[greekupsilonoxia]")
+ remap(/\`u/, "[greekupsilonvaria]")
+ remap(/\~u/, "[greekupsilonperispomeni]")
+ remap(/\"u/, "[greekupsilondiaeresis]")
+ remap(/\<\'w/, "[greekomegadasiatonos]")
+ remap(/\>\'w/, "[greekomegapsilitonos]")
+ remap(/\<\`w/, "[greekomegadasiavaria]")
+ remap(/\>\`w/, "[greekomegapsilivaria]")
+ remap(/\<\~w/, "[greekomegadasiaperispomeni]")
+ remap(/\>\~w/, "[greekomegapsiliperispomeni]")
+ remap(/\<w/, "[greekomegadasia]")
+ remap(/\>w/, "[greekomegapsili]")
+ remap(/\'w/, "[greekomegaoxia]")
+ remap(/\`w/, "[greekomegavaria]")
+ remap(/\~w/, "[greekomegaperispomeni]")
+ remap(/\<r/, "[greekrhodasia]")
+ remap(/\>r/, "[greekrhopsili]")
+ remap(/\<\~/, "[greekdasiaperispomeni]")
+ remap(/\>\~/, "[greekpsiliperispomeni]")
+ remap(/\<\'/, "[greekdasiatonos]")
+ remap(/\>\'/, "[greekpsilitonos]")
+ remap(/\<\`/, "[greekdasiavaria]")
+ remap(/\>\`/, "[greekpsilivaria]")
+ remap(/\"\'/, "[greekdialytikatonos]")
+ remap(/\"\`/, "[greekdialytikavaria]")
+ remap(/\"\~/, "[greekdialytikaperispomeni]")
+ remap(/\</, "[dasia]")
+ remap(/\>/, "[psili]")
+ remap(/\'/, "[oxia]")
+ remap(/\`/, "[greekvaria]")
+ remap(/\~/, "[perispomeni]")
+ remap(/\"/, "[dialytika]")
+ # unknown
+ remap(/\|/, "[greekIotadialytika]")
+ # next
+ remap(/A/, "[greekAlpha]")
+ remap(/B/, "[greekBeta]")
+ remap(/D/, "[greekDelta]")
+ remap(/E/, "[greekEpsilon]")
+ remap(/F/, "[greekPhi]")
+ remap(/G/, "[greekGamma]")
+ remap(/H/, "[greekEta]")
+ remap(/I/, "[greekIota]")
+ remap(/J/, "[greekTheta]")
+ remap(/K/, "[greekKappa]")
+ remap(/L/, "[greekLambda]")
+ remap(/M/, "[greekMu]")
+ remap(/N/, "[greekNu]")
+ remap(/O/, "[greekOmicron]")
+ remap(/P/, "[greekPi]")
+ remap(/Q/, "[greekChi]")
+ remap(/R/, "[greekRho]")
+ remap(/S/, "[greekSigma]")
+ remap(/T/, "[greekTau]")
+ remap(/U/, "[greekUpsilon]")
+ remap(/W/, "[greekOmega]")
+ remap(/X/, "[greekXi]")
+ remap(/Y/, "[greekPsi]")
+ remap(/Z/, "[greekZeta]")
+ remap(/a/, "[greekalpha]")
+ remap(/b/, "[greekbeta]")
+ remap(/c/, "[greekfinalsigma]")
+ remap(/d/, "[greekdelta]")
+ remap(/e/, "[greekepsilon]")
+ remap(/f/, "[greekphi]")
+ remap(/g/, "[greekgamma]")
+ remap(/h/, "[greeketa]")
+ remap(/i/, "[greekiota]")
+ remap(/j/, "[greektheta]")
+ remap(/k/, "[greekkappa]")
+ remap(/l/, "[greeklambda]")
+ remap(/m/, "[greekmu]")
+ remap(/n/, "[greeknu]")
+ remap(/o/, "[greekomicron]")
+ remap(/p/, "[greekpi]")
+ remap(/q/, "[greekchi]")
+ remap(/r/, "[greekrho]")
+ remap(/s/, "[greeksigma]")
+ remap(/t/, "[greektau]")
+ remap(/u/, "[greekupsilon]")
+ remap(/w/, "[greekomega]")
+ remap(/x/, "[greekxi]")
+ remap(/y/, "[greekpsi]")
+ remap(/z/, "[greekzeta]")
+ when 'ru' then
+ remap(/\xC1/, "[cyrillica]")
+ remap(/\xC2/, "[cyrillicb]")
+ remap(/\xD7/, "[cyrillicv]")
+ remap(/\xC7/, "[cyrillicg]")
+ remap(/\xC4/, "[cyrillicd]")
+ remap(/\xC5/, "[cyrillice]")
+ remap(/\xD6/, "[cyrilliczh]")
+ remap(/\xDA/, "[cyrillicz]")
+ remap(/\xC9/, "[cyrillici]")
+ remap(/\xCA/, "[cyrillicishrt]")
+ remap(/\xCB/, "[cyrillick]")
+ remap(/\xCC/, "[cyrillicl]")
+ remap(/\xCD/, "[cyrillicm]")
+ remap(/\xCE/, "[cyrillicn]")
+ remap(/\xCF/, "[cyrillico]")
+ remap(/\xD0/, "[cyrillicp]")
+ remap(/\xD2/, "[cyrillicr]")
+ remap(/\xD3/, "[cyrillics]")
+ remap(/\xD4/, "[cyrillict]")
+ remap(/\xD5/, "[cyrillicu]")
+ remap(/\xC6/, "[cyrillicf]")
+ remap(/\xC8/, "[cyrillich]")
+ remap(/\xC3/, "[cyrillicc]")
+ remap(/\xDE/, "[cyrillicch]")
+ remap(/\xDB/, "[cyrillicsh]")
+ remap(/\xDD/, "[cyrillicshch]")
+ remap(/\xDF/, "[cyrillichrdsn]")
+ remap(/\xD9/, "[cyrillicery]")
+ remap(/\xD8/, "[cyrillicsftsn]")
+ remap(/\xDC/, "[cyrillicerev]")
+ remap(/\xC0/, "[cyrillicyu]")
+ remap(/\xD1/, "[cyrillicya]")
+ remap(/\xA3/, "[cyrillicyo]")
else
end
if ! encoding.empty? then
begin
- filename = `kpsewhich -progname=context enco-#{encoding}.tex`
- if data = IO.read(filename.chomp) then
+ filename = `kpsewhich -progname=context #{filename}`
+ if data = IO.readlines(filename.chomp) then
report("preloading #{encoding} character mappings")
- data.scan(/\\definecharacter\s*([a-zA-Z]+)\s*(\d+)\s*/o) do
- name, number = $1, $2
- remap(/\^\^#{sprintf("%02x",number)}/, "[#{name}]")
+ accept = false
+ data.each do |line|
+ case line.chomp
+ when /\\start(en|)coding\s*\[(.*?)\]/io then
+ enc = $2
+ if accept = (enc == encoding) then
+ report("accepting vector #{enc}")
+ else
+ report("skipping vector #{enc}")
+ end
+ when /\\stop(en|)coding/io then
+ accept = false
+ when accept && /\\definecharacter\s*([a-zA-Z]+)\s*(\d+)\s*/o then
+ name, number = $1, $2
+ remap(/\^\^#{sprintf("%02x",number)}/, "[#{name}]")
+ if number.to_i > 127 then
+ remap(/#{sprintf("\\%03o",number)}/, "[#{name}]")
+ end
+ end
end
end
rescue
end
end
-
end
end
@@ -1185,7 +1579,7 @@ class Commands
# todo: filter the fallback list from context
# The first entry in the array is the encoding which will be used
- # when interpreting th eraw patterns. The second entry is a list of
+ # when interpreting the raw patterns. The second entry is a list of
# filesets (string|aray), each first match of a set is taken.
@@languagedata['ba' ] = [ 'ec' , ['bahyph.tex'] ]
@@ -1204,6 +1598,7 @@ class Commands
@@languagedata['hr' ] = [ 'ec' , ['hrhyph.tex'] ]
@@languagedata['hu' ] = [ 'ec' , ['huhyphn.tex'] ]
@@languagedata['en' ] = [ 'default' , [['ushyphmax.tex','ushyph.tex','hyphen.tex']] ]
+ @@languagedata['us' ] = [ 'default' , [['ushyphmax.tex','ushyph.tex','hyphen.tex']] ]
# inhyph.tex
@@languagedata['is' ] = [ 'ec' , ['ishyph.tex'] ]
@@languagedata['it' ] = [ 'ec' , ['ithyph.tex'] ]
@@ -1211,7 +1606,7 @@ class Commands
# mnhyph
@@languagedata['nl' ] = [ 'ec' , ['nehyph96.tex'] ]
@@languagedata['no' ] = [ 'ec' , ['nohyph.tex'] ]
- # oldgrhyph.tex
+ @@languagedata['agr'] = [ 'agr' , [['grahyph4.tex','oldgrhyph.tex']] ] # new, todo
@@languagedata['pl' ] = [ 'ec' , ['plhyph.tex'] ]
@@languagedata['pt' ] = [ 'ec' , ['pthyph.tex'] ]
@@languagedata['ro' ] = [ 'ec' , ['rohyph.tex'] ]
@@ -1222,7 +1617,8 @@ class Commands
@@languagedata['sv' ] = [ 'ec' , ['svhyph.tex'] ]
@@languagedata['tr' ] = [ 'ec' , ['tkhyph.tex'] ]
@@languagedata['uk' ] = [ 'default' , [['ukhyphen.tex','ukhyph.tex']] ]
-
+ # @@languagedata['ru' ] = [ 't2a' , ['ruhyphal.tex'] ] # t2a does not work
+ @@languagedata['ru' ] = [ 'cyr' , ['ruhyphal.tex'] ]
end
class Commands
@@ -1235,10 +1631,11 @@ class Commands
texmfroot = @commandline.argument('first')
texmfroot = '.' if texmfroot.empty?
- maproot = "#{texmfroot}/fonts/map/pdftex/context"
+ maproot = "#{texmfroot.gsub(/\\/,'/')}/fonts/map/pdftex/context"
if File.directory?(maproot) then
- if files = Dir.glob("#{maproot}/*.map") and files.size > 0 then
+ files = Dir.glob("#{maproot}/*.map")
+ if files.size > 0 then
files.each do |pdffile|
next if File.basename(pdffile) == 'pdftex.map'
pdffile = File.expand_path(pdffile)
@@ -1267,6 +1664,12 @@ class Commands
data.delete_if do |line|
line.gsub(/\s+/,'').empty?
end
+ data.collect! do |line|
+ # remove line with "name name" lines
+ line.gsub(/^(\S+)\s+\1\s*$/) do
+ $1
+ end
+ end
begin
if force then
if n > 0 then
@@ -1279,8 +1682,12 @@ class Commands
report("? #{File.basename(dpxfile)} - dvipdfm(x)")
end
else
- report("- #{File.basename(dpxfile)} - dvipdfm(x)")
- begin File.delete(dpxname) ; rescue ; end
+ report("- #{File.basename(dpxfile)} - dvipdfm(x) - no entries")
+ # begin File.delete(dpxname) ; rescue ; end
+ if f = File.open(dpxfile,'w') then
+ f.puts("% no map entries")
+ f.close
+ end
end
else
report(". #{File.basename(dpxfile)} - dvipdfm(x) - #{n}")
@@ -1314,6 +1721,118 @@ class Commands
end
+class Array
+
+ def add_shebang(filename,program)
+ unless self[0] =~ /^\#/ then
+ self.insert(0,"\#!/usr/env #{program}")
+ end
+ unless self[2] =~ /^\#.*?copyright\=/ then
+ self.insert(1,"\#")
+ self.insert(2,"\# copyright=pragma-ade readme=readme.pdf licence=cc-gpl")
+ self.insert(3,"") unless self[3].chomp.strip.empty?
+ self[2].gsub!(/ +/, ' ')
+ return true
+ else
+ return false
+ end
+ end
+
+ def add_directive(filename,program)
+ unless self[0] =~ /^\%/ then
+ self.insert(0,"\% content=#{program}")
+ end
+ unless self[2] =~ /^\%.*?copyright\=/ then
+ self.insert(1,"\%")
+ if File.expand_path(filename) =~ /[\\\/](doc|manuals)[\\\/]/ then
+ self.insert(2,"\% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa")
+ else
+ self.insert(2,"\% copyright=pragma-ade readme=readme.pdf licence=cc-gpl")
+ end
+ self.insert(3,"") unless self[3].chomp.strip.empty?
+ self[0].gsub!(/ +/, ' ')
+ return true
+ else
+ return false
+ end
+ end
+
+ def add_comment(filename)
+ if self[0] =~ /<\?xml.*?\?>/ && self[2] !~ /^<\!\-\-.*?copyright\=.*?\-\->/ then
+ self.insert(1,"")
+ if File.expand_path(filename) =~ /[\\\/](doc|manuals)[\\\/]/ then
+ self.insert(2,"<!-- copyright='pragma-ade' readme='readme.pdf' licence='cc-by-nc-sa' -->")
+ else
+ self.insert(2,"<!-- copyright='pragma-ade' readme='readme.pdf' licence='cc-gpl' -->")
+ end
+ self.insert(3,"") unless self[3].chomp.strip.empty?
+ return true
+ else
+ return false
+ end
+ end
+
+end
+
+class Commands
+
+ include CommandBase
+
+ def brandfiles
+
+ force = @commandline.option("force")
+ files = @commandline.arguments # Dir.glob("**/*.*")
+ done = false
+
+ files.each do |filename|
+ if FileTest.file?(filename) then
+ ok = false
+ begin
+ data = IO.readlines(filename)
+ case filename
+ when /\.rb$/ then
+ ok = data.add_shebang(filename,'ruby')
+ when /\.pl$/ then
+ ok = data.add_shebang(filename,'perl')
+ when /\.py$/ then
+ ok = data.add_shebang(filename,'python')
+ when /\.lua$/ then
+ ok = data.add_shebang(filename,'lua')
+ when /\.tex$/ then
+ ok = data.add_directive(filename,'tex')
+ when /\.mp$/ then
+ ok = data.add_directive(filename,'metapost')
+ when /\.mf$/ then
+ ok = data.add_directive(filename,'metafont')
+ when /\.(xml|xsl|fo|fx|rlx|rng|exa)$/ then
+ ok = data.add_comment(filename)
+ end
+ rescue
+ report("fatal error in processing #{filename}") # maybe this catches the mac problem taco reported
+ else
+ if ok then
+ report()
+ report(filename)
+ report()
+ for i in 0..4 do
+ report(' ' + data[i].chomp)
+ end
+ if force && f = File.open(filename,'w') then
+ f.puts data
+ f.close
+ end
+ done = true
+ end
+ end
+ else
+ report("no file named #{filename}")
+ end
+ end
+ report() if done
+ end
+
+end
+
class Commands
include CommandBase
@@ -1322,68 +1841,609 @@ class Commands
# document: <!DOCTYPE something SYSTEM "entities.xml">
def flushentities(handle,entities,doctype=nil) # 'stylesheet'
- tab = if doctype then "\t" else "" end
- handle.puts("<!DOCTYPE #{doctype} [") if doctype
+ if doctype then
+ tab = "\t"
+ handle << "<?xml version='1.0' encoding='utf-8'?>\n\n"
+ handle << "<!-- !DOCTYPE entities SYSTEM 'entities.xml' -->\n\n"
+ handle << "<!DOCTYPE #{doctype} [\n"
+ else
+ tab = ""
+ end
entities.keys.sort.each do |k|
- handle.puts("#{tab}<!ENTITY #{k} \"\&\##{entities[k]};\">")
+ handle << "#{tab}<!ENTITY #{k} \"\&\#x#{entities[k]};\">\n"
+ end
+ if doctype then
+ handle << "]>\n"
end
- handle.puts("]>") if doctype
end
def listentities
- # filename = `texmfstart tmftools.rb --progname=context enco-uc.tex`.chomp
- filename = `kpsewhich --progname=context enco-uc.tex`.chomp
+ filenames = ['enco-uc.tex','contextnames.txt']
outputname = @commandline.argument('first')
+ doctype = @commandline.option('doctype')
+ entities = Hash.new
+
+ filenames.each do |filename|
+ # filename = `texmfstart tmftools.rb --progname=context #{filename}`.chomp
+ filename = `kpsewhich --progname=context #{filename}`.chomp
+ if filename and not filename.empty? and FileTest.file?(filename) then
+ report("loading #{filename.gsub(/\\/,'/')}") unless outputname.empty?
+ IO.readlines(filename).each do |line|
+ case line
+ when /^[\#\%]/io then
+ # skip comment line
+ when /\\definecharacter\s+([a-z]+)\s+\{\\uchar\{*(\d+)\}*\{(\d+)\}\}/io then
+ name, code = $1, ($2.to_i*256 + $3.to_i).to_s
+ entities[name] = code.rjust(4,'0') unless entities.key?(name)
+ when /^([A-F0-9]+)\;([a-z][a-z]+)\;(.*?)\;(.*?)\s*$/io then
+ code, name, adobe, comment = $1, $2, $3, $4
+ entities[name] = code.rjust(4,'0') unless entities.key?(name)
+ end
+ end
+ end
+ end
+ if outputname and not outputname.empty? then
+ if f = File.open(outputname,'w') then
+ report("saving #{entities.size} entities in #{outputname}")
+ flushentities(f,entities,doctype)
+ f.close
+ else
+ flushentities($stdout,entities,doctype)
+ end
+ else
+ flushentities($stdout,entities,doctype)
+ end
+ end
+
+end
+
+class Commands
+
+ include CommandBase
+
+ def platformize
+
+ pattern = if @commandline.arguments.empty? then "*.{rb,pl,py}" else @commandline.arguments end
+ recurse = @commandline.option("recurse")
+ force = @commandline.option("force")
+ pattern = "#{if recurse then '**/' else '' end}#{pattern}"
+ Dir.glob(pattern).each do |file|
+ if File.file?(file) then
+ size = File.size(file)
+ data = IO.readlines(file)
+ if force then
+ if f = File.open(file,'w')
+ data.each do |line|
+ f.puts(line.chomp)
+ end
+ f.close
+ end
+ if File.size(file) == size then # not robust
+ report("file '#{file}' is unchanged")
+ else
+ report("file '#{file}' is platformized")
+ end
+ else
+ report("file '#{file}' is a candidate")
+ end
+ end
+ end
+ end
- if filename and not filename.empty? and FileTest.file?(filename) then
- entities = Hash.new
- IO.readlines(filename).each do |line|
- if line =~ /\\definecharacter\s+([a-zA-Z]+)\s+\{\\uchar\{*(\d+)\}*\{(\d+)\}\}/o then
- name, low, high = $1, $2.to_i, $3.to_i
- entities[name] = low*256 + high
+end
+
+class TexDeps
+
+ @@cs_tex = %q/
+ above abovedisplayshortskip abovedisplayskip
+ abovewithdelims accent adjdemerits advance afterassignment
+ aftergroup atop atopwithdelims
+ badness baselineskip batchmode begingroup
+ belowdisplayshortskip belowdisplayskip binoppenalty botmark
+ box boxmaxdepth brokenpenalty
+ catcode char chardef cleaders closein closeout clubpenalty
+ copy count countdef cr crcr csname
+ day deadcycles def defaulthyphenchar defaultskewchar
+ delcode delimiter delimiterfactor delimeters
+ delimitershortfall delimeters dimen dimendef discretionary
+ displayindent displaylimits displaystyle
+ displaywidowpenalty displaywidth divide
+ doublehyphendemerits dp dump
+ edef else emergencystretch end endcsname endgroup endinput
+ endlinechar eqno errhelp errmessage errorcontextlines
+ errorstopmode escapechar everycr everydisplay everyhbox
+ everyjob everymath everypar everyvbox exhyphenpenalty
+ expandafter
+ fam fi finalhyphendemerits firstmark floatingpenalty font
+ fontdimen fontname futurelet
+ gdef global group globaldefs
+ halign hangafter hangindent hbadness hbox hfil horizontal
+ hfill horizontal hfilneg hfuzz hoffset holdinginserts hrule
+ hsize hskip hss horizontal ht hyphenation hyphenchar
+ hyphenpenalty hyphen
+ if ifcase ifcat ifdim ifeof iffalse ifhbox ifhmode ifinner
+ ifmmode ifnum ifodd iftrue ifvbox ifvmode ifvoid ifx
+ ignorespaces immediate indent input inputlineno input
+ insert insertpenalties interlinepenalty
+ jobname
+ kern
+ language lastbox lastkern lastpenalty lastskip lccode
+ leaders left lefthyphenmin leftskip leqno let limits
+ linepenalty line lineskip lineskiplimit long looseness
+ lower lowercase
+ mag mark mathaccent mathbin mathchar mathchardef mathchoice
+ mathclose mathcode mathinner mathop mathopen mathord
+ mathpunct mathrel mathsurround maxdeadcycles maxdepth
+ meaning medmuskip message mkern month moveleft moveright
+ mskip multiply muskip muskipdef
+ newlinechar noalign noboundary noexpand noindent nolimits
+ nonscript scriptscript nonstopmode nulldelimiterspace
+ nullfont number
+ omit openin openout or outer output outputpenalty over
+ overfullrule overline overwithdelims
+ pagedepth pagefilllstretch pagefillstretch pagefilstretch
+ pagegoal pageshrink pagestretch pagetotal par parfillskip
+ parindent parshape parskip patterns pausing penalty
+ postdisplaypenalty predisplaypenalty predisplaysize
+ pretolerance prevdepth prevgraf
+ radical raise read relax relpenalty right righthyphenmin
+ rightskip romannumeral
+ scriptfont scriptscriptfont scriptscriptstyle scriptspace
+ scriptstyle scrollmode setbox setlanguage sfcode shipout
+ show showbox showboxbreadth showboxdepth showlists showthe
+ skewchar skip skipdef spacefactor spaceskip span special
+ splitbotmark splitfirstmark splitmaxdepth splittopskip
+ string
+ tabskip textfont textstyle the thickmuskip thinmuskip time
+ toks toksdef tolerance topmark topskip tracingcommands
+ tracinglostchars tracingmacros tracingonline tracingoutput
+ tracingpages tracingparagraphs tracingrestores tracingstats
+ uccode uchyph underline unhbox unhcopy unkern unpenalty
+ unskip unvbox unvcopy uppercase
+ vadjust valign vbadness vbox vcenter vfil vfill vfilneg
+ vfuzz voffset vrule vsize vskip vsplit vss vtop
+ wd widowpenalty write
+ xdef xleaders xspaceskip
+ year
+ /.split
+
+ @@cs_etex = %q/
+ beginL beginR botmarks
+ clubpenalties currentgrouplevel currentgrouptype
+ currentifbranch currentiflevel currentiftype
+ detokenize dimexpr displaywidowpenalties
+ endL endR eTeXrevision eTeXversion everyeof
+ firstmarks fontchardp fontcharht fontcharic fontcharwd
+ glueexpr glueshrink glueshrinkorder gluestretch
+ gluestretchorder gluetomu
+ ifcsname ifdefined iffontchar interactionmode
+ interactionmode interlinepenalties
+ lastlinefit lastnodetype
+ marks topmarks middle muexpr mutoglue
+ numexpr
+ pagediscards parshapedimen parshapeindent parshapelength
+ predisplaydirection
+ savinghyphcodes savingvdiscards scantokens showgroups
+ showifs showtokens splitdiscards splitfirstmarks
+ TeXXeTstate tracingassigns tracinggroups tracingifs
+ tracingnesting tracingscantokens
+ unexpanded unless
+ widowpenalties
+ /.split
+
+ @@cs_pdftex = %q/
+ pdfadjustspacing pdfannot pdfavoidoverfull
+ pdfcatalog pdfcompresslevel
+ pdfdecimaldigits pdfdest pdfdestmargin
+ pdfendlink pdfendthread
+ pdffontattr pdffontexpand pdffontname pdffontobjnum pdffontsize
+ pdfhorigin
+ pdfimageresolution pdfincludechars pdfinfo
+ pdflastannot pdflastdemerits pdflastobj
+ pdflastvbreakpenalty pdflastxform pdflastximage
+ pdflastximagepages pdflastxpos pdflastypos
+ pdflinesnapx pdflinesnapy pdflinkmargin pdfliteral
+ pdfmapfile pdfmaxpenalty pdfminpenalty pdfmovechars
+ pdfnames
+ pdfobj pdfoptionpdfminorversion pdfoutline pdfoutput
+ pdfpageattr pdfpageheight pdfpageresources pdfpagesattr
+ pdfpagewidth pdfpkresolution pdfprotrudechars
+ pdfrefobj pdfrefxform pdfrefximage
+ pdfsavepos pdfsnaprefpoint pdfsnapx pdfsnapy pdfstartlink
+ pdfstartthread
+ pdftexrevision pdftexversion pdfthread pdfthreadmargin
+ pdfuniqueresname
+ pdfvorigin
+ pdfxform pdfximage
+ /.split
+
+ @@cs_omega = %q/
+ odelimiter omathaccent omathchar oradical omathchardef omathcode odelcode
+ leftghost rightghost
+ charwd charht chardp charit
+ localleftbox localrightbox
+ localinterlinepenalty localbrokenpenalty
+ pagedir bodydir pardir textdir mathdir
+ boxdir nextfakemath
+ pagewidth pageheight pagerightoffset pagebottomoffset
+ nullocp nullocplist ocp externalocp ocplist pushocplist popocplist clearocplists ocptracelevel
+ addbeforeocplist addafterocplist removebeforeocplist removeafterocplist
+ OmegaVersion
+ InputTranslation OutputTranslation DefaultInputTranslation DefaultOutputTranslation
+ noInputTranslation noOutputTranslation
+ InputMode OutputMode DefaultInputMode DefaultOutputMode
+ noInputMode noOutputMode noDefaultInputMode noDefaultOutputMode
+ /.split
+
+ @@cs_plain = %q/
+ TeX
+ bgroup egroup endgraf space empty null
+ newcount newdimen newskip newmuskip newbox newtoks newhelp newread newwrite newfam newlanguage newinsert newif
+ maxdimen magstephalf magstep
+ frenchspacing nonfrenchspacing normalbaselines obeylines obeyspaces raggedright ttraggedright
+ thinspace negthinspace enspace enskip quad qquad
+ smallskip medskip bigskip removelastskip topglue vglue hglue
+ break nobreak allowbreak filbreak goodbreak smallbreak medbreak bigbreak
+ line leftline rightline centerline rlap llap underbar strutbox strut
+ cases matrix pmatrix bordermatrix eqalign displaylines eqalignno leqalignno
+ pageno folio tracingall showhyphens fmtname fmtversion
+ hphantom vphantom phantom smash
+ /.split
+
+ @@cs_eplain = %q/
+ eTeX
+ newmarks grouptype interactionmode nodetype iftype
+ tracingall loggingall tracingnone
+ /.split
+
+ # let's ignore \dimendef etc
+
+ @@primitives_def = "def|edef|xdef|gdef|let|newcount|newdimen|newskip|newbox|newtoks|newmarks|chardef|mathchardef|newconditional"
+
+ @@cs_global = [@@cs_tex,@@cs_etex,@@cs_pdftex,@@cs_omega].sort.flatten
+ @@types = [['invalid','*'],['okay','='],['forward','>'],['backward','<'],['unknown','?']]
+
+ def initialize(logger=nil)
+ @cs_local = Hash.new
+ @cs_new = Hash.new
+ @cs_defd = Hash.new
+ @cs_used = Hash.new
+ @filename = 'context.tex'
+ @files = Array.new # keep load order !
+ @compact = false
+ @logger = logger
+ end
+
+ def load(filename='context.tex',omitlist=['mult-com.tex'])
+ begin
+ @filename = filename
+ File.open(filename) do |f|
+ f.each do |line|
+ if line =~ /^\\input\s+(\S+)\s*/o then
+ @files.push($1) unless omitlist.include?(File.basename($1))
+ end
end
end
- if outputname and not outputname.empty? then
- if f = File.open(outputname,'w') then
- flushentities(f,entities)
- f.close
+ rescue
+ @files = Array.new
+ end
+ end
+
+ def analyze
+ @files.each do |filename|
+ if f = File.open(filename) then
+ @logger.report("loading #{filename}") if @logger
+ defs, uses, n = 0, 0, 0
+ f.each do |line|
+ n += 1
+ case line
+ when /^%/
+ # skip
+ when /\\newif\s*\\if([a-zA-Z@\?\!]+)/ then
+ pushdef(filename,n,"if:#{$1}")
+ when /\\([a-zA-Z@\?\!]+)(true|false)/ then
+ pushuse(filename,n,"if:#{$1}")
+ when /^\s*\\(#{@primitives_def})\\([a-zA-Z@\?\!]{3,})/o
+ pushdef(filename,n,$2)
+ when /\\([a-zA-Z@\?\!]{3,})/o
+ pushuse(filename,n,$1)
+ end
+ end
+ f.close
+ end
+ end
+ end
+
+ def feedback(compact=false)
+ begin
+ outputfile = File.basename(@filename).sub(/\.tex$/,'')+'.dep'
+ File.open(outputfile,'w') do |f|
+ @compact = compact
+ @logger.report("saving analysis in #{outputfile}") if @logger
+ list, len = @cs_local.keys.sort, 0
+ if @compact then
+ list.each do |cs|
+ if cs.length > len then len = cs.length end
+ end
+ len += 1
else
- flushentities($stdout,entities)
+ f.puts "<?xml version='1.0'?>\n"
+ f.puts "<dependencies xmlns='http://www.pragma-ade.com/schemas/texdeps.rng' rootfile='#{@filename}'>\n"
+ end
+ list.each do |cs|
+ if @cs_new.key?(cs) then
+ if @cs_new[cs] == @cs_local[cs] then
+ f.puts some_struc(cs,len,1,some_str(@cs_new,@cs_defd,cs))
+ elsif @cs_new[cs].first == @cs_local[cs].first then
+ f.puts some_struc(cs,len,2,some_str(@cs_new,@cs_defd,cs),some_str(@cs_local,@cs_used,cs))
+ else
+ f.puts some_struc(cs,len,3,some_str(@cs_new,@cs_defd,cs),some_str(@cs_local,@cs_used,cs))
+ end
+ else
+ f.puts some_struc(cs,len,4,some_str(@cs_local,@cs_used,cs))
+ end
+ end
+ if @compact then
+ # nothing
+ else
+ "</dependencies>\n" unless @compact
end
- else
- flushentities($stdout,entities)
end
+ rescue
+ end
+ end
+
+ private
+
+ def some_struc(cs,len,type=1,defstr='',usestr='')
+ if @compact then
+ "#{cs.ljust(len)} #{@@types[type][1]} #{defstr} #{usestr}"
+ else
+ "<macro name='#{cs}' type='#{type}'>\n" +
+ if defstr.empty? then " <defined/>\n" else " <defined>\n#{defstr} <\defined>\n" end +
+ if usestr.empty? then " <used/>\n" else " <used>#{usestr}\n <\used>\n" end +
+ "</macro>\n"
end
+ end
+ def some_str(files, lines, cs)
+ return '' unless files[cs]
+ if @compact then
+ str = '[ '
+ files[cs].each do |c|
+ str += c
+ str += " (#{lines[cs][c].join(' ')}) " if lines[cs][c]
+ str += ' '
+ end
+ str += ']'
+ str.gsub(/ +/, ' ')
+ else
+ str = ''
+ files[cs].each do |c|
+ if lines[cs][c] then
+ str += " <file name='#{c}'>\n"
+ str += " "
+ lines[cs][c].each do |l|
+ # str += " <line n='#{l}'/>\n"
+ str += "<line n='#{l}'/>"
+ end
+ str += "\n"
+ str += " </file>\n"
+ else
+ str += " <file name='#{c}'/>\n"
+ end
+ end
+ str
+ end
+ end
+
+ def pushdef(filename,n,cs)
+ unless @cs_new.key?(cs) then
+ @cs_new[cs] = Array.new
+ @cs_defd[cs] = Hash.new unless @cs_defd.key?(cs)
+ end
+ @cs_defd[cs][filename] = Array.new unless @cs_defd[cs][filename]
+ @cs_new[cs].push(filename) unless @cs_new[cs].include?(filename)
+ @cs_defd[cs][filename] << n
+ end
+
+ def pushuse(filename,n,cs)
+ unless @@cs_global.include?(cs.to_s) then
+ unless @cs_local[cs] then
+ @cs_local[cs] = Array.new
+ @cs_used[cs] = Hash.new unless @cs_used.key?(cs)
+ end
+ @cs_used[cs][filename] = Array.new unless @cs_used[cs][filename]
+ @cs_local[cs].push(filename) unless @cs_local[cs].include?(filename)
+ @cs_used[cs][filename] << n
+ end
end
end
+class Commands
-logger = Logger.new(banner.shift)
-commandline = CommandLine.new
+ include CommandBase
-commandline.registeraction('touchcontextfile', 'update context version')
-commandline.registeraction('contextversion', 'report context version')
+ def dependencies
-commandline.registeraction('jeditinterface', 'generate jedit syntax files [--pipe]')
-commandline.registeraction('bbeditinterface', 'generate bbedit syntax files [--pipe]')
-commandline.registeraction('sciteinterface', 'generate scite syntax files [--pipe]')
-commandline.registeraction('rawinterface', 'generate raw syntax files [--pipe]')
+ filename = if @commandline.arguments.empty? then 'context.tex' else @commandline.arguments.first end
+ compact = @commandline.option('compact')
-commandline.registeraction('translateinterface', 'generate interface files (xml) [nl de ..]')
-commandline.registeraction('purgefiles', 'remove temporary files [--all --recurse] [basename]')
+ ['progname=context',''].each do |progname|
+ unless FileTest.file?(filename) then
+ name = `kpsewhich #{progname} #{filename}`.chomp
+ if FileTest.file?(name) then
+ filename = name
+ break
+ end
+ end
+ end
-commandline.registeraction('documentation', 'generate documentation [--type=] [filename]')
+ if FileTest.file?(filename) && deps = TexDeps.new(logger) then
+ deps.load
+ deps.analyze
+ deps.feedback(compact)
+ else
+ report("unknown file #{filename}")
+ end
-commandline.registeraction('filterpages') # no help, hidden temporary feature
-commandline.registeraction('purgeallfiles') # no help, compatibility feature
+ end
-commandline.registeraction('patternfiles', 'generate pattern files [--all --xml --utf8] [languagecode]')
+end
+
+class Commands
+
+ @@re_utf_bom = /^\357\273\277/o # just utf-8
+
+ def disarmutfbom
+
+ if @commandline.arguments.empty? then
+ report("provide filename")
+ else
+ @commandline.arguments.each do |filename|
+ report("checking '#{filename}'")
+ if FileTest.file?(filename) then
+ begin
+ data = IO.read(filename)
+ if data.sub!(@@re_utf_bom,'') then
+ if @commandline.option('force') then
+ if f = File.open(filename,'wb') then
+ f << data
+ f.close
+ report("bom found and removed")
+ else
+ report("bom found and removed, but saving file fails")
+ end
+ else
+ report("bom found, use '--force' to remove it")
+ end
+ else
+ report("no bom found")
+ end
+ rescue
+ report("bom found, but removing it fails")
+ end
+ else
+ report("provide valid filename")
+ end
+ end
+ end
+ end
+
+end
+
+class Commands
+
+ include CommandBase
+
+ def updatecontext
+
+ def fetchfile(site, name, target=nil)
+ begin
+ http = Net::HTTP.new(site)
+ resp, data = http.get(name.gsub(/^\/*/, '/'))
+ rescue
+ return false
+ else
+ begin
+ if data then
+ name = File.basename(name)
+ File.open(target || name, 'wb') do |f|
+ f << data
+ end
+ else
+ return false
+ end
+ rescue
+ return false
+ else
+ return true
+ end
+ end
+ end
+
+ def locatedlocaltree
+ tree = `kpsewhich --expand-path $TEXMFLOCAL`.chomp rescue nil
+ unless tree && FileTest.directory?(tree) then
+ tree = `kpsewhich --expand-path $TEXMF`.chomp rescue nil
+ end
+ return tree
+ end
-commandline.registeraction('dpxmapfiles', 'convert pdftex mapfiles to dvipdfmx [--force] [texmfroot]')
-commandline.registeraction('listentities', 'create doctype entity definition from enco-uc.tex')
+ def extractarchive(archive)
+ unless FileTest.file?(archive) then
+ report("fatal error, '#{archive}' has not been downloaded")
+ return false
+ end
+ unless system("unzip -uo #{archive}") then
+ report("fatal error, make sure that you have 'unzip' in your path")
+ return false
+ end
+ stubs = "scripts/context/stubs/unix/*"
+ if System.unix? and not system("chmod +x #{stubs}") then
+ report("change x-permissions of '#{stubs}' manually")
+ end
+ return true
+ end
+
+ def remakeformats
+ return system("texmfstart texexec --make --all")
+ end
+
+ if localtree = locatedlocaltree then
+ report("updating #{localtree}")
+ begin
+ Dir.chdir(localtree)
+ rescue
+ report("unable to change to #{localtree}")
+ else
+ archive = 'cont-tmf.zip'
+ report("fetching #{archive}")
+ unless fetchfile("www.pragma-ade.com","/context/latest/#{archive}") then
+ report("unable to fetch #{archive}")
+ return
+ end
+ report("extracting #{archive}")
+ unless extractarchive(archive) then
+ report("unable to extract #{archive}")
+ return
+ end
+ report("remaking formats")
+ unless remakeformats then
+ report("unable to remak formats")
+ end
+ end
+ else
+ report("unable to locate local tree")
+ end
+
+ end
+
+end
+
+logger = Logger.new(banner.shift)
+commandline = CommandLine.new
+
+commandline.registeraction('touchcontextfile' , 'update context version')
+commandline.registeraction('contextversion' , 'report context version')
+commandline.registeraction('jeditinterface' , 'generate jedit syntax files [--pipe]')
+commandline.registeraction('bbeditinterface' , 'generate bbedit syntax files [--pipe]')
+commandline.registeraction('sciteinterface' , 'generate scite syntax files [--pipe]')
+commandline.registeraction('rawinterface' , 'generate raw syntax files [--pipe]')
+commandline.registeraction('translateinterface', 'generate interface files (xml) [nl de ..]')
+commandline.registeraction('purgefiles' , 'remove temporary files [--all --recurse] [basename]')
+commandline.registeraction('documentation' , 'generate documentation [--type=] [filename]')
+commandline.registeraction('filterpages' ) # no help, hidden temporary feature
+commandline.registeraction('patternfiles' , 'generate pattern files [--all --xml --utf8] [languagecode]')
+commandline.registeraction('dpxmapfiles' , 'convert pdftex mapfiles to dvipdfmx [--force] [texmfroot]')
+commandline.registeraction('listentities' , 'create doctype entity definition from enco-uc.tex')
+commandline.registeraction('brandfiles' , 'add context copyright notice [--force]')
+commandline.registeraction('platformize' , 'replace line-endings [--recurse --force] [pattern]')
+commandline.registeraction('dependencies' , 'analyze depedencies witin context [--compact] [rootfile]')
+commandline.registeraction('updatecontext' , 'download latest version and remake formats')
+commandline.registeraction('disarmutfbom' , 'remove utf bom [--force]')
commandline.registervalue('type','')
@@ -1394,6 +2454,7 @@ commandline.registerflag('all')
commandline.registerflag('xml')
commandline.registerflag('log')
commandline.registerflag('utf8')
+commandline.registerflag('doctype')
# general
diff --git a/Master/texmf-dist/scripts/context/ruby/fcd_start.rb b/Master/texmf-dist/scripts/context/ruby/fcd_start.rb
index 8ac48f79e8c..348ac75ba83 100644
--- a/Master/texmf-dist/scripts/context/ruby/fcd_start.rb
+++ b/Master/texmf-dist/scripts/context/ruby/fcd_start.rb
@@ -256,6 +256,8 @@ class FastCD
@result = @list.grep(/\/#{@pattern}[^\/]*$/i)
end
end
+ else
+ puts(Dir.pwd.gsub(/\\/o, '/'))
end
rescue
end
@@ -403,31 +405,37 @@ class FastCD
end
+$stdout.sync = true
+
verbose, action, args = false, :find, Array.new
-usage = "fcd [--make|add|show|find] [--verbose] [pattern]"
+usage = "fcd [--add|clear|find|list|make|show|stub] [--verbose] [pattern]"
+version = "1.0.2"
+
+def quit(message)
+ puts(message)
+ exit
+end
ARGV.each do |a|
case a
- when '-v', '--verbose' then verbose = true
- when '-m', '--make' then action = :make
- when '-c', '--clear' then action = :clear
when '-a', '--add' then action = :add
- when '-s', '--show' then action = :show
- when '-l', '--list' then action = :show
+ when '-c', '--clear' then action = :clear
when '-f', '--find' then action = :find
+ when '-l', '--list' then action = :show
+ when '-m', '--make' then action = :make
+ when '-s', '--show' then action = :show
when '--stub' then action = :stub
- when '-h', '--help' then puts "usage: #{usage}" ; exit
- when /^\-\-.*/ then puts "unknown switch: #{a}" + "\n" + "usage: #{usage}" ; exit
+ when '-v', '--verbose' then verbose = true
+ when '--version' then quit("version: #{version}")
+ when '-h', '--help' then quit("usage: #{usage}")
+ when /^\-\-.*/ then quit("error: unknown switch #{a}, try --help")
else args << a
end
end
-$stdout.sync = true
-
fcd = FastCD.new(verbose)
-
-fcd.report("Fast Change Dir / version 1.0")
+fcd.report("Fast Change Dir / version #{version}")
case action
when :make then
diff --git a/Master/texmf-dist/scripts/context/ruby/graphics/gs.rb b/Master/texmf-dist/scripts/context/ruby/graphics/gs.rb
index 807cad10ccd..2c1079d1a6b 100644
--- a/Master/texmf-dist/scripts/context/ruby/graphics/gs.rb
+++ b/Master/texmf-dist/scripts/context/ruby/graphics/gs.rb
@@ -13,11 +13,14 @@
require 'base/variables'
require 'base/system'
+require 'ftools'
class GhostScript
include Variables
+ @@pdftrimwhite = 'pdftrimwhite.pl'
+
@@pstopdfoptions = [
'AntiAliasColorImages',
'AntiAliasGrayImages',
@@ -213,7 +216,7 @@ class GhostScript
else report("invalid conversion method #{gsmethod}")
end
rescue
- report("job aborted due to some error #{$!}")
+ report("job aborted due to some error: #{$!}")
begin
File.delete(resultfile) if test(?e,resultfile)
rescue
@@ -338,9 +341,12 @@ class GhostScript
end
- def convertbounded (inpfile, outfile)
-
+ def convertbounded(inpfile, outfile)
report("converting #{inpfile} bounded")
+ do_convertbounded(inpfile, outfile)
+ end
+
+ def do_convertbounded(inpfile, outfile)
begin
return false if FileTest.file?(outfile) && (! File.delete(outfile))
@@ -350,7 +356,7 @@ class GhostScript
arguments = ''
arguments << "\@gsprofile.ini "
- arguments << "-q -sDEVICE=pdfwrite -dNOPAUSE -dNOCACHE -dBATCH -dSAFER"
+ arguments << "-q -sDEVICE=pdfwrite -dNOPAUSE -dNOCACHE -dBATCH -dSAFER "
arguments << "#{gscolorswitch} "
arguments << "#{gsdefaults} "
arguments << "-sOutputFile=#{outfile} #{gsstream} -c quit "
@@ -426,7 +432,7 @@ class GhostScript
# -dEPSFitPage and -dEPSCrop behave weird (don't work)
- arguments = "-sDEVICE=bbox -dSAFER -dNOPAUSE -dBATCH #{inpfile}"
+ arguments = "-sDEVICE=bbox -dSAFER -dNOPAUSE -dBATCH #{inpfile} "
debug("ghostscript: #{arguments}")
@@ -456,13 +462,14 @@ class GhostScript
report("converting #{inpfile} cropped")
- convertbounded(inpfile, @@pdftempfile)
+ do_convertbounded(inpfile, @@pdftempfile)
return unless test(?e,@@pdftempfile)
arguments = " --offset=#{@offset} #{@@pdftempfile} #{outfile}"
- unless ok = System.run('cropcrap',arguments) then
+ report("calling #{@@pdftrimwhite}")
+ unless ok = System.run(@@pdftrimwhite,arguments) then
report('cropping failed')
begin
File.delete(outfile)
diff --git a/Master/texmf-dist/scripts/context/ruby/imgtopdf.rb b/Master/texmf-dist/scripts/context/ruby/imgtopdf.rb
new file mode 100644
index 00000000000..98a36c17fd9
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/imgtopdf.rb
@@ -0,0 +1,86 @@
+#!/usr/bin/env ruby
+
+# program : newimgtopdf
+# copyright : PRAGMA Advanced Document Engineering
+# version : 2002-2006
+# author : Hans Hagen
+#
+# project : ConTeXt / eXaMpLe
+# concept : Hans Hagen
+# info : j.hagen@xs4all.nl
+# www : www.pragma-ade.com
+
+unless defined? ownpath
+ ownpath = $0.sub(/[\\\/]\w*?\.rb/i,'')
+ $: << ownpath
+end
+
+require 'base/switch'
+require 'base/logger'
+
+require 'graphics/magick'
+
+banner = ['ImgToPdf', 'version 1.1.2', '2002-2006', 'PRAGMA ADE/POD']
+
+class Commands
+
+ include CommandBase
+
+ # nowadays we would force a directive, but
+ # for old times sake we handle default usage
+
+ def main
+ filename = @commandline.argument('first')
+
+ if filename.empty? then
+ help
+ else
+ convert
+ end
+ end
+
+ # actions
+
+ def convert
+
+ magick = Magick.new(session)
+
+ ['compression','depth','colorspace','quality','inputpath','outputpath'].each do |v|
+ magick.setvariable(v,@commandline.option(v))
+ end
+
+ @commandline.arguments.each do |fullname|
+ magick.setvariable('inputfile',fullname)
+ magick.setvariable('outputfile',fullname.gsub(/(\..*?$)/io, '.pdf'))
+ if @commandline.option('auto') then
+ magick.autoconvert
+ else
+ magick.convert
+ end
+ end
+ end
+
+end
+
+logger = Logger.new(banner.shift)
+commandline = CommandLine.new
+
+commandline.registerflag('auto')
+
+commandline.registervalue('compression')
+commandline.registervalue('depth')
+commandline.registervalue('colorspace')
+commandline.registervalue('quality')
+
+commandline.registervalue('inputpath')
+commandline.registervalue('outputpath')
+
+
+commandline.registeraction('help')
+commandline.registeraction('version')
+
+commandline.registeraction('convert', 'convert image into pdf')
+
+commandline.expand
+
+Commands.new(commandline,logger,banner).send(commandline.action || 'main')
diff --git a/Master/texmf-dist/scripts/context/ruby/mpstools.rb b/Master/texmf-dist/scripts/context/ruby/mpstools.rb
index 6dc0c35ad0c..534bfb95bcf 100644
--- a/Master/texmf-dist/scripts/context/ruby/mpstools.rb
+++ b/Master/texmf-dist/scripts/context/ruby/mpstools.rb
@@ -1,4 +1,6 @@
# todo
+#
+# this script will replace mptopdf and makempy
puts("This program is yet unfinished, for the moment it just calls 'mptopdf'.\n\n")
diff --git a/Master/texmf-dist/scripts/context/ruby/newimgtopdf.rb b/Master/texmf-dist/scripts/context/ruby/newimgtopdf.rb
index 3c1636cf2bc..563ae5b80a0 100644
--- a/Master/texmf-dist/scripts/context/ruby/newimgtopdf.rb
+++ b/Master/texmf-dist/scripts/context/ruby/newimgtopdf.rb
@@ -1,86 +1,8 @@
#!/usr/bin/env ruby
-# program : newimgtopdf
+# program : imgtopdf
# copyright : PRAGMA Advanced Document Engineering
# version : 2002-2005
# author : Hans Hagen
-#
-# project : ConTeXt / eXaMpLe
-# concept : Hans Hagen
-# info : j.hagen@xs4all.nl
-# www : www.pragma-ade.com
-unless defined? ownpath
- ownpath = $0.sub(/[\\\/]\w*?\.rb/i,'')
- $: << ownpath
-end
-
-require 'base/switch'
-require 'base/logger'
-
-require 'graphics/magick'
-
-banner = ['ImgToPdf', 'version 1.1.1', '2002-2005', 'PRAGMA ADE/POD']
-
-class Commands
-
- include CommandBase
-
- # nowadays we would force a directive, but
- # for old times sake we handle default usage
-
- def main
- filename = @commandline.argument('first')
-
- if filename.empty? then
- help
- else
- convert
- end
- end
-
- # actions
-
- def convert
-
- magick = Magick.new(session)
-
- ['compression','depth','colorspace','quality','inputpath','outputpath'].each do |v|
- magick.setvariable(v,@commandline.option(v))
- end
-
- @commandline.arguments.each do |fullname|
- magick.setvariable('inputfile',fullname)
- magick.setvariable('outputfile',fullname.gsub(/(\..*?$)/io, '.pdf'))
- if @commandline.option('auto') then
- magick.autoconvert
- else
- magick.convert
- end
- end
- end
-
-end
-
-logger = Logger.new(banner.shift)
-commandline = CommandLine.new
-
-commandline.registerflag('auto')
-
-commandline.registervalue('compression')
-commandline.registervalue('depth')
-commandline.registervalue('colorspace')
-commandline.registervalue('quality')
-
-commandline.registervalue('inputpath')
-commandline.registervalue('outputpath')
-
-
-commandline.registeraction('help')
-commandline.registeraction('version')
-
-commandline.registeraction('convert', 'convert image into pdf')
-
-commandline.expand
-
-Commands.new(commandline,logger,banner).send(commandline.action || 'main')
+load(File.join(File.expand_path(File.dirname($0)),'imgtopdf.rb'))
diff --git a/Master/texmf-dist/scripts/context/ruby/newpstopdf.rb b/Master/texmf-dist/scripts/context/ruby/newpstopdf.rb
index 898f987cbce..a45b4cab896 100644
--- a/Master/texmf-dist/scripts/context/ruby/newpstopdf.rb
+++ b/Master/texmf-dist/scripts/context/ruby/newpstopdf.rb
@@ -4,527 +4,5 @@
# copyright : PRAGMA Advanced Document Engineering
# version : 2002-2005
# author : Hans Hagen
-#
-# project : ConTeXt / eXaMpLe
-# concept : Hans Hagen
-# info : j.hagen@xs4all.nl
-# www : www.pragma-ade.com
-banner = ['PsToPdf', 'version 2.0.0', '2002-2005', 'PRAGMA ADE/POD']
-
-unless defined? ownpath
- ownpath = $0.sub(/[\\\/]\w*?\.rb/i,'')
- $: << ownpath
-end
-
-# todo: paden/prefix in magick and inkscape
-# todo: clean up method handling (pass strings, no numbers)
-# --method=crop|bounded|raw|...
-# --resolution=low|normal|medium|high|printer|print|screen|ebook|default
-# + downward compatible flag handling
-
-require 'base/switch'
-require 'base/tool'
-require 'base/logger'
-
-require 'graphics/gs'
-require 'graphics/magick'
-require 'graphics/inkscape'
-
-require 'rexml/document'
-
-exit if defined?(REQUIRE2LIB)
-
-class Commands
-
- include CommandBase
-
- # nowadays we would force a directive, but
- # for old times sake we handle default usage
-
- def main
- filename = @commandline.argument('first')
- pattern = @commandline.option('pattern')
- globfiles(pattern) if filename.empty? && ! pattern.empty?
- filename = @commandline.argument('first')
- if filename.empty? then
- help
- elsif filename =~ /\.exa$/ then
- request
- else
- convert
- end
- end
-
- # actions
-
- def convert
-
- ghostscript = GhostScript.new(logger)
- magick = ImageMagick.new(logger)
- inkscape = InkScape.new(logger)
-
- outpath = @commandline.option('outputpath')
- unless outpath.empty? then
- begin
- File.expand_path(outpath)
- outpath = File.makedirs(outpath) unless FileTest.directory?(outpath)
- rescue
- # sorry
- end
- end
-
- @commandline.arguments.each do |filename|
-
- filename = Tool.cleanfilename(filename,@commandline)
- inppath = @commandline.option('inputpath')
- if inppath.empty? then
- inppath = '.'
- fullname = filename # avoid duplicate './'
- else
- fullname = File.join(inppath,filename)
- end
- if FileTest.file?(fullname) then
- handle_whatever(ghostscript,inkscape,magick,filename)
- else
- report("file #{fullname} does not exist")
- end
-
- end
-
- end
-
- def request
-
- # <exa:request>
- # <exa:application>
- # <exa:command>pstopdf</exa:command>
- # <exa:filename>E:/tmp/demo.ps</exa:filename>
- # </exa:application>
- # <exa:data>
- # <exa:variable label='gs:DoThumbnails'>false</exa:variable>
- # <exa:variable label='gs:ColorImageDepth'>-1</exa:variable>
- # </exa:data>
- # </exa:request>
-
- ghostscript = GhostScript.new(logger)
- magick = ImageMagick.new(logger)
- inkscape = InkScape.new(logger)
-
- dataname = @commandline.argument('first') || ''
- filename = @commandline.argument('second') || ''
-
- if dataname.empty? || ! FileTest.file?(dataname) then
- report('provide valid exa file')
- return
- else
- begin
- request = REXML::Document.new(File.new(dataname))
- rescue
- report('provide valid exa file (xml error)')
- return
- end
- end
- if filename.empty? then
- begin
- if filename = REXML::XPath.first(request.root,"exa:request/exa:application/exa:filename/text()") then
- filename = filename.to_s
- else
- report('no filename found in exa file')
- return
- end
- rescue
- filename = ''
- end
- end
- if filename.empty? then
- report('provide valid filename')
- return
- elsif ! FileTest.file?(filename) then
- report("invalid filename #{filename}")
- return
- end
-
- [ghostscript,inkscape,magick].each do |i|
- i.setvariable('inputfile',filename)
- end
-
- # set ghostscript variables
- REXML::XPath.each(request.root,"/exa:request/exa:data/exa:variable") do |v|
- begin
- if (key = v.attributes['label']) and (value = v.text.to_s) then
- case key
- when /gs[\:\.](var[\:\.])*(offset)/io then ghostscript.setoffset(value)
- when /gs[\:\.](var[\:\.])*(method)/io then ghostscript.setvariable('method',value)
- when /gs[\:\.](var[\:\.])*(.*)/io then ghostscript.setpsoption($2,value)
- end
- end
- rescue
- end
- end
-
- # no inkscape and magick variables (yet)
-
- handle_whatever(ghostscript,inkscape,magick,filename)
-
- end
-
- def watch
-
- ghostscript = GhostScript.new(logger)
- magick = ImageMagick.new(logger)
- inkscape = InkScape.new(logger)
-
- pathname = commandline.option('watch')
-
- unless pathname and not pathname.empty? then
- report('empty watchpath is not supported')
- exit
- end
-
- if pathname == '.' then
- report("watchpath #{pathname} is not supported")
- exit
- end
-
- if FileTest.directory?(pathname) then
- if Dir.chdir(pathname) then
- report("watching path #{pathname}")
- else
- report("unable to change to path #{pathname}")
- exit
- end
- else
- report("invalid path #{pathname}")
- exit
- end
-
- waiting = false
-
- loop do
-
- if waiting then
- report("waiting #{getvariable('delay')}")
- waiting = false
- sleep(getvariable('delay').to_i)
- end
-
- files = Dir.glob("**/*.*")
-
- if files and files.length > 0 then
-
- files.each do |fullname|
-
- next unless fullname
-
- if FileTest.directory?(fullname) then
- debug('skipping path', fullname)
- next
- end
-
- unless magick.supported(fullname) then
- debug('not supported', fullname)
- next
- end
-
- if (! FileTest.file?(fullname)) || (FileTest.size(fullname) < 100) then
- debug("skipping small crap file #{fullname}")
- next
- end
-
- debug("handling file #{fullname}")
-
- begin
- next unless File.rename(fullname,fullname) # access trick
- rescue
- next # being written
- end
-
- fullname = Tool.cleanfilename(fullname,@commandline)
-
- fullname.gsub!(/\\/io, '/')
-
- filename = File.basename(fullname)
- filepath = File.dirname(fullname)
-
- next if filename =~ /gstemp.*/io
-
- if filepath !~ /(result|done|raw|crop|bound|bitmap)/io then
- begin
- File.makedirs(filepath+'/raw')
- File.makedirs(filepath+'/bound')
- File.makedirs(filepath+'/crop')
- File.makedirs(filepath+'/bitmap')
- debug("creating prefered input paths on #{filepath}")
- rescue
- debug("creating input paths on #{filepath} failed")
- end
- end
-
- if filepath =~ /^(.*\/|)(done|result)$/io then
- debug("skipping file #{fullname}")
- else
- report("start processing file #{fullname}")
- if filepath =~ /^(.*\/*)(raw|crop|bound)$/io then
- donepath = $1 + 'done'
- resultpath = $1 + 'result'
- case $2
- when 'raw' then method = 1
- when 'bound' then method = 2
- when 'crop' then method = 3
- else method = 2
- end
- report("forcing method #{method}")
- else
- method = 2
- donepath = filepath + '/done'
- resultpath = filepath + '/result'
- report("default method #{method}")
- end
-
- begin
- File.makedirs(donepath)
- File.makedirs(resultpath)
- rescue
- report('result path creation fails')
- end
-
- if FileTest.directory?(donepath) && FileTest.directory?(resultpath) then
-
- resultname = resultpath + '/' + filename.sub(/\..*$/,'') + '.pdf'
-
- @commandline.setoption('inputpath', filepath)
- @commandline.setoption('outputpath', resultpath)
- @commandline.setoption('method', method)
-
- if ghostscript.psfile?(fullname) then
- handle_ghostscript(ghostscript,filename)
- else
- handle_magick(magick,filename)
- end
-
- sleep(1) # calm down
-
- if FileTest.file?(fullname) then
- begin
- File.copy(fullname,donepath + '/' + filename)
- File.delete(fullname)
- rescue
- report('cleanup fails')
- end
- end
-
- end
-
- end
-
- end
-
- end
-
- waiting = true
- end
-
- end
-
- private
-
- def handle_whatever(ghostscript,inkscape,magick,filename)
- if ghostscript.psfile?(filename) then
- # report("processing ps file #{filename}")
- ghostscript.setvariable('pipe',false) if @commandline.option('nopipe')
- # ghostscript.setvariable('pipe',not @commandline.option('nopipe'))
- ghostscript.setvariable('colormodel',@commandline.option('colormodel'))
- ghostscript.setvariable('offset',@commandline.option('offset'))
- handle_ghostscript(ghostscript,filename)
- elsif ghostscript.pdffile?(filename) && ghostscript.pdfmethod?(@commandline.option('method')) then
- # report("processing pdf file #{filename}")
- handle_ghostscript(ghostscript,filename)
- elsif inkscape.supported?(filename) then
- # report("processing non ps/pdf file #{filename}")
- handle_inkscape(inkscape,filename)
- elsif magick.supported?(filename) then
- # report("processing non ps/pdf file #{filename}")
- handle_magick(magick,filename)
- end
- end
-
- def handle_magick(magick,filename)
-
- report("converting non-ps file #{filename} into pdf")
-
- inppath = @commandline.option('inputpath')
- outpath = @commandline.option('outputpath')
-
- inppath = inppath + '/' if not inppath.empty?
- outpath = outpath + '/' if not outpath.empty?
-
- prefix = @commandline.option('prefix')
- suffix = @commandline.option('suffix')
-
- inpfilename = "#{inppath}#{filename}"
- outfilename = "#{outpath}#{prefix}#{filename.sub(/\.(.*?)$/, '')}#{suffix}.pdf"
-
- magick.setvariable('inputfile' , inpfilename)
- magick.setvariable('outputfile', outfilename)
-
- magick.autoconvert
-
- end
-
- def handle_inkscape(inkscape,filename)
-
- report("converting svg(z) file #{filename} into pdf")
-
- inppath = @commandline.option('inputpath')
- outpath = @commandline.option('outputpath')
-
- inppath = inppath + '/' if not inppath.empty?
- outpath = outpath + '/' if not outpath.empty?
-
- prefix = @commandline.option('prefix')
- suffix = @commandline.option('suffix')
-
- inpfilename = "#{inppath}#{filename}"
- outfilename = "#{outpath}#{prefix}#{filename.sub(/\.(.*?)$/, '')}#{suffix}.pdf"
-
- inkscape.setvariable('inputfile' , inpfilename)
- inkscape.setvariable('outputfile', outfilename)
-
- if @commandline.option('verbose') || @commandline.option('debug') then
- logname = filename.gsub(/\.[^\.]*?$/, '.log')
- report("log info saved in #{logname}")
- inkscape.convert(logname) # logname ook doorgeven
- else
- inkscape.convert
- end
-
- end
-
- def handle_ghostscript(ghostscript,filename)
-
- ghostscript.reset
-
- method = ghostscript.method(@commandline.option('method'))
- force = ghostscript.method(@commandline.option('force'))
-
- ghostscript.setvariable('method', method)
- ghostscript.setvariable('force', force)
-
- # report("conversion method #{method}")
-
- inppath = @commandline.option('inputpath')
- outpath = @commandline.option('outputpath')
-
- inppath = inppath + '/' if not inppath.empty?
- outpath = outpath + '/' if not outpath.empty?
-
- prefix = @commandline.option('prefix')
- suffix = @commandline.option('suffix')
-
- ok = false
-
- if ghostscript.pdfmethod?(method) then
-
- report("converting pdf file #{filename} into pdf")
-
- if prefix.empty? && suffix.empty? && inppath.empty? && outpath.empty? then
- prefix = ghostscript.pdfprefix(method)
- end
-
- if ghostscript.pdffile?(filename) then
-
- filename = filename.sub(/\.pdf$/, '')
-
- inpfilename = "#{inppath}#{filename}.pdf"
- outfilename = "#{outpath}#{prefix}#{filename}#{suffix}.pdf"
-
- ghostscript.setvariable('inputfile' ,inpfilename)
- ghostscript.setvariable('outputfile',outfilename)
-
- if FileTest.file?(inpfilename) then
- ok = ghostscript.convert
- else
- report("no file found #{filename}")
- end
-
- else
- report("no pdf file #{filename}")
- end
-
- elsif ghostscript.psfile?(filename) then
-
- if filename =~ /(.*)\.(.*?)$/io then
- filename, filesuffix = $1, $2
- else
- filesuffix = 'eps'
- end
-
- report("converting #{filesuffix} (ps) into pdf")
-
- inpfilename = "#{inppath}#{filename}.#{filesuffix}"
- outfilename = "#{outpath}#{prefix}#{filename}#{suffix}.pdf"
-
- ghostscript.setvariable('inputfile' , inpfilename)
- ghostscript.setvariable('outputfile', outfilename)
-
- if FileTest.file?(inpfilename) then
- ok = ghostscript.convert
- if ! ok && FileTest.file?(outfilename) then
- begin
- File.delete(outfilename)
- rescue
- end
- end
- else
- report("no file with name #{filename} found")
- end
-
- else
- report('file must be of type eps/ps/ai/pdf')
- end
-
- return ok
-
- end
-
-end
-
-# ook pdf -> pdf onder optie 0, andere kleurruimte
-
-logger = Logger.new(banner.shift)
-commandline = CommandLine.new
-
-commandline.registerflag('debug')
-commandline.registerflag('verbose')
-commandline.registerflag('nopipe')
-
-commandline.registervalue('method',2)
-commandline.registervalue('offset',0)
-
-commandline.registervalue('prefix')
-commandline.registervalue('suffix')
-
-commandline.registervalue('inputpath')
-commandline.registervalue('outputpath')
-
-commandline.registerflag('watch')
-commandline.registerflag('force')
-
-commandline.registervalue('delay',2)
-
-commandline.registervalue('colormodel','cmyk')
-commandline.registervalue('pattern','')
-
-commandline.registeraction('help')
-commandline.registeraction('version')
-
-commandline.registeraction('convert', 'convert ps into pdf')
-commandline.registeraction('request', 'handles exa request file')
-commandline.registeraction('watch', 'watch folders for conversions (untested)')
-
-commandline.expand
-
-logger.verbose if (commandline.option('verbose') || commandline.option('debug'))
-
-Commands.new(commandline,logger,banner).send(commandline.action || 'main')
+load(File.join(File.expand_path(File.dirname($0)),'pstopdf.rb'))
diff --git a/Master/texmf-dist/scripts/context/ruby/newtexexec.rb b/Master/texmf-dist/scripts/context/ruby/newtexexec.rb
index 27f8eeed96f..6b4db52dc51 100644
--- a/Master/texmf-dist/scripts/context/ruby/newtexexec.rb
+++ b/Master/texmf-dist/scripts/context/ruby/newtexexec.rb
@@ -1,609 +1,8 @@
-banner = ['TeXExec', 'version 6.1.0', '1997-2005', 'PRAGMA ADE/POD']
+#!/usr/bin/env ruby
-unless defined? ownpath
- ownpath = $0.sub(/[\\\/][a-z0-9\-]*?\.rb/i,'')
- $: << ownpath
-end
+# program : texexec
+# copyright : PRAGMA Advanced Document Engineering
+# version : 1997-2006
+# author : Hans Hagen
-require 'base/switch'
-require 'base/logger'
-require 'base/variables'
-require 'base/system'
-
-require 'base/tex'
-require 'base/texutil'
-
-require 'ftools' # needed ?
-
-require 'base/kpse' # needed ?
-# require 'base/pdf' # needed ?
-require 'base/state' # needed ?
-require 'base/file' # needed ?
-
-class Commands
-
- include CommandBase
-
- def make
- if job = TEX.new(logger) then
- prepare(job)
- # bonus, overloads language switch !
- job.setvariable('language','all') if @commandline.option('all')
- if @commandline.arguments.length > 0 then
- if @commandline.arguments.first == 'all' then
- job.setvariable('texformats',job.defaulttexformats)
- job.setvariable('mpsformats',job.defaultmpsformats)
- else
- job.setvariable('texformats',@commandline.arguments)
- job.setvariable('mpsformats',@commandline.arguments)
- end
- end
- job.makeformats
- job.inspect && Kpse.inspect if @commandline.option('verbose')
- end
- end
-
- def check
- if job = TEX.new(logger) then
- job.checkcontext
- job.inspect && Kpse.inspect if @commandline.option('verbose')
- end
- end
-
- def main
- if @commandline.arguments.length>0 then
- process
- else
- help
- end
- end
-
- def process
- if job = TEX.new(logger) then
- job.setvariable('files',@commandline.arguments)
- prepare(job)
- job.processtex
- job.inspect && Kpse.inspect if @commandline.option('verbose')
- end
- end
-
- def mptex
- if job = TEX.new(logger) then
- job.setvariable('files',@commandline.arguments)
- prepare(job)
- job.processmptex
- job.inspect && Kpse.inspect if @commandline.option('verbose')
- end
- end
-
- def mpxtex
- if job = TEX.new(logger) then
- job.setvariable('files',@commandline.arguments)
- prepare(job)
- job.processmpxtex
- job.inspect && Kpse.inspect if @commandline.option('verbose')
- end
- end
-
- # hard coded goodies # to be redone as s-ctx-.. with vars passed as such
-
- def listing
- if job = TEX.new(logger) then
- prepare(job)
- job.cleanuptemprunfiles
- files = @commandline.arguments.sort
- if files.length > 0 then
- if f = File.open(job.tempfilename('tex'),'w') then
- backspace = @commandline.checkedoption('backspace', '1.5cm')
- topspace = @commandline.checkedoption('topspace', '1.5cm')
- pretty = @commandline.option('pretty')
- f << "% interface=english\n"
- f << "\\setupbodyfont[11pt,tt]\n"
- f << "\\setuplayout\n"
- f << " [topspace=#{topspace},backspace=#{backspace},\n"
- f << " header=0cm,footer=1.5cm,\n"
- f << " width=middle,height=middle]\n"
- f << "\\setuptyping[lines=yes]\n"
- f << "\\setuptyping[option=color]\n" if pretty
- f << "\\starttext\n";
- files.each do |filename|
- report("list file: #{filename}")
- cleanname = cleantexfilename(filename).downcase
- f << "\\page\n"
- f << "\\setupfootertexts[\\tttf #{cleanname}][\\tttf \\pagenumber]\n"
- f << "\\typefile{#{filename}}\n"
- end
- f << "\\stoptext\n"
- f.close
- job.setvariable('interface','english')
- job.setvariable('simplerun',true)
- # job.setvariable('nooptionfile',true)
- job.setvariable('files',[job.tempfilename])
- job.processtex
- else
- report('no files to list')
- end
- else
- report('no files to list')
- end
- job.cleanuptemprunfiles
- end
- end
-
- def figures
- # this one will be redone using rlxtools
- if job = TEX.new(logger) then
- prepare(job)
- job.cleanuptemprunfiles
- files = @commandline.arguments.sort
- if files.length > 0 then
- if f = File.open(job.tempfilename('tex'),'w') then
- job.runtexutil(files,"--figures", true)
- figures = @commandline.checkedoption('method', 'a').downcase
- paperoffset = @commandline.checkedoption('paperoffset', '0pt')
- backspace = @commandline.checkedoption('backspace', '1.5cm')
- topspace = @commandline.checkedoption('topspace', '1.5cm')
- boxtype = @commandline.checkedoption('boxtype','')
- f << "% format=english\n";
- f << "\\setuplayout\n";
- f << " [topspace=#{topspace},backspace=#{backspace},\n"
- f << " header=1.5cm,footer=0pt,\n";
- f << " width=middle,height=middle]\n";
- if @commandline.option('fullscreen') then
- f << "\\setupinteraction\n";
- f << " [state=start]\n";
- f << "\\setupinteractionscreen\n";
- f << " [option=max]\n";
- end
- boxtype += "box" unless boxtype.empty? || (boxtype =~ /box$/io)
- f << "\\starttext\n";
- f << "\\showexternalfigures[alternative=#{figures},offset=#{paperoffset},size=#{boxtype}]\n";
- f << "\\stoptext\n";
- f.close
- job.setvariable('interface','english')
- job.setvariable('simplerun',true)
- # job.setvariable('nooptionfile',true)
- job.setvariable('files',[job.tempfilename])
- job.processtex
- File.silentdelete('texutil.tuf')
- else
- report('no figures to show')
- end
- else
- report('no figures to show')
- end
- job.cleanuptemprunfiles
- end
- end
-
- def modules
- if job = TEX.new(logger) then
- prepare(job)
- job.cleanuptemprunfiles
- files = @commandline.arguments.sort
- msuffixes = ['tex','mp','pl','pm','rb']
- if files.length > 0 then
- files.each do |fname|
- fnames = Array.new
- if FileTest.file?(fname) then
- fnames << fname
- else
- msuffixes.each do |fsuffix|
- fnames << File.suffixed(fname,fsuffix)
- end
- end
- fnames.each do |ffname|
- if msuffixes.include?(File.splitname(ffname)[1]) && FileTest.file?(ffname) then
- if mod = File.open(job.tempfilename('tex'),'w') then
- # will become a call to ctxtools
- job.runtexutil(ffname,"--documents", true)
- if ted = File.silentopen(File.suffixed(ffname,'ted')) then
- firstline = ted.gets
- if firstline =~ /interface=/o then
- mod << firstline
- else
- mod << "% interface=en\n"
- end
- ted.close
- else
- mod << "% interface=en\n"
- end
- mod << "\\usemodule[abr-01,mod-01]\n"
- mod << "\\def\\ModuleNumber{1}\n"
- mod << "\\starttext\n"
- # todo: global file too
- mod << "\\readlocfile{#{File.suffixed(ffname,'ted')}}{}{}\n"
- mod << "\\stoptext\n"
- mod.close
- job.setvariable('interface','english') # redundant
- job.setvariable('simplerun',true)
- # job.setvariable('nooptionfile',true)
- job.setvariable('files',[job.tempfilename])
- job.processtex
- ["dvi", "pdf","tuo"].each do |s|
- File.silentrename(job.tempfilename(s),File.suffixed(ffname,s));
- end
- end
- end
- end
- end
- else
- report('no modules to process')
- end
- job.cleanuptemprunfiles
- end
- end
-
- def arrange
- if job = TEX.new(logger) then
- prepare(job)
- job.cleanuptemprunfiles
- files = @commandline.arguments.sort
- if files.length > 0 then
- if f = File.open(job.tempfilename('tex'),'w') then
- emptypages = @commandline.checkedoption('addempty', '')
- paperoffset = @commandline.checkedoption('paperoffset', '0cm')
- textwidth = @commandline.checkedoption('textwidth', '0cm')
- backspace = @commandline.checkedoption('backspace', '0cm')
- topspace = @commandline.checkedoption('topspace', '0cm')
- f << "\\definepapersize\n"
- f << " [offset=#{paperoffset}]\n"
- f << "\\setuplayout\n"
- f << " [backspace=#{backspace},\n"
- f << " topspace=#{topspace},\n"
- f << " marking=on,\n" if @commandline.option('marking')
- f << " width=middle,\n"
- f << " height=middle,\n"
- f << " location=middle,\n"
- f << " header=0pt,\n"
- f << " footer=0pt]\n"
- unless @commandline.option('noduplex') then
- f << "\\setuppagenumbering\n"
- f << " [alternative=doublesided]\n"
- end
- f << "\\starttext\n"
- files.each do |filename|
- report("arranging file #{filename}")
- f << "\\insertpages\n"
- f << " [#{filename}]\n"
- f << " [#{addempty}]\n" unless addempty.empty?
- f << " [width=#{textwidth}]\n"
- end
- f << "\\stoptext\n"
- f.close
- job.setvariable('interface','english')
- job.setvariable('simplerun',true)
- # job.setvariable('nooptionfile',true)
- job.setvariable('files',[job.tempfilename])
- job.processtex
- else
- report('no files to arrange')
- end
- else
- report('no files to arrange')
- end
- job.cleanuptemprunfiles
- end
- end
-
- def select
- if job = TEX.new(logger) then
- prepare(job)
- job.cleanuptemprunfiles
- files = @commandline.arguments.sort
- if files.length > 0 then
- if f = File.open(job.tempfilename('tex'),'w') then
- selection = @commandline.checkedoption('selection', '')
- paperoffset = @commandline.checkedoption('paperoffset', '0cm')
- textwidth = @commandline.checkedoption('textwidth', '0cm')
- backspace = @commandline.checkedoption('backspace', '0cm')
- topspace = @commandline.checkedoption('topspace', '0cm')
- paperformat = @commandline.checkedoption('paperformat', 'A4*A4').split(/[\*x]/o)
- from, to = paperformat[0] || 'A4', paperformat[1] || paperformat[0] || 'A4'
- if from == 'fit' or to == 'fit' then
- f << "\\getfiguredimensions[#{files.first}]\n"
- if from == 'fit' then
- f << "\\expanded{\\definepapersize[from-fit][width=\\figurewidth,height=\\figureheight]}\n"
- from = 'from-fit'
- end
- if to == 'fit' then
- f << "\\expanded{\\definepapersize[to-fit][width=\\figurewidth,height=\\figureheight]}\n"
- to = 'to-fit'
- end
- end
- job.setvariable('paperformat','') # else overloaded later on
- f << "\\setuppapersize[#{from}][#{to}]\n"
- f << "\\definepapersize\n";
- f << " [offset=#{paperoffset}]\n";
- f << "\\setuplayout\n";
- f << " [backspace=#{backspace},\n";
- f << " topspace=#{topspace},\n";
- f << " marking=on,\n" if @commandline.option('marking')
- f << " width=middle,\n";
- f << " height=middle,\n";
- f << " location=middle,\n";
- f << " header=0pt,\n";
- f << " footer=0pt]\n";
- f << "\\setupexternalfigures\n";
- f << " [directory=]\n";
- f << "\\starttext\n";
- unless selection.empty? then
- f << "\\filterpages\n"
- f << " [#{files.first}][#{selection}][width=#{textwidth}]\n"
- end
- f << "\\stoptext\n"
- f.close
- job.setvariable('interface','english')
- job.setvariable('simplerun',true)
- # job.setvariable('nooptionfile',true)
- job.setvariable('files',[job.tempfilename])
- job.processtex
- else
- report('no files to selectt')
- end
- else
- report('no files to select')
- end
- job.cleanuptemprunfiles
- end
- end
-
- def copy
- copyortrim(false,'copy')
- end
-
- def trim
- copyortrim(true,'trim')
- end
-
- def copyortrim(trim=false)
- if job = TEX.new(logger) then
- prepare(job)
- job.cleanuptemprunfiles
- files = @commandline.arguments.sort
- if files.length > 0 then
- if f = File.open(job.tempfilename('tex'),'w') then
- scale = @commandline.checkedoption('scale')
- scale = (scale * 1000).to_i if scale < 10
- paperoffset = @commandline.checkedoption('paperoffset', '0cm')
- f << "\\starttext\n"
- files.each do |filename|
- result = @commandline.checkedoption('result','texexec')
- if (filename !~ /^texexec/io) && (filename !~ /^#{result}/) then
- report("copying file: #{filename}")
- f << "\\getfiguredimensions\n"
- f << " [#{filename}]\n"
- f << " [page=1"
- f << ",\n size=trimbox" if trim
- f << "]\n"
- f << "\\definepapersize\n"
- f << " [copy]\n"
- f << " [width=\\naturalfigurewidth,\n"
- f << " height=\\naturalfigureheight]\n"
- f << "\\setuppapersize\n"
- f << " [copy][copy]\n"
- f << "\\setuplayout\n"
- f << " [page]\n"
- f << "\\setupexternalfigures\n"
- f << " [directory=]\n"
- f << "\\copypages\n"
- f << " [#[filename}]\n"
- f << " [scale=#{scale},\n"
- f << " marking=on,\n" if @commandline.option('markings')
- f << " size=trimbox,\n" if trim
- f << " offset=#{paperoffset}]\n"
- end
- end
- f << "\\stoptext\n"
- f.close
- job.setvariable('interface','english')
- job.setvariable('simplerun',true)
- # job.setvariable('nooptionfile',true)
- job.setvariable('files',[job.tempfilename])
- job.processtex
- else
- report("no files to #{what}")
- end
- else
- report("no files to #{what}")
- end
- job.cleanuptemprunfiles
- end
- end
-
- def combine
- if job = TEX.new(logger) then
- prepare(job)
- job.cleanuptemprunfiles
- files = @commandline.arguments.sort
- if files.length > 0 then
- if f = File.open(job.tempfilename('tex'),'w') then
- paperoffset = @commandline.checkedoption('paperoffset', '0cm')
- combination = @commandline.checkedoption('combination','2*2').split(/[\*x]/o)
- paperformat = @commandline.checkedoption('paperoffset', 'A4*A4').split(/[\*x]/o)
- nx, ny = combination[0] || '2', combination[1] || combination[0] || '2'
- from, to = paperformat[0] || 'A4', paperformat[1] || paperformat[0] || 'A4'
- f << "\\setuppapersize[#{from}][#{to}]\n"
- f << "\\setuplayout\n"
- f << " [topspace=#{paperoffset},\n"
- f << " backspace=#{paperoffset},\n"
- f << " header=0pt,\n"
- f << " footer=1cm,\n"
- f << " width=middle,\n"
- f << " height=middle]\n"
- if @commandline.option('nobanner') then
- f << "\\setuplayout\n"
- f << " [footer=0cm]\n"
- end
- f << "\\setupexternalfigures\n"
- f << " [directory=]\n"
- f << "\\starttext\n"
- files.each do |filename|
- result = @commandline.checkedoption('result','texexec')
- if (filename !~ /^texexec/io) && (filename !~ /^#{result}/) then
- report("combination file: #{filename}")
- cleanname = cleantexfilename(filename).downcase
- f << "\\setupfootertexts\n"
- f << " [\\tttf #{cleanname}\\quad\\quad\\currentdate\\quad\\quad\\pagenumber]\n"
- f << "\\combinepages[#{filename}][nx=#{nx},ny=#{ny}]\n"
- f << "\\page\n"
- end
- end
- f << "\\stoptext\n"
- f.close
- job.setvariable('interface','english')
- job.setvariable('simplerun',true)
- # job.setvariable('nooptionfile',true)
- job.setvariable('files',[job.tempfilename])
- job.processtex
- else
- report('no files to list')
- end
- else
- report('no files to list')
- end
- job.cleanuptemprunfiles
- end
- end
-
- private
-
- def prepare(job)
-
- job.booleanvars.each do |k|
- job.setvariable(k,@commandline.option(k))
- end
- job.stringvars.each do |k|
- job.setvariable(k,@commandline.option(k))
- end
- job.standardvars.each do |k|
- job.setvariable(k,@commandline.option(k))
- end
- job.knownvars.each do |k|
- job.setvariable(k,@commandline.option(k)) unless @commandline.option(k).empty?
- end
-
- if (str = @commandline.option('engine')) && ! str.standard? && ! str.empty? then
- job.setvariable('texengine',str)
- elsif @commandline.oneof('pdfetex','pdftex','pdf') then
- job.setvariable('texengine','pdfetex')
- elsif @commandline.oneof('xetex','xtx') then
- job.setvariable('texengine','xetex')
- elsif @commandline.oneof('aleph') then
- job.setvariable('texengine','aleph')
- else
- job.setvariable('texengine','standard')
- end
-
- if (str = @commandline.option('backend')) && ! str.standard? && ! str.empty? then
- job.setvariable('backend',str)
- elsif @commandline.oneof('pdfetex','pdftex','pdf') then
- job.setvariable('backend','pdftex')
- elsif @commandline.oneof('dvipdfmx','dvipdfm','dpx','dpm') then
- job.setvariable('backend','dvipdfmx')
- elsif @commandline.oneof('xetex','xtx') then
- job.setvariable('backend','xetex')
- elsif @commandline.oneof('aleph') then
- job.setvariable('backend','dvipdfmx')
- elsif @commandline.oneof('dvips','ps') then
- job.setvariable('backend','dvips')
- else
- job.setvariable('backend','standard')
- end
-
- if (str = @commandline.option('engine')) && ! str.standard? && ! str.empty? then
- job.setvariable('mpsengine',@commandline.option('engine'))
- else
- job.setvariable('mpsengine','standard')
- end
-
- end
-
- def cleantexfilename(filename)
- filename.gsub(/([\$\_\#])/) do "\\$1" end.gsub(/([\~])/) do "\\string$1" end
- end
-
-end
-
-logger = Logger.new(banner.shift)
-commandline = CommandLine.new
-
-commandline.registeraction('make', 'make formats')
-commandline.registeraction('check', 'check versions')
-commandline.registeraction('process', 'process file')
-commandline.registeraction('mptex', 'process mp file')
-commandline.registeraction('mpxtex', 'process mpx file')
-
-commandline.registeraction('listing', 'list of file content')
-commandline.registeraction('figures', 'generate overview of figures')
-commandline.registeraction('modules', 'generate module documentation')
-commandline.registeraction('arrange', 'impose pages (booklets)')
-commandline.registeraction('select', 'select pages from file(s)')
-commandline.registeraction('copy', 'copy pages from file(s)')
-commandline.registeraction('trim', 'trim pages from file(s)')
-commandline.registeraction('combine', 'combine multiple pages')
-
-@@extrastringvars = [
- 'pages', 'background', 'backspace', 'topspace', 'boxtype', 'tempdir',
- 'printformat', 'paperformat', 'method', 'scale', 'selection',
- 'combination', 'paperoffset', 'textwidth', 'addempty', 'logfile',
- 'startline', 'endline', 'startcolumn', 'endcolumn', 'scale'
-]
-
-@@extrabooleanvars = [
- 'centerpage', 'noduplex', 'color', 'pretty',
- 'fullscreen', 'screensaver', 'markings'
-]
-
-if job = TEX.new(logger) then
-
- job.setextrastringvars(@@extrastringvars)
- job.setextrabooleanvars(@@extrabooleanvars)
-
- job.booleanvars.each do |k|
- commandline.registerflag(k)
- end
- job.stringvars.each do |k|
- commandline.registervalue(k,'')
- end
- job.standardvars.each do |k|
- commandline.registervalue(k,'standard')
- end
- job.knownvars.each do |k|
- commandline.registervalue(k,'')
- end
-
-end
-
-# todo: register flags -> first one true
-
-commandline.registerflag('pdf')
-commandline.registerflag('pdftex')
-commandline.registerflag('pdfetex')
-
-commandline.registerflag('dvipdfmx')
-commandline.registerflag('dvipdfm')
-commandline.registerflag('dpx')
-commandline.registerflag('dpm')
-
-commandline.registerflag('dvips')
-commandline.registerflag('ps')
-
-commandline.registerflag('xetex')
-commandline.registerflag('xtx')
-
-commandline.registerflag('aleph')
-
-commandline.registerflag('all')
-commandline.registerflag('fast')
-
-# generic
-
-commandline.registeraction('help')
-commandline.registeraction('version')
-
-commandline.registerflag('verbose')
-
-commandline.expand
-
-Commands.new(commandline,logger,banner).send(commandline.action || 'main')
+load(File.join(File.expand_path(File.dirname($0)),'texexec.rb'))
diff --git a/Master/texmf-dist/scripts/context/ruby/newtexutil.rb b/Master/texmf-dist/scripts/context/ruby/newtexutil.rb
index af003a8e7b2..d6dd06a71ee 100644
--- a/Master/texmf-dist/scripts/context/ruby/newtexutil.rb
+++ b/Master/texmf-dist/scripts/context/ruby/newtexutil.rb
@@ -1,96 +1,8 @@
-banner = ['TeXUtil ', 'version 9.1.0', '1997-2005', 'PRAGMA ADE/POD']
+#!/usr/bin/env ruby
-unless defined? ownpath
- ownpath = $0.sub(/[\\\/][a-z0-9\-]*?\.rb/i,'')
- $: << ownpath
-end
+# program : texexec
+# copyright : PRAGMA Advanced Document Engineering
+# version : 1997-2006
+# author : Hans Hagen
-require 'base/switch'
-require 'base/logger'
-require 'base/file'
-require 'base/texutil'
-
-class Commands
-
- include CommandBase
-
- def references
- filename = @commandline.argument('first')
- if not filename.empty? and FileTest.file?(File.suffixed(filename,'tuo')) then
- if tu = TeXUtil::Converter.new(logger) and tu.loaded(filename) then
- tu.saved if tu.processed
- end
- end
- end
-
- def main
- if @commandline.arguments.length>0 then
- references
- else
- help
- end
- end
-
- def purgefiles
- system("texmfstart ctxtools --purge #{@commandline.argument.join(' ')}")
- end
-
- def purgeallfiles
- system("texmfstart ctxtools --purgeall #{@commandline.argument.join(' ')}")
- end
-
- def documentation
- system("texmfstart ctxtools --document #{@commandline.argument.join(' ')}")
- end
-
- def analyzefile
- system("texmfstart pdftools --analyze #{@commandline.argument.join(' ')}")
- end
-
- def filterpages # obsolete
- system("texmfstart ctxtools --purge #{@commandline.argument.join(' ')}")
- end
-
- def figures
- report("this code is not yet converted from perl to ruby")
- end
-
- def logfile
- report("this code is not yet converted from perl to ruby")
- end
-
-end
-
-logger = Logger.new(banner.shift)
-commandline = CommandLine.new
-
-# main feature
-
-commandline.registeraction('references', 'convert tui file into tuo file')
-
-# todo features
-
-commandline.registeraction('figures', 'generate figure dimensions file')
-commandline.registeraction('logfile', 'filter essential log messages')
-
-# backward compatibility features
-
-commandline.registeraction('purgefiles', 'remove most temporary files')
-commandline.registeraction('purgeallfiles', 'remove all temporary files')
-commandline.registeraction('documentation', 'generate documentation file from source')
-commandline.registeraction('analyzefile', 'analyze pdf file')
-
-# old feature, not needed any longer due to extension of pdftex
-
-commandline.registeraction('filterpages')
-
-# generic features
-
-commandline.registeraction('help')
-commandline.registeraction('version')
-
-commandline.registerflag('verbose')
-
-commandline.expand
-
-Commands.new(commandline,logger,banner).send(commandline.action || 'main')
+load(File.join(File.expand_path(File.dirname($0)),'texutil.rb'))
diff --git a/Master/texmf-dist/scripts/context/ruby/pdftools.rb b/Master/texmf-dist/scripts/context/ruby/pdftools.rb
new file mode 100644
index 00000000000..8a62a048728
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/pdftools.rb
@@ -0,0 +1,816 @@
+#!/usr/bin/env ruby
+
+# program : pdftools
+# copyright : PRAGMA Advanced Document Engineering
+# version : 2003-2005
+# author : Hans Hagen
+#
+# project : ConTeXt / eXaMpLe
+# concept : Hans Hagen
+# info : j.hagen@xs4all.nl
+# www : www.pragma-ade.com
+
+# This script will harbor some handy manipulations on tex
+# related files.
+
+banner = ['PDFTools', 'version 1.2.1', '2003/2005', 'PRAGMA ADE/POD']
+
+unless defined? ownpath
+ ownpath = $0.sub(/[\\\/][a-z0-9\-]*?\.rb/i,'')
+ $: << ownpath
+end
+
+require 'base/switch'
+require 'base/logger'
+
+require 'ftools'
+
+class File
+
+ def File.deletefiles(*filenames)
+ filenames.flatten.each do |filename|
+ begin
+ delete(filename) if FileTest.file?(filename)
+ rescue
+ end
+ end
+ end
+
+ def File.needsupdate(oldname,newname)
+ begin
+ return File.stat(oldname).mtime != File.stat(newname).mtime
+ rescue
+ return true
+ end
+ end
+
+ def File.syncmtimes(oldname,newname)
+ begin
+ t = Time.now # i'm not sure if the time is frozen, so we do it here
+ File.utime(0,t,oldname,newname)
+ rescue
+ end
+ end
+
+ def File.replacesuffix(oldname,subpath='')
+ newname = File.expand_path(oldname.sub(/\.\w+?$/,'.pdf'))
+ File.join(File.dirname(newname),subpath,File.basename(newname))
+ end
+
+end
+
+class ImageMagick
+
+ def initialize
+
+ begin
+ version = `convert -version`
+ rescue
+ @binary = nil
+ ensure
+ if (version) && (! version.empty?) && (version =~ /ImageMagick/mo) && (version =~ /version/mio) then
+ @binary = 'convert'
+ else
+ @binary = 'imagemagick'
+ end
+ end
+
+ end
+
+ def process(arguments)
+ begin
+ @binary && system("#{@binary} #{arguments}")
+ rescue
+ false
+ end
+ end
+
+end
+
+class TexExec
+
+ def initialize
+ @binary = 'texmfstart texexec.pl --pdf --batch --silent --purge'
+ end
+
+ def process(arguments,once=true)
+ begin
+ if once then
+ @binary && system("#{@binary} --once #{arguments}")
+ else
+ @binary && system("#{@binary} #{arguments}")
+ end
+ rescue
+ false
+ end
+ end
+
+end
+
+class PdfImages
+
+ def initialize
+ @binary = "pdfimages"
+ end
+
+ def process(arguments)
+ begin
+ @binary && system("#{@binary} #{arguments}")
+ rescue
+ false
+ end
+ end
+
+end
+
+class ConvertImage
+
+ def initialize(command=nil)
+ @command = command
+ end
+
+ def convertimage(filename)
+
+ return if filename =~ /\.(pdf)$/io
+
+ retain = @command.option('retain')
+ subpath = @command.option('subpath')
+
+ if filename =~ /\s/ then
+ @command.report("skipping strange filename '#{filename}'")
+ else
+ newname = File.replacesuffix(filename,subpath)
+ # newname.gsub!(s/[^a-zA-Z0-9\_-\.]/o, '-')
+ begin
+ File.makedirs(File.dirname(newname))
+ rescue
+ end
+ if ! retain || File.needsupdate(filename,newname) then
+ imagemagick = ImageMagick.new
+ if imagemagick then
+ ok = imagemagick.process("-compress zip -quality 99 #{filename} #{newname}")
+ File.syncmtimes(oldname,newname) if retain
+ end
+ end
+ end
+ end
+
+end
+
+class DownsampleImage
+
+ def initialize(command=nil)
+ @command = command
+ end
+
+ def convertimage(filename)
+
+ return if filename =~ /\.(pdf)$/io
+
+ retain = @command.option('retain')
+ subpath = @command.option('subpath')
+
+ if @command.option('lowres') then
+ method = '4'
+ elsif @command.option('medres') || @command.option('normal') then
+ method = '5'
+ else
+ method = '4'
+ end
+
+ if filename =~ /\s/ then
+ @command.report("skipping strange filename '#{filename}'")
+ else
+ newname = File.replacesuffix(filename,subpath)
+ begin
+ File.makedirs(File.dirname(newname))
+ rescue
+ end
+ if ! retain || File.needsupdate(filename,newname) then
+ ok = system("texmfstart pstopdf.rb --method=#{method} #{filename} #{newname}")
+ File.syncmtimes(oldname,newname) if retain
+ end
+ end
+ end
+
+end
+
+class ColorImage
+
+ def initialize(command=nil,tmpname='pdftools')
+ @command = command
+ @tmpname = tmpname
+ @colorname = nil
+ @colorspec = nil
+ @colorspace = nil
+ end
+
+ def registercolor(spec='.5',name='c')
+ name = name || 'c'
+ spec = spec.split(',')
+ case spec.length
+ when 4
+ @colorname, @colorspec, @colorspace = name, spec.join('/'), 'cmyk'
+ when 3
+ @colorname, @colorspec, @colorspace = name, spec.join('/'), 'rgb'
+ when 1
+ @colorname, @colorspec, @colorspace = name, spec.join('/'), 'gray'
+ else
+ @colorname, @colorspec, @colorspace = nil, nil, nil
+ end
+ end
+
+ def convertimage(filename)
+
+ invert = @command.option('invert')
+ retain = @command.option('retain')
+ subpath = @command.option('subpath')
+
+ subpath += '/' unless subpath.empty?
+
+ if @colorname && ! @colorname.empty? && @colorspec && ! @colorspec.empty? then
+ basename = filename.sub(/\.\w+?$/,'')
+ oldname = filename
+ ppmname = @tmpname + '-000.ppm'
+ jpgname = @tmpname + '-000.jpg'
+ newname = File.expand_path(oldname)
+ newname = File.dirname(newname) + '/' + subpath + @colorname + '-' + File.basename(newname)
+ newname.sub!(/\.\w+?$/, '.pdf')
+ begin
+ File.makedirs(File.dirname(newname))
+ rescue
+ end
+ if ! retain || File.needsupdate(filename,newname) then
+ pdfimages = PdfImages.new
+ imagemagick = ImageMagick.new
+ if pdfimages && imagemagick then
+ File.deletefiles(ppmname,jpgname,newname)
+ if filename =~ /\.(pdf)$/io then
+ ok = pdfimages.process("-j -f 1 -l 1 #{filename} #{@tmpname}")
+ if ok then
+ if FileTest.file?(ppmname) then
+ inpname = ppmname
+ elsif FileTest.file?(jpgname) then
+ inpname = jpgname
+ else
+ ok = false
+ end
+ if ok then
+ switch = if ! invert then '-negate' else '' end
+ # make sure that we keep the format
+ tmpname = File.basename(inpname)
+ tmpname = tmpname.sub(/(.*)\..*?$/,@tmpname) # somehow sub! fails here
+ ok = imagemagick.process("-colorspace gray #{switch} #{inpname} #{tmpname}")
+ if ! ok || ! FileTest.file?(tmpname) then
+ # problems
+ else
+ ok = imagemagick.process("-colorspace #{switch} #{@colorspace} -colorize #{@colorspec} -compress zip #{tmpname} #{newname}")
+ if ! ok || ! FileTest.file?(newname) then
+ # unable to colorize image
+ else
+ # conversion done
+ end
+ end
+ end
+ end
+ else
+ # make sure that we keep the format
+ tmpname = File.basename(basename)
+ tmpname = tmpname.sub(/(.*)\..*?$/,@tmpname) # somehow sub! fails here
+ ok = imagemagick.process("-colorspace gray #{oldname} #{tmpname}")
+ if ! ok || ! FileTest.file?(tmpname) then
+ # unable to convert color to gray
+ else
+ ok = imagemagick.process("-colorspace #{@colorspace} -colorize #{@colorspec} -compress zip #{tmpname} #{newname}")
+ if ! ok || ! FileTest.file?(newname) then
+ # unable to colorize image
+ else
+ # conversion done
+ end
+ end
+ end
+ File.deletefiles(ppmname,jpgname,tmpname)
+ File.syncmtimes(filename,newname) if retain
+ end
+ end
+ end
+ end
+
+end
+
+class SpotColorImage
+
+ def initialize(command=nil, tmpname='pdftools')
+ @command = command
+ @tmpname = tmpname
+ @colorname = nil
+ @colorspec = nil
+ @colorspace = nil
+ @colorfile = nil
+ end
+
+ def registercolor(spec='.5',name='unknown')
+ name = name || 'unknown'
+ if spec =~ /^[\d\.\,]+$/ then
+ spec = spec.split(',')
+ case spec.length
+ when 4
+ @colorname, @colorspec, @colorspace = name, ["c=#{spec[0]}","m=#{spec[1]}","y=#{spec[2]}","k=#{spec[3]}"].join(','), 'cmyk'
+ when 3
+ @colorname, @colorspec, @colorspace = name, ["r=#{spec[0]}","g=#{spec[1]}","b=#{spec[2]}"].join(','), 'rgb'
+ when 1
+ @colorname, @colorspec, @colorspace = name, ["s=#{spec[0]}"].join(','), 'gray'
+ else
+ @colorname, @colorspec, @colorspace = nil, nil, nil
+ end
+ else
+ @colorname, @colorfile = name, spec
+ end
+ end
+
+ def convertgrayimage(filename)
+
+ invert = @command.option('invert')
+ retain = @command.option('retain')
+ subpath = @command.option('subpath')
+
+ subpath += '/' unless subpath.empty?
+
+ if @colorname && ! @colorname.empty? && ((@colorspec && ! @colorspec.empty?) || (@colorfile && ! @colorfile.empty?)) then
+ basename = filename.sub(/\.\w+?$/,'')
+ oldname = filename # png jpg pdf
+ newname = File.expand_path(oldname)
+ ppmname = @tmpname + '-000.ppm'
+ jpgname = @tmpname + '-000.jpg'
+ outname = @tmpname + '-000.pdf'
+ texname = @tmpname + '-temp.tex'
+ pdfname = @tmpname + '-temp.pdf'
+ newname = File.dirname(newname) + '/' + subpath + @colorname + '-' + File.basename(newname)
+ newname.sub!(/\.\w+?$/, '.pdf')
+ begin
+ File.makedirs(File.dirname(newname))
+ rescue
+ end
+ if ! retain || File.needsupdate(filename,newname) then
+ pdfimages = PdfImages.new
+ imagemagick = ImageMagick.new
+ texexec = TexExec.new
+ if pdfimages && imagemagick && texexec then
+ if filename =~ /\.(jpg|png|pdf)$/io then
+ @command.report("processing #{basename}")
+ File.deletefiles(ppmname,jpgname,newname)
+ switch = if ! invert then '-negate' else '' end
+ if filename =~ /\.(pdf)$/io then
+ ok = pdfimages.process("-j -f 1 -l 1 #{oldname} #{@tmpname}")
+ if ok then
+ if FileTest.file?(ppmname) then
+ inpname = ppmname
+ elsif FileTest.file?(jpgname) then
+ inpname = jpgname
+ else
+ ok = false
+ end
+ if ok then
+ ok = imagemagick.process("-colorspace gray #{switch} -compress zip #{inpname} #{outname}")
+ end
+ end
+ else
+ ok = imagemagick.process("-colorspace gray #{switch} -compress zip #{oldname} #{outname}")
+ end
+ if ok then
+ ok = false unless FileTest.file?(outname)
+ end
+ if ok then
+ if f = File.open(texname, 'w') then
+ f.puts(conversionfile(filename,outname,newname))
+ f.close
+ ok = texexec.process(texname)
+ else
+ ok = false
+ end
+ @command.report("error in processing #{newname}") unless ok
+ if FileTest.file?(pdfname) then
+ if f = File.open(pdfname,'r') then
+ f.binmode
+ begin
+ if g = File.open(newname,'w') then
+ g.binmode
+ data = f.read
+ # pdftex (direct) & imagemagick (indirect)
+ if data =~ /(\d+)\s+0\s+obj\s+\[\/Separation\s+\/#{@colorname}/mos then
+ @command.report("replacing separation color")
+ object = $1
+ data.gsub!(/(\/Type\s+\/XObject.*?)(\/ColorSpace\s*(\/DeviceGray|\/DeviceCMYK|\/DeviceRGB|\d+\s+\d+\s+R))/mois) do
+ $1 + "/ColorSpace #{object} 0 R".ljust($2.length)
+ end
+ elsif data =~ /(\d+)\s+0\s+obj\s+\[\/Indexed\s*\[/mos then
+ @command.report("replacing indexed color")
+ # todo: more precise check on color
+ object = $1
+ data.gsub!(/(\/Type\s+\/XObject.*?)(\/ColorSpace\s*(\/DeviceGray|\/DeviceCMYK|\/DeviceRGB|\d+\s+\d+\s+R))/mois) do
+ $1 + "/ColorSpace #{object} 0 R".ljust($2.length)
+ end
+ elsif data =~ /(\d+)\s+0\s+obj\s+\[\/Separation/mos then
+ @command.report("replacing separation color")
+ object = $1
+ data.gsub!(/(\/Type\s+\/XObject.*?)(\/ColorSpace\s*(\/DeviceGray|\/DeviceCMYK|\/DeviceRGB|\d+\s+\d+\s+R))/mois) do
+ $1 + "/ColorSpace #{object} 0 R".ljust($2.length)
+ end
+ end
+ g.write(data)
+ g.close
+ end
+ rescue
+ @command.report("error in converting #{newname}")
+ else
+ @command.report("#{newname} is converted")
+ end
+ f.close
+ end
+ else
+ @command.report("error in writing #{newname}")
+ end
+ else
+ @command.report("error in producing #{newname}")
+ end
+ File.deletefiles(ppmname,jpgname,outname)
+ # File.deletefiles(texname,pdfname)
+ File.syncmtimes(filename,newname) if retain
+ end
+ else
+ @command.report("error in locating binaries")
+ end
+ else
+ @command.report("#{newname} is not changed")
+ end
+ end
+ end
+
+ private
+
+ # % example colorfile:
+ #
+ # \definecolor [darkblue] [c=1,m=.38,y=0,k=.64] % pantone pms 2965 uncoated m
+ # \definecolor [darkyellow] [c=0,m=.28,y=1,k=.06] % pantone pms 124 uncoated m
+ #
+ # % \definecolor [darkblue-100] [darkblue] [p=1]
+ # % \definecolor [darkyellow-100] [darkyellow] [p=1]
+ #
+ # \definecolorcombination [pdftoolscolor] [darkblue=.12,darkyellow=.28] [c=.1,m=.1,y=.3,k=.1]
+
+ def conversionfile(originalname,filename,finalname)
+ tex = "\\setupcolors[state=start]\n"
+ if @colorfile then
+ tex += "\\readfile{#{@colorfile}}{}{}\n"
+ tex += "\\starttext\n"
+ # tex += "\\predefineindexcolor[pdftoolscolor]\n"
+ tex += "\\startTEXpage\n"
+ tex += "\\pdfimage{#{filename}}\n"
+ tex += "\\stopTEXpage\n"
+ tex += "\\stoptext\n"
+ else
+ tex += "\\definecolor[#{@colorname}][#{@colorspec}]\n"
+ tex += "\\definecolor[pdftoolscolor][#{@colorname}][p=1]\n"
+ tex += "\\starttext\n"
+ tex += "\\startTEXpage\n"
+ tex += "\\hbox{\\color[pdftoolscolor]{\\pdfimage{#{filename}}}}\n"
+ tex += "\\stopTEXpage\n"
+ tex += "\\stoptext\n"
+ end
+ tex += "\n"
+ tex += "% old: #{originalname}\n"
+ tex += "% new: #{finalname}\n"
+ return tex
+ end
+
+end
+
+module XML
+
+ def XML::version
+ "<?xml version='1.0'?>"
+ end
+
+ def XML::start(element, attributes='')
+ if attributes.empty? then
+ "<#{element}>"
+ else
+ "<#{element} #{attributes}>"
+ end
+ end
+
+ def XML::end(element)
+ "</#{element}>"
+ end
+
+ def XML::empty(element, attributes='')
+ if attributes && attributes.empty? then
+ "<#{element}/>"
+ else
+ "<#{element} #{attributes}/>"
+ end
+ end
+
+ def XML::element(element, attributes='', content='')
+ if content && ! content.empty? then
+ XML::start(element,attributes) + content + XML::end(element)
+ else
+ XML::empty(element,attributes)
+ end
+ end
+
+ def XML::box(tag, rect, type=1)
+ case type
+ when 1
+ if rect && ! rect.empty? then
+ rect = rect.split(' ')
+ XML::element("#{tag}box", '',
+ XML::element("llx", '', rect[0]) +
+ XML::element("lly", '', rect[1]) +
+ XML::element("ulx", '', rect[2]) +
+ XML::element("uly", '', rect[3]) )
+ else
+ XML::empty("#{tag}box")
+ end
+ when 2
+ if rect && ! rect.empty? then
+ rect = rect.split(' ')
+ XML::element("box", "type='#{tag}'",
+ XML::element("llx", '', rect[0]) +
+ XML::element("lly", '', rect[1]) +
+ XML::element("ulx", '', rect[2]) +
+ XML::element("uly", '', rect[3]) )
+ else
+ XML::empty("box", "type='#{tag}'")
+ end
+ when 3
+ if rect && ! rect.empty? then
+ rect = rect.split(' ')
+ XML::element("box", "type='#{tag}' llx='#{rect[0]}' lly='#{rect[1]}' ulx='#{rect[2]}' uly='#{rect[3]}'")
+ else
+ XML::empty("box", "type='#{tag}'")
+ end
+ else
+ ''
+ end
+ end
+
+ def XML::crlf
+ "\n"
+ end
+
+ def XML::skip(n=1)
+ ' '*n
+ end
+
+end
+
+class Commands
+
+ include CommandBase
+
+ # alias savedhelp :help
+
+ # def help
+ # savedhelp
+ # report("under construction (still separate tools)")
+ # end
+
+ # filename.pdf --spotimage --colorname=darkblue --colorspec=1,0.38,0,0.64
+
+ def spotimage
+
+ if ! @commandline.argument('first').empty? && files = findfiles() then
+ colorname = @commandline.option('colorname')
+ colorspec = @commandline.option('colorspec')
+ if colorname && ! colorname.empty? && colorspec && ! colorspec.empty? then
+ files.each do |filename|
+ s = SpotColorImage.new(self)
+ s.registercolor(colorspec,colorname)
+ s.convertgrayimage(filename)
+ end
+ else
+ report("provide --colorname=somename --colorspec=c,m,y,k")
+ end
+ else
+ report("provide filename (png, jpg, pdf)")
+ end
+
+ end
+
+ def colorimage
+
+ if ! @commandline.argument('first').empty? && files = findfiles() then
+ colorname = @commandline.option('colorname')
+ colorspec = @commandline.option('colorspec')
+ if colorspec && ! colorspec.empty? then
+ files.each do |filename|
+ s = ColorImage.new(self)
+ s.registercolor(colorspec,colorname) # name optional
+ s.convertimage(filename)
+ end
+ else
+ report("provide --colorspec=c,m,y,k")
+ end
+ else
+ report("provide filename")
+ end
+
+ end
+
+ def convertimage
+
+ if ! @commandline.argument('first').empty? && files = findfiles() then
+ files.each do |filename|
+ s = ConvertImage.new(self)
+ s.convertimage(filename)
+ end
+ else
+ report("provide filename")
+ end
+
+ end
+
+ def downsampleimage
+
+ if ! @commandline.argument('first').empty? && files = findfiles() then
+ files.each do |filename|
+ s = DownsampleImage.new(self)
+ s.convertimage(filename)
+ end
+ else
+ report("provide filename")
+ end
+
+ end
+
+ def info
+
+ if files = findfiles() then
+
+ print(XML.version + XML.crlf)
+ print(XML.start('pdfinfo', "xmlns='http://www.pragma-ade.com/schemas/pdfinfo.rng'") + XML.crlf)
+
+ files.each do |filename|
+
+ if filename =~ /\.pdf$/io then
+
+ begin
+ data = `pdfinfo -box #{filename}`.chomp.split("\n")
+ rescue
+ data = nil
+ end
+
+ if data then
+
+ pairs = Hash.new
+
+ data.each do |d|
+ if (d =~ /^\s*(.*?)\s*\:\s*(.*?)\s*$/mois) then
+ key, val = $1, $2
+ pairs[key.downcase.sub(/ /,'')] = val
+ end
+ end
+
+ print(XML.skip(1) + XML.start('pdffile', "filename='#{filename}'") + XML.crlf)
+
+ print(XML.skip(2) + XML.element('path', '', File.expand_path(filename)) + XML.crlf)
+
+ if pairs.key?('error') then
+
+ print(XML.skip(2) + XML.element('comment', '', pairs['error']) + XML.crlf)
+
+ else
+
+ print(XML.skip(2) + XML.element('version', '', pairs['pdfversion']) + XML.crlf)
+ print(XML.skip(2) + XML.element('pages', '', pairs['pages' ]) + XML.crlf)
+ print(XML.skip(2) + XML.element('title', '', pairs['title' ]) + XML.crlf)
+ print(XML.skip(2) + XML.element('subject', '', pairs['subject' ]) + XML.crlf)
+ print(XML.skip(2) + XML.element('author', '', pairs['author' ]) + XML.crlf)
+ print(XML.skip(2) + XML.element('producer', '', pairs['producer' ]) + XML.crlf)
+
+ if pairs.key?('creationdate') then
+ pairs['creationdate'].sub!(/(\d\d)\/(\d\d)\/(\d\d)/) do
+ '20' + $3 + '-' + $1 + '-' +$2
+ end
+ pairs['creationdate'].sub!(/(\d\d)\/(\d\d)\/(\d\d\d\d)/) do
+ $3 + '-' + $1 + '-' + $2
+ end
+ print(XML.skip(2) + XML.element('creationdate', '', pairs['creationdate']) + XML.crlf)
+ end
+
+ if pairs.key?('moddate') then
+ if pairs['moddate'] =~ /(\d\d\d\d)(\d\d)(\d\d)/ then
+ pairs['moddate'] = "#{$1}-#{$2}-#{$3}"
+ end
+ print(XML.skip(2) + XML.element('modificationdate', '', pairs['moddate']) + XML.crlf)
+ end
+
+ print(XML.skip(2) + XML.element('tagged', '', pairs['tagged' ]) + XML.crlf)
+ print(XML.skip(2) + XML.element('encrypted', '', pairs['encrypted']) + XML.crlf)
+ print(XML.skip(2) + XML.element('optimized', '', pairs['optimized']) + XML.crlf)
+
+ if pairs.key?('PageSize') then
+ print(XML.skip(2) + XML.element('width', '', pairs['pagesize'].sub(/\s*(.*?)\s+(.*?)\s+.*/, $1)) + XML.crlf)
+ print(XML.skip(2) + XML.element('height', '', pairs['pagesize'].sub(/\s*(.*?)\s+(.*?)\s+.*/, $2)) + XML.crlf)
+ end
+
+ if pairs.key?('FileSize') then
+ print(XML.skip(2) + XML.element('size', '', pairs['filesize'].sub(/\s*(.*?)\s+.*/, $1)) + XML.crlf)
+ end
+
+ print(XML.skip(2) + XML.box('media', pairs['mediabox']) + XML.crlf)
+ print(XML.skip(2) + XML.box('crop' , pairs['cropbox' ]) + XML.crlf)
+ print(XML.skip(2) + XML.box('bleed', pairs['bleedbox']) + XML.crlf)
+ print(XML.skip(2) + XML.box('trim' , pairs['trimBox' ]) + XML.crlf)
+ print(XML.skip(2) + XML.box('art' , pairs['artbox' ]) + XML.crlf)
+
+ end
+
+ print(XML.skip(1) + XML.end('pdffile') + XML.crlf)
+
+ end
+
+ end
+
+ end
+
+ print(XML.end('pdfinfo') + XML.crlf)
+
+ end
+
+ end
+
+ def countpages
+ filenames, n = findfiles('pdf'), 0
+ filenames.each do |filename|
+ if `pdfinfo #{filename}`.chomp =~ /^pages\s*\:\s*(\d+)/mois then
+ report("#{$1.rjust(4)} pages found in #{filename}")
+ n += $1.to_i
+ end
+ end
+ report("#{n.to_s.rjust(4)} pages in total")
+ end
+
+ def analyzefile
+ # needs an update
+ filenames = @commandline.arguments
+ filenames.each do |filename|
+ if filename && FileTest.file?(filename) && filename =~ /\.pdf/io then
+ filesize = FileTest.size(filename)
+ report("analyzing file : #{filename}")
+ report("file size : #{filesize}")
+ if pdf = File.open(filename) then
+ pdf.binmode
+ nofobject, nofxform, nofannot, noflink, nofwidget, nofnamed, nofscript, nofcross = 0, 0, 0, 0, 0, 0, 0, 0
+ while data = pdf.gets do
+ data.scan(/\d+\s+\d+\s+obj/o) do nofobject += 1 end
+ data.scan(/\/Type\s*\/XObject/o) do nofxform += 1 end
+ data.scan(/\/Type\s*\/Annot/o) do nofannot += 1 end
+ data.scan(/\/GoToR\s*\/F/o) do nofcross += 1 end
+ data.scan(/\/Subtype\s*\/Link/o) do noflink += 1 end
+ data.scan(/\/Subtype\s*\/Widget/o) do nofwidget += 1 end
+ data.scan(/\/S\s*\/Named/o) do nofnamed += 1 end
+ data.scan(/\/S\s*\/JavaScript/o) do nofscript += 1 end
+ end
+ pdf.close
+ report("objects : #{nofobject}")
+ report("xforms : #{nofxform}")
+ report("annotations : #{nofannot}")
+ report("links : #{noflink} (#{nofnamed} named / #{nofscript} scripts / #{nofcross} files)")
+ report("widgets : #{nofwidget}")
+ end
+ end
+ end
+ end
+
+end
+
+logger = Logger.new(banner.shift)
+commandline = CommandLine.new
+
+commandline.registeraction('spotimage' , 'filename --colorspec= --colorname= [--retain --invert --subpath=]')
+commandline.registeraction('colorimage', 'filename --colorspec= [--retain --invert --colorname= ]')
+commandline.registeraction('convertimage', 'filename [--retain --subpath]')
+commandline.registeraction('downsampleimage', 'filename [--retain --subpath --lowres --normal]')
+commandline.registeraction('info', 'filename')
+commandline.registeraction('countpages', 'pattern')
+
+commandline.registeraction('analyzefile' , 'filename')
+
+commandline.registeraction('help')
+commandline.registeraction('version')
+
+commandline.registervalue('colorname')
+commandline.registervalue('colorspec')
+commandline.registervalue('subpath')
+
+commandline.registerflag('lowres')
+commandline.registerflag('medres')
+commandline.registerflag('normal')
+commandline.registerflag('invert')
+commandline.registerflag('retain')
+
+commandline.expand
+
+Commands.new(commandline,logger,banner).send(commandline.action || 'help')
diff --git a/Master/texmf-dist/scripts/context/ruby/pstopdf.rb b/Master/texmf-dist/scripts/context/ruby/pstopdf.rb
new file mode 100644
index 00000000000..197f83961ff
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/pstopdf.rb
@@ -0,0 +1,527 @@
+#!/usr/bin/env ruby
+
+# program : pstopdf
+# copyright : PRAGMA Advanced Document Engineering
+# version : 2002-2005
+# author : Hans Hagen
+#
+# project : ConTeXt / eXaMpLe
+# concept : Hans Hagen
+# info : j.hagen@xs4all.nl
+# www : www.pragma-ade.com
+
+banner = ['PsToPdf', 'version 2.0.1', '2002-2006', 'PRAGMA ADE/POD']
+
+$: << File.expand_path(File.dirname($0))
+
+# todo: paden/prefix in magick and inkscape
+# todo: clean up method handling (pass strings, no numbers)
+# --method=crop|bounded|raw|...
+# --resolution=low|normal|medium|high|printer|print|screen|ebook|default
+# + downward compatible flag handling
+
+require 'base/switch'
+require 'base/tool'
+require 'base/logger'
+
+require 'graphics/gs'
+require 'graphics/magick'
+require 'graphics/inkscape'
+
+require 'rexml/document'
+
+exit if defined?(REQUIRE2LIB)
+
+class Commands
+
+ include CommandBase
+
+ # nowadays we would force a directive, but
+ # for old times sake we handle default usage
+
+ def main
+ filename = @commandline.argument('first')
+ pattern = @commandline.option('pattern')
+ globfiles(pattern) if filename.empty? && ! pattern.empty?
+ filename = @commandline.argument('first')
+ if filename.empty? then
+ help
+ elsif filename =~ /\.exa$/ then
+ request
+ else
+ convert
+ end
+ end
+
+ # actions
+
+ def convert
+
+ ghostscript = GhostScript.new(logger)
+ magick = ImageMagick.new(logger)
+ inkscape = InkScape.new(logger)
+
+ outpath = @commandline.option('outputpath')
+ unless outpath.empty? then
+ begin
+ File.expand_path(outpath)
+ outpath = File.makedirs(outpath) unless FileTest.directory?(outpath)
+ rescue
+ # sorry
+ end
+ end
+
+ @commandline.arguments.each do |filename|
+
+ filename = Tool.cleanfilename(filename,@commandline)
+ inppath = @commandline.option('inputpath')
+ if inppath.empty? then
+ inppath = '.'
+ fullname = filename # avoid duplicate './'
+ else
+ fullname = File.join(inppath,filename)
+ end
+ if FileTest.file?(fullname) then
+ handle_whatever(ghostscript,inkscape,magick,filename)
+ else
+ report("file #{fullname} does not exist")
+ end
+
+ end
+
+ end
+
+ def request
+
+ # <exa:request>
+ # <exa:application>
+ # <exa:command>pstopdf</exa:command>
+ # <exa:filename>E:/tmp/demo.ps</exa:filename>
+ # </exa:application>
+ # <exa:data>
+ # <exa:variable label='gs:DoThumbnails'>false</exa:variable>
+ # <exa:variable label='gs:ColorImageDepth'>-1</exa:variable>
+ # </exa:data>
+ # </exa:request>
+
+ ghostscript = GhostScript.new(logger)
+ magick = ImageMagick.new(logger)
+ inkscape = InkScape.new(logger)
+
+ dataname = @commandline.argument('first') || ''
+ filename = @commandline.argument('second') || ''
+
+ if dataname.empty? || ! FileTest.file?(dataname) then
+ report('provide valid exa file')
+ return
+ else
+ begin
+ request = REXML::Document.new(File.new(dataname))
+ rescue
+ report('provide valid exa file (xml error)')
+ return
+ end
+ end
+ if filename.empty? then
+ begin
+ if filename = REXML::XPath.first(request.root,"exa:request/exa:application/exa:filename/text()") then
+ filename = filename.to_s
+ else
+ report('no filename found in exa file')
+ return
+ end
+ rescue
+ filename = ''
+ end
+ end
+ if filename.empty? then
+ report('provide valid filename')
+ return
+ elsif ! FileTest.file?(filename) then
+ report("invalid filename #{filename}")
+ return
+ end
+
+ [ghostscript,inkscape,magick].each do |i|
+ i.setvariable('inputfile',filename)
+ end
+
+ # set ghostscript variables
+ REXML::XPath.each(request.root,"/exa:request/exa:data/exa:variable") do |v|
+ begin
+ if (key = v.attributes['label']) and (value = v.text.to_s) then
+ case key
+ when /gs[\:\.](var[\:\.])*(offset)/io then ghostscript.setoffset(value)
+ when /gs[\:\.](var[\:\.])*(method)/io then ghostscript.setvariable('method',value)
+ when /gs[\:\.](var[\:\.])*(.*)/io then ghostscript.setpsoption($2,value)
+ end
+ end
+ rescue
+ end
+ end
+
+ # no inkscape and magick variables (yet)
+
+ handle_whatever(ghostscript,inkscape,magick,filename)
+
+ end
+
+ def watch
+
+ ghostscript = GhostScript.new(logger)
+ magick = ImageMagick.new(logger)
+ inkscape = InkScape.new(logger)
+
+ pathname = commandline.option('watch')
+
+ unless pathname and not pathname.empty? then
+ report('empty watchpath is not supported')
+ exit
+ end
+
+ if pathname == '.' then
+ report("watchpath #{pathname} is not supported")
+ exit
+ end
+
+ if FileTest.directory?(pathname) then
+ if Dir.chdir(pathname) then
+ report("watching path #{pathname}")
+ else
+ report("unable to change to path #{pathname}")
+ exit
+ end
+ else
+ report("invalid path #{pathname}")
+ exit
+ end
+
+ waiting = false
+
+ loop do
+
+ if waiting then
+ report("waiting #{getvariable('delay')}")
+ waiting = false
+ sleep(getvariable('delay').to_i)
+ end
+
+ files = Dir.glob("**/*.*")
+
+ if files and files.length > 0 then
+
+ files.each do |fullname|
+
+ next unless fullname
+
+ if FileTest.directory?(fullname) then
+ debug('skipping path', fullname)
+ next
+ end
+
+ unless magick.supported(fullname) then
+ debug('not supported', fullname)
+ next
+ end
+
+ if (! FileTest.file?(fullname)) || (FileTest.size(fullname) < 100) then
+ debug("skipping small crap file #{fullname}")
+ next
+ end
+
+ debug("handling file #{fullname}")
+
+ begin
+ next unless File.rename(fullname,fullname) # access trick
+ rescue
+ next # being written
+ end
+
+ fullname = Tool.cleanfilename(fullname,@commandline)
+
+ fullname.gsub!(/\\/io, '/')
+
+ filename = File.basename(fullname)
+ filepath = File.dirname(fullname)
+
+ next if filename =~ /gstemp.*/io
+
+ if filepath !~ /(result|done|raw|crop|bound|bitmap)/io then
+ begin
+ File.makedirs(filepath+'/raw')
+ File.makedirs(filepath+'/bound')
+ File.makedirs(filepath+'/crop')
+ File.makedirs(filepath+'/bitmap')
+ debug("creating prefered input paths on #{filepath}")
+ rescue
+ debug("creating input paths on #{filepath} failed")
+ end
+ end
+
+ if filepath =~ /^(.*\/|)(done|result)$/io then
+ debug("skipping file #{fullname}")
+ else
+ report("start processing file #{fullname}")
+ if filepath =~ /^(.*\/*)(raw|crop|bound)$/io then
+ donepath = $1 + 'done'
+ resultpath = $1 + 'result'
+ case $2
+ when 'raw' then method = 1
+ when 'bound' then method = 2
+ when 'crop' then method = 3
+ else method = 2
+ end
+ report("forcing method #{method}")
+ else
+ method = 2
+ donepath = filepath + '/done'
+ resultpath = filepath + '/result'
+ report("default method #{method}")
+ end
+
+ begin
+ File.makedirs(donepath)
+ File.makedirs(resultpath)
+ rescue
+ report('result path creation fails')
+ end
+
+ if FileTest.directory?(donepath) && FileTest.directory?(resultpath) then
+
+ resultname = resultpath + '/' + filename.sub(/\.[^\.]*$/,'') + '.pdf'
+
+ @commandline.setoption('inputpath', filepath)
+ @commandline.setoption('outputpath', resultpath)
+ @commandline.setoption('method', method)
+
+ if ghostscript.psfile?(fullname) then
+ handle_ghostscript(ghostscript,filename)
+ else
+ handle_magick(magick,filename)
+ end
+
+ sleep(1) # calm down
+
+ if FileTest.file?(fullname) then
+ begin
+ File.copy(fullname,donepath + '/' + filename)
+ File.delete(fullname)
+ rescue
+ report('cleanup fails')
+ end
+ end
+
+ end
+
+ end
+
+ end
+
+ end
+
+ waiting = true
+ end
+
+ end
+
+ private
+
+ def handle_whatever(ghostscript,inkscape,magick,filename)
+ if ghostscript.psfile?(filename) then
+ # report("processing ps file #{filename}")
+ ghostscript.setvariable('pipe',false) if @commandline.option('nopipe')
+ # ghostscript.setvariable('pipe',not @commandline.option('nopipe'))
+ ghostscript.setvariable('colormodel',@commandline.option('colormodel'))
+ ghostscript.setvariable('offset',@commandline.option('offset'))
+ handle_ghostscript(ghostscript,filename)
+ elsif ghostscript.pdffile?(filename) && ghostscript.pdfmethod?(@commandline.option('method')) then
+ # report("processing pdf file #{filename}")
+ handle_ghostscript(ghostscript,filename)
+ elsif inkscape.supported?(filename) then
+ # report("processing non ps/pdf file #{filename}")
+ handle_inkscape(inkscape,filename)
+ elsif magick.supported?(filename) then
+ # report("processing non ps/pdf file #{filename}")
+ handle_magick(magick,filename)
+ end
+ end
+
+ def handle_magick(magick,filename)
+
+ report("converting non-ps file #{filename} into pdf")
+
+ inppath = @commandline.option('inputpath')
+ outpath = @commandline.option('outputpath')
+
+ inppath = inppath + '/' if not inppath.empty?
+ outpath = outpath + '/' if not outpath.empty?
+
+ prefix = @commandline.option('prefix')
+ suffix = @commandline.option('suffix')
+
+ inpfilename = "#{inppath}#{filename}"
+ outfilename = "#{outpath}#{prefix}#{filename.sub(/\.([^\.]*?)$/, '')}#{suffix}.pdf"
+
+ magick.setvariable('inputfile' , inpfilename)
+ magick.setvariable('outputfile', outfilename)
+
+ magick.autoconvert
+
+ end
+
+ def handle_inkscape(inkscape,filename)
+
+ report("converting svg(z) file #{filename} into pdf")
+
+ inppath = @commandline.option('inputpath')
+ outpath = @commandline.option('outputpath')
+
+ inppath = inppath + '/' if not inppath.empty?
+ outpath = outpath + '/' if not outpath.empty?
+
+ prefix = @commandline.option('prefix')
+ suffix = @commandline.option('suffix')
+
+ inpfilename = "#{inppath}#{filename}"
+ outfilename = "#{outpath}#{prefix}#{filename.sub(/\.([^\.]*?)$/, '')}#{suffix}.pdf"
+
+ inkscape.setvariable('inputfile' , inpfilename)
+ inkscape.setvariable('outputfile', outfilename)
+
+ if @commandline.option('verbose') || @commandline.option('debug') then
+ logname = filename.gsub(/\.[^\.]*?$/, '.log')
+ report("log info saved in #{logname}")
+ inkscape.convert(logname) # logname ook doorgeven
+ else
+ inkscape.convert
+ end
+
+ end
+
+ def handle_ghostscript(ghostscript,filename)
+
+ ghostscript.reset
+
+ method = ghostscript.method(@commandline.option('method'))
+ force = ghostscript.method(@commandline.option('force'))
+
+ ghostscript.setvariable('method', method)
+ ghostscript.setvariable('force', force)
+
+ # report("conversion method #{method}")
+
+ inppath = @commandline.option('inputpath')
+ outpath = @commandline.option('outputpath')
+
+ inppath = inppath + '/' if not inppath.empty?
+ outpath = outpath + '/' if not outpath.empty?
+
+ prefix = @commandline.option('prefix')
+ suffix = @commandline.option('suffix')
+
+ ok = false
+
+ if ghostscript.pdfmethod?(method) then
+
+ report("converting pdf file #{filename} into pdf")
+
+ if prefix.empty? && suffix.empty? && inppath.empty? && outpath.empty? then
+ prefix = ghostscript.pdfprefix(method)
+ end
+
+ if ghostscript.pdffile?(filename) then
+
+ filename = filename.sub(/\.pdf$/, '')
+
+ inpfilename = "#{inppath}#{filename}.pdf"
+ outfilename = "#{outpath}#{prefix}#{filename}#{suffix}.pdf"
+
+ ghostscript.setvariable('inputfile' ,inpfilename)
+ ghostscript.setvariable('outputfile',outfilename)
+
+ if FileTest.file?(inpfilename) then
+ ok = ghostscript.convert
+ else
+ report("no file found #{filename}")
+ end
+
+ else
+ report("no pdf file #{filename}")
+ end
+
+ elsif ghostscript.psfile?(filename) then
+
+ if filename =~ /(.*)\.([^\.]*?)$/io then
+ filename, filesuffix = $1, $2
+ else
+ filesuffix = 'eps'
+ end
+
+ report("converting #{filesuffix} (ps) into pdf")
+
+ inpfilename = "#{inppath}#{filename}.#{filesuffix}"
+ outfilename = "#{outpath}#{prefix}#{filename}#{suffix}.pdf"
+
+ ghostscript.setvariable('inputfile' , inpfilename)
+ ghostscript.setvariable('outputfile', outfilename)
+
+ if FileTest.file?(inpfilename) then
+ ok = ghostscript.convert
+ if ! ok && FileTest.file?(outfilename) then
+ begin
+ File.delete(outfilename)
+ rescue
+ end
+ end
+ else
+ report("no file with name #{filename} found")
+ end
+
+ else
+ report('file must be of type eps/ps/ai/pdf')
+ end
+
+ return ok
+
+ end
+
+end
+
+# ook pdf -> pdf onder optie 0, andere kleurruimte
+
+logger = Logger.new(banner.shift)
+commandline = CommandLine.new
+
+commandline.registerflag('debug')
+commandline.registerflag('verbose')
+commandline.registerflag('nopipe')
+
+commandline.registervalue('method',2)
+commandline.registervalue('offset',0)
+
+commandline.registervalue('prefix')
+commandline.registervalue('suffix')
+
+commandline.registervalue('inputpath')
+commandline.registervalue('outputpath')
+
+commandline.registerflag('watch')
+commandline.registerflag('force')
+
+commandline.registervalue('delay',2)
+
+commandline.registervalue('colormodel','cmyk')
+commandline.registervalue('pattern','')
+
+commandline.registeraction('help')
+commandline.registeraction('version')
+
+commandline.registeraction('convert', 'convert ps into pdf')
+commandline.registeraction('request', 'handles exa request file')
+commandline.registeraction('watch', 'watch folders for conversions (untested)')
+
+commandline.expand
+
+logger.verbose if (commandline.option('verbose') || commandline.option('debug'))
+
+Commands.new(commandline,logger,banner).send(commandline.action || 'main')
diff --git a/Master/texmf-dist/scripts/context/ruby/rlxtools.rb b/Master/texmf-dist/scripts/context/ruby/rlxtools.rb
index 7962474eb10..1225dedb301 100644
--- a/Master/texmf-dist/scripts/context/ruby/rlxtools.rb
+++ b/Master/texmf-dist/scripts/context/ruby/rlxtools.rb
@@ -97,20 +97,20 @@ class Commands
report("processing record #{nofrecords} (#{variables['file'] || 'noname'}: #{variables.size} entries)")
if conversion = variables['conversion'] then
report("testing for conversion #{conversion}")
- if suffix = variables['suffix'] then
+ if suffix = variables['suffix'].downcase then
if file = variables['file'] then
report("conversion #{conversion} for suffix #{suffix} for file #{file}")
else
report("conversion #{conversion} for suffix #{suffix}")
end
- pattern = "@name='#{conversion}' and @suffix='#{suffix}'"
+ pattern = "@name='#{conversion}' and @suffix='#{suffix.downcase}'"
if steps = REXML::XPath.first(proc.root,"/rl:manipulators/rl:manipulator[#{pattern}]") then
localsteps = steps.deep_clone
['rl:old','rl:new'].each do |tag|
REXML::XPath.each(localsteps,tag) do |extras|
REXML::XPath.each(extras,"rl:value") do |value|
if name = value.attributes['name'] then
- substititute(value,variables[name.to_s])
+ substititute(value,variables[name.to_s] || '')
end
end
end
@@ -176,7 +176,7 @@ class Commands
end
end
rescue
- report('error in manipulating files')
+ report("error in manipulating files: #{$!}")
end
begin
logname = "#{filename}.log"
@@ -202,7 +202,7 @@ class Commands
return str.strip
end
- def substititute(value,str)
+ def substititute(value,str='')
if str then
begin
if value.attributes.key?('method') then
@@ -247,10 +247,83 @@ class Commands
end
+class Commands
+
+ include CommandBase
+
+ def identify
+ @commandline.arguments.each do |filename|
+ if state = do_identify(filename) then
+ begin
+ File.open(filename+'.rli','w') do |f|
+ f << state
+ end
+ rescue
+ report("error in identifying #{filename}")
+ else
+ report("#{filename} is identified")
+ end
+ end
+ end
+ end
+
+ private
+
+ def do_identify(filename)
+ begin
+ str = nil
+ if FileTest.file?(filename) then
+ result = `identify -format \"x=%x,y=%y,w=%w,h=%h,b=%b\" #{filename}`.chomp.split(',')
+ tags = Hash.new
+ result.each do |r|
+ if rr = r.split("=") then
+ tags[rr[0]] = rr[1]
+ end
+ end
+ size = (tags['b']||0).to_i
+ width = unified(tags['w']||0,tags['x']||'1')
+ height = unified(tags['h']||0,tags['y']||'1')
+ if size > 0 then
+ str = ''
+ str << "<?xml version='1.0' standalone='yes'?>\n"
+ str << "<rl:identify name='#{File.basename(filename)}'>\n"
+ str << " <rl:size>#{size}</rl:size>\n"
+ str << " <rl:path>#{File.dirname(filename).sub(/\\/o,'/')}</rl:path>\n"
+ str << " <rl:width>#{width}</rl:width>\n"
+ str << " <rl:height>#{height}</rl:height>\n"
+ str << "</rl:identify>\n"
+ end
+ else
+ str = nil
+ end
+ rescue
+ str = nil
+ end
+ return str
+ end
+
+ def unified(dim,res)
+ case res
+ when /([\d\.]+)\s*PixelsPerInch/io then
+ sprintf("%.4fin",dim.to_f/$1.to_f)
+ when /([\d\.]+)\s*PixelsPerCentimeter/io then
+ sprintf("%.4fcm",dim.to_f/$1.to_f)
+ when /([\d\.]+)\s*PixelsPerMillimeter/io then
+ sprintf("%.4fmm",dim.to_f/$1.to_f)
+ when /([\d\.]+)\s*PixelsPerPoint/io then
+ sprintf("%.4fbp",dim.to_f/$1.to_f)
+ else
+ sprintf("%.4fbp",dim.to_f)
+ end
+ end
+
+end
+
logger = Logger.new(banner.shift)
commandline = CommandLine.new
commandline.registeraction('manipulate', ' [--test] manipulatorfile resourselog')
+commandline.registeraction('identify', 'filename')
commandline.registeraction('help')
commandline.registeraction('version')
diff --git a/Master/texmf-dist/scripts/context/ruby/rscortool.rb b/Master/texmf-dist/scripts/context/ruby/rscortool.rb
new file mode 100644
index 00000000000..c656fed8547
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/rscortool.rb
@@ -0,0 +1,63 @@
+# program : rscortool
+# copyright : PRAGMA Publishing On Demand
+# version : 1.00 - 2002
+# author : Hans Hagen
+#
+# project : eXaMpLe
+# concept : Hans Hagen
+# info : j.hagen@xs4all.nl
+# www : www.pragma-pod.com / www.pragma-ade.com
+
+require 'rexml/document.rb'
+
+class Array
+
+ def downcase
+ self.collect { |l| l.to_s.downcase }
+ end
+
+end
+
+class SortedXML
+
+ def initialize (filename)
+ return nil if not filename or filename.empty? or not test(?e,filename)
+ @data = REXML::Document.new(File.new(filename),
+ {:ignore_whitespace_nodes => :all,
+ :compress_whitespace => :all})
+ end
+
+ def save (filename)
+ # filename += '.xml' unless filename.match(/\..*?$/)
+ filename += '.xml' unless filename =~ /\..*?$/
+ if not filename.empty? and f = open(filename,'w')
+ @data.write(f,0)
+ f.close
+ end
+ end
+
+ def sort
+ keys = REXML::XPath.match(@data.root,"/contacts/contact/@label")
+ return unless keys
+ keys = keys.downcase
+ records = @data.elements.to_a("/contacts/contact")
+ @data.elements.delete_all("/contacts/contact")
+ keys = keys.collect do |l| # prepare numbers
+ l.gsub(/(\d+)/) do |d| sprintf('%05d', d) end
+ end
+ keys.sort.each do |s|
+ @data.root.add_element(records[keys.index(s)])
+ end
+ end
+
+end
+
+def sortfile (filename)
+ c = SortedXML.new(filename)
+ c.sort
+ c.save('test.xml')
+end
+
+exit if ARGV[0] == nil or ARGV[0].empty?
+
+sortfile(ARGV[0])
diff --git a/Master/texmf-dist/scripts/context/ruby/rsfiltool.rb b/Master/texmf-dist/scripts/context/ruby/rsfiltool.rb
new file mode 100644
index 00000000000..f3abfdfc703
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/rsfiltool.rb
@@ -0,0 +1,340 @@
+# program : rsfiltool
+# copyright : PRAGMA Publishing On Demand
+# version : 1.01 - 2002
+# author : Hans Hagen
+#
+# project : eXaMpLe
+# concept : Hans Hagen
+# info : j.hagen@xs4all.nl
+# www : www.pragma-pod.com / www.pragma-ade.com
+
+unless defined? ownpath
+ ownpath = $0.sub(/[\\\/]\w*?\.rb/i,'')
+ $: << ownpath
+end
+
+# --name=a,b,c.xml wordt names [a.xml, b.xml, c.xml]
+# --path=x/y/z/a,b,c.xml wordt [x/y/z/a.xml, x/y/z/b.xml, x/y/z/c.xml]
+
+# todo : split session stuff from xmpl/base into an xmpl/session module and "include xmpl/session" into base and here and ...
+
+require 'ftools'
+require 'xmpl/base'
+require 'xmpl/switch'
+require 'xmpl/request'
+
+session = Example.new('rsfiltool', '1.01', 'PRAGMA POD')
+
+filterprefix = 'rsfil-'
+
+commandline = CommandLine.new
+
+commandline.registerflag('submit')
+commandline.registerflag('fetch')
+commandline.registerflag('report')
+#commandline.registerflag('split')
+commandline.registerflag('stamp')
+commandline.registerflag('silent')
+commandline.registerflag('request')
+commandline.registerflag('nobackup')
+
+commandline.registervalue('filter')
+
+commandline.registervalue('root')
+commandline.registervalue('path')
+commandline.registervalue('name')
+
+commandline.expand
+
+session.set('log.silent',true) if commandline.option('silent')
+
+session.inherit(commandline)
+
+session.identify
+
+# session.exit unless session.loadenvironment
+
+def prepare (session)
+
+ # Normally the system provides the file, but a user can provide the rest; in
+ # order to prevent problems with keying in names, we force lowercase names.
+
+ session.set('option.file',session.get('argument.first')) if session.get('option.file').empty?
+
+ root = session.get('option.root').downcase
+ path = session.get('option.path').downcase
+ name = session.get('option.name').downcase
+ file = session.get('option.file').downcase
+
+ session.error('provide file') if file.empty?
+ session.error('provide root') if root.empty?
+
+ filter = session.get('option.filter').downcase
+ trash = session.get('option.trash').downcase
+
+ trash = '' unless FileTest.directory?(trash)
+
+ if not filter.empty? then
+ begin
+ require filter
+ rescue Exception
+ begin
+ require filterprefix + filter
+ rescue Exception
+ session.error('invalid filter')
+ end
+ end
+ begin
+ if RSFIL::valid?(file) then
+ split = RSFIL::split(file,name)
+ path = if split[0].downcase then split[0] else '' end
+ file = if split[1].downcase then split[1] else '' end
+ name = if split[2].downcase then split[2] else '' end
+ session.report('split result',split.inspect)
+ session.error('unable to split off path') if path.empty?
+ session.error('unable to split off file') if file.empty?
+ session.error('unable to split off name') if name.empty?
+ session.set('option.path',path) if path
+ session.set('option.file',file) if file
+ session.set('option.name',name) if name
+ else
+ session.error('invalid filename', file)
+ unless trash.empty? then
+ File.copy(file,trash + '/' + file)
+ end
+ end
+ rescue
+ session.error('unable to split',file,'with filter',filter)
+ end
+ end
+
+ session.error('provide path') if path.empty?
+
+ session.error('invalid root') unless test(?d,root)
+
+ exit if session.error?
+
+ session.set('fb.filename',file)
+
+ path.gsub!(/\\/o, '/')
+ path.gsub!(/\s/o, '')
+
+ path = root + '/' + path
+
+ # multiple paths
+
+ if path =~ /^(.*)\/(.*?)$/o then
+ prepath = $1
+ postpath = $2
+ paths = postpath.split(/\,/)
+ paths.collect! do |p|
+ prepath + '/' + p
+ end
+ else
+ paths = Array.new
+ paths.push(path)
+ end
+
+ paths.collect! do |p|
+ p.gsub(/[^a-zA-Z0-9\s\-\_\/\.\:]/o, '-')
+ end
+
+ file.gsub!(/\\/o, '/')
+ file.gsub!(/[^a-zA-Z0-9\s\-\_\/\.\:]/o, '-')
+
+# if session.get('option.split')
+# if file =~ /(.*)\.(.*?)$/o
+# path = path + '/' + $1
+# else
+# session.error('nothing to split in filename')
+# end
+# end
+
+ paths.each do |p|
+ begin
+ session.report('creating path', p)
+ File.makedirs(p)
+ rescue
+ session.error('unable to create path', p)
+ end
+ end
+
+ name.gsub!(/\s+/,'')
+
+ # can be a,b,c.exa.saved => a.exa.saved,b.exa.saved,c.exa.saved
+
+ if name =~ /(.*?)\.(.*)$/
+ name = $1
+ suffix = $2
+ names = name.split(/\,/)
+ names.collect! do |n|
+ n + '.' + suffix
+ end
+ name = names.join(',')
+ else
+ names = name.split(/\,/)
+ end
+
+ session.set('fb.path',path)
+ session.set('fb.paths',paths)
+ session.set('fb.name',name)
+ session.set('fb.names',names)
+
+end
+
+def thefullname(path,file,name='')
+
+ filename = file.gsub(/.*?\//, '')
+
+ if name.empty?
+ path + '/' + filename
+ else
+ unless name =~ /\..+$/o # unless name.match(/\..+$/o)
+ if filename =~ /(\..+)$/o # if file.match(/(\..+)$/o)
+ name = name + $1
+ end
+ end
+ path + '/' + name
+ end
+
+end
+
+def submitfile (session)
+
+ filename = session.get('fb.filename')
+ paths = session.get('fb.paths')
+ names = session.get('fb.names')
+
+ paths.each do |path|
+ session.report('submitting path',path)
+ names.each do |name|
+ session.report('submitting file',filename,'to',name)
+ submit(session,path,filename,name)
+ end
+ end
+
+end
+
+def submitlist (session)
+
+ requestname = session.get('fb.filename')
+ paths = session.get('fb.paths')
+
+ if test(?e,requestname)
+ session.report('loading request file', requestname)
+ if request = ExaRequest.new(requestname)
+ filelist = request.files
+ if filelist && (filelist.size > 0)
+ filelist.each do |filename|
+ paths.each do |path|
+ session.report('submitting file from list', filename)
+ submit(session,path,filename,request.naturalname(filename))
+ end
+ end
+ else
+ session.warning('no filelist in', requestname)
+ end
+ else
+ session.warning('unable to load', requestname)
+ end
+ else
+ session.warning('no file', requestname)
+ end
+
+end
+
+def submit (session, path, filename, newname)
+
+ fullname = thefullname(path,newname)
+
+ unless test(?e,filename)
+ session.warning('no file to submit', filename)
+ return
+ end
+
+ begin
+ File.copy(fullname,fullname+'.old') if ! session.get('nobackup') && test(?e,fullname)
+ if test(?e,filename)
+ File.copy(filename,fullname)
+ session.report('submit', filename, 'in', fullname)
+ if session.get('option.stamp')
+ f = open(fullname+'.tim','w')
+ f.puts(Time.now.gmtime.strftime("%a %b %d %H:%M:%S %Y"))
+ f.close
+ end
+ else
+ session.error('unable to locate', filename)
+ end
+ rescue
+ session.error('unable to move', filename, 'to', fullname)
+ end
+
+end
+
+def fetch (session)
+
+ filename = session.get('fb.filename')
+ paths = session.get('fb.paths')
+ name = session.get('fb.name')
+
+ begin
+ File.copy(filename,filename+'.old') if ! session.get('nobackup') && test(?e,filename)
+ paths.each do |path|
+ # fullname = thefullname(path,request.naturalname(filename))
+ # fullname = thefullname(path,filename)
+ fullname = thefullname(path,name)
+ if test(?e,fullname)
+ File.copy(fullname,filename)
+ session.report('fetch', filename, 'from', fullname)
+ return
+ else
+ session.report('file',fullname, 'is not present')
+ end
+ end
+ rescue
+ session.error('unable to fetch file from path')
+ end
+ session.error('no file',filename, 'fetched') unless test(?e,filename)
+
+end
+
+def report (session)
+
+ filename = session.get('fb.filename')
+ paths = session.get('fb.paths')
+
+ paths.each do |path|
+ fullname = thefullname(path,request.naturalname(filename))
+ if test(?e,fullname)
+ begin
+ session.report('file', fullname)
+ session.report('size', test(?s,fullname))
+ if test(?e,fullname+'.tim')
+ str = IO.readlines(fullname+'.tim')
+ # str = IO.read(fullname+'.tim')
+ session.report('time', str)
+ end
+ rescue
+ session.error('unable to report about', fullname)
+ end
+ end
+ end
+
+end
+
+if session.get('option.submit')
+ prepare(session)
+ if session.get('option.request')
+ submitlist(session)
+ else
+ submitfile(session)
+ end
+elsif session.get('option.fetch')
+ prepare(session)
+ fetch(session)
+elsif session.get('option.report')
+ prepare(session)
+ report(session)
+else
+ session.report('provide action')
+end
diff --git a/Master/texmf-dist/scripts/context/ruby/rslibtool.rb b/Master/texmf-dist/scripts/context/ruby/rslibtool.rb
new file mode 100644
index 00000000000..7ae5efb647e
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/rslibtool.rb
@@ -0,0 +1,114 @@
+# program : rslibtool
+# copyright : PRAGMA Publishing On Demand
+# version : 1.00 - 2002
+# author : Hans Hagen
+#
+# project : eXaMpLe
+# concept : Hans Hagen
+# info : j.hagen@xs4all.nl
+# www : www.pragma-pod.com / www.pragma-ade.com
+
+# --add --base=filename --path=directory pattern
+# --remove --base=filename --path=directory label
+# --sort --base=filename --path=directory
+# --purge --base=filename --path=directory
+# --dummy --base=filename
+# --namespace
+
+# rewrite
+
+unless defined? ownpath
+ ownpath = $0.sub(/[\\\/]\w*?\.rb/i,'')
+ $: << ownpath
+end
+
+require 'rslb/base'
+require 'xmpl/base'
+require 'xmpl/switch'
+
+session = Example.new('rslbtool', '1.0', 'PRAGMA POD')
+
+session.identify
+
+commandline = CommandLine.new
+
+commandline.registerflag('add')
+commandline.registerflag('remove')
+commandline.registerflag('delete')
+commandline.registerflag('sort')
+commandline.registerflag('purge')
+commandline.registerflag('dummy')
+commandline.registerflag('process')
+commandline.registerflag('namespace')
+
+commandline.registervalue('prefix')
+commandline.registervalue('base')
+commandline.registervalue('path')
+commandline.registervalue('result')
+commandline.registervalue('texexec')
+commandline.registervalue('zipalso')
+
+commandline.expand
+
+session.inherit(commandline)
+
+base = session.get('option.base')
+path = session.get('option.path')
+
+base = 'rslbtool.xml' if base.empty?
+
+# when path is given, assume that arg list is list of
+# suffixes, else assume it is a list of globbed filespec
+
+if path.empty?
+ base += '.xml' unless base =~ /\..+$/
+ list = commandline.arguments
+else
+ Dir.chdir(File.dirname(path))
+ list = Dir.glob("*.{#{commandline.arguments.join(',')}}")
+end
+
+begin
+ reslib = Resource.new(base,session.get('option.namespace'))
+ reslib.load(base)
+rescue
+ session.error('problems with loading base')
+ exit
+end
+
+unless session.get('option.texexec').empty?
+ reslib.set_texexec(session.get('option.texexec'))
+end
+
+if session.get('option.add')
+
+ session.report('adding records', list)
+ reslib.add_figures(list,session.get('option.prefix'))
+
+elsif session.get('option.remove') or session.get('option.delete')
+
+ session.report('removing records')
+ reslib.delete_figures(list)
+
+elsif session.get('option.sort')
+
+ session.report('sorting records')
+ reslib.sort_figures()
+
+elsif session.get('option.purge')
+
+ session.report('purging records')
+ reslib.purge_figures()
+
+elsif session.get('option.dummy')
+
+ session.report('creating dummy records')
+ reslib.create_dummies(session.get('option.process'),session.get('option.result'),session.get('option.zipalso'))
+
+else
+
+ session.warning('provide action')
+
+end
+
+reslib.save(base)
diff --git a/Master/texmf-dist/scripts/context/ruby/runtools.rb b/Master/texmf-dist/scripts/context/ruby/runtools.rb
new file mode 100644
index 00000000000..9c504845ab1
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/runtools.rb
@@ -0,0 +1,505 @@
+require 'timeout'
+require 'ftools'
+require 'rbconfig'
+
+class File
+
+ # we don't want a/b//c
+ #
+ # puts File.join('a','b','c')
+ # puts File.join('/a','b','c')
+ # puts File.join('a:','b','c')
+ # puts File.join('a/','/b/','c')
+ # puts File.join('/a','/b/','c')
+ # puts File.join('//a/','/b/','c')
+
+ def File.join(*list)
+ path, prefix = [*list].flatten.join(File::SEPARATOR), ''
+ path.sub!(/^([\/]+)/) do
+ prefix = $1
+ ''
+ end
+ path.gsub!(/([\\\/]+)/) do
+ File::SEPARATOR
+ end
+ prefix + path
+ end
+
+end
+
+
+class Job
+
+ $ownfile, $ownpath = '', ''
+
+ def Job::set_own_path(file)
+ $ownfile, $ownpath = File.basename(file), File.expand_path(File.dirname(file))
+ $: << $ownpath
+ end
+
+ def Job::ownfile
+ $ownfile
+ end
+
+ def Job::ownpath
+ $ownpath
+ end
+
+end
+
+class Job
+
+ def initialize
+ @startuppath = Dir.getwd
+ @log = Array.new
+ @testmode = false
+ @ownpath = $ownpath
+ @paths = Array.new
+ end
+
+ def exit(showlog=false)
+ Dir.chdir(@startuppath)
+ show_log if showlog
+ Kernel::exit
+ end
+
+ def platform
+ case Config::CONFIG['host_os']
+ when /mswin/ then :windows
+ else :unix
+ end
+ end
+
+ def path(*components)
+ File.join([*components].flatten)
+ end
+
+ def found(name)
+ FileTest.file?(path(name)) || FileTest.directory?(path(name))
+ end
+
+ def binary(name)
+ if platform == :windows then
+ name.sub(/\.[^\/]+$/o,'') + '.exe'
+ else
+ name
+ end
+ end
+
+ def suffixed(name,suffix)
+ if name =~ /\.[^\/]+$/o then
+ name
+ else
+ name + '.' + suffix
+ end
+ end
+
+ def expanded(*name)
+ File.expand_path(File.join(*name))
+ end
+
+ def argument(n,default=nil)
+ ARGV[n] || default
+ end
+
+ def variable(name,default='')
+ ENV[name] || default
+ end
+
+ def change_dir(*dir)
+ dir, old = expanded(path(*dir)), expanded(Dir.getwd)
+ unless old == dir then
+ begin
+ Dir.chdir(dir)
+ rescue
+ error("unable to change to path #{dir}")
+ else
+ if old == dir then
+ error("error in changing to path #{dir}")
+ else
+ message("changed to path #{dir}")
+ end
+ end
+ end
+ # return File.expand_path(Dir.getwd)
+ end
+
+ def delete_dir(*dir)
+ begin
+ dir = path(*dir)
+ pattern = "#{dir}/**/*"
+ puts("analyzing dir #{pattern}")
+ files = Dir.glob(pattern).sort.reverse
+ files.each do |f|
+ begin
+ # FileTest.file?(f) fails on .whatever files
+ File.delete(f)
+ rescue
+ # probably directory
+ else
+ puts("deleting file #{f}")
+ end
+ end
+ files.each do |f|
+ begin
+ Dir.rmdir(f)
+ rescue
+ # strange
+ else
+ message("deleting path #{f}")
+ end
+ end
+ begin
+ Dir.rmdir(dir)
+ rescue
+ # strange
+ else
+ message("deleting parent #{dir}")
+ end
+ Dir.glob(pattern).sort.each do |f|
+ warning("unable to delete #{f}")
+ end
+ rescue
+ warning("unable to delete path #{File.expand_path(dir)} (#{$!})")
+ else
+ message("path #{File.expand_path(dir)} removed")
+ end
+ end
+
+
+ def create_dir(*dir)
+ begin
+ dir = path(*dir)
+ unless FileTest.directory?(dir) then
+ File.makedirs(dir)
+ else
+ return
+ end
+ rescue
+ error("unable to create path #{File.expand_path(dir)}")
+ else
+ message("path #{File.expand_path(dir)} created")
+ end
+ end
+
+ def show_dir(delay=0)
+ _puts_("\n")
+ print Dir.getwd + ' '
+ begin
+ timeout(delay) do
+ loop do
+ print '.'
+ sleep(1)
+ end
+ end
+ rescue TimeoutError
+ # ok
+ end
+ _puts_("\n\n")
+ end
+
+ def copy_file(from,to='.',exclude=[])
+ to, ex = path(to), [exclude].flatten
+ Dir.glob(path(from)).each do |file|
+ tofile = to.sub(/[\.\*]$/o) do File.basename(file) end
+ _do_copy_(file,tofile) unless ex.include?(File.extname(file))
+ end
+ end
+
+ def clone_file(from,to)
+ if from and to then
+ to = File.join(File.basename(from),to) if File.basename(to).empty?
+ _do_copy_(from,to)
+ end
+ end
+
+ def copy_dir(from,to,pattern='*',exclude=[]) # recursive
+ pattern = '*' if ! pattern or pattern.empty?
+ if from and to and File.expand_path(from) != File.expand_path(to) then
+ ex = [exclude].flatten
+ Dir.glob("#{from}/**/#{pattern}").each do |file|
+ unless ex.include?(File.extname(file)) then
+ _do_copy_(file,File.join(to,file.sub(/^#{from}/, '')))
+ end
+ end
+ end
+ end
+
+ def copy_path(from,to,pattern='*',exclude=[]) # non-recursive
+ pattern = '*' if ! pattern or pattern.empty?
+ if from and to and File.expand_path(from) != File.expand_path(to) then
+ ex = [exclude].flatten
+ Dir.glob("#{from}/#{pattern}").each do |file|
+ unless ex.include?(File.extname(file)) then
+ _do_copy_(file,File.join(to,file.sub(/^#{from}/, '')))
+ end
+ end
+ end
+ end
+
+ def _do_copy_(file,tofile)
+ if FileTest.file?(file) and File.expand_path(file) != File.expand_path(tofile) then
+ begin
+ create_dir(File.dirname(tofile))
+ File.copy(file,tofile)
+ rescue
+ error("unable to copy #{file} to #{tofile}")
+ else
+ message("file #{file} copied to #{tofile}")
+ end
+ else
+ puts("file #{file} is not copied")
+ end
+ end
+
+ def rename_file(from,to)
+ from, to = path(from), path(to)
+ begin
+ File.move(from,to)
+ rescue
+ error("unable to rename #{from} to #{to}")
+ else
+ message("#{from} renamed to #{to}")
+ end
+ end
+
+ def delete_file(pattern)
+ Dir.glob(path(pattern)).each do |file|
+ _do_delete_(file)
+ end
+ end
+
+ def delete_files(*files)
+ [*files].flatten.each do |file|
+ _do_delete_(file)
+ end
+ end
+
+ def _do_delete_(file)
+ if FileTest.file?(file) then
+ begin
+ File.delete(file)
+ rescue
+ error("unable to delete file #{file}")
+ else
+ message("file #{file} deleted")
+ end
+ else
+ message("no file #{File.expand_path(file)}")
+ end
+ end
+
+ def show_log(filename=nil)
+ if filename then
+ begin
+ if f = File.open(filename,'w') then
+ @log.each do |line|
+ f.puts(line)
+ end
+ f.close
+ end
+ message("log data written to #{filename}")
+ rescue
+ error("unable to write log to #{filename}")
+ end
+ else
+ @log.each do |line|
+ _puts_(line)
+ end
+ end
+ end
+
+ def _puts_(str)
+ begin
+ STDOUT.puts( str)
+ rescue
+ STDERR.puts("error while writing '#{str}' to terminal")
+ end
+ end
+
+ def puts(message)
+ @log << message
+ _puts_(message)
+ end
+
+ def error(message)
+ puts("! #{message}")
+ exit
+ end
+
+ def warning(message)
+ puts("- #{message}")
+ end
+
+ def message(message)
+ puts("+ #{message}")
+ end
+
+ def export_variable(variable,value)
+ value = path(value) if value.class == Array
+ ENV[variable] = value
+ message("environment variable #{variable} set to #{value}")
+ return value
+ end
+
+ def execute_command(*command)
+ begin
+ command = [*command].flatten.join(' ')
+ message("running '#{command}'")
+ _puts_("\n")
+ ok = system(command)
+ _puts_("\n")
+ if true then # ok then
+ message("finished '#{command}'")
+ else
+ error("error in running #{command}")
+ end
+ rescue
+ error("unable to run #{command}")
+ end
+ end
+
+ def pipe_command(*command)
+ begin
+ command = [*command].flatten.join(' ')
+ message("running '#{command}'")
+ result = `#{command}`
+ _puts_("\n")
+ _puts_(result)
+ _puts_("\n")
+ rescue
+ error("unable to run #{command}")
+ end
+ end
+
+ def execute_script(script)
+ script = suffixed(script,'rb')
+ script = path(script_path,File.basename(script)) unless found(script)
+ if found(script) then
+ begin
+ message("loading script #{script}")
+ load(script)
+ rescue
+ error("error in loading script #{script} (#{$!})")
+ else
+ message("script #{script} finished")
+ end
+ else
+ warning("no script #{script}")
+ end
+ end
+
+ def execute_binary(*command)
+ command = [*command].flatten.join(' ').split(' ')
+ command[0] = binary(command[0])
+ execute_command(command)
+ end
+
+ def extend_path(pth)
+ export_variable('PATH',"#{path(pth)}#{File::PATH_SEPARATOR}#{ENV['PATH']}")
+ end
+
+ def startup_path
+ @startuppath
+ end
+
+ def current_path
+ Dir.getwd
+ end
+
+ def script_path
+ @ownpath
+ end
+
+ def push_path(newpath)
+ newpath = File.expand_path(newpath)
+ @paths.push(newpath)
+ change_dir(newpath)
+ end
+
+ def pop_path
+ change_dir(if @paths.length > 0 then @paths.pop else @startuppath end)
+ end
+
+ # runner = Runner.new
+ # runner.texmfstart('texexec','--help')
+
+ def texmfstart(name,args,verbose=false)
+ command = ['texmfstart',"#{'--verbose' if verbose}",name,args].flatten.join(' ')
+ system(command)
+ end
+
+end
+
+class Job
+
+ # copied from texmfstart and patched (message/error), different name
+
+ def use_tree(tree)
+ unless tree.empty? then
+ begin
+ setuptex = File.join(tree,'setuptex.tmf')
+ if FileTest.file?(setuptex) then
+ message("tex tree : #{setuptex}")
+ ENV['TEXPATH'] = tree.sub(/\/+$/,'') # + '/'
+ ENV['TMP'] = ENV['TMP'] || ENV['TEMP'] || ENV['TMPDIR'] || ENV['HOME']
+ case RUBY_PLATFORM
+ when /(mswin|bccwin|mingw|cygwin)/i then ENV['TEXOS'] = ENV['TEXOS'] || 'texmf-mswin'
+ when /(linux)/i then ENV['TEXOS'] = ENV['TEXOS'] || 'texmf-linux'
+ when /(darwin|rhapsody|nextstep)/i then ENV['TEXOS'] = ENV['TEXOS'] || 'texmf-macosx'
+ # when /(netbsd|unix)/i then # todo
+ else # todo
+ end
+ ENV['TEXMFOS'] = "#{ENV['TEXPATH']}/#{ENV['TEXOS']}"
+ message("preset : TEXPATH => #{ENV['TEXPATH']}")
+ message("preset : TEXOS => #{ENV['TEXOS']}")
+ message("preset : TEXMFOS => #{ENV['TEXMFOS']}")
+ message("preset : TMP => #{ENV['TMP']}")
+ IO.readlines(File.join(tree,'setuptex.tmf')).each do |line|
+ case line
+ when /^[\#\%]/ then
+ # comment
+ when /^(.*?)\s+\=\s+(.*)\s*$/ then
+ k, v = $1, $2
+ ENV[k] = v.gsub(/\%(.*?)\%/) do
+ ENV[$1] || ''
+ end
+ message("user set : #{k} => #{ENV[k]}")
+ end
+ end
+ else
+ warning("no setup file '#{setuptex}', tree not initialized") # no error
+ end
+ rescue
+ warning("error in setup: #{$!}")
+ end
+ end
+ end
+
+end
+
+Job::set_own_path($0)
+
+if Job::ownfile == 'runtools.rb' then
+
+ begin
+ script = ARGV.shift
+ if script then
+ script += '.rb' if File.extname(script).empty?
+ fullname = File.expand_path(script)
+ fullname = File.join(Job::ownpath,script) unless FileTest.file?(fullname)
+ if FileTest.file?(fullname) then
+ puts("loading script #{fullname}")
+ Job::set_own_path(fullname)
+ load(fullname)
+ else
+ puts("unknown script #{fullname}")
+ end
+ else
+ puts("provide script name")
+ end
+ rescue
+ puts("fatal error: #{$!}")
+ end
+
+end
diff --git a/Master/texmf-dist/scripts/context/ruby/texexec.rb b/Master/texmf-dist/scripts/context/ruby/texexec.rb
new file mode 100644
index 00000000000..1a7175f230e
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/texexec.rb
@@ -0,0 +1,708 @@
+banner = ['TeXExec', 'version 6.2.0', '1997-2006', 'PRAGMA ADE/POD']
+
+unless defined? ownpath
+ ownpath = $0.sub(/[\\\/][a-z0-9\-]*?\.rb/i,'')
+ $: << ownpath
+end
+
+require 'ftools' # needed ?
+
+require 'base/switch'
+require 'base/logger'
+require 'base/variables'
+require 'base/system'
+
+require 'base/state' # needed ?
+require 'base/file' # needed ?
+
+require 'base/tex'
+require 'base/texutil'
+require 'base/kpse'
+
+class Commands
+
+ include CommandBase
+
+ def make
+ if job = TEX.new(logger) then
+ prepare(job)
+ # bonus, overloads language switch !
+ job.setvariable('language','all') if @commandline.option('all')
+ if @commandline.arguments.length > 0 then
+ if @commandline.arguments.first == 'all' then
+ job.setvariable('texformats',job.defaulttexformats)
+ job.setvariable('mpsformats',job.defaultmpsformats)
+ else
+ job.setvariable('texformats',@commandline.arguments)
+ job.setvariable('mpsformats',@commandline.arguments)
+ end
+ end
+ job.makeformats
+ job.inspect && Kpse.inspect if @commandline.option('verbose')
+ end
+ end
+
+ def check
+ if job = TEX.new(logger) then
+ job.checkcontext
+ job.inspect && Kpse.inspect if @commandline.option('verbose')
+ end
+ end
+
+ def main
+ if @commandline.arguments.length>0 then
+ process
+ else
+ help
+ end
+ end
+
+ def process
+ if job = TEX.new(logger) then
+ job.setvariable('files',@commandline.arguments)
+ prepare(job)
+ job.processtex
+ job.inspect && Kpse.inspect if @commandline.option('verbose')
+ exit 1 if job.error?
+ end
+ end
+
+ def mptex
+ if job = TEX.new(logger) then
+ job.setvariable('files',@commandline.arguments)
+ prepare(job)
+ job.processmptex
+ job.inspect && Kpse.inspect if @commandline.option('verbose')
+ exit 1 if job.error?
+ end
+ end
+
+ def mpxtex
+ if job = TEX.new(logger) then
+ job.setvariable('files',@commandline.arguments)
+ prepare(job)
+ job.processmpxtex
+ job.inspect && Kpse.inspect if @commandline.option('verbose')
+ exit 1 if job.error?
+ end
+ end
+
+ def mpgraphic
+ if job = TEX.new(logger) then
+ job.setvariable('files',@commandline.arguments)
+ prepare(job)
+ job.processmpgraphic
+ job.inspect && Kpse.inspect if @commandline.option('verbose')
+ exit 1 if job.error?
+ end
+ end
+
+ # hard coded goodies # to be redone as s-ctx-.. with vars passed as such
+
+ def listing
+ if job = TEX.new(logger) then
+ prepare(job)
+ job.cleanuptemprunfiles
+ files = @commandline.arguments.sort
+ if files.length > 0 then
+ if f = File.open(job.tempfilename('tex'),'w') then
+ backspace = @commandline.checkedoption('backspace', '1.5cm')
+ topspace = @commandline.checkedoption('topspace', '1.5cm')
+ pretty = @commandline.option('pretty')
+ f << "% interface=english\n"
+ f << "\\setupbodyfont[11pt,tt]\n"
+ f << "\\setuplayout\n"
+ f << " [topspace=#{topspace},backspace=#{backspace},\n"
+ f << " header=0cm,footer=1.5cm,\n"
+ f << " width=middle,height=middle]\n"
+ f << "\\setuptyping[lines=yes]\n"
+ f << "\\setuptyping[option=color]\n" if pretty
+ f << "\\starttext\n";
+ files.each do |filename|
+ report("list file: #{filename}")
+ cleanname = cleantexfilename(filename).downcase
+ f << "\\page\n"
+ f << "\\setupfootertexts[\\tttf #{cleanname}][\\tttf \\pagenumber]\n"
+ f << "\\typefile{#{filename}}\n"
+ end
+ f << "\\stoptext\n"
+ f.close
+ job.setvariable('interface','english')
+ job.setvariable('simplerun',true)
+ # job.setvariable('nooptionfile',true)
+ job.setvariable('files',[job.tempfilename])
+ job.processtex
+ else
+ report('no files to list')
+ end
+ else
+ report('no files to list')
+ end
+ job.cleanuptemprunfiles
+ end
+ end
+
+ def figures
+ # this one will be redone using rlxtools
+ if job = TEX.new(logger) then
+ prepare(job)
+ job.cleanuptemprunfiles
+ files = @commandline.arguments.sort
+ if files.length > 0 then
+ if f = File.open(job.tempfilename('tex'),'w') then
+ # will be replaced, does not work any more
+ Kpse.runscript('texutil.pl',files.join(' '),'--figures')
+ figures = @commandline.checkedoption('method', 'a').downcase
+ paperoffset = @commandline.checkedoption('paperoffset', '0pt')
+ backspace = @commandline.checkedoption('backspace', '1.5cm')
+ topspace = @commandline.checkedoption('topspace', '1.5cm')
+ boxtype = @commandline.checkedoption('boxtype','')
+ f << "% format=english\n";
+ f << "\\setuplayout\n";
+ f << " [topspace=#{topspace},backspace=#{backspace},\n"
+ f << " header=1.5cm,footer=0pt,\n";
+ f << " width=middle,height=middle]\n";
+ if @commandline.option('fullscreen') then
+ f << "\\setupinteraction\n";
+ f << " [state=start]\n";
+ f << "\\setupinteractionscreen\n";
+ f << " [option=max]\n";
+ end
+ boxtype += "box" unless boxtype.empty? || (boxtype =~ /box$/io)
+ f << "\\starttext\n";
+ f << "\\showexternalfigures[alternative=#{figures},offset=#{paperoffset},size=#{boxtype}]\n";
+ f << "\\stoptext\n";
+ f.close
+ job.setvariable('interface','english')
+ job.setvariable('simplerun',true)
+ # job.setvariable('nooptionfile',true)
+ job.setvariable('files',[job.tempfilename])
+ job.processtex
+ File.silentdelete('texutil.tuf')
+ else
+ report('no figures to show')
+ end
+ else
+ report('no figures to show')
+ end
+ job.cleanuptemprunfiles
+ end
+ end
+
+ def modules
+ if job = TEX.new(logger) then
+ prepare(job)
+ job.cleanuptemprunfiles
+ files = @commandline.arguments.sort
+ msuffixes = ['tex','mp','pl','pm','rb']
+ if files.length > 0 then
+ files.each do |fname|
+ fnames = Array.new
+ if FileTest.file?(fname) then
+ fnames << fname
+ else
+ msuffixes.each do |fsuffix|
+ fnames << File.suffixed(fname,fsuffix)
+ end
+ end
+ fnames.each do |ffname|
+ if msuffixes.include?(File.splitname(ffname)[1]) && FileTest.file?(ffname) then
+ if mod = File.open(job.tempfilename('tex'),'w') then
+ Kpse.runscript('ctxtools',ffname,'--document')
+ if ted = File.silentopen(File.suffixed(ffname,'ted')) then
+ firstline = ted.gets
+ if firstline =~ /interface=/o then
+ mod << firstline
+ else
+ mod << "% interface=en\n"
+ end
+ ted.close
+ else
+ mod << "% interface=en\n"
+ end
+ mod << "\\usemodule[abr-01,mod-01]\n"
+ mod << "\\def\\ModuleNumber{1}\n"
+ mod << "\\starttext\n"
+ # todo: global file too
+ mod << "\\readlocfile{#{File.suffixed(ffname,'ted')}}{}{}\n"
+ mod << "\\stoptext\n"
+ mod.close
+ job.setvariable('interface','english') # redundant
+ job.setvariable('simplerun',true)
+ # job.setvariable('nooptionfile',true)
+ job.setvariable('files',[job.tempfilename])
+ job.processtex
+ ["dvi", "pdf","tuo"].each do |s|
+ File.silentrename(job.tempfilename(s),File.suffixed(ffname,s));
+ end
+ end
+ end
+ end
+ end
+ else
+ report('no modules to process')
+ end
+ job.cleanuptemprunfiles
+ end
+ end
+
+ def arrangeoutput
+ if job = TEX.new(logger) then
+ prepare(job)
+ job.cleanuptemprunfiles
+ files = @commandline.arguments.sort
+ if files.length > 0 then
+ if f = File.open(job.tempfilename('tex'),'w') then
+ emptypages = @commandline.checkedoption('addempty', '')
+ paperoffset = @commandline.checkedoption('paperoffset', '0cm')
+ textwidth = @commandline.checkedoption('textwidth', '0cm')
+ backspace = @commandline.checkedoption('backspace', '0cm')
+ topspace = @commandline.checkedoption('topspace', '0cm')
+ f << "\\definepapersize\n"
+ f << " [offset=#{paperoffset}]\n"
+ f << "\\setuplayout\n"
+ f << " [backspace=#{backspace},\n"
+ f << " topspace=#{topspace},\n"
+ f << " marking=on,\n" if @commandline.option('marking')
+ f << " width=middle,\n"
+ f << " height=middle,\n"
+ f << " location=middle,\n"
+ f << " header=0pt,\n"
+ f << " footer=0pt]\n"
+ unless @commandline.option('noduplex') then
+ f << "\\setuppagenumbering\n"
+ f << " [alternative=doublesided]\n"
+ end
+ f << "\\starttext\n"
+ files.each do |filename|
+ report("arranging file #{filename}")
+ f << "\\insertpages\n"
+ f << " [#{filename}]\n"
+ f << " [#{emptypages}]\n" unless emptypages.empty?
+ f << " [width=#{textwidth}]\n"
+ end
+ f << "\\stoptext\n"
+ f.close
+ job.setvariable('interface','english')
+ job.setvariable('simplerun',true)
+ job.setvariable('arrange',true)
+ # job.setvariable('nooptionfile',true)
+ job.setvariable('files',[job.tempfilename])
+ job.processtex
+ else
+ report('no files to arrange')
+ end
+ else
+ report('no files to arrange')
+ end
+ job.cleanuptemprunfiles
+ end
+ end
+
+ def selectoutput
+ if job = TEX.new(logger) then
+ prepare(job)
+ job.cleanuptemprunfiles
+ files = @commandline.arguments.sort
+ if files.length > 0 then
+ if f = File.open(job.tempfilename('tex'),'w') then
+ selection = @commandline.checkedoption('selection', '')
+ paperoffset = @commandline.checkedoption('paperoffset', '0cm')
+ textwidth = @commandline.checkedoption('textwidth', '0cm')
+ backspace = @commandline.checkedoption('backspace', '0cm')
+ topspace = @commandline.checkedoption('topspace', '0cm')
+ paperformat = @commandline.checkedoption('paperformat', 'A4*A4').split(/[\*x]/o)
+ from, to = paperformat[0] || 'A4', paperformat[1] || paperformat[0] || 'A4'
+ if from == 'fit' or to == 'fit' then
+ f << "\\getfiguredimensions[#{files.first}]\n"
+ if from == 'fit' then
+ f << "\\expanded{\\definepapersize[from-fit][width=\\figurewidth,height=\\figureheight]}\n"
+ from = 'from-fit'
+ end
+ if to == 'fit' then
+ f << "\\expanded{\\definepapersize[to-fit][width=\\figurewidth,height=\\figureheight]}\n"
+ to = 'to-fit'
+ end
+ end
+ job.setvariable('paperformat','') # else overloaded later on
+ f << "\\setuppapersize[#{from}][#{to}]\n"
+ f << "\\definepapersize\n";
+ f << " [offset=#{paperoffset}]\n";
+ f << "\\setuplayout\n";
+ f << " [backspace=#{backspace},\n";
+ f << " topspace=#{topspace},\n";
+ f << " marking=on,\n" if @commandline.option('marking')
+ f << " width=middle,\n";
+ f << " height=middle,\n";
+ f << " location=middle,\n";
+ f << " header=0pt,\n";
+ f << " footer=0pt]\n";
+ f << "\\setupexternalfigures\n";
+ f << " [directory=]\n";
+ f << "\\starttext\n";
+ unless selection.empty? then
+ f << "\\filterpages\n"
+ f << " [#{files.first}][#{selection}][width=#{textwidth}]\n"
+ end
+ f << "\\stoptext\n"
+ f.close
+ job.setvariable('interface','english')
+ job.setvariable('simplerun',true)
+ # job.setvariable('nooptionfile',true)
+ job.setvariable('files',[job.tempfilename])
+ job.processtex
+ else
+ report('no files to selectt')
+ end
+ else
+ report('no files to select')
+ end
+ job.cleanuptemprunfiles
+ end
+ end
+
+ def copyoutput
+ copyortrim(false,'copy')
+ end
+
+ def trimoutput
+ copyortrim(true,'trim')
+ end
+
+ def copyortrim(trim=false,what='unknown')
+ if job = TEX.new(logger) then
+ prepare(job)
+ job.cleanuptemprunfiles
+ files = @commandline.arguments.sort
+ if files.length > 0 then
+ if f = File.open(job.tempfilename('tex'),'w') then
+ scale = @commandline.checkedoption('scale')
+ scale = (scale * 1000).to_i if scale.to_i < 10
+ paperoffset = @commandline.checkedoption('paperoffset', '0cm')
+ f << "\\starttext\n"
+ files.each do |filename|
+ result = @commandline.checkedoption('result','texexec')
+ if (filename !~ /^texexec/io) && (filename !~ /^#{result}/) then
+ report("copying file: #{filename}")
+ f << "\\getfiguredimensions\n"
+ f << " [#{filename}]\n"
+ f << " [page=1"
+ f << ",\n size=trimbox" if trim
+ f << "]\n"
+ f << "\\definepapersize\n"
+ f << " [copy]\n"
+ f << " [width=\\naturalfigurewidth,\n"
+ f << " height=\\naturalfigureheight]\n"
+ f << "\\setuppapersize\n"
+ f << " [copy][copy]\n"
+ f << "\\setuplayout\n"
+ f << " [page]\n"
+ f << "\\setupexternalfigures\n"
+ f << " [directory=]\n"
+ f << "\\copypages\n"
+ f << " [#{filename}]\n"
+ f << " [scale=#{scale},\n"
+ f << " marking=on,\n" if @commandline.option('markings')
+ f << " size=trimbox,\n" if trim
+ f << " offset=#{paperoffset}]\n"
+ end
+ end
+ f << "\\stoptext\n"
+ f.close
+ job.setvariable('interface','english')
+ job.setvariable('simplerun',true)
+ # job.setvariable('nooptionfile',true)
+ job.setvariable('files',[job.tempfilename])
+ job.processtex
+ else
+ report("no files to #{what}")
+ end
+ else
+ report("no files to #{what}")
+ end
+ job.cleanuptemprunfiles
+ end
+ end
+
+ # todo: make this styles
+
+ def combineoutput
+ if job = TEX.new(logger) then
+ prepare(job)
+ job.cleanuptemprunfiles
+ files = @commandline.arguments.sort
+ if files.length > 0 then
+ if f = File.open(job.tempfilename('tex'),'w') then
+ paperoffset = @commandline.checkedoption('paperoffset', '0cm')
+ combination = @commandline.checkedoption('combination','2*2').split(/[\*x]/o)
+ paperformat = @commandline.checkedoption('paperformat', 'A4*A4').split(/[\*x]/o)
+ bannerheight = @commandline.checkedoption('bannerheight', '')
+ nx, ny = combination[0] || '2', combination[1] || combination[0] || '2'
+ from, to = paperformat[0] || 'A4', paperformat[1] || paperformat[0] || 'A4'
+ f << "\\setuppapersize[#{from}][#{to}]\n"
+ f << "\\setuplayout\n"
+ f << " [topspace=#{paperoffset},backspace=#{paperoffset},\n"
+ f << " header=0pt,footer=0pt,\n"
+ f << " width=middle,height=middle]\n"
+ if bannerheight.empty? then
+ f << "\\setuplayout[footer=1cm]\n"
+ else
+ f << "\\definelayer[page][width=\\paperwidth,height=\\paperheight]\n"
+ f << "\\setupbackgrounds[page][background=page]\n"
+ end
+ if @commandline.option('nobanner') then
+ f << "\\setuplayout[footer=0cm]\n"
+ f << "\\setupbackgrounds[page][background=]\n"
+ end
+ f << "\\setupexternalfigures\n"
+ f << " [directory=]\n"
+ f << "\\starttext\n"
+ files.each do |filename|
+ result = @commandline.checkedoption('result','texexec')
+ if (filename !~ /^texexec/io) && (filename !~ /^#{result}/) then
+ report("combination file: #{filename}")
+ cleanname = cleantexfilename(filename).downcase
+ bannerstring = "\\tttf #{cleanname}\\quad\\quad\\currentdate\\quad\\quad\\pagenumber"
+ if bannerheight.empty? then
+ f << "\\setupfootertexts\n"
+ f << " [#{bannerstring}]\n"
+ else
+ # for the moment we lack a better hook
+ f << "\\setuptexttexts\n"
+ f << " [{\\setlayerframed[page][preset=middlebottom][frame=off,height=#{bannerheight}]{#{bannerstring}}}]\n"
+ end
+ f << "\\combinepages[#{filename}][nx=#{nx},ny=#{ny}]\n"
+ f << "\\page\n"
+ end
+ end
+ f << "\\stoptext\n"
+ f.close
+ job.setvariable('interface','english')
+ job.setvariable('simplerun',true)
+ # job.setvariable('nooptionfile',true)
+ job.setvariable('files',[job.tempfilename])
+ job.processtex
+ else
+ report('no files to list')
+ end
+ else
+ report('no files to list')
+ end
+ job.cleanuptemprunfiles
+ end
+ end
+
+ private
+
+ def prepare(job)
+
+ job.booleanvars.each do |k|
+ job.setvariable(k,@commandline.option(k))
+ end
+ job.stringvars.each do |k|
+ job.setvariable(k,@commandline.option(k)) unless @commandline.option(k).empty?
+ end
+ job.standardvars.each do |k|
+ job.setvariable(k,@commandline.option(k)) unless @commandline.option(k).empty?
+ end
+ job.knownvars.each do |k|
+ job.setvariable(k,@commandline.option(k)) unless @commandline.option(k).empty?
+ end
+
+ if (str = @commandline.option('engine')) && ! str.standard? && ! str.empty? then
+ job.setvariable('texengine',str)
+ elsif @commandline.oneof('pdfetex','pdftex','pdf') then
+ job.setvariable('texengine','pdfetex')
+ elsif @commandline.oneof('xetex','xtx') then
+ job.setvariable('texengine','xetex')
+ elsif @commandline.oneof('aleph') then
+ job.setvariable('texengine','aleph')
+ elsif @commandline.oneof('luatex') then
+ job.setvariable('texengine','luatex')
+ else
+ job.setvariable('texengine','standard')
+ end
+
+ if (str = @commandline.option('backend')) && ! str.standard? && ! str.empty? then
+ job.setvariable('backend',str)
+ elsif @commandline.oneof('pdfetex','pdftex','pdf','luatex') then
+ job.setvariable('backend','pdftex')
+ elsif @commandline.oneof('dvipdfmx','dvipdfm','dpx','dpm') then
+ job.setvariable('backend','dvipdfmx')
+ elsif @commandline.oneof('xetex','xtx') then
+ job.setvariable('backend','xetex')
+ elsif @commandline.oneof('aleph') then
+ job.setvariable('backend','dvipdfmx')
+ elsif @commandline.oneof('dvips','ps') then
+ job.setvariable('backend','dvips')
+ elsif @commandline.oneof('xdv') then
+ job.setvariable('backend','xdv')
+ else
+ case job.getvariable('texengine')
+ when 'pdfetex' then job.setvariable('backend','pdftex')
+ when 'luatex' then job.setvariable('backend','pdftex')
+ when 'xetex' then job.setvariable('backend','xetex')
+ when 'aleph' then job.setvariable('backend','dvipdfmx')
+ else
+ job.setvariable('backend','standard')
+ end
+ end
+
+ if (str = @commandline.option('engine')) && ! str.standard? && ! str.empty? then
+ job.setvariable('mpsengine',@commandline.option('engine'))
+ else
+ job.setvariable('mpsengine','standard')
+ end
+
+ end
+
+ def cleantexfilename(filename)
+ filename.gsub(/([\$\_\#])/) do "\\$1" end.gsub(/([\~])/) do "\\string$1" end
+ end
+
+end
+
+# we will make this pluggable, i.e. load plugins from base/tex that
+# extend the class and may even add switches
+#
+# commandline.load_plugins('base/tex')
+#
+# maybe it's too slow so for a while keep the --pdf* in here
+
+logger = Logger.new(banner.shift)
+commandline = CommandLine.new
+
+commandline.registeraction('make', 'make formats')
+commandline.registeraction('check', 'check versions')
+commandline.registeraction('process', 'process file')
+commandline.registeraction('mptex', 'process mp file')
+commandline.registeraction('mpxtex', 'process mpx file')
+commandline.registeraction('mpgraphic', 'process mp file to stand-alone graphics')
+
+commandline.registeraction('listing', 'list of file content')
+commandline.registeraction('figures', 'generate overview of figures')
+commandline.registeraction('modules', 'generate module documentation')
+commandline.registeraction('pdfarrange', 'impose pages (booklets)')
+commandline.registeraction('pdfselect', 'select pages from file(s)')
+commandline.registeraction('pdfcopy', 'copy pages from file(s)')
+commandline.registeraction('pdftrim', 'trim pages from file(s)')
+commandline.registeraction('pdfcombine', 'combine multiple pages')
+
+# compatibility switch
+
+class Commands
+
+ include CommandBase
+
+ alias pdfarrange :arrangeoutput
+ alias pdfselect :selectoutput
+ alias pdfcopy :copyoutput
+ alias pdftrim :trimoutput
+ alias pdfcombine :combineoutput
+
+end
+
+# so far for compatibility, will move to tex
+
+@@extrastringvars = [
+ 'pages', 'background', 'backspace', 'topspace', 'boxtype', 'tempdir','bannerheight',
+ 'printformat', 'method', 'scale', 'selection',
+ 'combination', 'textwidth', 'addempty', 'logfile',
+ 'startline', 'endline', 'startcolumn', 'endcolumn', 'scale'
+]
+
+@@extrabooleanvars = [
+ 'centerpage', 'noduplex', 'color', 'pretty',
+ 'fullscreen', 'screensaver', 'markings'
+]
+
+if job = TEX.new(logger) then
+
+ job.setextrastringvars(@@extrastringvars)
+ job.setextrabooleanvars(@@extrabooleanvars)
+
+ job.booleanvars.each do |k|
+ commandline.registerflag(k)
+ end
+ job.stringvars.each do |k|
+ commandline.registervalue(k,'')
+ end
+ job.standardvars.each do |k|
+ commandline.registervalue(k,'standard')
+ end
+ job.knownvars.each do |k|
+ commandline.registervalue(k,'')
+ end
+
+end
+
+class Commands
+
+ alias saved_help help
+
+ def wrap_help(title, vars)
+ report("")
+ report(title)
+ report("")
+ r, n = '', 0
+ vars.sort.each do |s|
+ if n == 5 then
+ report(r)
+ r, n = '', 1
+ else
+ n += 1
+ end
+ r << ' ' + s
+ end
+ report(r) unless r.empty?
+ end
+
+ def help
+ saved_help
+ if @commandline.option('all') then
+ if job = TEX.new(logger) then
+ wrap_help("boolean switches:", job.allbooleanvars)
+ wrap_help("string switches:", job.allstringvars)
+ end
+ else
+ report('')
+ report('--help --all shows all switches')
+ end
+ end
+
+end
+
+# todo: register flags -> first one true
+
+commandline.registerflag('pdf')
+commandline.registerflag('pdftex')
+commandline.registerflag('pdfetex')
+commandline.registerflag('luatex')
+
+commandline.registerflag('dvipdfmx')
+commandline.registerflag('dvipdfm')
+commandline.registerflag('dpx')
+commandline.registerflag('dpm')
+
+commandline.registerflag('dvips')
+commandline.registerflag('ps')
+
+commandline.registerflag('xetex')
+commandline.registerflag('xtx')
+commandline.registerflag('xdv')
+
+commandline.registerflag('aleph')
+
+commandline.registerflag('all')
+commandline.registerflag('fast')
+
+# generic
+
+commandline.registeraction('help')
+commandline.registeraction('version')
+
+commandline.registerflag('verbose')
+
+commandline.expand
+
+Commands.new(commandline,logger,banner).send(commandline.action || 'main')
diff --git a/Master/texmf-dist/scripts/context/ruby/texmfstart.rb b/Master/texmf-dist/scripts/context/ruby/texmfstart.rb
index dc166bf92c3..411cb924873 100644
--- a/Master/texmf-dist/scripts/context/ruby/texmfstart.rb
+++ b/Master/texmf-dist/scripts/context/ruby/texmfstart.rb
@@ -2,7 +2,7 @@
# program : texmfstart
# copyright : PRAGMA Advanced Document Engineering
-# version : 1.5.5 - 2003/2005
+# version : 1.9.0 - 2003/2006
# author : Hans Hagen
#
# project : ConTeXt / eXaMpLe
@@ -23,6 +23,7 @@
# --locate => provides location
# --exec => exec instead of system
# --iftouched=a,b => only if timestamp a<>b
+# --ifchanged=a,b => only if checksum changed
#
# file: path: bin:
@@ -32,20 +33,1410 @@
$ownpath = File.expand_path(File.dirname($0)) unless defined? $ownpath
+$: << $ownpath
+
require "rbconfig"
+require "md5"
+
+# kpse_merge_done: require 'base/kpseremote'
+# kpse_merge_done: require 'base/kpsedirect'
+# kpse_merge_done: require 'base/kpsefast'
+# kpse_merge_done: require 'base/merge'
+
+# kpse_merge_start
+
+# kpse_merge_file: 'C:/data/develop/context/ruby/base/kpseremote.rb'
+
+# kpse_merge_done: require 'base/kpsefast'
+
+case ENV['KPSEMETHOD']
+ when /soap/o then # kpse_merge_done: require 'base/kpse/soap'
+ when /drb/o then # kpse_merge_done: require 'base/kpse/drb'
+ else # kpse_merge_done: require 'base/kpse/drb'
+end
+
+class KpseRemote
+
+ @@port = ENV['KPSEPORT'] || 7000
+ @@method = ENV['KPSEMETHOD'] || 'drb'
+
+ def KpseRemote::available?
+ @@method && @@port
+ end
+
+ def KpseRemote::start_server(port=nil)
+ kpse = KpseServer.new(port || @@port)
+ kpse.start
+ end
+
+ def KpseRemote::start_client(port=nil) # keeps object in server
+ kpseclient = KpseClient.new(port || @@port)
+ kpseclient.start
+ kpse = kpseclient.object
+ tree = kpse.choose(KpseUtil::identify, KpseUtil::environment)
+ [kpse, tree]
+ end
+
+ def KpseRemote::fetch(port=nil) # no need for defining methods but slower, send whole object
+ kpseclient = KpseClient.new(port || @@port)
+ kpseclient.start
+ kpseclient.object.fetch(KpseUtil::identify, KpseUtil::environment) rescue nil
+ end
+
+ def initialize(port=nil)
+ if KpseRemote::available? then
+ begin
+ @kpse, @tree = KpseRemote::start_client(port)
+ rescue
+ @kpse, @tree = nil, nil
+ end
+ else
+ @kpse, @tree = nil, nil
+ end
+ end
+
+ def progname=(value)
+ @kpse.set(@tree,'progname',value)
+ end
+ def format=(value)
+ @kpse.set(@tree,'format',value)
+ end
+ def engine=(value)
+ @kpse.set(@tree,'engine',value)
+ end
+
+ def progname
+ @kpse.get(@tree,'progname')
+ end
+ def format
+ @kpse.get(@tree,'format')
+ end
+ def engine
+ @kpse.get(@tree,'engine')
+ end
+
+ def load
+ @kpse.load(KpseUtil::identify, KpseUtil::environment)
+ end
+ def okay?
+ @kpse && @tree
+ end
+ def set(key,value)
+ @kpse.set(@tree,key,value)
+ end
+ def load_cnf
+ @kpse.load_cnf(@tree)
+ end
+ def load_lsr
+ @kpse.load_lsr(@tree)
+ end
+ def expand_variables
+ @kpse.expand_variables(@tree)
+ end
+ def expand_braces(str)
+ clean_name(@kpse.expand_braces(@tree,str))
+ end
+ def expand_path(str)
+ clean_name(@kpse.expand_path(@tree,str))
+ end
+ def expand_var(str)
+ clean_name(@kpse.expand_var(@tree,str))
+ end
+ def show_path(str)
+ clean_name(@kpse.show_path(@tree,str))
+ end
+ def var_value(str)
+ clean_name(@kpse.var_value(@tree,str))
+ end
+ def find_file(filename)
+ clean_name(@kpse.find_file(@tree,filename))
+ end
+ def find_files(filename,first=false)
+ # dodo: each filename
+ @kpse.find_files(@tree,filename,first)
+ end
+
+ private
+
+ def clean_name(str)
+ str.gsub(/\\/,'/')
+ end
+
+end
+
+
+# kpse_merge_file: 'C:/data/develop/context/ruby/base/kpsefast.rb'
+
+# module : base/kpsefast
+# copyright : PRAGMA Advanced Document Engineering
+# version : 2005
+# author : Hans Hagen
+#
+# project : ConTeXt / eXaMpLe
+# concept : Hans Hagen
+# info : j.hagen@xs4all.nl
+
+
+class String
+
+ def split_path
+ if self =~ /\;/o || self =~ /^[a-z]\:/io then
+ self.split(";")
+ else
+ self.split(":")
+ end
+ end
+
+end
+
+class Array
+
+ def join_path
+ self.join(File::PATH_SEPARATOR)
+ end
+
+end
+
+class File
+
+ def File.locate_file(path,name)
+ begin
+ files = Dir.entries(path)
+ if files.include?(name) then
+ fullname = File.join(path,name)
+ return fullname if FileTest.file?(fullname)
+ end
+ files.each do |p|
+ fullname = File.join(path,p)
+ if p != '.' and p != '..' and FileTest.directory?(fullname) and result = locate_file(fullname,name) then
+ return result
+ end
+ end
+ rescue
+ # bad path
+ end
+ return nil
+ end
+
+ def File.glob_file(pattern)
+ return Dir.glob(pattern).first
+ end
+
+end
+
+module KpseUtil
+
+ # to be adapted, see loading cnf file
+
+ @@texmftrees = ['texmf-local','texmf.local','../..','texmf'] # '../..' is for gwtex
+ @@texmfcnf = 'texmf.cnf'
+
+ def KpseUtil::identify
+ # we mainly need to identify the local tex stuff and wse assume that
+ # the texmfcnf variable is set; otherwise we need to expand the
+ # TEXMF variable and that takes time since it may involve more
+ ownpath = File.expand_path($0)
+ if ownpath.gsub!(/texmf.*?$/o, '') then
+ ENV['SELFAUTOPARENT'] = ownpath
+ else
+ ENV['SELFAUTOPARENT'] = '.' # fall back
+ # may be too tricky:
+ #
+ # (ENV['PATH'] ||'').split_path.each do |p|
+ # if p.gsub!(/texmf.*?$/o, '') then
+ # ENV['SELFAUTOPARENT'] = p
+ # break
+ # end
+ # end
+ end
+ filenames = Array.new
+ if ENV['TEXMFCNF'] && ! ENV['TEXMFCNF'].empty? then
+ ENV['TEXMFCNF'].to_s.split_path.each do |path|
+ filenames << File.join(path,@@texmfcnf)
+ end
+ elsif ENV['SELFAUTOPARENT'] == '.' then
+ filenames << File.join('.',@@texmfcnf)
+ else
+ @@texmftrees.each do |tree|
+ filenames << File.join(ENV['SELFAUTOPARENT'],tree,'web2c',@@texmfcnf)
+ end
+ end
+ loop do
+ busy = false
+ filenames.collect! do |f|
+ f.gsub(/\$([a-zA-Z0-9\_\-]+)/o) do
+ if (! ENV[$1]) || (ENV[$1] == $1) then
+ "$#{$1}"
+ else
+ busy = true
+ ENV[$1]
+ end
+ end
+ end
+ break unless busy
+ end
+ filenames.delete_if do |f|
+ ! FileTest.file?(f)
+ end
+ return filenames
+ end
+
+ def KpseUtil::environment
+ Hash.new.merge(ENV)
+ end
+
+end
+
+class KpseFast
+
+ # formats are an incredible inconsistent mess
+
+ @@suffixes = Hash.new
+ @@formats = Hash.new
+ @@suffixmap = Hash.new
+
+ @@texmfcnf = 'texmf.cnf'
+
+ @@suffixes['gf'] = ['.<resolution>gf'] # todo
+ @@suffixes['pk'] = ['.<resolution>pk'] # todo
+ @@suffixes['tfm'] = ['.tfm']
+ @@suffixes['afm'] = ['.afm']
+ @@suffixes['base'] = ['.base']
+ @@suffixes['bib'] = ['.bib']
+ @@suffixes['bst'] = ['.bst']
+ @@suffixes['cnf'] = ['.cnf']
+ @@suffixes['ls-R'] = ['ls-R', 'ls-r']
+ @@suffixes['fmt'] = ['.fmt', '.efmt', '.efm', '.ofmt', '.ofm', '.oft', '.eofmt', '.eoft', '.eof', '.pfmt', '.pfm', '.epfmt', '.epf', '.xpfmt', '.xpf', '.afmt', '.afm']
+ @@suffixes['map'] = ['.map']
+ @@suffixes['mem'] = ['.mem']
+ @@suffixes['mf'] = ['.mf']
+ @@suffixes['mfpool'] = ['.pool']
+ @@suffixes['mft'] = ['.mft']
+ @@suffixes['mp'] = ['.mp']
+ @@suffixes['mppool'] = ['.pool']
+ @@suffixes['ocp'] = ['.ocp']
+ @@suffixes['ofm'] = ['.ofm', '.tfm']
+ @@suffixes['opl'] = ['.opl']
+ @@suffixes['otp'] = ['.otp']
+ @@suffixes['ovf'] = ['.ovf']
+ @@suffixes['ovp'] = ['.ovp']
+ @@suffixes['graphic/figure'] = ['.eps', '.epsi']
+ @@suffixes['tex'] = ['.tex']
+ @@suffixes['texpool'] = ['.pool']
+ @@suffixes['PostScript header'] = ['.pro']
+ @@suffixes['type1 fonts'] = ['.pfa', '.pfb']
+ @@suffixes['vf'] = ['.vf']
+ @@suffixes['ist'] = ['.ist']
+ @@suffixes['truetype fonts'] = ['.ttf', '.ttc']
+ @@suffixes['web'] = ['.web', '.ch']
+ @@suffixes['cweb'] = ['.w', '.web', '.ch']
+ @@suffixes['enc files'] = ['.enc']
+ @@suffixes['cmap files'] = ['.cmap']
+ @@suffixes['subfont definition files'] = ['.sfd']
+ @@suffixes['lig files'] = ['.lig']
+ @@suffixes['bitmap font'] = []
+ @@suffixes['MetaPost support'] = []
+ @@suffixes['TeX system documentation'] = []
+ @@suffixes['TeX system sources'] = []
+ @@suffixes['Troff fonts'] = []
+ @@suffixes['dvips config'] = []
+ @@suffixes['type42 fonts'] = []
+ @@suffixes['web2c files'] = []
+ @@suffixes['other text files'] = []
+ @@suffixes['other binary files'] = []
+ @@suffixes['misc fonts'] = []
+ @@suffixes['opentype fonts'] = []
+ @@suffixes['pdftex config'] = []
+ @@suffixes['texmfscripts'] = []
+
+ # replacements
+
+ @@suffixes['fmt'] = ['.fmt']
+ @@suffixes['type1 fonts'] = ['.pfa', '.pfb', '.pfm']
+ @@suffixes['tex'] = ['.tex', '.xml']
+ @@suffixes['texmfscripts'] = ['rb','lua','py','pl']
+
+ @@suffixes.keys.each do |k| @@suffixes[k].each do |s| @@suffixmap[s] = k end end
+
+ # TTF2TFMINPUTS
+ # MISCFONTS
+ # TEXCONFIG
+ # DVIPDFMINPUTS
+ # OTFFONTS
+
+ @@formats['gf'] = ''
+ @@formats['pk'] = ''
+ @@formats['tfm'] = 'TFMFONTS'
+ @@formats['afm'] = 'AFMFONTS'
+ @@formats['base'] = 'MFBASES'
+ @@formats['bib'] = ''
+ @@formats['bst'] = ''
+ @@formats['cnf'] = ''
+ @@formats['ls-R'] = ''
+ @@formats['fmt'] = 'TEXFORMATS'
+ @@formats['map'] = 'TEXFONTMAPS'
+ @@formats['mem'] = 'MPMEMS'
+ @@formats['mf'] = 'MFINPUTS'
+ @@formats['mfpool'] = 'MFPOOL'
+ @@formats['mft'] = ''
+ @@formats['mp'] = 'MPINPUTS'
+ @@formats['mppool'] = 'MPPOOL'
+ @@formats['ocp'] = 'OCPINPUTS'
+ @@formats['ofm'] = 'OFMFONTS'
+ @@formats['opl'] = 'OPLFONTS'
+ @@formats['otp'] = 'OTPINPUTS'
+ @@formats['ovf'] = 'OVFFONTS'
+ @@formats['ovp'] = 'OVPFONTS'
+ @@formats['graphic/figure'] = ''
+ @@formats['tex'] = 'TEXINPUTS'
+ @@formats['texpool'] = 'TEXPOOL'
+ @@formats['PostScript header'] = 'TEXPSHEADERS'
+ @@formats['type1 fonts'] = 'T1FONTS'
+ @@formats['vf'] = 'VFFONTS'
+ @@formats['ist'] = ''
+ @@formats['truetype fonts'] = 'TTFONTS'
+ @@formats['web'] = ''
+ @@formats['cweb'] = ''
+ @@formats['enc files'] = 'ENCFONTS'
+ @@formats['cmap files'] = 'CMAPFONTS'
+ @@formats['subfont definition files'] = 'SFDFONTS'
+ @@formats['lig files'] = 'LIGFONTS'
+ @@formats['bitmap font'] = ''
+ @@formats['MetaPost support'] = ''
+ @@formats['TeX system documentation'] = ''
+ @@formats['TeX system sources'] = ''
+ @@formats['Troff fonts'] = ''
+ @@formats['dvips config'] = ''
+ @@formats['type42 fonts'] = 'T42FONTS'
+ @@formats['web2c files'] = 'WEB2C'
+ @@formats['other text files'] = ''
+ @@formats['other binary files'] = ''
+ @@formats['misc fonts'] = ''
+ @@formats['opentype fonts'] = 'OPENTYPEFONTS'
+ @@formats['pdftex config'] = 'PDFTEXCONFIG'
+ @@formats['texmfscripts'] = 'TEXMFSCRIPTS'
+
+ attr_accessor :progname, :engine, :format, :rootpath, :treepath,
+ :verbose, :remember, :scandisk, :diskcache, :renewcache
+
+ @@cacheversion = '1'
+
+ def initialize
+ @rootpath = ''
+ @treepath = ''
+ @progname = 'kpsewhich'
+ @engine = 'pdfetex'
+ @variables = Hash.new
+ @expansions = Hash.new
+ @files = Hash.new
+ @found = Hash.new
+ @kpsevars = Hash.new
+ @lsrfiles = Array.new
+ @cnffiles = Array.new
+ @verbose = true
+ @remember = true
+ @scandisk = true
+ @diskcache = true
+ @renewcache = false
+ @isolate = false
+
+ @diskcache = false
+ @cachepath = nil
+ @cachefile = 'tmftools.log'
+
+ @environment = ENV
+ end
+
+ def set(key,value)
+ case key
+ when 'progname' then @progname = value
+ when 'engine' then @engine = value
+ when 'format' then @format = value
+ end
+ end
+
+ def push_environment(env)
+ @environment = env
+ end
+
+ # {$SELFAUTOLOC,$SELFAUTODIR,$SELFAUTOPARENT}{,{/share,}/texmf{-local,}/web2c}
+ #
+ # $SELFAUTOLOC : /usr/tex/bin/platform
+ # $SELFAUTODIR : /usr/tex/bin
+ # $SELFAUTOPARENT : /usr/tex
+ #
+ # since we live in scriptpath we need a slightly different method
+
+ def load_cnf(filenames=nil)
+ unless filenames then
+ ownpath = File.expand_path($0)
+ if ownpath.gsub!(/texmf.*?$/o, '') then
+ @environment['SELFAUTOPARENT'] = ownpath
+ else
+ @environment['SELFAUTOPARENT'] = '.'
+ end
+ unless @treepath.empty? then
+ unless @rootpath.empty? then
+ @treepath = @treepath.split(',').collect do |p| File.join(@rootpath,p) end.join(',')
+ end
+ @environment['TEXMF'] = @treepath
+ # only the first one
+ @environment['TEXMFCNF'] = File.join(@treepath.split(',').first,'texmf/web2c')
+ end
+ unless @rootpath.empty? then
+ @environment['TEXMFCNF'] = File.join(@rootpath,'texmf/web2c')
+ @environment['SELFAUTOPARENT'] = @rootpath
+ @isolate = true
+ end
+ filenames = Array.new
+ if @environment['TEXMFCNF'] and not @environment['TEXMFCNF'].empty? then
+ @environment['TEXMFCNF'].to_s.split_path.each do |path|
+ filenames << File.join(path,@@texmfcnf)
+ end
+ elsif @environment['SELFAUTOPARENT'] == '.' then
+ filenames << File.join('.',@@texmfcnf)
+ else
+ ['texmf-local','texmf'].each do |tree|
+ filenames << File.join(@environment['SELFAUTOPARENT'],tree,'web2c',@@texmfcnf)
+ end
+ end
+ end
+ # <root>/texmf/web2c/texmf.cnf
+ filenames = _expanded_path_(filenames)
+ @rootpath = filenames.first
+ 3.times do
+ @rootpath = File.dirname(@rootpath)
+ end
+ filenames.collect! do |f|
+ f.gsub("\\", '/')
+ end
+ filenames.each do |fname|
+ if FileTest.file?(fname) and f = File.open(fname) then
+ @cnffiles << fname
+ while line = f.gets do
+ loop do
+ # concatenate lines ending with \
+ break unless line.sub!(/\\\s*$/o) do
+ f.gets || ''
+ end
+ end
+ case line
+ when /^[\%\#]/o then
+ # comment
+ when /^\s*(.*?)\s*\=\s*(.*?)\s*$/o then
+ key, value = $1, $2
+ unless @variables.key?(key) then
+ value.sub!(/\%.*$/,'')
+ value.sub!(/\~/, "$HOME")
+ @variables[key] = value
+ end
+ @kpsevars[key] = true
+ end
+ end
+ f.close
+ end
+ end
+ end
+
+ def load_lsr
+ @lsrfiles = []
+ simplified_list(expansion('TEXMF')).each do |p|
+ ['ls-R','ls-r'].each do |f|
+ filename = File.join(p,f)
+ if FileTest.file?(filename) then
+ @lsrfiles << [filename,File.size(filename)]
+ break
+ end
+ end
+ end
+ @files = Hash.new
+ if @diskcache then
+ ['HOME','TEMP','TMP','TMPDIR'].each do |key|
+ if @environment[key] then
+ if FileTest.directory?(@environment[key]) then
+ @cachepath = @environment[key]
+ @cachefile = [@rootpath.gsub(/[^A-Z0-9]/io, '-').gsub(/\-+/,'-'),File.basename(@cachefile)].join('-')
+ break
+ end
+ end
+ end
+ if @cachepath and not @renewcache and FileTest.file?(File.join(@cachepath,@cachefile)) then
+ begin
+ if f = File.open(File.join(@cachepath,@cachefile)) then
+ cacheversion = Marshal.load(f)
+ if cacheversion == @@cacheversion then
+ lsrfiles = Marshal.load(f)
+ if lsrfiles == @lsrfiles then
+ @files = Marshal.load(f)
+ end
+ end
+ f.close
+ end
+ rescue
+ @files = Hash.new
+ end
+ end
+ end
+ return if @files.size > 0
+ @lsrfiles.each do |filedata|
+ filename, filesize = filedata
+ filepath = File.dirname(filename)
+ begin
+ path = '.'
+ data = IO.readlines(filename)
+ if data[0].chomp =~ /% ls\-R \-\- filename database for kpathsea\; do not change this line\./io then
+ data.each do |line|
+ case line
+ when /^[a-zA-Z0-9]/o then
+ line.chomp!
+ if @files[line] then
+ @files[line] << path
+ else
+ @files[line] = [path]
+ end
+ when /^\.\/(.*?)\:$/o then
+ path = File.join(filepath,$1)
+ end
+ end
+ end
+ rescue
+ # sorry
+ end
+ end
+ if @diskcache and @cachepath and f = File.open(File.join(@cachepath,@cachefile),'wb') then
+ f << Marshal.dump(@@cacheversion)
+ f << Marshal.dump(@lsrfiles)
+ f << Marshal.dump(@files)
+ f.close
+ end
+ end
+
+ def expand_variables
+ @expansions = Hash.new
+ if @isolate then
+ @variables['TEXMFCNF'] = @environment['TEXMFCNF'].dup
+ @variables['SELFAUTOPARENT'] = @environment['SELFAUTOPARENT'].dup
+ else
+ @environment.keys.each do |e|
+ if e =~ /^([a-zA-Z]+)\_(.*)\s*$/o then
+ @expansions["#{$1}.#{$2}"] = (@environment[e] ||'').dup
+ else
+ @expansions[e] = (@environment[e] ||'').dup
+ end
+ end
+ end
+ @variables.keys.each do |k|
+ @expansions[k] = @variables[k].dup unless @expansions[k]
+ end
+ loop do
+ busy = false
+ @expansions.keys.each do |k|
+ @expansions[k].gsub!(/\$([a-zA-Z0-9\_\-]*)/o) do
+ busy = true
+ @expansions[$1] || ''
+ end
+ @expansions[k].gsub!(/\$\{([a-zA-Z0-9\_\-]*)\}/o) do
+ busy = true
+ @expansions[$1] || ''
+ end
+ end
+ break unless busy
+ end
+ @expansions.keys.each do |k|
+ @expansions[k] = @expansions[k].gsub("\\", '/')
+ end
+ end
+
+ def variable(name='')
+ (name and not name.empty? and @variables[name.sub('$','')]) or ''
+ end
+
+ def expansion(name='')
+ (name and not name.empty? and @expansions[name.sub('$','')]) or ''
+ end
+
+ def variable?(name='')
+ name and not name.empty? and @variables.key?(name.sub('$',''))
+ end
+
+ def expansion?(name='')
+ name and not name.empty? and @expansions.key?(name.sub('$',''))
+ end
+
+ def simplified_list(str)
+ lst = str.gsub(/^\{/o,'').gsub(/\}$/o,'').split(",")
+ lst.collect do |l|
+ l.sub(/^[\!]*/,'').sub(/[\/\\]*$/o,'')
+ end
+ end
+
+ def original_variable(variable)
+ if variable?("#{@progname}.#{variable}") then
+ variable("#{@progname}.#{variable}")
+ elsif variable?(variable) then
+ variable(variable)
+ else
+ ''
+ end
+ end
+
+ def expanded_variable(variable)
+ if expansion?("#{variable}.#{@progname}") then
+ expansion("#{variable}.#{@progname}")
+ elsif expansion?(variable) then
+ expansion(variable)
+ else
+ ''
+ end
+ end
+
+ def original_path(filename='')
+ _expanded_path_(original_variable(var_of_format_or_suffix(filename)).split(";"))
+ end
+
+ def expanded_path(filename='')
+ _expanded_path_(expanded_variable(var_of_format_or_suffix(filename)).split(";"))
+ end
+
+ def _expanded_path_(pathlist)
+ i, n = 0, 0
+ pathlist.collect! do |mainpath|
+ mainpath.gsub(/([\{\}])/o) do
+ if $1 == "{" then
+ i += 1 ; n = i if i > n ; "<#{i}>"
+ else
+ i -= 1 ; "</#{i+1}>"
+ end
+ end
+ end
+ n.times do |i|
+ loop do
+ more = false
+ newlist = []
+ pathlist.each do |path|
+ unless path.sub!(/^(.*?)<(#{n-i})>(.*?)<\/\2>(.*?)$/) do
+ pre, mid, post = $1, $3, $4
+ mid.gsub!(/\,$/,',.')
+ mid.split(',').each do |m|
+ more = true
+ if m == '.' then
+ newlist << "#{pre}#{post}"
+ else
+ newlist << "#{pre}#{m}#{post}"
+ end
+ end
+ end then
+ newlist << path
+ end
+ end
+ if more then
+ pathlist = [newlist].flatten # copy -)
+ else
+ break
+ end
+ end
+ end
+ pathlist = pathlist.uniq.collect do |path|
+ p = path
+ # p.gsub(/^\/+/o) do '' end
+ # p.gsub!(/(.)\/\/(.)/o) do "#{$1}/#{$2}" end
+ # p.gsub!(/\/\/+$/o) do '//' end
+ p.gsub!(/\/\/+/o) do '//' end
+ p
+ end
+ pathlist
+ end
+
+ # todo: ignore case
+
+ def var_of_format(str)
+ @@formats[str] || ''
+ end
+
+ def var_of_suffix(str) # includes .
+ if @@suffixmap.key?(str) then @@formats[@@suffixmap[str]] else '' end
+ end
+
+ def var_of_format_or_suffix(str)
+ if @@formats.key?(str) then
+ @@formats[str]
+ elsif @@suffixmap.key?(File.extname(str)) then # extname includes .
+ @@formats[@@suffixmap[File.extname(str)]] # extname includes .
+ else
+ ''
+ end
+ end
+
+end
+
+class KpseFast
+
+ # test things
+
+ def list_variables(kpseonly=true)
+ @variables.keys.sort.each do |k|
+ if kpseonly then
+ puts("#{k} = #{@variables[k]}") if @kpsevars[k]
+ else
+ puts("#{if @kpsevars[k] then 'K' else 'E' end} #{k} = #{@variables[k]}")
+ end
+ end
+ end
+
+ def list_expansions(kpseonly=true)
+ @expansions.keys.sort.each do |k|
+ if kpseonly then
+ puts("#{k} = #{@expansions[k]}") if @kpsevars[k]
+ else
+ puts("#{if @kpsevars[k] then 'K' else 'E' end} #{k} = #{@expansions[k]}")
+ end
+ end
+ end
+
+ def list_lsr
+ puts("files = #{@files.size}")
+ end
+
+ def set_test_patterns
+ @variables["KPSE_TEST_PATTERN_A"] = "foo/{1,2}/bar//"
+ @variables["KPSE_TEST_PATTERN_B"] = "!!x{A,B{1,2}}y"
+ @variables["KPSE_TEST_PATTERN_C"] = "x{A,B//{1,2}}y"
+ @variables["KPSE_TEST_PATTERN_D"] = "x{A,B//{1,2,}}//y"
+ end
+
+ def show_test_patterns
+ ['A','B','D'].each do |i|
+ puts ""
+ puts @variables ["KPSE_TEST_PATTERN_#{i}"]
+ puts ""
+ puts expand_path("KPSE_TEST_PATTERN_#{i}").split_path
+ puts ""
+ end
+ end
+
+end
+
+class KpseFast
+
+ # kpse stuff
+
+ def expand_braces(str) # output variable and brace expansion of STRING.
+ _expanded_path_(original_variable(str).split_path).join_path
+ end
+
+ def expand_path(str) # output complete path expansion of STRING.
+ _expanded_path_(expanded_variable(str).split_path).join_path
+ end
+
+ def expand_var(str) # output variable expansion of STRING.
+ expanded_variable(str)
+ end
+
+ def show_path(str) # output search path for file type NAME
+ expanded_path(str).join_path
+ end
+
+ def var_value(str) # output the value of variable $STRING.
+ original_variable(str)
+ end
+
+end
+
+class KpseFast
+
+ def _is_cnf_?(filename)
+ filename == File.basename((@cnffiles.first rescue @@texmfcnf) || @@texmfcnf)
+ end
+
+ def find_file(filename)
+ if _is_cnf_?(filename) then
+ @cnffiles.first rescue ''
+ else
+ [find_files(filename,true)].flatten.first || ''
+ end
+ end
+
+ def find_files(filename,first=false)
+ if _is_cnf_?(filename) then
+ result = @cnffiles.dup
+ else
+ if @remember then
+ # stamp = "#{filename}--#{@format}--#{@engine}--#{@progname}"
+ stamp = "#{filename}--#{@engine}--#{@progname}"
+ return @found[stamp] if @found.key?(stamp)
+ end
+ pathlist = expanded_path(filename)
+ result = []
+ filelist = if @files.key?(filename) then @files[filename].uniq else nil end
+ done = false
+ if pathlist.size == 0 then
+ if FileTest.file?(filename) then
+ done = true
+ result << '.'
+ end
+ else
+ pathlist.each do |path|
+ doscan = if path =~ /^\!\!/o then false else true end
+ recurse = if path =~ /\/\/$/o then true else false end
+ pathname = path.dup
+ pathname.gsub!(/^\!+/o, '')
+ done = false
+ if not done and filelist then
+ # checking for exact match
+ if filelist.include?(pathname) then
+ result << pathname
+ done = true
+ end
+ if not done and recurse then
+ # checking for fuzzy //
+ pathname.gsub!(/\/+$/o, '/.*')
+ # pathname.gsub!(/\/\//o,'/[\/]*/')
+ pathname.gsub!(/\/\//o,'/.*?/')
+ re = /^#{pathname}/
+ filelist.each do |f|
+ if re =~ f then
+ result << f # duplicates will be filtered later
+ done = true
+ end
+ break if done
+ end
+ end
+ end
+ if not done and doscan then
+ # checking for path itself
+ pname = pathname.sub(/\.\*$/,'')
+ if not pname =~ /\*/o and FileTest.file?(File.join(pname,filename)) then
+ result << pname
+ done = true
+ end
+ end
+ break if done and first
+ end
+ end
+ if not done and @scandisk then
+ pathlist.each do |path|
+ pathname = path.dup
+ unless pathname.gsub!(/^\!+/o, '') then # !! prevents scan
+ recurse = pathname.gsub!(/\/+$/o, '')
+ complex = pathname.gsub!(/\/\//o,'/*/')
+ if recurse then
+ if complex then
+ if ok = File.glob_file("#{pathname}/**/#{filename}") then
+ result << File.dirname(ok)
+ done = true
+ end
+ elsif ok = File.locate_file(pathname,filename) then
+ result << File.dirname(ok)
+ done = true
+ end
+ elsif complex then
+ if ok = File.glob_file("#{pathname}/#{filename}") then
+ result << File.dirname(ok)
+ done = true
+ end
+ elsif FileTest.file?(File.join(pathname,filename)) then
+ result << pathname
+ done = true
+ end
+ break if done and first
+ end
+ end
+ end
+ result = result.uniq.collect do |pathname|
+ File.join(pathname,filename)
+ end
+ @found[stamp] = result if @remember
+ end
+ return result # redundant
+ end
+
+end
+
+class KpseFast
+
+ class FileData
+ attr_accessor :tag, :name, :size, :date
+ def initialize(tag=0,name=nil,size=nil,date=nil)
+ @tag, @name, @size, @date = tag, name, size, date
+ end
+ def FileData.sizes(a)
+ a.collect do |aa|
+ aa.size
+ end
+ end
+ def report
+ case @tag
+ when 1 then "deleted | #{@size.to_s.rjust(8)} | #{@date.strftime('%m/%d/%Y %I:%M')} | #{@name}"
+ when 2 then "present | #{@size.to_s.rjust(8)} | #{@date.strftime('%m/%d/%Y %I:%M')} | #{@name}"
+ when 3 then "obsolete | #{' '*8} | #{' '*16} | #{@name}"
+ end
+ end
+ end
+
+ def analyze_files(filter='',strict=false,sort='',delete=false)
+ puts("command line = #{ARGV.join(' ')}")
+ puts("number of files = #{@files.size}")
+ puts("filter pattern = #{filter}")
+ puts("loaded cnf files = #{@cnffiles.join(' ')}")
+ puts('')
+ if filter.gsub!(/^not:/,'') then
+ def the_same(filter,filename)
+ not filter or filter.empty? or /#{filter}/ !~ filename
+ end
+ else
+ def the_same(filter,filename)
+ not filter or filter.empty? or /#{filter}/ =~ filename
+ end
+ end
+ @files.keys.each do |name|
+ if @files[name].size > 1 then
+ data = Array.new
+ @files[name].each do |path|
+ filename = File.join(path,name)
+ # if not filter or filter.empty? or /#{filter}/ =~ filename then
+ if the_same(filter,filename) then
+ if FileTest.file?(filename) then
+ if delete then
+ data << FileData.new(1,filename,File.size(filename),File.mtime(filename))
+ begin
+ File.delete(filename) if delete
+ rescue
+ end
+ else
+ data << FileData.new(2,filename,File.size(filename),File.mtime(filename))
+ end
+ else
+ # data << FileData.new(3,filename)
+ end
+ end
+ end
+ if data.length > 1 then
+ if strict then
+ # if data.collect do |d| d.size end.uniq! then
+ # data.sort! do |a,b| b.size <=> a.size end
+ # data.each do |d| puts d.report end
+ # puts ''
+ # end
+ data.sort! do |a,b|
+ if a.size and b.size then
+ b.size <=> a.size
+ else
+ 0
+ end
+ end
+ bunch = Array.new
+ done = false
+ data.each do |d|
+ if bunch.size == 0 then
+ bunch << d
+ elsif bunch[0].size == d.size then
+ bunch << d
+ else
+ if bunch.size > 1 then
+ bunch.each do |b|
+ puts b.report
+ end
+ done = true
+ end
+ bunch = [d]
+ end
+ end
+ puts '' if done
+ else
+ case sort
+ when 'size' then data.sort! do |a,b| a.size <=> b.size end
+ when 'revsize' then data.sort! do |a,b| b.size <=> a.size end
+ when 'date' then data.sort! do |a,b| a.date <=> b.date end
+ when 'revdate' then data.sort! do |a,b| b.date <=> a.date end
+ end
+ data.each do |d| puts d.report end
+ puts ''
+ end
+ end
+ end
+ end
+ end
+
+end
+
+
+ # k = KpseFast.new # (root)
+ # k.set_test_patterns
+ # k.load_cnf
+ # k.expand_variables
+ # k.load_lsr
+
+ # k.show_test_patterns
+
+ # puts k.list_variables
+ # puts k.list_expansions
+ # k.list_lsr
+ # puts k.expansion("$TEXMF")
+ # puts k.expanded_path("TEXINPUTS","context")
+
+ # k.progname, k.engine, k.format = 'context', 'pdfetex', 'tfm'
+ # k.scandisk = false # == must_exist
+ # k.expand_variables
+
+ # 10.times do |i| puts k.find_file('texnansi-lmr10.tfm') end
+
+ # puts "expand braces $TEXMF"
+ # puts k.expand_braces("$TEXMF")
+ # puts "expand path $TEXMF"
+ # puts k.expand_path("$TEXMF")
+ # puts "expand var $TEXMF"
+ # puts k.expand_var("$TEXMF")
+ # puts "expand path $TEXMF"
+ # puts k.show_path('tfm')
+ # puts "expand value $TEXINPUTS"
+ # puts k.var_value("$TEXINPUTS")
+ # puts "expand value $TEXINPUTS.context"
+ # puts k.var_value("$TEXINPUTS.context")
+
+ # exit
+
+
+
+# kpse_merge_file: 'C:/data/develop/context/ruby/base/kpse/drb.rb'
+
+require 'drb'
+# kpse_merge_done: require 'base/kpse/trees'
+
+class KpseServer
+
+ attr_accessor :port
+
+ def initialize(port=7000)
+ @port = port
+ end
+
+ def start
+ puts "starting drb service at port #{@port}"
+ DRb.start_service("druby://localhost:#{@port}", KpseTrees.new)
+ trap(:INT) do
+ DRb.stop_service
+ end
+ DRb.thread.join
+ end
+
+ def stop
+ # todo
+ end
+
+end
+
+class KpseClient
+
+ attr_accessor :port
+
+ def initialize(port=7000)
+ @port = port
+ @kpse = nil
+ end
+
+ def start
+ # only needed when callbacks are used / slow, due to Socket::getaddrinfo
+ # DRb.start_service
+ end
+
+ def object
+ @kpse = DRbObject.new(nil,"druby://localhost:#{@port}")
+ end
+
+end
+
+
+# SERVER_URI="druby://localhost:8787"
+#
+# # Start a local DRbServer to handle callbacks.
+# #
+# # Not necessary for this small example, but will be required
+# # as soon as we pass a non-marshallable object as an argument
+# # to a dRuby call.
+# DRb.start_service
+#
+
+
+# kpse_merge_file: 'C:/data/develop/context/ruby/base/kpse/trees.rb'
+
+require 'monitor'
+# kpse_merge_done: require 'base/kpsefast'
+
+class KpseTrees < Monitor
+
+ def initialize
+ @trees = Hash.new
+ end
+
+ def pattern(filenames)
+ filenames.join('|').gsub(/\\+/o,'/').downcase
+ end
+
+ def choose(filenames,environment)
+ current = pattern(filenames)
+ load(filenames,environment) unless @trees[current]
+ puts "enabling tree #{current}"
+ current
+ end
+
+ def fetch(filenames,environment) # will send whole object !
+ current = pattern(filenames)
+ load(filenames,environment) unless @trees[current]
+ puts "fetching tree #{current}"
+ @trees[current]
+ end
+
+ def load(filenames,environment)
+ current = pattern(filenames)
+ puts "loading tree #{current}"
+ @trees[current] = KpseFast.new
+ @trees[current].push_environment(environment)
+ @trees[current].load_cnf(filenames)
+ @trees[current].expand_variables
+ @trees[current].load_lsr
+ end
+
+ def set(tree,key,value)
+ case key
+ when 'progname' then @trees[tree].progname = value
+ when 'engine' then @trees[tree].engine = value
+ when 'format' then @trees[tree].format = value
+ end
+ end
+ def get(tree,key)
+ case key
+ when 'progname' then @trees[tree].progname
+ when 'engine' then @trees[tree].engine
+ when 'format' then @trees[tree].format
+ end
+ end
+
+ def load_cnf(tree)
+ @trees[tree].load_cnf
+ end
+ def load_lsr(tree)
+ @trees[tree].load_lsr
+ end
+ def expand_variables(tree)
+ @trees[tree].expand_variables
+ end
+ def expand_braces(tree,str)
+ @trees[tree].expand_braces(str)
+ end
+ def expand_path(tree,str)
+ @trees[tree].expand_path(str)
+ end
+ def expand_var(tree,str)
+ @trees[tree].expand_var(str)
+ end
+ def show_path(tree,str)
+ @trees[tree].show_path(str)
+ end
+ def var_value(tree,str)
+ @trees[tree].var_value(str)
+ end
+ def find_file(tree,filename)
+ @trees[tree].find_file(filename)
+ end
+ def find_files(tree,filename,first)
+ @trees[tree].find_files(filename,first)
+ end
+
+end
+
+
+# kpse_merge_file: 'C:/data/develop/context/ruby/base/kpsedirect.rb'
+
+class KpseDirect
+
+ attr_accessor :progname, :format, :engine
+
+ def initialize
+ @progname, @format, @engine = '', '', ''
+ end
+
+ def expand_path(str)
+ clean_name(`kpsewhich -expand-path=#{str}`.chomp)
+ end
+
+ def expand_var(str)
+ clean_name(`kpsewhich -expand-var=#{str}`.chomp)
+ end
+
+ def find_file(str)
+ clean_name(`kpsewhich #{_progname_} #{_format_} #{str}`.chomp)
+ end
+
+ def _progname_
+ if @progname.empty? then '' else "-progname=#{@progname}" end
+ end
+ def _format_
+ if @format.empty? then '' else "-format=\"#{@format}\"" end
+ end
+
+ private
+
+ def clean_name(str)
+ str.gsub(/\\/,'/')
+ end
+
+end
+
+
+# kpse_merge_file: 'C:/data/develop/context/ruby/base/merge.rb'
+
+# module : base/merge
+# copyright : PRAGMA Advanced Document Engineering
+# version : 2006
+# author : Hans Hagen
+#
+# project : ConTeXt / eXaMpLe
+# concept : Hans Hagen
+# info : j.hagen@xs4all.nl
+
+
+# this module will package all the used modules in the file itself
+# so that we can relocate the file at wish, usage:
+#
+# merge:
+#
+# unless SelfMerge::ok? && SelfMerge::merge then
+# puts("merging should happen on the path were the base inserts reside")
+# end
+#
+# cleanup:
+#
+# unless SelfMerge::cleanup then
+# puts("merging should happen on the path were the base inserts reside")
+
+module SelfMerge
+
+ @@kpsemergestart = "\# kpse_merge_start"
+ @@kpsemergestop = "\# kpse_merge_stop"
+ @@kpsemergefile = "\# kpse_merge_file: "
+ @@kpsemergedone = "\# kpse_merge_done: "
+
+ @@filename = File.basename($0)
+ @@ownpath = File.expand_path(File.dirname($0))
+ @@modroot = '(base|graphics|rslb|www)' # needed in regex in order not to mess up SelfMerge
+ @@modules = $".collect do |file| File.expand_path(file) end
+
+ @@modules.delete_if do |file|
+ file !~ /^#{@@ownpath}\/#{@@modroot}.*$/
+ end
+
+ def SelfMerge::ok?
+ begin
+ @@modules.each do |file|
+ return false unless FileTest.file?(file)
+ end
+ rescue
+ return false
+ else
+ return true
+ end
+ end
+
+ def SelfMerge::merge
+ begin
+ if SelfMerge::ok? && rbfile = IO.read(@@filename) then
+ begin
+ inserts = "#{@@kpsemergestart}\n\n"
+ @@modules.each do |file|
+ inserts << "#{@@kpsemergefile}'#{file}'\n\n"
+ inserts << IO.read(file).gsub(/^#.*?\n$/,'')
+ inserts << "\n\n"
+ end
+ inserts << "#{@@kpsemergestop}\n\n"
+ # no gsub! else we end up in SelfMerge
+ rbfile.sub!(/#{@@kpsemergestart}\s*#{@@kpsemergestop}/mois) do
+ inserts
+ end
+ rbfile.gsub!(/^(.*)(require [\"\'].*?#{@@modroot}.*)$/) do
+ pre, post = $1, $2
+ if pre =~ /#{@@kpsemergedone}/ then
+ "#{pre}#{post}"
+ else
+ "#{pre}#{@@kpsemergedone}#{post}"
+ end
+ end
+ rescue
+ return false
+ else
+ begin
+ File.open(@@filename,'w') do |f|
+ f << rbfile
+ end
+ rescue
+ return false
+ end
+ end
+ end
+ rescue
+ return false
+ else
+ return true
+ end
+ end
+
+ def SelfMerge::cleanup
+ begin
+ if rbfile = IO.read(@@filename) then
+ begin
+ rbfile.sub!(/#{@@kpsemergestart}(.*)#{@@kpsemergestop}\s*/mois) do
+ "#{@@kpsemergestart}\n\n#{@@kpsemergestop}\n\n"
+ end
+ rbfile.gsub!(/^(.*#{@@kpsemergedone}.*)$/) do
+ str = $1
+ if str =~ /require [\"\']/ then
+ str.gsub(/#{@@kpsemergedone}/, '')
+ else
+ str
+ end
+ end
+ rescue
+ return false
+ else
+ begin
+ File.open(@@filename,'w') do |f|
+ f << rbfile
+ end
+ rescue
+ return false
+ end
+ end
+ end
+ rescue
+ return false
+ else
+ return true
+ end
+ end
+
+ def SelfMerge::replace
+ if SelfMerge::ok? then
+ SelfMerge::cleanup
+ SelfMerge::merge
+ end
+ end
+
+end
+
+
+# kpse_merge_stop
+
+
$mswindows = Config::CONFIG['host_os'] =~ /mswin/
$separator = File::PATH_SEPARATOR
-$version = "1.6.2"
+$version = "2.0.0"
if $mswindows then
-
require "win32ole"
require "Win32API"
-
end
-exit if defined?(REQUIRE2LIB)
+# exit if defined?(REQUIRE2LIB)
$stdout.sync = true
$stderr.sync = true
@@ -61,16 +1452,19 @@ $suffixinputs['lua'] = 'LUAINPUTS'
$suffixinputs['jar'] = 'JAVAINPUTS'
$suffixinputs['pdf'] = 'PDFINPUTS'
-$predefined['texexec'] = 'texexec.pl'
-$predefined['texutil'] = 'texutil.pl'
+$predefined['texexec'] = 'texexec.rb'
+$predefined['texutil'] = 'texutil.rb'
$predefined['texfont'] = 'texfont.pl'
+$predefined['texshow'] = 'texshow.pl'
+$predefined['makempy'] = 'makempy.pl'
$predefined['mptopdf'] = 'mptopdf.pl'
$predefined['pstopdf'] = 'pstopdf.rb'
$predefined['examplex'] = 'examplex.rb'
$predefined['concheck'] = 'concheck.rb'
+$predefined['runtools'] = 'runtools.rb'
$predefined['textools'] = 'textools.rb'
$predefined['tmftools'] = 'tmftools.rb'
$predefined['ctxtools'] = 'ctxtools.rb'
@@ -80,16 +1474,42 @@ $predefined['mpstools'] = 'mpstools.rb'
$predefined['exatools'] = 'exatools.rb'
$predefined['xmltools'] = 'xmltools.rb'
-
-if ENV['TEXMFSTART_MODE'] = 'experimental' then
- $predefined['texexec'] = 'newtexexec.rb'
- $predefined['pstopdf'] = 'newpstopdf.rb'
-end
+$predefined['newpstopdf'] = 'pstopdf.rb'
+$predefined['newtexexec'] = 'texexec.rb'
+$predefined['pdftrimwhite'] = 'pdftrimwhite.pl'
+
+$makelist = [
+ # context
+ 'texexec',
+ 'texutil',
+ 'texfont',
+ # mp/ps
+ 'pstopdf',
+ 'mptopdf',
+ 'makempy',
+ # misc
+ 'ctxtools',
+ 'pdftools',
+ 'xmltools',
+ 'textools',
+ 'mpstools',
+ 'tmftools',
+ 'exatools',
+ 'runtools',
+ 'rlxtools',
+ #
+ # no, 'texmfstart'
+]
+
+# if ENV['TEXMFSTART_MODE'] = 'experimental' then
+ # $predefined['texexec'] = 'newtexexec.rb'
+ # $predefined['pstopdf'] = 'newpstopdf.rb'
+# end
$scriptlist = 'rb|pl|py|lua|jar'
$documentlist = 'pdf|ps|eps|htm|html'
-$editor = ENV['EDITOR'] || ENV['editor'] || 'scite'
+$editor = ENV['TEXMFSTART_EDITOR'] || ENV['EDITOR'] || ENV['editor'] || 'scite'
$crossover = true # to other tex tools, else only local
@@ -113,6 +1533,31 @@ end
$applications['htm'] = $applications['html']
$applications['eps'] = $applications['ps']
+$kpse = nil
+
+def check_kpse
+ if $kpse then
+ # already done
+ else
+ begin
+ if KpseRemote::available? then
+ $kpse = KpseRemote.new
+ if $kpse.okay? then
+ puts("kpse : remote") if $verbose
+ else
+ $kpse = KpseDirect.new
+ puts("kpse : direct (forced)") if $verbose
+ end
+ else
+ $kpse = KpseDirect.new
+ puts("kpse : direct") if $verbose
+ end
+ rescue
+ puts("kpse : direct (fallback)") if $verbose
+ end
+ end
+end
+
if $mswindows then
GetShortPathName = Win32API.new('kernel32', 'GetShortPathName', ['P','P','N'], 'N')
@@ -170,30 +1615,43 @@ end
class File
+ # def File.needsupdate(oldname,newname)
+ # begin
+ # if $mswindows then
+ # return File.stat(oldname).mtime > File.stat(newname).mtime
+ # else
+ # return File.stat(oldname).mtime != File.stat(newname).mtime
+ # end
+ # rescue
+ # return true
+ # end
+ # end
+
+ @@update_eps = 1
+
def File.needsupdate(oldname,newname)
begin
- if $mswindows then
- return File.stat(oldname).mtime > File.stat(newname).mtime
+ oldtime = File.stat(oldname).mtime.to_i
+ newtime = File.stat(newname).mtime.to_i
+ if newtime >= oldtime then
+ return false
+ elsif oldtime-newtime < @@update_eps then
+ return false
else
- return File.stat(oldname).mtime != File.stat(newname).mtime
+ return true
end
rescue
return true
end
end
- def File.timestamp(name)
- begin
- "#{File.stat(name).mtime}"
- rescue
- return 'unknown'
- end
- end
-
def File.syncmtimes(oldname,newname)
+ return
begin
if $mswindows then
- # does not work (yet)
+ # does not work (yet) / gives future timestamp
+ # t = File.mtime(oldname) # i'm not sure if the time is frozen, so we do it here
+ # File.utime(0,t,oldname,newname)
else
t = File.mtime(oldname) # i'm not sure if the time is frozen, so we do it here
File.utime(0,t,oldname,newname)
@@ -202,6 +1660,14 @@ class File
end
end
+ def File.timestamp(name)
+ begin
+ "#{File.stat(name).mtime}"
+ rescue
+ return 'unknown'
+ end
+ end
+
end
def hashed (arr=[])
@@ -242,6 +1708,10 @@ def launch(filename)
end
end
+# env|environment
+# rel|relative
+# loc|locate|kpse|path|file
+
def expanded(arg) # no "other text files", too restricted
arg.gsub(/(env|environment)\:([a-zA-Z\-\_\.0-9]+)/o) do
method, original, resolved = $1, $2, ''
@@ -252,12 +1722,27 @@ def expanded(arg) # no "other text files", too restricted
report("environment variable #{original} cannot be resolved") unless $report
original
end
- end . gsub(/(kpse|loc|file|path)\:([a-zA-Z\-\_\.0-9]+)/o) do # was: \S
+ end . gsub(/(rel|relative)\:([a-zA-Z\-\_\.0-9]+)/o) do
+ method, original, resolved = $1, $2, ''
+ ['.','..','../..'].each do |r|
+ if FileTest.file?(File.join(r,original)) then
+ resolved = File.join(r,original)
+ break
+ end
+ end
+ if resolved.empty? then
+ original
+ else
+ resolved
+ end
+ end . gsub(/(kpse|loc|locate|file|path)\:([a-zA-Z\-\_\.0-9]+)/o) do
method, original, resolved = $1, $2, ''
if $program && ! $program.empty? then
- pstrings = ["-progname=#{$program}"]
+ # pstrings = ["-progname=#{$program}"]
+ pstrings = [$program]
else
- pstrings = ['','progname=context']
+ # pstrings = ['','-progname=context']
+ pstrings = ['','context']
end
# auto suffix with texinputs as fall back
if ENV["_CTX_K_V_#{original}_"] then
@@ -265,22 +1750,31 @@ def expanded(arg) # no "other text files", too restricted
report("environment provides #{original} as #{resolved}") unless $report
resolved
else
+ check_kpse
pstrings.each do |pstr|
if resolved.empty? then
- command = "kpsewhich #{pstr} #{original}"
- report("running #{command}")
+ # command = "kpsewhich #{pstr} #{original}"
+ # report("running #{command}")
+ report("locating '#{original}' in program space '#{pstr}'")
begin
- resolved = `#{command}`.chomp
+ # resolved = `#{command}`.chomp
+ $kpse.progname = pstr
+ $kpse.format = ''
+ resolved = $kpse.find_file(original).gsub(/\\/,'/')
rescue
resolved = ''
end
end
# elsewhere in the tree
if resolved.empty? then
- command = "kpsewhich #{pstr} -format=\"other text files\" #{original}"
- report("running #{command}")
+ # command = "kpsewhich #{pstr} -format=\"other text files\" #{original}"
+ # report("running #{command}")
+ report("locating '#{original}' in program space '#{pstr}' using format 'other text files'")
begin
- resolved = `#{command}`.chomp
+ # resolved = `#{command}`.chomp
+ $kpse.progname = pstr
+ $kpse.format = 'other text files'
+ resolved = $kpse.find_file(original).gsub(/\\/,'/')
rescue
resolved = ''
end
@@ -339,8 +1833,11 @@ def runoneof(application,fullname,browserpermitted)
else
report("starting #{$filename}") unless $report
output("\n") if $report && $verbose
- applications = $applications[application]
- if applications.class == Array then
+ applications = $applications[application.downcase]
+ if ! applications then
+ output("problems with determining application type")
+ return true
+ elsif applications.class == Array then
if $report then
output([fullname,expanded($arguments)].join(' '))
return true
@@ -369,21 +1866,22 @@ def runoneof(application,fullname,browserpermitted)
end
def report(str)
- $stderr.puts(str) if $verbose
+ $stdout.puts(str) if $verbose
end
def output(str)
- $stderr.puts(str)
+ $stdout.puts(str)
end
def usage
- print "version : #{$version} - 2003/2005 - www.pragma-ade.com\n"
+ print "version : #{$version} - 2003/2006 - www.pragma-ade.com\n"
print("\n")
print("usage : texmfstart [switches] filename [optional arguments]\n")
print("\n")
- print("switches : --verbose --report --browser --direct --execute --locate --iftouched\n")
+ print("switches : --verbose --report --browser --direct --execute --locate --iftouched --ifchanged\n")
print(" --program --file --page --arguments --batch --edit --report --clear\n")
print(" --make --lmake --wmake --path --stubpath --indirect --before --after\n")
+ print(" --tree --autotree --environment --showenv\n")
print("\n")
print("example : texmfstart pstopdf.rb cow.eps\n")
print(" texmfstart --locate examplex.rb\n")
@@ -391,13 +1889,22 @@ def usage
print(" texmfstart --browser examplap.pdf\n")
print(" texmfstart showcase.pdf\n")
print(" texmfstart --page=2 --file=showcase.pdf\n")
- print(" texmfstart --program=yourtex yourscript.pl arg-1 arg-2\n")
+ print(" texmfstart --program=yourtex yourscript.rb arg-1 arg-2\n")
print(" texmfstart --direct xsltproc kpse:somefile.xsl somefile.xml\n")
+ print(" texmfstart --direct ruby rel:wn-cleanup-1.rb oldfile.xml newfile.xml\n")
print(" texmfstart bin:xsltproc env:somepreset path:somefile.xsl somefile.xml\n")
print(" texmfstart --iftouched=normal,lowres downsample.rb normal lowres\n")
- print(" texmfstart texmfstart bin:scite kpse:texmf.cnf\n")
- print(" texmfstart texmfstart --exec bin:scite *.tex\n")
- print(" texmfstart texmfstart --edit texmf.cnf\n")
+ print(" texmfstart --ifchanged=somefile.dat --direct processit somefile.dat\n")
+ print(" texmfstart bin:scite kpse:texmf.cnf\n")
+ print(" texmfstart --exec bin:scite *.tex\n")
+ print(" texmfstart --edit texmf.cnf\n")
+ print(" texmfstart --edit kpse:texmf.cnf\n")
+ print(" texmfstart --serve\n")
+ print("\n")
+ print(" texmfstart --stubpath=/usr/local/bin [--make --remove] --verbose all\n")
+ print(" texmfstart --stubpath=auto [--make --remove] all\n")
+ print("\n")
+ check_kpse
end
# somehow registration does not work out (at least not under windows)
@@ -411,7 +1918,7 @@ def registered?(filename)
end
def registered(filename)
- return ENV[tag(filename)]
+ return ENV[tag(filename)] || 'unknown'
end
def register(filename,fullname)
@@ -425,204 +1932,220 @@ def register(filename,fullname)
end
def find(filename,program)
- filename = filename.sub(/script:/o, '') # so we have bin: and script: and nothing
- if $predefined.key?(filename) then
- report("expanding '#{filename}' to '#{$predefined[filename]}'")
- filename = $predefined[filename]
- end
- if registered?(filename) then
- report("already located '#{filename}'")
- return registered(filename)
- end
- # create suffix list
- if filename =~ /^(.*)\.(.+)$/ then
- filename = $1
- suffixlist = [$2]
- else
- suffixlist = [$scriptlist.split('|'),$documentlist.split('|')].flatten
- end
- # first we honor a given path
- if filename =~ /[\\\/]/ then
- report("trying to honor '#{filename}'")
- suffixlist.each do |suffix|
- fullname = filename+'.'+suffix
- if FileTest.file?(fullname) && register(filename,fullname)
- return shortpathname(fullname)
- end
+ begin
+ filename = filename.sub(/script:/o, '') # so we have bin: and script: and nothing
+ if $predefined.key?(filename) then
+ report("expanding '#{filename}' to '#{$predefined[filename]}'")
+ filename = $predefined[filename]
end
- end
- filename.sub!(/^.*[\\\/]/, '')
- # next we look at the current path and the callerpath
- [['.','current'],[$ownpath,'caller'],[registered("THREAD"),'thread']].each do |p|
- if p && ! p.empty? then
+ if registered?(filename) then
+ report("already located '#{filename}'")
+ return registered(filename)
+ end
+ # create suffix list
+ if filename =~ /^(.*)\.(.+)$/ then
+ filename = $1
+ suffixlist = [$2]
+ else
+ suffixlist = [$scriptlist.split('|'),$documentlist.split('|')].flatten
+ end
+ # first we honor a given path
+ if filename =~ /[\\\/]/ then
+ report("trying to honor '#{filename}'")
suffixlist.each do |suffix|
- fname = "#{filename}.#{suffix}"
- fullname = File.expand_path(File.join(p[0],fname))
- report("locating '#{fname}' in #{p[1]} path '#{p[0]}'")
- if FileTest.file?(fullname) && register(filename,fullname) then
- report("'#{fname}' located in #{p[1]} path")
+ fullname = filename+'.'+suffix
+ if FileTest.file?(fullname) && register(filename,fullname)
return shortpathname(fullname)
end
end
end
- end
- # now we consult environment settings
- fullname = nil
- suffixlist.each do |suffix|
- begin
- break unless $suffixinputs[suffix]
- environment = ENV[$suffixinputs[suffix]] || ENV[$suffixinputs[suffix]+".#{$program}"]
- if ! environment || environment.empty? then
- begin
- environment = `kpsewhich -expand-path=\$#{$suffixinputs[suffix]}`.chomp
- rescue
- environment = nil
- else
- if environment && ! environment.empty? then
- report("using kpsewhich variable #{$suffixinputs[suffix]}")
+ filename.sub!(/^.*[\\\/]/, '')
+ # next we look at the current path and the callerpath
+ [['.','current'],[$ownpath,'caller'],[registered("THREAD"),'thread']].each do |p|
+ if p && ! p.empty? && ! (p[0] == 'unknown') then
+ suffixlist.each do |suffix|
+ fname = "#{filename}.#{suffix}"
+ fullname = File.expand_path(File.join(p[0],fname))
+ report("locating '#{fname}' in #{p[1]} path '#{p[0]}'")
+ if FileTest.file?(fullname) && register(filename,fullname) then
+ report("'#{fname}' located in #{p[1]} path")
+ return shortpathname(fullname)
end
end
- elsif environment && ! environment.empty? then
- report("using environment variable #{$suffixinputs[suffix]}")
- end
- if environment && ! environment.empty? then
- environment.split($separator).each do |e|
- e.strip!
- e = '.' if e == '\.' # somehow . gets escaped
- e += '/' unless e =~ /[\\\/]$/
- fullname = e + filename + '.' + suffix
- report("testing '#{fullname}'")
- if FileTest.file?(fullname) then
- break
+ end
+ end
+ # now we consult environment settings
+ fullname = nil
+ check_kpse
+ $kpse.progname = program
+ suffixlist.each do |suffix|
+ begin
+ break unless $suffixinputs[suffix]
+ environment = ENV[$suffixinputs[suffix]] || ENV[$suffixinputs[suffix]+".#{$program}"]
+ if ! environment || environment.empty? then
+ begin
+ # environment = `kpsewhich -expand-path=\$#{$suffixinputs[suffix]}`.chomp
+ environment = $kpse.expand_path("\$#{$suffixinputs[suffix]}")
+ rescue
+ environment = nil
else
- fullname = nil
+ if environment && ! environment.empty? then
+ report("using kpsewhich variable #{$suffixinputs[suffix]}")
+ end
end
+ elsif environment && ! environment.empty? then
+ report("using environment variable #{$suffixinputs[suffix]}")
end
+ if environment && ! environment.empty? then
+ environment.split($separator).each do |e|
+ e.strip!
+ e = '.' if e == '\.' # somehow . gets escaped
+ e += '/' unless e =~ /[\\\/]$/
+ fullname = e + filename + '.' + suffix
+ report("testing '#{fullname}'")
+ if FileTest.file?(fullname) then
+ break
+ else
+ fullname = nil
+ end
+ end
+ end
+ rescue
+ report("environment string '#{$suffixinputs[suffix]}' cannot be used to locate '#{filename}'")
+ fullname = nil
+ else
+ return shortpathname(fullname) if register(filename,fullname)
end
- rescue
- report("environment string '#{$suffixinputs[suffix]}' cannot be used to locate '#{filename}'")
- fullname = nil
- else
- return shortpathname(fullname) if register(filename,fullname)
end
- end
- return shortpathname(fullname) if register(filename,fullname)
- # then we fall back on kpsewhich
- suffixlist.each do |suffix|
- # TDS script scripts location as per 2004
- if suffix =~ /(#{$scriptlist})/ then
+ return shortpathname(fullname) if register(filename,fullname)
+ # then we fall back on kpsewhich
+ suffixlist.each do |suffix|
+ # TDS script scripts location as per 2004
+ if suffix =~ /(#{$scriptlist})/ then
+ begin
+ report("using 'kpsewhich' to locate '#{filename}' in suffix space '#{suffix}' (1)")
+ # fullname = `kpsewhich -progname=#{program} -format=texmfscripts #{filename}.#{suffix}`.chomp
+ $kpse.format = 'texmfscripts'
+ fullname = $kpse.find_file("#{filename}.#{suffix}").gsub(/\\/,'/')
+ rescue
+ report("kpsewhich cannot locate '#{filename}' in suffix space '#{suffix}' (1)")
+ fullname = nil
+ else
+ return shortpathname(fullname) if register(filename,fullname)
+ end
+ end
+ # old TDS location: .../texmf/context/...
begin
- report("using 'kpsewhich' to locate '#{filename}' in suffix space '#{suffix}' (1)")
- fullname = `kpsewhich -progname=#{program} -format=texmfscripts #{filename}.#{suffix}`.chomp
+ report("using 'kpsewhich' to locate '#{filename}' in suffix space '#{suffix}' (2)")
+ # fullname = `kpsewhich -progname=#{program} -format="other text files" #{filename}.#{suffix}`.chomp
+ $kpse.format = 'other text files'
+ fullname = $kpse.find_file("#{filename}.#{suffix}").gsub(/\\/,'/')
rescue
- report("kpsewhich cannot locate '#{filename}' in suffix space '#{suffix}' (1)")
+ report("kpsewhich cannot locate '#{filename}' in suffix space '#{suffix}' (2)")
fullname = nil
else
return shortpathname(fullname) if register(filename,fullname)
end
end
- # old TDS location: .../texmf/context/...
- begin
- report("using 'kpsewhich' to locate '#{filename}' in suffix space '#{suffix}' (2)")
- fullname = `kpsewhich -progname=#{program} -format="other text files" #{filename}.#{suffix}`.chomp
- rescue
- report("kpsewhich cannot locate '#{filename}' in suffix space '#{suffix}' (2)")
- fullname = nil
- else
- return shortpathname(fullname) if register(filename,fullname)
- end
- end
- return shortpathname(fullname) if register(filename,fullname)
- # let's take a look at the path
- paths = ENV['PATH'].split($separator)
- suffixlist.each do |s|
- paths.each do |p|
- report("checking #{p} for suffix #{s}")
- if FileTest.file?(File.join(p,"#{filename}.#{s}")) then
- fullname = File.join(p,"#{filename}.#{s}")
- return shortpathname(fullname) if register(filename,fullname)
+ return shortpathname(fullname) if register(filename,fullname)
+ # let's take a look at the path
+ paths = ENV['PATH'].split($separator)
+ suffixlist.each do |s|
+ paths.each do |p|
+ suffixedname = "#{filename}.#{s}"
+ report("checking #{p} for #{filename}")
+ if FileTest.file?(File.join(p,suffixedname)) then
+ fullname = File.join(p,suffixedname)
+ return shortpathname(fullname) if register(filename,fullname)
+ end
end
end
- end
- # bad luck, we need to search the tree ourselves
- if (suffixlist.length == 1) && (suffixlist.first =~ /(#{$documentlist})/) then
- report("aggressively locating '#{filename}' in document trees")
- begin
- texroot = `kpsewhich -expand-var=$SELFAUTOPARENT`.chomp
- rescue
- texroot = ''
- else
- texroot.sub!(/[\\\/][^\\\/]*?$/, '')
- end
- if not texroot.empty? then
- sffxlst = suffixlist.join(',')
+ # bad luck, we need to search the tree ourselves
+ if (suffixlist.length == 1) && (suffixlist.first =~ /(#{$documentlist})/) then
+ report("aggressively locating '#{filename}' in document trees")
begin
- report("locating '#{filename}' in document tree '#{texroot}/doc*'")
- if (result = Dir.glob("#{texroot}/doc*/**/#{filename}.{#{sffxlst}}")) && result && result[0] && FileTest.file?(result[0]) then
- fullname = result[0]
- end
+ # texroot = `kpsewhich -expand-var=$SELFAUTOPARENT`.chomp
+ texroot = $kpse.expand_var("$SELFAUTOPARENT")
rescue
- report("locating '#{filename}.#{suffix}' in tree '#{texroot}' aborted")
+ texroot = ''
+ else
+ texroot.sub!(/[\\\/][^\\\/]*?$/, '')
+ end
+ if not texroot.empty? then
+ sffxlst = suffixlist.join(',')
+ begin
+ report("locating '#{filename}' in document tree '#{texroot}/doc*'")
+ if (result = Dir.glob("#{texroot}/doc*/**/#{filename}.{#{sffxlst}}")) && result && result[0] && FileTest.file?(result[0]) then
+ fullname = result[0]
+ end
+ rescue
+ report("locating '#{filename}.#{suffixlist.join('|')}' in tree '#{texroot}' aborted")
+ end
end
+ return shortpathname(fullname) if register(filename,fullname)
end
- return shortpathname(fullname) if register(filename,fullname)
- end
- report("aggressively locating '#{filename}' in tex trees")
- begin
- textrees = `kpsewhich -expand-var=$TEXMF`.chomp
- rescue
- textrees = ''
- end
- if not textrees.empty? then
- textrees.gsub!(/[\{\}\!]/, '')
- textrees = textrees.split(',')
- if (suffixlist.length == 1) && (suffixlist.first =~ /(#{$documentlist})/) then
- speedup = ['doc**','**']
- else
- speedup = ['**']
+ report("aggressively locating '#{filename}' in tex trees")
+ begin
+ # textrees = `kpsewhich -expand-var=$TEXMF`.chomp
+ textrees = $kpse.expand_var("$TEXMF")
+ rescue
+ textrees = ''
end
- sffxlst = suffixlist.join(',')
- speedup.each do |speed|
- textrees.each do |tt|
- tt.gsub!(/[\\\/]$/, '')
- if FileTest.directory?(tt) then
- begin
- report("locating '#{filename}' in tree '#{tt}/#{speed}/#{filename}.{#{sffxlst}}'")
- if (result = Dir.glob("#{tt}/#{speed}/#{filename}.{#{sffxlst}}")) && result && result[0] && FileTest.file?(result[0]) then
- fullname = result[0]
- break
+ if not textrees.empty? then
+ textrees.gsub!(/[\{\}\!]/, '')
+ textrees = textrees.split(',')
+ if (suffixlist.length == 1) && (suffixlist.first =~ /(#{$documentlist})/) then
+ speedup = ['doc**','**']
+ else
+ speedup = ['**']
+ end
+ sffxlst = suffixlist.join(',')
+ speedup.each do |speed|
+ textrees.each do |tt|
+ tt.gsub!(/[\\\/]$/, '')
+ if FileTest.directory?(tt) then
+ begin
+ report("locating '#{filename}' in tree '#{tt}/#{speed}/#{filename}.{#{sffxlst}}'")
+ if (result = Dir.glob("#{tt}/#{speed}/#{filename}.{#{sffxlst}}")) && result && result[0] && FileTest.file?(result[0]) then
+ fullname = result[0]
+ break
+ end
+ rescue
+ report("locating '#{filename}' in tree '#{tt}' aborted")
+ next
end
- rescue
- report("locating '#{filename}' in tree '#{tt}' aborted")
- next
end
end
+ break if fullname && ! fullname.empty?
end
- break if fullname && ! fullname.empty?
end
- end
- if register(filename,fullname) then
- return shortpathname(fullname)
- else
- return ''
+ if register(filename,fullname) then
+ return shortpathname(fullname)
+ else
+ return ''
+ end
+ rescue
+ # error, trace = $!, $@.join("\n")
+ # report("fatal error: #{error}\n#{trace}")
+ report("fatal error")
end
end
def run(fullname)
if ! fullname || fullname.empty? then
- report("the file '#{$filename}' is not found")
+ output("the file '#{$filename}' is not found")
elsif FileTest.file?(fullname) then
begin
case fullname
- when /\.(#{$scriptlist})$/ then
+ when /\.(#{$scriptlist})$/i then
return runoneof($1,fullname,false)
- when /\.(#{$documentlist})$/ then
+ when /\.(#{$documentlist})$/i then
return runoneof($1,fullname,true)
else
return runoneof('unknown',fullname,false)
end
rescue
- report("starting '#{$filename}' in program space '#{$program}' fails")
+ report("starting '#{$filename}' in program space '#{$program}' fails (#{$!})")
end
else
report("the file '#{$filename}' in program space '#{$program}' is not accessible")
@@ -646,13 +2169,33 @@ def edit(filename)
end
end
-def make(filename,windows=false,linux=false)
- basename = filename.dup
- basename.sub!(/\.[^.]+?$/, '')
- basename.sub!(/^.*[\\\/]/, '')
- basename = $stubpath + '/' + basename unless $stubpath.empty?
- if basename == filename then
- report('nothing made')
+def make(filename,windows=false,linux=false,remove=false)
+ basename = File.basename(filename).gsub(/\.[^.]+?$/, '')
+ if $stubpath == 'auto' then
+ basename = File.dirname($0) + '/' + basename
+ else
+ basename = $stubpath + '/' + basename unless $stubpath.empty?
+ end
+ if filename == 'texmfstart' then
+ program = 'ruby'
+ command = 'kpsewhich --format=texmfscripts --progname=context texmfstart.rb'
+ filename = `#{command}`.chomp.gsub(/\\/, '/')
+ if filename.empty? then
+ report("failure: #{command}")
+ return
+ elsif not remove then
+ if windows then
+ ['bat','exe'].each do |suffix|
+ if FileTest.file?("#{basename}.#{suffix}") then
+ report("windows stub '#{basename}.#{suffix}' skipped (already present)")
+ return
+ end
+ end
+ elsif linux && FileTest.file?(basename) then
+ report("unix stub '#{basename}' skipped (already present)")
+ return
+ end
+ end
else
program = nil
if filename =~ /[\\\/]/ && filename =~ /\.(#{$scriptlist})$/ then
@@ -660,31 +2203,39 @@ def make(filename,windows=false,linux=false)
end
filename = "\"#{filename}\"" if filename =~ /\s/
program = 'texmfstart' if $indirect || ! program || program.empty?
- begin
+ end
+ begin
+ callname = $predefined[filename.sub(/\.*?$/,'')] || filename
+ if remove then
+ if windows && (File.delete(basename+'.bat') rescue false) then
+ report("windows stub '#{basename}.bat' removed (calls #{callname})")
+ elsif linux && (File.delete(basename) rescue false) then
+ report("unix stub '#{basename}' removed (calls #{callname})")
+ end
+ else
if windows && f = open(basename+'.bat','w') then
f.binmode
f.write("@echo off\015\012")
- f.write("#{program} #{filename} %*\015\012")
+ f.write("#{program} #{callname} %*\015\012")
f.close
- report("windows stub '#{basename}.bat' made")
+ report("windows stub '#{basename}.bat' made (calls #{callname})")
elsif linux && f = open(basename,'w') then
f.binmode
f.write("#!/bin/sh\012")
- f.write("#{program} #{filename} $@\012")
+ f.write("#{program} #{callname} \"$@\"\012")
f.close
- report("unix stub '#{basename}' made")
+ report("unix stub '#{basename}' made (calls #{callname})")
end
- rescue
- report("failed to make stub '#{basename}'")
- else
- return true
end
+ rescue
+ report("failed to make stub '#{basename}' #{$!}")
+ return false
+ else
+ return true
end
- return false
end
def process(&block)
-
if $iftouched then
files = $directives['iftouched'].split(',')
oldname, newname = files[0], files[1]
@@ -697,52 +2248,145 @@ def process(&block)
else
report("file #{oldname} is untouched")
end
+ elsif $ifchanged then
+ filename = $directives['ifchanged']
+ checkname = filename + ".md5"
+ oldchecksum, newchecksum = "old", "new"
+ begin
+ newchecksum = MD5.new(IO.read(filename)).hexdigest.upcase
+ rescue
+ newchecksum = "new"
+ else
+ begin
+ oldchecksum = IO.read(checkname).chomp
+ rescue
+ oldchecksum = "old"
+ end
+ end
+ if $verbose then
+ report("old checksum #{filename}: #{oldchecksum}")
+ report("new checksum #{filename}: #{newchecksum}")
+ end
+ if oldchecksum != newchecksum then
+ report("file is changed, processing started")
+ begin
+ File.open(checkname,'w') do |f|
+ f << newchecksum
+ end
+ rescue
+ end
+ yield
+ else
+ report("file #{filename} is unchanged")
+ end
else
yield
end
+end
+def checkenvironment(tree)
+ report('')
+ ENV['TMP'] = ENV['TMP'] || ENV['TEMP'] || ENV['TMPDIR'] || ENV['HOME']
+ case RUBY_PLATFORM
+ when /(mswin|bccwin|mingw|cygwin)/i then ENV['TEXOS'] = ENV['TEXOS'] || 'texmf-mswin'
+ when /(linux)/i then ENV['TEXOS'] = ENV['TEXOS'] || 'texmf-linux'
+ when /(darwin|rhapsody|nextstep)/i then ENV['TEXOS'] = ENV['TEXOS'] || 'texmf-macosx'
+ # when /(netbsd|unix)/i then # todo
+ else # todo
+ end
+ ENV['TEXOS'] = "#{ENV['TEXOS'].sub(/^[\\\/]*/, '').sub(/[\\\/]*$/, '')}"
+ ENV['TEXPATH'] = tree.sub(/\/+$/,'') # + '/'
+ ENV['TEXMFOS'] = "#{ENV['TEXPATH']}/#{ENV['TEXOS']}"
+ report('')
+ report("preset : TEXPATH => #{ENV['TEXPATH']}")
+ report("preset : TEXOS => #{ENV['TEXOS']}")
+ report("preset : TEXMFOS => #{ENV['TEXMFOS']}")
+ report("preset : TMP => #{ENV['TMP']}")
+ report('')
end
-def checktree(tree)
- unless tree.empty? then
- begin
- setuptex = File.join(tree,'setuptex.tmf')
- if FileTest.file?(setuptex) then
- report('')
- report("tex tree : #{setuptex}")
- ENV['TEXPATH'] = tree.sub(/\/+$/,'') # + '/'
- ENV['TMP'] = ENV['TMP'] || ENV['TEMP'] || ENV['TMPDIR'] || ENV['HOME']
- case RUBY_PLATFORM
- when /(mswin|bccwin|mingw|cygwin)/i then ENV['TEXOS'] = ENV['TEXOS'] || 'texmf-mswin'
- when /(linux)/i then ENV['TEXOS'] = ENV['TEXOS'] || 'texmf-linux'
- when /(darwin|rhapsody|nextstep)/i then ENV['TEXOS'] = ENV['TEXOS'] || 'texmf-macosx'
- # when /(netbsd|unix)/i then # todo
- else # todo
- end
- ENV['TEXMFOS'] = "#{ENV['TEXPATH']}/#{ENV['TEXOS']}"
- report('')
- report("preset : TEXPATH => #{ENV['TEXPATH']}")
- report("preset : TEXOS => #{ENV['TEXOS']}")
- report("preset : TEXMFOS => #{ENV['TEXMFOS']}")
- report("preset : TMP => #{ENV['TMP']}")
- report('')
- IO.readlines(File.join(tree,'setuptex.tmf')).each do |line|
- case line
- when /^[\#\%]/ then
- # comment
- when /^(.*?)\s+\=\s+(.*)\s*$/ then
- k, v = $1, $2
- ENV[k] = v.gsub(/\%(.*?)\%/) do
- ENV[$1] || ''
- end
- report("user set : #{k} => #{ENV[k]}")
+def loadfile(filename)
+ begin
+ IO.readlines(filename).each do |line|
+ case line.chomp
+ when /^[\#\%]/ then
+ # comment
+ when /^(.*?)\s*(\>|\=|\<)\s*(.*)\s*$/ then
+ # = assign | > prepend | < append
+ key, how, value = $1, $2, $3
+ begin
+ # $SAFE = 0
+ value.gsub!(/\%(.*?)\%/) do
+ ENV[$1] || ''
+ end
+ # value.gsub!(/\;/,$separator) if key =~ /PATH/i then
+ case how
+ when '=', '<<' then ENV[key] = value
+ when '?', '??' then ENV[key] = ENV[key] || value
+ when '<', '+=' then ENV[key] = (ENV[key] || '') + $separator + value
+ when '>', '=+' then ENV[key] = value + $separator + (ENV[key] ||'')
+ end
+ rescue
+ report("user set failed : #{key} (#{$!})")
+ else
+ report("user set : #{key} => #{ENV[key]}")
end
- end
+ end
+ end
+ rescue
+ report("error in reading file '#{filename}'")
+ end
+end
+
+def loadtree(tree)
+ begin
+ unless tree.empty? then
+ if File.directory?(tree) then
+ setuptex = File.join(tree,'setuptex.tmf')
+ else
+ setuptex = tree.dup
+ end
+ if FileTest.file?(setuptex) then
+ report("tex tree definition: #{setuptex}")
+ checkenvironment(File.dirname(setuptex))
+ loadfile(setuptex)
else
report("no setup file '#{setuptex}'")
end
- rescue
end
+ rescue
+ # maybe tree is empty or boolean (no arg given)
+ end
+end
+
+def loadenvironment(environment)
+ begin
+ unless environment.empty? then
+ filename = if $path.empty? then environment else File.expand_path(File.join($path,environment)) end
+ if FileTest.file?(filename) then
+ report("environment : #{environment}")
+ loadfile(filename)
+ else
+ report("no environment file '#{environment}'")
+ end
+ end
+ rescue
+ report("problem while loading '#{environment}'")
+ end
+end
+
+def show_environment
+ if $showenv then
+ keys = ENV.keys.sort
+ size = 0
+ keys.each do |k|
+ size = k.size if k.size > size
+ end
+ report('')
+ keys.each do |k|
+ report("#{k.rjust(size)} => #{ENV[k]}")
+ end
+ report('')
end
end
@@ -752,38 +2396,54 @@ def execute(arguments)
$directives = hashed(arguments)
- $help = $directives['help'] || false
- $batch = $directives['batch'] || false
- $filename = $directives['file'] || ''
- $program = $directives['program'] || 'context'
- $direct = $directives['direct'] || false
- $edit = $directives['edit'] || false
- $page = $directives['page'] || 0
- $browser = $directives['browser'] || false
- $report = $directives['report'] || false
- $verbose = $directives['verbose'] || (ENV['_CTX_VERBOSE_'] =~ /(y|yes|t|true|on)/io) || false
- $arguments = $directives['arguments'] || ''
- $execute = $directives['execute'] || $directives['exec'] || false
- $locate = $directives['locate'] || false
-
- $path = $directives['path'] || ''
- $tree = $directives['tree'] || ''
+ $help = $directives['help'] || false
+ $batch = $directives['batch'] || false
+ $filename = $directives['file'] || ''
+ $program = $directives['program'] || 'context'
+ $direct = $directives['direct'] || false
+ $edit = $directives['edit'] || false
+ $page = $directives['page'] || 0
+ $browser = $directives['browser'] || false
+ $report = $directives['report'] || false
+ $verbose = $directives['verbose'] || false
+ $arguments = $directives['arguments'] || ''
+ $execute = $directives['execute'] || $directives['exec'] || false
+ $locate = $directives['locate'] || false
+
+ $autotree = if $directives['autotree'] then (ENV['TEXMFSTART_TREE'] || ENV['TEXMFSTARTTREE'] || '') else '' end
+
+ $path = $directives['path'] || ''
+ $tree = $directives['tree'] || $autotree || ''
+ $environment = $directives['environment'] || ''
+
+ $make = $directives['make'] || false
+ $remove = $directives['remove'] || $directives['delete'] || false
+ $unix = $directives['unix'] || false
+ $windows = $directives['windows'] || $directives['mswin'] || false
+ $stubpath = $directives['stubpath'] || ''
+ $indirect = $directives['indirect'] || false
+
+ $before = $directives['before'] || ''
+ $after = $directives['after'] || ''
+
+ $iftouched = $directives['iftouched'] || false
+ $ifchanged = $directives['ifchanged'] || false
+
+ $openoffice = $directives['oo'] || false
+ $crossover = false if $directives['clear']
- $make = $directives['make'] || false
- $unix = $directives['unix'] || false
- $windows = $directives['windows'] || false
- $stubpath = $directives['stubpath'] || ''
- $indirect = $directives['indirect'] || false
+ $showenv = $directives['showenv'] || false
+ $verbose = true if $showenv
- $before = $directives['before'] || ''
- $after = $directives['after'] || ''
+ $serve = $directives['serve'] || false
- $iftouched = $directives['iftouched'] || false
+ $verbose = true if (ENV['_CTX_VERBOSE_'] =~ /(y|yes|t|true|on)/io) && ! $locate && ! $report
- $openoffice = $directives['oo'] || false
+ # private:
- $crossover = false if $directives['clear']
+ $selfmerge = $directives['selfmerge'] || false
+ $selfcleanup = $directives['selfclean'] || $directives['selfcleanup'] || false
ENV['_CTX_VERBOSE_'] = 'yes' if $verbose
@@ -805,21 +2465,49 @@ def execute(arguments)
end
end
- if $help || ! $filename || $filename.empty? then
+ if $selfmerge then
+ output("ruby libraries are cleaned up") if SelfMerge::cleanup
+ output("ruby libraries are merged") if SelfMerge::merge
+ elsif $selfcleanup then
+ output("ruby libraries are cleaned up") if SelfMerge::cleanup
+ elsif $serve then
+ if ENV['KPSEMETHOD'] && ENV['KPSEPORT'] then
+ # # kpse_merge_done: require 'base/kpseremote'
+ begin
+ KpseRemote::start_server
+ rescue
+ end
+ else
+ usage
+ puts("")
+ puts("message : set 'KPSEMETHOD' and 'KPSEPORT' variables")
+ end
+ elsif $help || ! $filename || $filename.empty? then
usage
- checktree($tree)
+ loadtree($tree)
+ loadenvironment($environment)
+ show_environment()
elsif $batch && $filename && ! $filename.empty? then
# todo, take commands from file and avoid multiple starts and checks
else
report("texmfstart version #{$version}")
- checktree($tree)
- if $make then
- if $windows then
- make($filename,true,false)
- elsif $unix then
- make($filename,false,true)
+ loadtree($tree)
+ loadenvironment($environment)
+ show_environment()
+ if $make || $remove then
+ if $filename == 'all' then
+ makelist = $makelist
else
- make($filename,$mswindows,!$mswindows)
+ makelist = [$filename]
+ end
+ makelist.each do |filename|
+ if $windows then
+ make(filename,true,false,$remove)
+ elsif $unix then
+ make(filename,false,true,$remove)
+ else
+ make(filename,$mswindows,!$mswindows,$remove)
+ end
end
elsif $browser && $filename =~ /^http\:\/\// then
launch($filename)
@@ -832,8 +2520,12 @@ def execute(arguments)
edit($filename)
else # script: or no prefix
command = find(shortpathname($filename),$program)
- register("THREAD",File.dirname(File.expand_path(command)))
- run(command)
+ if command then
+ register("THREAD",File.dirname(File.expand_path(command)))
+ run(command)
+ else
+ report('unable to locate program')
+ end
end
end
rescue
@@ -845,3 +2537,5 @@ def execute(arguments)
end
execute(ARGV)
+
+exit (if ($?.to_i rescue 0) > 0 then 1 else 0 end)
diff --git a/Master/texmf-dist/scripts/context/ruby/textools.rb b/Master/texmf-dist/scripts/context/ruby/textools.rb
index 78982f175a1..99338834736 100644
--- a/Master/texmf-dist/scripts/context/ruby/textools.rb
+++ b/Master/texmf-dist/scripts/context/ruby/textools.rb
@@ -13,7 +13,7 @@
# This script will harbor some handy manipulations on tex
# related files.
-banner = ['TeXTools', 'version 1.2.2', '2002/2005', 'PRAGMA ADE/POD']
+banner = ['TeXTools', 'version 1.3.1', '2002/2006', 'PRAGMA ADE/POD']
unless defined? ownpath
ownpath = $0.sub(/[\\\/][a-z0-9\-]*?\.rb/i,'')
@@ -41,6 +41,69 @@ class Commands
include CommandBase
+ def tpmmake
+ if filename = @commandline.argument('first') then
+ filename = File.join('tpm',filename) unless filename =~ /^tpm[\/\\]/
+ filename += '.tpm' unless filename =~ /\.tpm$/
+ if FileTest.file?(filename) then
+ data = IO.read(filename) rescue ''
+ data, fn, n = calculate_tpm(data,"TPM:RunFiles")
+ data, fm, m = calculate_tpm(data,"TPM:DocFiles")
+ data = replace_tpm(data,"TPM:Size",n+m)
+ report("total size #{n+m}")
+ begin
+ File.open(filename, 'w') do |f|
+ f << data
+ end
+ rescue
+ report("unable to save '#{filename}'")
+ else
+ report("file '#{filename}' is updated")
+ filename = File.basename(filename).sub(/\..*$/,'')
+ zipname = sprintf("%s-%04i.%02i.%02i%s",filename,Time.now.year,Time.now.month,Time.now.day,'.zip')
+ File.delete(zipname) rescue true
+ report("zipping file '#{zipname}'")
+ system("zip -r -9 -q #{zipname} #{[fn,fm].flatten.join(' ')}")
+ end
+ else
+ report("no file '#{filename}'")
+ end
+ end
+ end
+
+ def calculate_tpm(data, tag='')
+ size, ok = 0, Array.new
+ data.gsub!(/<#{tag}.*>(.*?)<\/#{tag}>/m) do
+ content = $1
+ files = content.split(/\s+/)
+ files.each do |file|
+ unless file =~ /^\s*$/ then
+ if FileTest.file?(file) then
+ report("found file #{file}")
+ size += FileTest.size(file) rescue 0
+ ok << file
+ else
+ report("missing file #{file}")
+ end
+ end
+ end
+ "<#{tag} size=\"#{size}\">#{content}</#{tag}>"
+ end
+ [data, ok, size]
+ end
+
+ def replace_tpm(data, tag='', txt='')
+ data.gsub(/(<#{tag}.*>)(.*?)(<\/#{tag}>)/m) do
+ $1 + txt.to_s + $3
+ end
+ end
+
+end
+
+class Commands
+
+ include CommandBase
+
def hidemapnames
report('hiding FontNames in map files')
xidemapnames(true)
@@ -871,6 +934,8 @@ commandline.registeraction('downcasefilenames', '[--recurse] [--force]') # not y
commandline.registeraction('stripformfeeds' , '[--recurse] [--force]') # not yet documented
commandline.registeraction('showfont' , 'filename')
+commandline.registeraction('tpmmake' , 'tpm file (run in texmf root)')
+
commandline.registeraction('help')
commandline.registeraction('version')
diff --git a/Master/texmf-dist/scripts/context/ruby/texutil.rb b/Master/texmf-dist/scripts/context/ruby/texutil.rb
new file mode 100644
index 00000000000..da9a192054d
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/texutil.rb
@@ -0,0 +1,96 @@
+banner = ['TeXUtil ', 'version 9.1.0', '1997-2005', 'PRAGMA ADE/POD']
+
+unless defined? ownpath
+ ownpath = $0.sub(/[\\\/][a-z0-9\-]*?\.rb/i,'')
+ $: << ownpath
+end
+
+require 'base/switch'
+require 'base/logger'
+require 'base/file'
+require 'base/texutil'
+
+class Commands
+
+ include CommandBase
+
+ def references
+ filename = @commandline.argument('first')
+ if not filename.empty? and FileTest.file?(File.suffixed(filename,'tuo')) then
+ if tu = TeXUtil::Converter.new(logger) and tu.loaded(filename) then
+ tu.saved if tu.processed
+ end
+ end
+ end
+
+ def main
+ if @commandline.arguments.length>0 then
+ references
+ else
+ help
+ end
+ end
+
+ def purgefiles
+ system("texmfstart ctxtools --purge #{@commandline.arguments.join(' ')}")
+ end
+
+ def purgeallfiles
+ system("texmfstart ctxtools --purge --all #{@commandline.arguments.join(' ')}")
+ end
+
+ def documentation
+ system("texmfstart ctxtools --document #{@commandline.arguments.join(' ')}")
+ end
+
+ def analyzefile
+ system("texmfstart pdftools --analyze #{@commandline.arguments.join(' ')}")
+ end
+
+ def filterpages # obsolete
+ system("texmfstart ctxtools --purge #{@commandline.arguments.join(' ')}")
+ end
+
+ def figures
+ report("this code is not yet converted from perl to ruby")
+ end
+
+ def logfile
+ report("this code is not yet converted from perl to ruby")
+ end
+
+end
+
+logger = Logger.new(banner.shift)
+commandline = CommandLine.new
+
+# main feature
+
+commandline.registeraction('references', 'convert tui file into tuo file')
+
+# todo features
+
+commandline.registeraction('figures', 'generate figure dimensions file')
+commandline.registeraction('logfile', 'filter essential log messages')
+
+# backward compatibility features
+
+commandline.registeraction('purgefiles', 'remove most temporary files')
+commandline.registeraction('purgeallfiles', 'remove all temporary files')
+commandline.registeraction('documentation', 'generate documentation file from source')
+commandline.registeraction('analyzefile', 'analyze pdf file')
+
+# old feature, not needed any longer due to extension of pdftex
+
+commandline.registeraction('filterpages')
+
+# generic features
+
+commandline.registeraction('help')
+commandline.registeraction('version')
+
+commandline.registerflag('verbose')
+
+commandline.expand
+
+Commands.new(commandline,logger,banner).send(commandline.action || 'main')
diff --git a/Master/texmf-dist/scripts/context/ruby/tmftools.rb b/Master/texmf-dist/scripts/context/ruby/tmftools.rb
index d125c5cae69..074e949d139 100644
--- a/Master/texmf-dist/scripts/context/ruby/tmftools.rb
+++ b/Master/texmf-dist/scripts/context/ruby/tmftools.rb
@@ -21,10 +21,11 @@
# tmftools --analyze > kpsewhat.log
# tmftools --analyze --strict > kpsewhat.log
# tmftools --analyze --delete --force "texmf-local/fonts/.*/somename"
+# tmftools --serve
# the real thing
-banner = ['TMFTools', 'version 1.0.0 (experimental, no help yet)', '2005', 'PRAGMA ADE/POD']
+banner = ['TMFTools', 'version 1.1.0 (experimental, no help yet)', '2005/2006', 'PRAGMA ADE/POD']
unless defined? ownpath
ownpath = $0.sub(/[\\\/][a-z0-9\-]*?\.rb/i,'')
@@ -33,27 +34,58 @@ end
require 'base/switch'
require 'base/logger'
-require 'base/kpsefast'
class Commands
include CommandBase
def init_kpse
- k = KPSEFAST.new
- k.rootpath = @commandline.option('rootpath')
- k.treepath = @commandline.option('treepath')
- k.progname = @commandline.option('progname')
- k.engine = @commandline.option('engine')
- k.format = @commandline.option('format')
- k.diskcache = @commandline.option('diskcache')
- k.renewcache = @commandline.option('renewcache')
- k.load_cnf
- k.expand_variables
- k.load_lsr
+ # require 'base/kpseremote'
+ # if KpseRemote::available? then
+ if ENV['KPSEMETHOD'] && ENV['KPSEPORT'] then
+ require 'base/kpseremote'
+ k = KpseRemote.new
+ else
+ k = nil
+ end
+ if k && k.okay? then
+ k.progname = @commandline.option('progname')
+ k.engine = @commandline.option('engine')
+ k.format = @commandline.option('format')
+ else
+ require 'base/kpsefast'
+ k = KpseFast.new
+ k.rootpath = @commandline.option('rootpath')
+ k.treepath = @commandline.option('treepath')
+ k.progname = @commandline.option('progname')
+ k.engine = @commandline.option('engine')
+ k.format = @commandline.option('format')
+ k.diskcache = @commandline.option('diskcache')
+ k.renewcache = @commandline.option('renewcache')
+ k.load_cnf
+ k.expand_variables
+ k.load_lsr
+ end
return k
end
+ def serve
+ if ENV['KPSEMETHOD'] && ENV['KPSEPORT'] then
+ require 'base/kpseremote'
+ begin
+ KpseRemote::start_server
+ rescue
+ end
+ end
+ end
+
+ def reload
+ begin
+ init_kpse.load
+ rescue
+ end
+ end
+
def main
if option = @commandline.option('expand-braces') and not option.empty? then
puts init_kpse.expand_braces(option)
@@ -128,6 +160,9 @@ commandline.registerflag('verbose')
commandline.registeraction('help')
commandline.registeraction('version')
+commandline.registeraction('reload', 'reload file database')
+commandline.registeraction('serve', 'act as kpse server')
+
commandline.expand
Commands.new(commandline,logger,banner).send(commandline.action || 'main')
diff --git a/Master/texmf-dist/scripts/context/ruby/www/admin.rb b/Master/texmf-dist/scripts/context/ruby/www/admin.rb
new file mode 100644
index 00000000000..8983ca2b77c
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/www/admin.rb
@@ -0,0 +1,215 @@
+require 'fileutils'
+
+require 'www/lib'
+require 'www/dir'
+require 'www/common'
+
+class WWW
+
+ include Common
+
+ # klopt nog niet, twee keer task met een verschillend doel
+
+ def handle_exatask
+ # case @session.check('task', request_variable('task'))
+ task, options, option = @session.get('task'), @session.get('option').split(@@re_bar), request_variable('option')
+ option = (options.first || '') if option.empty?
+ case task
+ when 'exaadmin'
+ @session.set('status', 'admin') # admin: status|dir
+ touch_session(@session.get('id'))
+ if options.include?(option) then
+ case option
+ when 'status' then handle_exaadmin_status
+ when 'dir' then handle_exaadmin_dir
+ else handle_exaadmin_status
+ end
+ elsif option.empty? then
+ message('Status', "unknown option")
+ else
+ message('Status', "option '#{option}' not permitted #{options.inspect}")
+ end
+ else
+ message('Status', "unknown task '#{task}'")
+ end
+ end
+
+ def handle_exaadmin
+ if id = valid_session() then
+ handle_exatask
+ else
+ message('Status', 'no login')
+ end
+ end
+
+ def handle_exaadmin_dir
+ check_template_file('exalogin','exalogin-template.htm')
+ @interface.set('path:docroot', work_root)
+ @interface.set('dir:uri', 'exaadmin') # forces the dir handler into cgi mode
+ @interface.set('dir:task', 'exaadmin') # forces the dir handler into cgi mode
+ @interface.set('dir:option', 'dir') # forces the dir handler into cgi mode
+ filename = "#{@@session_prefix}#{request_variable('path')}"
+ fullname = File.join(work_root,filename)
+ if request_variable('path').empty? then
+ handle_exaadmin_status
+ elsif FileTest.directory?(fullname) then
+ handle_dir(filename, [], false)
+ elsif File.zero?(fullname) then
+ message('Error', "The file '#{filename}' is empty")
+ elsif File.size?(fullname) > (4 * 1024 * 1024) then
+ if FileTest.file?(File.expand_path(File.join(cache_root,filename))) then
+ str = "<br/><br/>Cached alternative: <a href=\"#{File.join('cache',filename)}\">#{File.basename(filename)}</a>"
+ else
+ str = ''
+ end
+ message('Error', "The file '#{filename}' is too big to serve over cgi." + str)
+ else
+ send_file(fullname)
+ end
+ end
+
+ def handle_exaadmin_status
+ check_template_file('exalogin','exalogin-template.htm')
+ begin
+ n, str, lines, list, start, most, least, cached = 0, '', '', Hash.new, Time.now, 0, 0, false
+ filename = File.join(tmp_path(dirname),'sessions.rbd')
+ begin
+ File.open(filename) do |f|
+ list = Marshal.load(f)
+ end
+ rescue
+ cached, list = false, Hash.new
+ else
+ cached = true
+ end
+ files = Dir.glob("{#{work_roots.join(',')}}/#{@@session_prefix}*.ses")
+ list.keys.each do |l|
+ list.delete(l) unless files.include?(l) # slow
+ end
+ files.each do |f|
+ ctime = File.ctime(f)
+ stime = list[f][0] == ctime rescue 0
+ unless ctime == stime then
+ begin
+ hash = load_session_file(f)
+ rescue
+ else
+ list[f] = [ctime,hash]
+ end
+ end
+ end
+ begin
+ File.open(filename,'w') do |f|
+ f << Marshal.dump(list)
+ end
+ rescue
+ # no save
+ end
+ begin
+ keys = list.keys.sort do |a,b|
+ case list[b][0] <=> list[a][0]
+ when -1 then -1
+ when +1 then +1
+ else
+ a <=> b
+ end
+ end
+ rescue
+ keys = list.keys.sort
+ end
+ totaltime, totaldone = 0.0, 0
+ if keys.length > 0 then
+ keys.each do |entry|
+ s, t, session = entry, list[entry][0], list[entry][1]
+ status = session['status'] || ''
+ runtime = (session['runtime'] || '').to_f rescue 0
+ starttime = (start.to_i-session['starttime'].to_i).to_s rescue ''
+ requesttime = session['endtime'].to_i-session['starttime'].to_i rescue 0
+ requesttime = if requesttime > 0 then requesttime.to_s else '' end
+ if runtime > 0.0 then
+ totaltime += runtime
+ totaldone += 1
+ if least > 0 then
+ if runtime < least then least = runtime end
+ else
+ least = runtime
+ end
+ if most > 0 then
+ if runtime > most then most = runtime end
+ else
+ most = runtime
+ end
+ end
+ if status.empty? then
+ # skip, garbage
+ elsif status =~ /^(|exa)admin/o then
+ # skip, useless
+ else
+ begin
+ lines << "<tr>\n"
+ lines << td("<a href=\"exaadmin?option=dir&path=#{session['id']}.dir\">#{session['id']}</a>")
+ lines << td(status)
+ lines << td(session['timeout'])
+ lines << td(starttime)
+ lines << td(session['runtime'])
+ lines << td(requesttime)
+ lines << td(t.strftime("%H:%M:%S %Y-%m-%d"))
+ lines << td(session['domain'])
+ lines << td(session['project'])
+ lines << td(session['username'])
+ lines << td(File.basename(File.dirname(s)))
+ lines << "</tr>\n"
+ rescue
+ else
+ n += 1
+ end
+ end
+ end
+ if n > 0 then
+ str = "<table cellpadding='0'>\n"
+ str << "<tr>\n"
+ str << th('session identifier')
+ str << th('status')
+ str << th('timeout')
+ str << th('time')
+ str << th('runtime')
+ str << th('total')
+ str << th('modification&nbsp;time')
+ str << th('domain')
+ str << th('project')
+ str << th('username')
+ str << th('process')
+ str << "</tr>\n"
+ str << lines
+ str << "</table>\n"
+ end
+ end
+ rescue
+ message('Status', "#{$!} There is currently no status available.", false, @@admin_refresh, 'exaadmin')
+ else
+ if n > 0 then
+ # r = if n > 100 then 60 else @@admin_refresh.to_i end # scanning takes long
+ r = @@admin_refresh
+ average = "average = #{if totaldone > 0 then sprintf('%.02f',totaltime/totaldone) else '0' end} (#{sprintf('%.02f',least)} .. #{sprintf('%.02f',most)})"
+ sessions = "sessions = #{n}"
+ refresh = "refresh = #{r.to_s} sec"
+ loadtime = "loadtime = #{sprintf('%.04f',Time.now-start)} sec"
+ cached = if cached then "cached" else "not cached" end
+ message("Status | #{sessions} | #{refresh} | #{loadtime} - #{cached} | #{average} |", str, false, r, 'exaadmin')
+ else
+ message('Status', "There are no sessions registered.", false, @@admin_refresh, 'exaadmin')
+ end
+ end
+ end
+
+ private
+
+ def th(str)
+ "<th align='left'>#{str}&nbsp;&nbsp;&nbsp;</th>\n"
+ end
+
+ def td(str)
+ "<td><code>#{str || ''}&nbsp;&nbsp;&nbsp</code></td>\n"
+ end
+
+end
diff --git a/Master/texmf-dist/scripts/context/ruby/www/common.rb b/Master/texmf-dist/scripts/context/ruby/www/common.rb
new file mode 100644
index 00000000000..9c383229456
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/www/common.rb
@@ -0,0 +1,80 @@
+# We cannot chdir in threads because it is something
+# process wide, so we will run into problems with the
+# other threads. The same is true for the global ENV
+# pseudo hash, so we cannot communicate the runpath
+# via an anvironment either. This leaves texmfstart
+# in combination with a path directive and an tmf file.
+
+module Common # can be a mixin
+
+ # we assume that the hash.subset method is defined
+
+ @@re_texmfstart = /^(texmfstart|ruby\s*texmfstart.rb)\s*(.*)$/
+ @@re_texmfpath = /^\-\-path\=/
+
+ def command_string(path,command,log='')
+ runner = "texmfstart --path=#{File.expand_path(path)}"
+ if command =~ @@re_texmfstart then
+ cmd, arg = $1, $2
+ if arg =~ @@re_texmfpath then
+ # there is already an --path (first switch)
+ else
+ command = "#{runner} #{arg}"
+ end
+ else
+ command = "#{runner} bin:#{command}"
+ end
+ if log && ! log.empty? then
+ return "#{command} 2>&1 > #{File.expand_path(File.join(path,log))}"
+ else
+ return command
+ end
+ end
+
+ def set_os_vars
+ begin
+ ENV['TEXOS'] = ENV['TEXOS'] || platform
+ rescue
+ ENV['TEXOS'] = 'texmf-linux'
+ else
+ ENV['TEXOS'] = 'texmf-' + ENV['TEXOS'] unless ENV['TEXOS'] =~ /^texmf\-/
+ ensure
+ ENV['EXA:TEXOS'] = ENV['TEXOS']
+ end
+ end
+
+ def set_environment(hash)
+ set_os_vars
+ paths = ENV['PATH'].split(File::PATH_SEPARATOR)
+ hash.subset('binpath:').keys.each do |key|
+ begin
+ paths << File.expand_path(hash[key])
+ rescue
+ end
+ end
+ ENV['PATH'] = paths.uniq.join(File::PATH_SEPARATOR)
+ hash.subset('path:').keys.each do |path|
+ key, value = "EXA:#{path.upcase}", File.expand_path(hash[path])
+ ENV[key] = value
+ end
+ end
+
+ def save_environment(hash,path,filename='request.tmf')
+ begin
+ File.open(File.join(path,filename),'w') do |f|
+ set_os_vars
+ ['EXA:TEXOS','TEXOS'].each do |key|
+ f.puts("#{key} = #{ENV[key]}")
+ end
+ hash.subset('binpath:').keys.each do |key|
+ f.puts("PATH < #{File.expand_path(@interface.get(key))}")
+ end
+ hash.subset('path:').keys.each do |path|
+ f.puts("EXA:#{path.upcase} = #{File.expand_path(@interface.get(path))}")
+ end
+ end
+ rescue
+ end
+ end
+
+end
diff --git a/Master/texmf-dist/scripts/context/ruby/www/dir.rb b/Master/texmf-dist/scripts/context/ruby/www/dir.rb
new file mode 100644
index 00000000000..09e088d772d
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/www/dir.rb
@@ -0,0 +1,155 @@
+require 'www/lib'
+
+# dir handling
+
+class WWW
+
+ # borrowed code from webrick demo, patched
+
+ @@dir_name_width = 25
+
+ def handle_dir(dirpath=@variables.get('path'),hidden=[],showdirs=true)
+ check_template_file('dir','text-template.htm')
+ docroot = @interface.get('path:docroot')
+ dirpath = dirpath || ''
+ hidden = [] unless hidden
+ local_path = dirpath.dup
+ title, str = "Index of #{escaped(dirpath)}", ''
+ begin
+ local_path.gsub!(/[\/\\]+/,'/')
+ local_path.gsub!(/\/$/, '')
+ if local_path !~ /^(\.|\.\.|\/|[a-zA-Z]\:)$/io then # maybe also /...
+ full_path = File.join(docroot,local_path)
+ @interface.set('log:dir', full_path)
+ begin
+ list = Dir::entries(full_path)
+ rescue
+ str << "unable to parse #{local_path}"
+ else
+ if list then
+ list.collect! do |name|
+ if name =~ /^\.+/o then
+ nil # no . and ..
+ else
+ st = (File::stat(File.join(docroot,local_path,name)) rescue nil)
+ if st.nil? then
+ [name, nil, -1, false]
+ elsif st.directory? then
+ if showdirs then [name + "/", st.mtime, -1, true] else nil end
+ elsif hidden.length > 0 then
+ if hidden.include?(name) then nil else [name, st.mtime, st.size, false] end
+ else
+ [name, st.mtime, st.size, false]
+ end
+ end
+ end
+ list.compact!
+ n, m, s = @variables.get('n'), @variables.get('m'), @variables.get('s')
+ if ! n.empty? then
+ idx, d0 = 0, n
+ elsif ! m.empty? then
+ idx, d0 = 1, m
+ elsif ! s.empty? then
+ idx, d0 = 2, s
+ else
+ idx, d0 = 0, 'a'
+ end
+ d1 = if d0 == 'a' then 'd' else 'a' end
+ if d0 == 'a' then
+ list.sort! do |a,b| a[idx] <=> b[idx] end
+ else
+ list.sort! do |a,b| b[idx] <=> a[idx] end
+ end
+ u = dir_uri(@variables.get('path') || '.')
+ str << "<div class='dir-view'>\n<pre>\n"
+ str << "<a href=\"#{u}&n=#{d1}\">name</A>".ljust(49+u.length)
+ str << "<a href=\"#{u}&m=#{d1}\">last modified</A>".ljust(41+u.length)
+ str << "<a href=\"#{u}&s=#{d1}\">size</A>".rjust(31+u.length) << "\n" << "\n"
+ # parent path
+ if showdirs && ! hidden.include?('..') then
+ dname = "parent directory"
+ fname = "#{File.dirname(dirpath)}"
+ time = File::mtime(File.join(docroot,local_path,"/.."))
+ str << dir_entry(fname,dname,time,-1,true)
+ str << "\n"
+ end
+ # directories
+ done = false
+ list.each do |name, time, size, dir|
+ if dir then
+ if name.size > @@dir_name_width then
+ dname = name.sub(/^(.#{@@dir_name_width-2})(.*)/) do $1 + ".." end
+ else
+ dname = name
+ end
+ fname = "#{escaped(dirpath)}/#{escaped(name)}"
+ str << dir_entry(fname,dname,time,size,dir)
+ done = true
+ end
+ end
+ str << "\n" if done
+ # files
+ list.each do |name, time, size, dir|
+ unless dir then
+ if name.size > @@dir_name_width then
+ dname = name.sub(/^(.#{@@dir_name_width-2})(.*)/) do $1 + ".." end
+ else
+ dname = name
+ end
+ fname = "#{escaped(dirpath)}/#{escaped(name)}"
+ str << dir_entry(fname,dname,time,size,dir)
+ end
+ end
+ str << "\n"
+ str << '</pre></div>'
+ else
+ str << 'no info'
+ end
+ end
+ else
+ str << 'no access'
+ end
+ rescue
+ str << "error #{$!}<br/><pre>"
+ str << $@.join("\n")
+ str << "</pre>"
+ end
+ message(title,str)
+ end
+ def dir_uri(f='.')
+ u, t, o = @interface.get('dir:uri'), @interface.get('dir:task'), @interface.get('dir:option') # takes precedence, in case we run under cgi control
+ if u.empty? then
+ u, t, o = @interface.get('process:uri'), '', ''
+ elsif ! t.empty? then
+ t = "task=#{t}&"
+ o = "option=#{o}&"
+ end
+ if u && ! u.empty? then
+ u = u.sub(/\?.*$/,'') # frozen string
+ if f =~ /^\.+$/ then
+ "#{u}?#{t}#{o}path="
+ else
+ "#{u}?#{t}#{o}path=#{f}"
+ end
+ else
+ ''
+ end
+ end
+
+ def dir_entry(fname,dname,time,size,dir=false)
+ if dir then
+ f = fname.sub(/\/+$/,'').sub(/^\/+/,'')
+ s = "<a href=\"#{dir_uri(f)}\">#{dname}</a>"
+ elsif ! @interface.get('dir:uri').empty? then # takes precedence, in case we run under cgi control
+ s = "<a href=\"#{dir_uri(fname.gsub(/\/+/,'/'))}\">#{dname}</a>"
+ else
+ s = "<a href=\"#{fname.gsub(/\/+/,'/')}\">#{dname}</a>"
+ end
+ # s << " " * (30 - dname.size)
+ s << " " * (@@dir_name_width + 5 - dname.size)
+ s << (time ? time.strftime("%Y/%m/%d %H:%M ") : " " * 22)
+ s << (size >= 0 ? size.to_s : "-").rjust(12) << "\n"
+ return s
+ end
+
+end
diff --git a/Master/texmf-dist/scripts/context/ruby/www/exa.rb b/Master/texmf-dist/scripts/context/ruby/www/exa.rb
new file mode 100644
index 00000000000..c6d59d86434
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/www/exa.rb
@@ -0,0 +1,386 @@
+require 'fileutils'
+require 'www/lib'
+require 'www/dir'
+require 'www/common'
+require 'www/admin'
+
+class WWW
+
+ include Common
+
+ def handle_exadefault
+ check_template_file('exalogin','exalogin-template.htm')
+ if id = logged_in_session(true) then
+ finish_login
+ else
+ message('Error', 'No default login permitted.')
+ end
+ end
+
+ def handle_exalogin
+ check_template_file('exalogin','exalogin-template.htm')
+ if id = logged_in_session(false) then
+ finish_login
+ else
+ message('Error', 'No default login permitted.')
+ end
+ end
+
+ def finish_login
+ get_gui()
+ filename, path, task = @session.get('gui'), @session.checked('path','.'), @session.get('task')
+ if ! task.empty? then
+ save_session
+ handle_exatask
+ elsif filename and not filename.empty? then
+ save_session
+ fullname = filename.gsub(/\.\./,'')
+ fullname = File.join(path,filename) unless FileTest.file?(fullname)
+ fullname = File.join(@interface.get('path:interfaces'), filename) unless FileTest.file?(fullname)
+ fullname = File.join(@interface.get('path:interfaces'), path, filename) unless FileTest.file?(fullname)
+ if FileTest.file?(fullname) then
+ send_file(fullname,true)
+ else
+ message('Interface', 'Invalid interface request, no valid interface file.' )
+ end
+ else
+ message('Interface', 'Invalid interface request, no default interface file.')
+ end
+ end
+
+ def handle_exainterface()
+ check_template_file('text','exalogin-template.htm')
+ if id = valid_session() then
+ filename = @interface.get('process:uri').to_s # kind of dup
+ if ! filename.empty? && filename.sub!(/^.*\//,'') then
+ path = @session.checked('path', '.')
+ fullname = filename.gsub(/\.\./,'')
+ fullname = File.join(path,filename) unless FileTest.file?(fullname)
+ fullname = File.join(@interface.get('path:interfaces'),filename) unless FileTest.file?(fullname)
+ fullname = File.join(@interface.get('path:interfaces'),path,filename) unless FileTest.file?(fullname)
+ if FileTest.file?(fullname) then
+ save_session
+ send_file(fullname,true)
+ else
+ get_file(filename)
+ filename, path = @session.get('gui'), @session.checked('path','.')
+ if filename and not filename.empty? then
+ save_session
+ fullname = filename.gsub(/\.\./,'')
+ fullname = File.join(path,filename) unless FileTest.file?(fullname)
+ fullname = File.join(@interface.get('path:interfaces'),filename) unless FileTest.file?(fullname)
+ fullname = File.join(@interface.get('path:interfaces'),path,filename) unless FileTest.file?(fullname)
+ send_file(fullname,true) if FileTest.file?(fullname)
+ else
+ message('Interface', 'Invalid interface request, no interface file.')
+ end
+ end
+ else
+ message('Interface', 'Invalid interface request, no resource file.')
+ end
+ else
+ message('Interface', 'Invalid interface request, no login.')
+ end
+ end
+
+ def handle_exarequest() # todo: check if request is 'command'
+ check_template_file('exalogin','exalogin-template.htm')
+ if id = client_session() then
+ client = true
+ @interface.set('log:kind', "remote client request: #{id}")
+ elsif id = valid_session() then
+ client = false
+ @interface.set('log:kind', "remote browser request: #{id}")
+ else
+ client, id = false, nil
+ @interface.set('log:kind', 'unknown kind of request')
+ end
+ if id then
+ dir, tmp = dirname, tmp_path(dirname)
+ requestname, replyname = 'request.exa', 'reply.exa'
+ requestfile, replyfile = File.join(tmp,requestname), File.join(tmp,replyname)
+ lockfile = File.join(dirname,lckname)
+ action, filename, command, url, req = '', '', '', '', ''
+ extract_sent_files(tmp)
+ @variables.each do |key, value|
+ case key
+ when 'exa:request' then
+ req = value.dup
+ when 'exa:action' then
+ action = value.dup
+ # when 'exa:command' then
+ # command = value.dup
+ # when 'exa:url' then
+ # url = value.dup
+ when 'exa:filename' then
+ filename = value.dup
+ when 'exa:threshold' then
+ @interface.set('process:threshold', value.dup)
+ when /^fakename/o then
+ @variables.set(key, File.basename(value))
+ when /^filename\-/o then
+ @variables.set(key, filename = File.basename(value))
+ when /^dataname\-/o then
+ @variables.set(key)
+ else # remove varname- prefix from value
+ @variables.set(key, @variables.get(key).sub(/#{key}\-/,''))
+ end
+ end
+ @variables.check('exa:filename', filename)
+ @variables.check('exa:action', action)
+ if @variables.empty?('exa:filename') then
+ @variables.set('exa:filename', @interface.get('log:attachments').split('|').first || '')
+ end
+ req.gsub!(/<exa:data\s*\/>/i, '')
+ dat = "<exa:data>\n"
+ @variables.each do |key, value|
+ if ['password','exa:request'].include?(key) then
+ # skip
+ elsif ! value || value.empty? then
+ dat << "<exa:variable label='#{key}'/>\n"
+ else # todo: escape 'm
+ dat << "<exa:variable label='#{key}'>#{value}</exa:variable>\n"
+ end
+ end
+ dat << "</exa:data>\n"
+ if req.empty? then
+ req << "<?xml version='1.0' ?>\n"
+ req << "<exa:request #{@@namespace}'>\n"
+ req << "<exa:application>\n"
+ req << "<exa:action>'#{action}</exa:action>\n" unless action.empty?
+ # req << "<exa:command>'#{command}</exa:command>\n" unless command.empty?
+ # req << "<exa:url>'#{url}</exa:url>\n" unless url.empty?
+ req << "<exa:application>\n"
+ req << "<exa:comment>constructed request</exa:comment>\n"
+ req << dat
+ req << "</exa:request>\n"
+ else
+ # better use rexml but slower
+ if req =~ /<exa:request[^>]*>.*?\s*<exa:threshold>\s*(.*?)\s*<\/exa:threshold>\s*.*?<\/exa:request>/mois then
+ threshold = $1
+ unless threshold.empty? then
+ @interface.set('process:threshold', threshold)
+ @session.set('threshold', threshold)
+ end
+ end
+ req.sub!(/(<exa:request[^>]*>.*?)\s*<exa:option>\s*\-\-action\=(.*?)\s*<\/exa:option>\s*(.*?<\/exa:request>)/mois) do
+ pre, act, pos = $1, $2, $3
+ action = act.sub(/\.exa$/,'') if action.empty?
+ str = "#{pre}<exa:action>#{action}</exa:action>#{pos}"
+ str.sub(/\s*<exa:command>.*?<\/exa:command>\s*/mois ,'')
+ end
+ req.sub!(/(<exa:request[^>]*>.*?)<exa:action>\s*(.*?)\s*<\/exa:action>(.*?<\/exa:request>)/mois) do
+ pre, act, pos = $1, $2, $3
+ action = act.sub(/\.exa$/,'') if action.empty?
+ str = "#{pre}<exa:action>#{action}</exa:action>#{pos}"
+ str.sub(/\s*<exa:command>.*?<\/exa:command>\s*/mois ,'')
+ end
+ unless req =~ /<exa:data>(.*?)<\/exa:data>/mois then
+ req.sub!(/(<\/exa:request>)/) do dat + $1 end
+ end
+ end
+ req.sub!(/<exa:filename>.*?<\/exa:filename>/mois, '')
+ unless @variables.empty?('exa:filename') then
+ req.sub!(/(<\/exa:application>)/mois) do
+ "<exa:filename>#{@variables.get('exa:filename')}<\/exa:filename>" + $1
+ end
+ end
+ @variables.set('exa:action', action)
+ @interface.set("log:#{requestname}", req)
+ begin
+ File.open(requestfile,'w') do |f|
+ f << req
+ end
+ rescue
+ message('Error', 'There is a problem in handling this request (working path access).')
+ return
+ end
+ File.delete(replyfile) rescue false
+ @interface.set('log:action',action)
+ get_command(action)
+ logdata = ''
+ begin
+ command = @session.get('command')
+ @interface.set('log:command',if command.empty? then '[no command]' else command end)
+ if ! command.empty? then
+ @session.set('starttime', Time.now.to_i.to_s) # can be variables and in save list
+ if @interface.true?('process:background') then
+ # background
+ @session.set('status', 'running: background')
+ @session.set('maxtime', @interface.get('process:timeout'))
+ @session.set('threshold', @interface.get('process:threshold'))
+ save_session
+ timeout(@@watch_delay) do
+ save_environment(@interface,tmp)
+ begin
+ starttime = File.mtime(@session_file)
+ # crap
+ loop do
+ sleep(1)
+ if starttime != File.mtime(@session_file) then
+ break unless FileTest.file?(lockfile)
+ end
+ end
+ rescue TimeoutError
+ if client then
+ send_reply()
+ else
+ message('Status', 'Processing your request takes a while',true,5,'exastatus')
+ end
+ return
+ rescue
+ end
+ end
+ if client then send_reply() else send_result() end
+ else
+ # foreground
+ status = 'running: foreground'
+ @session.set('status', status)
+ @session.set('maxtime', @interface.get('process:timeout'))
+ @session.set('threshold', @interface.get('process:threshold'))
+ save_session
+ timeout(@interface.get('process:timeout').to_i) do
+ begin
+ status = 'running: foreground'
+ set_environment(@interface)
+ save_environment(@interface,tmp)
+ command = command_string(tmp,command)
+ logdata = `#{command}`
+ rescue TimeoutError
+ status = 'running: timeout'
+ logdata = "timeout: #{@interface.get('process:timeout')} seconds"
+ rescue
+ status = 'running: aborted'
+ logdata = 'fatal runtime error'
+ else
+ @session.set('endtime', Time.now.to_i.to_s)
+ status = 'running: finished'
+ end
+ end
+ @session.set('status', status)
+ save_session
+ case @session.get('status')
+ when 'running: finished' then
+ if client then send_reply(logdata) else send_result(logdata) end
+ when 'running: timeout' then
+ message('Error', 'There is a problem in handling this request (timeout).')
+ when 'running: aborted' then
+ message('Error', 'There is a problem in handling this request (aborted).')
+ else
+ message('Error', 'There is a problem in handling this request (unknown).')
+ end
+ end
+ else
+ message('Error', 'There is a problem in handling this request (no runner).')
+ end
+ rescue
+ message('Error', 'There is a problem in handling this request (no run).' + $!)
+ end
+ else
+ message('Error', 'Invalid session.')
+ end
+ end
+
+ def handle_exacommand() # shares code with exarequest
+ check_template_file('exalogin','exalogin-template.htm')
+ if id = client_session() then
+ client = true
+ @interface.set('log:kind', "remote client request: #{id}")
+ elsif id = valid_session() then
+ client = false
+ @interface.set('log:kind', "remote browser request: #{id}")
+ else
+ client, id = false, nil
+ @interface.set('log:kind', 'unknown kind of request')
+ end
+ if id then
+ dir, tmp = dirname, tmp_path(dirname)
+ requestname, replyname = 'request.exa', 'reply.exa'
+ requestfile, replyfile = File.join(tmp,requestname), File.join(tmp,replyname)
+ req, command, url = '', '', ''
+ @variables.each do |key, value|
+ case key
+ when 'exa:request' then
+ req = value.dup
+ when 'exa:command' then
+ command = value.dup
+ when 'exa:threshold' then
+ @interface.set('process:threshold', value.dup)
+ when 'exa:url' then
+ url = value.dup
+ end
+ end
+ unless req.empty? then
+ # better use rexml but slower / reuse these : command = filter_from_request('exa:command')
+ if req =~ /<exa:request[^>]*>.*?\s*<exa:command>\s*(.*?)\s*<\/exa:command>\s*.*?<\/exa:request>/mois then
+ command = $1
+ end
+ if req =~ /<exa:request[^>]*>.*?\s*<exa:url>\s*(.*?)\s*<\/exa:url>\s*.*?<\/exa:request>/mois then
+ url = $1
+ end
+ if req =~ /<exa:request[^>]*>.*?\s*<exa:threshold>\s*(.*?)\s*<\/exa:threshold>\s*.*?<\/exa:request>/mois then
+ threshold = $1
+ unless threshold.empty? then
+ @interface.set('process:threshold', threshold)
+ @session.set('threshold', threshold)
+ end
+ end
+ end
+ @variables.check('exa:command', command)
+ @variables.check('exa:url', url)
+ File.delete(replyfile) rescue false
+ case @variables.get('exa:command')
+ when 'fetch' then
+ if @variables.empty?('exa:url') then
+ message('Error', "Problems with fetching, no file given")
+ else
+ # the action starts here
+ filename = @variables.get('exa:url').to_s # kind of dup
+ unless filename.empty? then
+ get_path(filename) # also registers filename as url
+ path = @session.checked('path', '')
+ fullname = filename.gsub(/\.\./,'')
+ fullname = File.join(path,fullname) unless path.empty?
+ if FileTest.file?(fullname) then
+ if client then
+ send_url(fullname)
+ else
+ send_file(fullname,true)
+ end
+ @session.set('threshold', @interface.get('process:threshold'))
+ @session.set('url',filename)
+ save_session
+ else
+ message('Error', "Problems with fetching, unknown file #{fullname}.")
+ # message('Error', "Problems with fetching, unknown file #{filename}.")
+ end
+ else
+ message('Error', "Problems with fetching, invalid file #{filename}.")
+ end
+ # and ends here
+ end
+ else
+ message('Error', "Invalid command #{command}.")
+ end
+ else
+ message('Error', 'Invalid session.')
+ end
+ end
+
+ def handle_exastatus
+ if request_variable('id').empty? then
+ if id = valid_session() then
+ send_result()
+ else
+ message('Error', 'Invalid session.')
+ end
+ else
+ if id = valid_session() then
+ send_reply()
+ else
+ send_reply('invalid session')
+ end
+ end
+ end
+
+end
diff --git a/Master/texmf-dist/scripts/context/ruby/www/lib.rb b/Master/texmf-dist/scripts/context/ruby/www/lib.rb
new file mode 100644
index 00000000000..542c31166d3
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/www/lib.rb
@@ -0,0 +1,1399 @@
+#!/usr/bin/env ruby
+
+# This is just a simple environment for remote processing of context
+# files. It's not a framework, nor an example of how that should be done.
+# Nowadays there are environments like Rails or Nitro. Maybe some day I'll
+# give one of them a try.
+
+# <META Http-Equiv="Cache-Control" Content="no-cache">
+# <META Http-Equiv="Pragma" Content="no-cache">
+# <META Http-Equiv="Expires" Content="0">
+
+# we make limited use of cgi methods because we also need to handle webrick
+
+# %var% as well as $(var) are supported
+
+# paths need to be expanded before they enter apache, since .. is not
+# handled by default
+
+require 'base/variables'
+
+require 'ftools'
+require 'fileutils'
+require 'tempfile'
+require 'timeout'
+require 'md5'
+require 'digest/md5'
+require 'cgi' # we also need escaping for webrick (could move it here)
+
+# beware, namespaces have to match !
+
+module XML
+
+ def XML::element(tag,attributes=nil)
+ if attributes.class == Hash then
+ if block_given? then
+ XML::element(tag,XML::attributes(attributes)) do yield end
+ else
+ XML::element(tag,XML::attributes(attributes))
+ end
+ else
+ if block_given? then
+ "<#{tag}#{if attributes && ! attributes.empty? then ' ' + attributes end}>#{yield}</#{tag}>"
+ else
+ "<#{tag}#{if attributes && ! attributes.empty? then ' ' + attributes end}/>"
+ end
+ end
+ end
+
+ def XML::attributes(hash)
+ str = ''
+ hash.each do |k,v|
+ str << ' ' unless str.empty?
+ if v =~ /\'/ then
+ str << "#{k}=\"#{v}\""
+ else
+ str << "#{k}=\'#{v}\'"
+ end
+ end
+ return str
+ end
+
+ def XML::create(version='1.0')
+ "<?version='#{version}'?>#{yield || ''}"
+ end
+
+ def XML::line
+ "\n"
+ end
+
+end
+
+# str =
+ # XML::create do
+ # XML::element('test') do
+ # XML::element('test') do
+ # 'text a'
+ # end +
+ # XML::element('test',XML::attributes({'a'=>'b'})) do
+ # XML::element('nested',XML::attributes({'a'=>'b'})) do
+ # 'text b-1'
+ # end +
+ # XML::element('nested',XML::attributes({'a'=>'b'})) do
+ # 'text b-2'
+ # end
+ # end +
+ # XML::element('nested',{'a'=>'b'}) do
+ # 'text c'
+ # end
+ # end
+ # end
+
+class ExtendedHash
+
+ DEFAULT = 'default'
+
+ @@re_default = /^(default|)$/i
+
+ def default?(key)
+ self[key] =~ @@re_default rescue true # unset, empty or 'default'
+ end
+
+ def default(key)
+ self[key] = DEFAULT
+ end
+
+ def match?(key,value)
+ value == '*' || value == self[key]
+ end
+
+
+end
+
+class WWW
+
+ @@session_prefix = ''
+ @@data_file = 'example.cfg'
+ @@session_max_age = 60*60
+ @@watch_delay = 30
+ @@send_threshold = 2*1024*1024
+ @@admin_refresh = 10
+ @@namespace = "http://www.pragma-ade.com/schemas/example.rng"
+
+ @@re_bar = /\s*\|\s*/
+ @@re_lst = /\s*\,\s*/
+ @@re_var_a = /\%(.*?)\%/
+ @@re_var_b = /\$\((.*?)\)/
+
+ attr_reader :variables
+ attr_writer :variables
+
+ @@paths = [
+ 'configurations',
+ 'data',
+ 'distributions',
+ 'documents',
+ 'interfaces',
+ 'logs',
+ 'resources',
+ 'runners',
+ 'scripts',
+ 'templates',
+ 'work']
+
+ @@re_true = /^\s*(YES|ON|TRUE|1)\s*$/io
+ @@re_false = /^\s*(NO|OFF|FALSE|0)\s*$/io
+
+ def initialize(webrick_daemon=nil,webrick_request=nil,webrick_response=nil)
+ @session_id, @session_file = '', ''
+ @cgi, @cgi_cookie = nil, nil
+ @webrick_daemon, @webrick_request, @webrick_response = webrick_daemon, webrick_request, webrick_response
+
+ @interface = ExtendedHash.new
+ @variables = ExtendedHash.new
+ @session = ExtendedHash.new
+
+ @checked = false
+
+ analyze_request()
+ update_interface()
+
+ @interface.set('template:message' , 'exalogin-template.htm')
+ @interface.set('template:status' , 'exalogin-template.htm')
+ @interface.set('template:login' , 'exalogin.htm')
+ @interface.set('process:timeout' , @@session_max_age)
+ @interface.set('process:threshold' , @@send_threshold)
+ @interface.set('process:background', 'yes') # this demands a watchdog being active
+ @interface.set('process:indirect' , 'no') # indirect download, no direct feed
+ @interface.set('process:autologin' , 'yes') # provide default interface when applicable
+ @interface.set('process:exaurl' , '') # this one will be used as replacement in templates
+ @interface.set('trace:run' , 'no')
+ @interface.set('trace:errors' , 'no')
+ @interface.set('process:os' , platform)
+ @interface.set('process:texos' , 'texmf-' + platform)
+
+ @interface.set('trace:run' , 'yes') if (ENV['EXA:TRACE:RUN'] || '') =~ @@re_true
+ @interface.set('trace:errors' , 'yes') if (ENV['EXA:TRACE:ERRORS'] || '') =~ @@re_true
+
+ yield self if block_given?
+ end
+
+ def set(key,value)
+ @interface.set(key,value)
+ end
+ def get(key)
+ @interface.get(key,value)
+ end
+
+ def platform
+ case RUBY_PLATFORM
+ when /(mswin|bccwin|mingw|cygwin)/i then 'mswin'
+ when /(linux)/i then 'linux'
+ when /(netbsd|unix)/i then 'unix'
+ when /(darwin|rhapsody|nextstep)/i then 'macosx'
+ else 'unix'
+ end
+ end
+
+ def check_cgi
+ # when mod_ruby is used, we need to close
+ # the cgi session explicitly
+ unless @webrick_request then
+ unless @cgi then
+ @cgi = CGI.new('html4')
+ at_exit do
+ begin
+ @cgi.close
+ rescue
+ end
+ end
+ end
+ end
+ end
+
+ def request_variable(key)
+ begin
+ if @webrick_request then
+ [@webrick_request.query[key]].flatten.first.to_s
+ else
+ check_cgi
+ [@cgi.params[key]].flatten.first.to_s
+ end
+ rescue
+ ''
+ end
+ end
+
+ def request_cookie(key)
+ begin
+ if @cgi then
+ if str = @cgi.cookies[key] then
+ return str.first || ''
+ end
+ elsif @webrick_request then
+ @webrick_request.cookies.flatten.each do |cookie|
+ if cookie.name == key then
+ return cookie.value unless cookie.value.empty?
+ end
+ end
+ end
+ rescue
+ end
+ return ''
+ end
+
+ def analyze_request
+ if @webrick_request then
+ @interface.set('path:docroot', @webrick_daemon.config[:DocumentRoot] || './documents')
+ @interface.set('process:uri', @webrick_request.request_uri.to_s)
+ # @interface.set('process.url', [@webrick_request.host,@webrick_request.request_port].join(':'))
+ @cgi = nil
+ @webrick_request.query.each do |key, value|
+ # todo: filename
+ @variables.set(key, [value].flatten.first)
+ end
+ else
+ @interface.set('path:docroot', ENV['DOCUMENT_ROOT'] || './documents')
+ @interface.set('process:uri', ENV['REQUEST_URI'] || '')
+ # @interface.set('process.url', [ENV['SERVER_NAME'],ENV['SERVER:PORT']].join(':'))
+ ARGV[0] = '' # get rid of terminal mode
+ check_cgi
+ # quite fragile, due to changes between 1.6 and 1.8
+ @cgi.params.keys.each do |p|
+ if @cgi[p].respond_to?(:original_filename) then
+ @interface.set('log:method','post')
+ if @cgi[p].original_filename && ! @cgi[p].original_filename.empty? then
+ @variables.set(p, File.basename(@cgi[p].original_filename))
+ else
+ case @cgi.params[p].class
+ when StringIO.class then @variables.set(p, @cgi[p].read)
+ when Array.class then @variables.set(p, @cgi[p].first.to_s)
+ when String.class then @variables.set(p, @cgi[p])
+ when Tempfile.class then @variables.set(p, '[data blob]')
+ end
+ end
+ else
+ @interface.set('log:method','get') unless @interface.get('log:method') == 'post'
+ @variables.set(p, [@cgi.params[p]].flatten.first.to_s)
+ end
+ end
+ end
+ @interface.set('path:root', File.dirname(@interface.get('path:docroot')))
+ end
+
+ # name in calling script takes precedence
+ # one can set template:whatever as well
+ # todo: in config
+
+ def check_template_file(tag='',filename='exalogin-template.htm')
+ @interface.set('file:template', filename) if @interface.get('file:template').empty?
+ @interface.set('tag:template', tag)
+ @interface.set('file:template', @interface.get('tag:template')) unless @interface.get('tag:template').empty?
+ end
+
+ def update_interface()
+ root = @interface.get('path:docroot')
+ @interface.set('path:docroot', File.expand_path("#{root}"))
+ @@paths.each do |path|
+ @interface.set("path:#{path}", File.expand_path("#{root}/../#{path}"))
+ end
+ @interface.set('file:template', @interface.get('tag:template')) unless @interface.get('tag:template').empty?
+ end
+
+ def indirect?(result)
+ size = FileTest.size?(result) || 0
+ @interface.true?('trace:errors') || @interface.true?('trace:run') || @interface.true?('process:indirect') ||
+ ((! @interface.empty?('process:threshold')) && (size > @interface.get('process:threshold').to_i)) ||
+ ((! @session.empty?('threshold')) && (size > @session.get('threshold').to_i))
+ end
+
+end
+
+# files
+
+class WWW
+
+ def sesname
+ File.basename(@session_file)
+ end
+ def dirname
+ File.basename(@session_file.sub(/ses$/,'dir'))
+ end
+ def lckname
+ File.basename(@session_file.sub(/ses$/,'lck'))
+ end
+
+ def work_root(expand=true)
+ p = if expand then File.expand_path(@interface.get('path:work')) else @interface.get('path:work') end
+ if @interface.true?('process:background') then
+ File.join(@interface.get('path:work'),'watch')
+ else
+ File.join(@interface.get('path:work'),'direct')
+ end
+ end
+
+ def work_roots(expand=true)
+ p = if expand then File.expand_path(@interface.get('path:work')) else @interface.get('path:work') end
+ [File.join(@interface.get('path:work'),'watch'),File.join(@interface.get('path:work'),'direct')]
+ end
+
+ def cache_root(expand=true)
+ p = if expand then File.expand_path(@interface.get('path:work')) else @interface.get('path:work') end
+ File.join(@interface.get('path:work'),'cache')
+ end
+
+ def cleanup_path(dir)
+ FileUtils::rm_r(pth) rescue false
+ end
+
+ def tmp_path(dir)
+ @interface.set('path:templates', File.expand_path(@interface.get('path:templates'))) # to be sure; here ? ? ?
+ pth = File.join(work_root,dir)
+ File.makedirs(pth) rescue false
+ pth
+ end
+
+ def locked?(lck)
+ FileTest.file?(lck)
+ end
+
+end
+
+# sessions
+
+class WWW
+
+ @@session_tags = ['id','domain','project','username','password','gui','path','process','command','filename','action','status', 'starttime','endtime','runtime','task','option','threshold','url'].sort
+ @@session_keep = ['id','domain','project','username','password','process'].sort
+ @@session_reset = @@session_tags - @@session_keep
+
+ def new_session()
+ if @variables.empty?('exa:session') then
+ @session_id = new_session_id
+ else
+ @session_id = @variables.get('exa:session')
+ end
+ if @session_id == 'default' then # ???
+ @session_id = new_session_id
+ end
+ @session_file = File.join(work_root,"#{@@session_prefix}#{@session_id}.ses")
+ register_session
+ return @session_id
+ end
+
+ def reset_session(all=false)
+ (if all then @@session_tags else @@session_reset end).each do |k|
+ @session.set(k)
+ end
+ end
+
+ def valid_session
+ @session_id = request_variable('id')
+ if @session_id.empty? then
+ begin
+ if @cgi then
+ if @session_id = @cgi.cookies['session_id'] then
+ @session_id = @session_id.first || ''
+ else
+ @session_id = ''
+ end
+ elsif @webrick_request then
+ @webrick_request.cookies.flatten.each do |cookie|
+ if cookie.name == 'session_id' then
+ unless cookie.value.empty? then
+ @session_id = cookie.value
+ # break
+ end
+ end
+ end
+ else
+ @session_id = ''
+ end
+ rescue
+ @interface.set('log:session',"[error in request #{$!}]")
+ return false
+ end
+ end
+ if @session_id.empty? then
+ @interface.set('log:session','[no id, check work dir permissions]')
+ return false
+ else
+ @interface.set('log:session',@session_id)
+ load_session
+ if ! @session.empty?('domain') && ! @session.empty?('project') && ! @session.empty?('username') then
+ register_session
+ return @session_id
+ else
+ return false
+ end
+ end
+ end
+
+ def touch_session(id=nil)
+ begin
+ t = Time.now
+ File.utime(t,t,File.join(work_root,"#{@@session_prefix}#{id || @session_id}.ses")) rescue false
+ rescue
+ false
+ end
+ end
+
+ def forced_session
+ @session_id = new_session
+ if @session_id.empty? then
+ @interface.set('log:session','[no id, check work dir permissions]')
+ return false
+ else
+ return check_session
+ end
+ end
+
+ def client_session
+ request, done = @variables.get('exa:request'), false
+ request.sub!(/(^.*<exa:request[^>]*>.*?)\s*<exa:client>\s*(.*)\s*<\/exa:client>\s*(.*?<\/exa:request>.*$)/mio) do
+ pre, client, post = $1, $2, $3
+ client.scan(/<exa:(domain|project|username|password)>(.*?)<\/exa:\1>/mio) do
+ @variables.set($1, $2)
+ end
+ done = true
+ pre + post
+ end
+ if done then
+ return forced_session
+ else
+ return nil
+ end
+ end
+
+ def register_session
+ if @cgi then
+ @cgi_cookie = CGI::Cookie::new(
+ 'name' => 'session_id',
+ 'value' => @session_id,
+ 'expires' => Time.now + @interface.get('process:timeout').to_i
+ )
+ # @cgi_cookie = CGI::Cookie::new('session_id',@session_id)
+ elsif @webrick_response then
+ if cookie = WEBrick::Cookie.new('session_id', @session_id) then
+ cookie.expires = Time.now + @interface.get('process:timeout').to_i
+ cookie.max_age = @interface.get('process:timeout').to_i
+ cookie.comment = 'exa identifier'
+ @webrick_response.cookies.clear
+ @webrick_response.cookies << cookie
+ end
+ end
+ end
+
+ def new_session_id # taken from cgi
+ md5 = Digest::MD5::new
+ now = Time::now
+ md5.update(now.to_s)
+ md5.update(String(now.usec))
+ md5.update(String(rand(0)))
+ md5.update(String($$))
+ md5.update('foobar')
+ @new_session = true
+ md5.hexdigest[0,32] # was 16
+ end
+
+ @@hide_passwords = true
+ HIDDEN = 'hidden'
+
+ def same_passwords(password) # password in cfg file
+ if @@hide_passwords && (@session.get('password') == HIDDEN) && (@session_id == @session.get('id')) then
+ # this condition is only true when a same session id is found and
+ # the password is checked once and set to HIDDEN
+ same = true
+ elsif password =~ /^MD5:/ then
+ # so, one cannot send a known encrypted password since it will be
+ # encrypted twice then
+ same = (password == "MD5:" + MD5.new(@session.get('password')).hexdigest.upcase)
+ else
+ if (@session.default?('domain') && @session.default?('project') && @session.default?('username')) then
+ @session.default('password') # is this safe enough?
+ end
+ same = (password == @session.get('password'))
+ end
+ if @@hide_passwords && same then
+ @session.set('password', HIDDEN)
+ save_session # next time this session is ok anyway
+ end
+ return same
+ end
+
+ @@session_line = /^\s*(?![\#\%])(.*?)\s*\=\s*(.*?)\s*$/o
+ @@session_begin = 'begin exa session'
+ @@session_end = 'end exa session'
+
+ def loaded_session_data(filename)
+ begin
+ if data = IO.readlines(filename) then
+ return data if (data.first =~ /^[\#\%]\s*#{@@session_begin}/o) && (data.last =~ /^[\#\%]\s*#{@@session_end}/o)
+ end
+ rescue
+ end
+ return nil
+ end
+
+ def load_session()
+ begin
+ @session_file = File.join(work_root,"#{@@session_prefix}#{@session_id}.ses")
+ if data = loaded_session_data(@session_file) then
+ data.each do |line|
+ if line =~ @@session_line then
+ @session.set($1, $2 || '')
+ end
+ end
+ else
+ return false
+ end
+ rescue
+ return false
+ else
+ return true
+ end
+ end
+
+ def load_session_file(filename)
+ begin
+ if data = loaded_session_data(filename) then
+ session = Hash.new
+ data.each do |line|
+ if line =~ @@session_line then
+ session[$1] = $2 || ''
+ end
+ end
+ else
+ Hash.new
+ end
+ rescue
+ Hash.new
+ else
+ session
+ end
+ end
+
+ def save_session
+ begin
+ unless @session_id.empty? then
+ @session_file = File.join(work_root,"#{@@session_prefix}#{@session_id}.ses")
+ @session_file = File.join(work_root,"#{@@session_prefix}#{@session_id}.ses")
+ File.open(@session_file,'w') do |f|
+ f << "\# #{@@session_begin}\n"
+ @@session_tags.each do |tag|
+ if @session && @session.key?(tag) then
+ if ! @session.get(tag).empty? then # no one liner, fails
+ f << "#{tag}=#{@session.get(tag)}\n"
+ end
+ elsif @variables.key?(tag) && ! @variables.empty?(key) then
+ f << "#{tag}=#{@variables.get(tag)}\n"
+ end
+ end
+ @session.subset("ENV").keys.each do |tag|
+ f << "#{tag}=#{@session.get(tag)}\n"
+ end
+ f << "\# #{@@session_end}\n"
+ end
+ end
+ rescue
+ return false
+ else
+ return true
+ end
+ end
+
+ def logged_in_session(force_default=false)
+ if force_default || (@variables.default?('domain') && @variables.default?('project') && @variables.default?('username')) then
+ id = default_session
+ else
+ id = check_session
+ end
+ end
+
+ def default_session
+ if @interface.true?('process:autologin') then
+ @variables.default('domain')
+ @variables.default('project')
+ @variables.default('username')
+ @variables.default('password')
+ check_session
+ else
+ @session_id = nil
+ end
+ end
+
+ def check_session
+ @session.set('domain', @variables.get('domain').downcase)
+ @session.set('project', @variables.get('project').downcase)
+ @session.set('username', @variables.get('username').downcase)
+ @session.set('password', @variables.get('password').downcase)
+ new_session
+ @session.set('id', @session_id)
+ save_session
+ return @session_id
+ end
+
+ def delete_session(id=nil)
+ File.delete(work_root,"#{@@session_prefix}#{id || @session_id}.ses") rescue false
+ end
+
+ def cleanup_sessions(max_age=nil)
+ begin
+ now, age = Time.now, (max_age||@interface.get('process:timeout')).to_i
+ Dir.glob("{#{work_root},#{cache_root}/#{@@session_prefix}*").each do |s|
+ begin
+ if (now - File.mtime(s)) > age then
+ if FileTest.directory?(s) then
+ FileUtils::rm_r(s)
+ else
+ File.delete(s)
+ end
+ end
+ rescue
+ # maybe purged in the meantime
+ end
+ end
+ rescue
+ # maybe another process is busy
+ end
+ end
+
+end
+
+# templates
+
+class WWW
+
+ def filled_template(title,text,showtime=false,refresh=0,refreshurl=nil)
+ template = @interface.get("template:#{@interface.get('tag:template')}")
+ template = @interface.get("template:status") if template.empty?
+ fullname = File.join(@interface.get('path:templates'),template)
+ @interface.set('log:templatename',template)
+ @interface.set('log:templatefile',fullname)
+ append_status(text)
+ htmreply = ''
+ if FileTest.file?(fullname) then
+ begin
+ htmreply = IO.read(fullname)
+ rescue
+ htmreply = ''
+ end
+ end
+ if refresh>0 then
+ if refreshurl then
+ metadata = "<meta http-equiv='refresh' content='#{refresh};#{refreshurl}'>"
+ else
+ metadata = "<meta http-equiv='refresh' content='#{refresh}'>"
+ end
+ else
+ metadata = ''
+ end
+ if ! htmreply || htmreply.empty? then
+ # in head: <link rel='stylesheet' href='/exaresource/exastyle.css'>
+ htmreply = <<-EOD
+ <html>
+ #{metadata}
+ <head>
+ <title>#{title}</title>
+ </head>
+ <body>
+ <h2>#{title}</h2>
+ <h4>#{Time.now}</h4>
+ #{text}
+ </body>
+ </html>
+ EOD
+ else
+ if showtime then
+ exa_template = "<h1>#{title}</h1>\n<h2>#{Time.now}</h2>\n#{text}\n"
+ else
+ exa_template = "<h1>#{title}</h1>#{text}\n"
+ end
+ htmreply = replace_template_placeholder(htmreply,exa_template,metadata)
+ end
+ htmreply
+ end
+
+ def message(title,str='',showtime=false,refresh=0,refreshurl=nil)
+ if @cgi then
+ @cgi.out("cookie"=>[@cgi_cookie]) do
+ filled_template(title,str,showtime,refresh,refreshurl)
+ end
+ elsif @webrick_response then
+ @webrick_response['content-type'] = 'text/html'
+ @webrick_response.body = filled_template(title,str,showtime,refresh,refreshurl)
+ else
+ filled_template(title,str,showtime,refresh,refreshurl)
+ end
+ end
+
+ def plaintext(str)
+ if @cgi then
+ @cgi.out('cookie'=>[@cgi_cookie],'content-type'=>'text/plain') do
+ str
+ end
+ elsif @webrick_response then
+ @webrick_response['content-type'] = 'text/plain'
+ @webrick_response.body = str
+ else
+ str
+ end
+ end
+
+ def exareply(status='',url='',size='',comment='')
+ exaurl = @interface.get('process:exaurl')
+ str = "<?xml version='1.0'?>\n\n"
+ str << "<exa:reply xmlns:exa='#{@@namespace}'>\n"
+ str << " <exa:session>#{@session_id}</exa:session>\n" unless @session_id.empty?
+ str << " <exa:status>#{status}</exa:status>\n" unless (status || '').empty?
+ str << " <exa:url>#{exaurl}/#{url}</exa:url>\n" unless (url || '').empty?
+ str << " <exa:size>#{size}</exa:size>\n" unless (size || '').empty?
+ str << " <exa:comment>#{comment}</exa:comment>\n" unless (comment|| '').empty?
+ str << "</exa:reply>\n"
+ return str
+ end
+
+ def append_status(str='')
+ if @interface.true?('trace:errors') then
+ if $! && $@ then
+ str << "<br/><br/><br/><em>Error:</em><br/><pre>#{$!}</pre><pre>"
+ str << $@.join("\n")
+ end
+ str << '<br/><br/><br/>'
+ str << status_data
+ str << '<em>Paths</em><br/>'
+ str << '<pre>'
+ @interface.subset('path:').each do |k,v|
+ if FileTest.directory?(v) then
+ if FileTest.writable?(v) then
+ str << "#{v} exists and is writable\n"
+ else
+ str << "#{v} is not writable\n"
+ end
+ else
+ str << "#{v} does not exist\n"
+ end
+ end
+ str << '</pre>'
+ end
+ str
+ end
+
+ def simpleurl(url)
+ if url then url.sub(/(:80|:443)$/,'') else '' end
+ end
+
+ def replace_exa_placeholders(data)
+ data.gsub(/([\"\'])\@exa\_([a-zA-Z0-9\-\_]+)\1/) do
+ quot, key, value = $1, $2, ''
+ begin
+ value = @variables.get(key)
+ rescue
+ value = ''
+ end
+ quot + value + quot
+ end
+ end
+
+ def replace_url_placeholder(data)
+ data.gsub!(/(http:\/\/|\/+)*\@exa\_main\_url/, @interface.get('process:exaurl'))
+ replace_exa_placeholders(data)
+ end
+
+ def replace_template_placeholder(data,template='',metadata='')
+ data.gsub!(/(http:\/\/|\/+)*\@exa\_main\_url/, @interface.get('process:exaurl'))
+ data.gsub!(/\@exa\_template/, template)
+ data.gsub!(/\@exa\_metadata/, metadata)
+ replace_exa_placeholders(data)
+ end
+
+ def escaped(str)
+ str
+ end
+
+end
+
+# send files
+
+class WWW
+
+ def send_file(filename,parse=false) # this can take a lot of memory, look for alternative (fastcgi ?)
+ begin
+ if filename =~ /\.pdf$/ then
+ mimetype, parse = 'application/pdf', false
+ elsif filename =~ /\.(html|htm)$/ then
+ mimetype, parse = 'text/html', true
+ else
+ mimetype, parse = 'text/plain', false
+ end
+ if FileTest.file?(filename) then
+ if @webrick_response then
+ begin
+ @webrick_response['content-type'] = mimetype
+ @webrick_response['content-length'] = FileTest.size?(filename)
+ if parse then
+ File.open(filename, 'rb') do |f|
+ @webrick_response.body = replace_url_placeholder(f.read)
+ end
+ else
+ @webrick_response.body = File.open(filename, 'rb')
+ end
+ rescue
+ else
+ return
+ end
+ elsif @cgi then
+ begin
+ # the following works ok, but stores the whole file in memory (see @cgi.out)
+ #
+ # File.open(filename, 'rb') do |f|
+ # @cgi.out('cookie'=>[@cgi_cookie],'connection'=>'close', 'length'=>File.size(filename), 'type'=>mimetype) do
+ # if parse then replace_url_placeholder(f.read) else f.read end
+ # end
+ # end
+ if parse then
+ File.open(filename, 'rb') do |f|
+ @cgi.out('cookie'=>[@cgi_cookie],'connection'=>'close', 'length'=>File.size(filename), 'type'=>mimetype) do
+ replace_url_placeholder(f.read)
+ end
+ end
+ else
+ @cgi.print(@cgi.header('cookie'=>[@cgi_cookie],'connection'=>'close', 'length'=>File.size(filename), 'type'=>mimetype))
+ File.open(filename, 'rb') do |f|
+ while str = f.gets do
+ @cgi.print(str)
+ end
+ end
+ end
+ rescue
+ else
+ return
+ end
+ end
+ end
+ rescue
+ end
+ message('Error', "There is a problem with sending file #{File.basename(filename)}.")
+ end
+
+ def send_htmlfile(filename,parse=false)
+ send_file(filename,parse)
+ end
+ def send_pdffile(filename) # this can take a lot of memory, look for alternative (fastcgi ?)
+ send_file(filename,false)
+ end
+
+end
+
+# tracing
+
+class WWW
+
+ def show_vars(a=@variables,title='')
+ if a && a.length > 0 then
+ if title.empty? then
+ str = ''
+ else
+ str = "<em>#{title}</em>"
+ end
+ str << "<br/><pre>\n"
+ a.keys.sort.each do |k|
+ if k && a[k] && ! a[k].empty? then
+ if k == 'password' then
+ val = if a[k] == 'default' then 'default' else '******' end
+ else
+ # str << "#{k} => #{a[k].sub(/^\s+/moi,'').sub(/\s+$/moi,'')}\n"
+ val = a[k].to_s.strip
+ val.gsub!("&","&amp;")
+ val.gsub!("<","&lt;")
+ val.gsub!(">","&gt;")
+ val.gsub!("\n","\n ")
+ end
+ str << "#{k} => #{val}\n"
+ end
+ end
+ str << "</pre><br/>\n"
+ return str
+ else
+ return ''
+ end
+ end
+
+ def status_data
+ show_vars(@session , 'Session' ) +
+ show_vars(@variables, 'Variables' ) +
+ show_vars(@interface, 'Interface' ) +
+ show_vars(ENV , 'Environment')
+ end
+
+ def report_status
+ check_template_file('status')
+ message('Status',status_data)
+ end
+
+end
+
+# attachments
+
+class WWW
+
+ def extract_sent_files(dir)
+ files = Array.new
+ if @cgi then
+ @cgi.params.keys.each do |tag|
+ begin
+ if filename = @cgi[tag].original_filename then
+ files << extract_file_content(dir,filename,@cgi[tag]) unless filename.empty?
+ end
+ rescue
+ end
+ end
+ elsif @webrick_request then
+ @webrick_request.query.keys.each do |tag|
+ begin
+ if filename = @webrick_request.query[tag].filename then
+ files << extract_file_content(dir,filename,@webrick_request.query[tag]) unless filename.empty?
+ end
+ rescue
+ end
+ end
+ end
+ @interface.set('log:attachments', files.compact.uniq.join('|'))
+ end
+
+ def extract_file_content(dir,filename,data)
+ filename = File.join(dir,File.basename(filename))
+ begin
+ @interface.set('log:attachclass', data.class.inspect)
+ if data.class == Tempfile then
+ begin
+ File.copy(data.path,filename)
+ rescue
+ begin
+ File.open(filename,'wb') do |f|
+ File.open(data.path,'rb') do |g|
+ while str = g.gets do
+ f.write(str)
+ end
+ end
+ end
+ rescue
+ @interface.set('log:attachstate', "saving tempfile #{filename} failed (#{$!})")
+ else
+ @interface.set('log:attachstate', "tempfile #{filename} has been saved")
+ end
+ else
+ @interface.set('log:attachstate', "#{data.path} copied to #{filename}")
+ end
+ elsif data.class == String then
+ begin
+ File.open(filename,'wb') do |f|
+ f.write(data)
+ end
+ rescue
+ @interface.set('log:attachstate', "saving string #{filename} failed (#{$!})")
+ else
+ @interface.set('log:attachstate', "string #{filename} has been saved")
+ end
+ elsif data.class == StringIO then
+ begin
+ File.open(filename,'wb') do |f|
+ f.write(data.read)
+ end
+ rescue
+ @interface.set('log:attachstate', "saving stringio #{filename} failed (#{$!})")
+ else
+ @interface.set('log:attachstate', "stringio #{filename} has been saved")
+ end
+ else
+ @interface.set('log:attachstate', "unknown attachment class #{data.class.to_s}")
+ end
+ rescue
+ begin File.delete(filename) ; rescue ; end
+ else
+ begin File.delete(filename) if FileTest.size(filename) == 0 ; rescue ; end
+ end
+ return File.basename(filename)
+ end
+
+end
+
+# configuration
+
+class WWW
+
+ def interface_base_name(str)
+ str.sub(/\.(pdf|htm|html)$/, '')
+ end
+
+ def located_interface_file(filename)
+ ['configurations', 'runners', 'scripts'].each do |tag|
+ datafile = File.join(@interface.get("path:#{tag}"),filename)
+ if FileTest.file?(datafile+'.encrypted') then
+ return datafile + '.encrypted'
+ elsif FileTest.file?(datafile) then
+ return datafile
+ end
+ end
+ return nil
+ end
+
+ def load_interface_file(filename=@@data_file)
+ reset_session() # no save yet
+ if datafile = located_interface_file(filename) then
+ nestedfiles = Array.new
+ begin
+ data = IO.read(datafile) || ''
+ unless data.empty? then
+ loop do # we need to load them recursively
+ done = false
+ data.gsub!(/^include\s*:\s*(.*?)\s*$/) do
+ includedname, done = $1, true
+ if nestedname = located_interface_file(includedname) then
+ begin
+ str = ("\n" + IO.read(nestedname) + "\n") || ''
+ rescue
+ nestedfiles << File.basename('-'+includedname)
+ ''
+ else
+ nestedfiles << File.basename('+'+includedname)
+ str
+ end
+ else
+ nestedfiles << File.basename('-'+includedname)
+ ''
+ end
+ end
+ break unless done
+ end
+ end
+ @interface.set('log:configurationfile', datafile + ' [' + nestedfiles.join(' ') + ']')
+ return data
+ rescue
+ end
+ end
+ @interface.set('log:configurationfile', filename + ' [not loaded]')
+ return nil
+ end
+
+ def fetch_session_interface_variables(data)
+ data.scan(/^variable\s*:\s*(.*?)\s*\=\s*(.*?)\s*$/) do
+ @interface.set($1, $2)
+ end
+ return true
+ end
+
+ def fetch_session_project_list(data)
+ projectlist, permitted = Array.new, false
+ data.scan(/^user\s*:\s*(.*?)\s*\,\s*(.*?)\s*\=\s*(.*?)\s*\,\s*(.*?)\s*$/) do
+ domain, username, password, projects = $1, $2, $3, $4
+ if @session.match?('domain',domain) && @session.match?('username',username) then
+ if same_passwords(password) then
+ projectlist, permitted = @interface.resolved(projects).split(@@re_bar), true
+ break
+ end
+ end
+ end
+ if permitted then
+ @interface.set('log:projectlist', '['+projectlist.join(' ')+']')
+ if projectlist.length == 0 then
+ return nil
+ else
+ return projectlist
+ end
+ else
+ @interface.set('log:projectlist', '[no projects]')
+ return nil
+ end
+ end
+
+ def fetch_session_command(data)
+ data.scan(/^process\s*:\s*(.*?)\s*\,\s*(.*?)\s*\=\s*(.*?)\s*$/) do
+ domain, process, command = $1, $2, $3
+ if @session.match?('domain',domain) && @session.match?('process',process) then
+ @session.set('command', @interface.resolved(command))
+ end
+ end
+ return @session.get('command')
+ end
+
+ def fetch_session_settings(data)
+ data.scan(/^setting\s*:\s*(.*?)\s*\,\s*(.*?)\s*\,\s*(.*?)\s*\=\s*(.*?)\s*$/) do
+ domain, process, variable, value = $1, $2, $3, $4
+ if @session.match?('domain',domain) && @session.match?('process',process) then
+ @interface.set(variable,value)
+ end
+ end
+ end
+
+ def get_command(action)
+ # @session.set('action', action)
+ # if @session.get('process') == 'none' then
+ # @interface.set('log:child','yes')
+ # @session.set('process', action)
+ # end
+ if data = load_interface_file() then
+ fetch_session_interface_variables(data)
+ if projectlist = fetch_session_project_list(data) then
+ data.scan(/^project\s*:\s*(.*?)\s*\,\s*(.*?)\s*\=\s*(.*?)\s*,\s*(.*?)\s*,\s*(.*?)\s*$/) do
+ domain, project, gui, path, process = $1, $2, $3, $4, $5
+ if @session.match?('domain',domain) then
+ if @session.match?('project',project) then
+ if projectlist.include?(project) then
+ @session.set('process', @interface.resolved(process))
+ # break # no, else we end up in the parent (e.g. examplap instead of impose)
+ end
+ elsif ! action.empty? && project == action then
+ if projectlist.include?(action) then
+ @session.set('process', @interface.resolved(process))
+ # break # no, else we end up in the parent (e.g. examplap instead of impose)
+ end
+ end
+ end
+ end
+ fetch_session_command(data)
+ fetch_session_settings(data)
+ end
+ end
+ return ! @session.nothing?('command')
+ end
+
+ def get_file(filename)
+ @session.set('filename', filename)
+ if data = load_interface_file() then
+ fetch_session_interface_variables(data)
+ if projectlist = fetch_session_project_list(data) then
+ data.scan(/^project\s*:\s*(.*?)\s*\,\s*(.*?)\s*\=\s*(.*?)\s*,\s*(.*?)\s*,\s*(.*?)\s*$/) do
+ domain, project, gui, path, process = $1, $2, $3, $4, $5
+ if @session.match?('domain',domain) then
+ guilist = @interface.resolved(gui).split(@@re_bar)
+ guilist.each do |g|
+ if /#{filename}$/ =~ g then
+ @session.set('gui', File.expand_path(@interface.resolved(g)))
+ @session.set('path', File.expand_path(@interface.resolved(path)))
+ @session.set('process', process)
+ break # take first matching interface
+ end
+ end
+ end
+ end
+ end
+ end
+ return ! (@session.nothing?('gui') && @session.nothing?('path') && @session.nothing?('process'))
+ end
+
+ def get_path(url='')
+ if data = load_interface_file() then
+ fetch_session_interface_variables(data)
+ if projectlist = fetch_session_project_list(data) then
+ data.scan(/^project\s*:\s*(.*?)\s*\,\s*(.*?)\s*\=\s*(.*?)\s*,\s*(.*?)\s*,\s*(.*?)\s*$/) do
+ domain, project, gui, path, process = $1, $2, $3, $4, $5
+ if @session.match?('domain',domain) && @session.match?('project',project) then
+ @session.set('url', url)
+ @session.set('gui', '')
+ @session.set('path', File.expand_path(@interface.resolved(path)))
+ @session.set('process', '')
+ end
+ end
+ end
+ end
+ return ! @session.nothing?('path')
+ end
+
+ def get_gui()
+ if data = load_interface_file() then
+ fetch_session_interface_variables(data)
+ if projectlist = fetch_session_project_list(data) then
+ data.scan(/^project\s*:\s*(.*?)\s*\,\s*(.*?)\s*\=\s*(.*?)\s*,\s*(.*?)\s*,\s*(.*?)\s*$/) do
+ domain, project, gui, path, process = $1, $2, $3, $4, $5
+ if @session.match?('domain',domain) && @session.match?('project',project) && projectlist.include?(project) then
+ @session.set('gui', File.expand_path(@interface.resolved(gui)))
+ @session.set('path', File.expand_path(@interface.resolved(path)))
+ @session.set('process', process) unless process == 'none'
+ break # take first matching interface
+ end
+ end
+ data.scan(/^admin\s*:\s*(.*?)\s*\,\s*(.*?)\s*\=\s*(.*?)\s*\,\s*(.*?)\s*$/) do
+ domain, project, task, option = $1, $2, $3, $4
+ if @session.match?('domain',domain) && @session.match?('project',project) && projectlist.include?(project) then
+ @session.set('task', task)
+ @session.set('option', option)
+ break # take first matching task
+ end
+ end
+ end
+ end
+ return ! (@session.nothing?('gui') && @session.nothing?('path') && @session.nothing?('process'))
+ end
+
+end
+
+class WWW
+
+ def send_reply(logdata='')
+ if @interface.true?('trace:run') then
+ send_result(logdata)
+ else
+ dir, tmp = dirname, tmp_path(dirname)
+ case @session.get('status')
+ when 'running: finished' then
+ resultname, replyname = 'result.pdf', 'reply.exa'
+ replyfile = File.join(tmp,replyname)
+ if FileTest.file?(replyfile) then
+ begin
+ data = IO.read(replyfile)
+ resultname = if data =~ /<exa:output>(.*?)<\/exa:output>/ then $1 else resultname end
+ rescue
+ plaintext(exareply('error in reply'))
+ return
+ end
+ end
+ resultfile = File.join(tmp,resultname)
+ if FileTest.file?(resultfile) then
+ if indirect?(resultfile) then
+ begin
+ File.makedirs(File.join(cache_root,dir))
+ FileUtils::mv(resultfile,File.join(cache_root,dir,resultname))
+ rescue
+ plaintext(exareply('unable to access cache'))
+ else
+ plaintext(exareply('big file', "cache/#{dir}/#{resultname}", "#{File.size?(resultfile)}"))
+ end
+ else
+ send_file(resultfile)
+ end
+ else
+ plaintext(exareply('no result'))
+ end
+ else # background, running, aborted
+ plaintext(exareply(@session.get('status')))
+ end
+ end
+ end
+
+ def send_url(fullname)
+ dir, tmp = dirname, tmp_path(dirname)
+ resultname, replyname = 'result.pdf', 'reply.exa'
+ replyfile = File.join(tmp,replyname)
+ resultfile = File.join(tmp,resultname)
+ targetname = File.join(cache_root,dir,resultname)
+ # make sure that there is no target left in case of an
+ # error; needed in case of given session name
+ if FileTest.directory?(File.join(cache_root,dir)) then
+ File.delete(targetname) rescue false
+ end
+ # now try to locate the file
+ if FileTest.file?(fullname) then
+ if indirect?(fullname) then
+ begin
+ # check if directory exists and (if so) delete left overs
+ File.makedirs(File.join(cache_root,dir))
+ File.delete(targetname) rescue false
+ File.symlink(fullname,targetname) rescue message('Status',$!)
+ unless FileTest.file?(targetname) then
+ FileUtils::cp(fullname,targetname) rescue false
+ end
+ rescue
+ plaintext(exareply('unable to access cache'))
+ else
+ plaintext(exareply('big file', "cache/#{dir}/#{resultname}", "#{File.size?(fullname)}"))
+ end
+ else
+ send_file(fullname)
+ end
+ else
+ message('Status', 'The file is not found')
+ end
+ end
+
+ def send_result(logdata='')
+ check_template_file('exalogin','exalogin-template.htm')
+ dir, tmp = dirname, tmp_path(dirname)
+ resultname, replyname, logname = 'result.pdf', 'reply.exa', 'log.htm'
+ case @session.get('status')
+ when 'running: background' then
+ if st = @session.get('starttime') then # fuzzy
+ st = Time.now.to_i if st.empty?
+ if (Time.now.to_i - st.to_i) > @interface.get('process:timeout').to_i then
+ message('Status', 'Your request has been aborted (timeout)',true)
+ else
+ message('Status', 'Your request is queued',true,5,'exastatus')
+ end
+ end
+ when 'running: busy' then
+ if st = @session.get('starttime') then # fuzzy
+ st = Time.now.to_i if st.empty?
+ if (Time.now.to_i - st.to_i) > @interface.get('process:timeout').to_i then
+ message('Status', 'Your request has been aborted (timeout)',true)
+ else
+ message('Status', 'Your request is being processed',true,5,'exastatus')
+ end
+ end
+ when 'running: aborted' then
+ message('Status', 'Your request has been aborted (timeout)',true)
+ when 'running: finished' then
+ if @interface.true?('trace:run') then
+ logfile = File.join(tmp,logname)
+ begin
+ if f = File.open(logname,'w') then
+ if logdata.empty? then
+ begin
+ logdata = IO.read('www-watch.out')
+ rescue
+ logdata = 'no log data'
+ end
+ end
+ f << filled_template('Log',"<pre>#{CGI::escapeHTML(logdata)}</pre>")
+ f.close
+ end
+ rescue
+ message('Error', '')
+ end
+ if FileTest.file?(logfile) then
+ begin
+ File.makedirs(File.join(cache_root,dir))
+ FileUtils::mv(logfile,File.join(cache_root,dir,logname))
+ rescue
+ logdata = "<br/><br/>unable to access cache</a>"
+ else
+ logdata = "<br/><br/><a href='/cache/#{dir}/#{logname}'>#{logname}</a>"
+ end
+ else
+ logdata = ''
+ end
+ else
+ logdata = ''
+ end
+ # todo: generate reply.exa if no reply
+ replyfile = File.join(tmp,replyname)
+ if FileTest.file?(replyfile) then
+ begin
+ data = IO.read(replyfile)
+ resultname = if data =~ /<exa:output>(.*?)<\/exa:output>/ then $1 else resultname end
+ rescue
+ message('Error','There is a problem in handling this request (invalid reply).')
+ return
+ end
+ end
+ resultfile = File.join(tmp,resultname)
+ if FileTest.file?(resultfile) then
+ if indirect?(resultfile) then
+ begin
+ File.makedirs(File.join(cache_root,dir))
+ FileUtils::mv(resultfile,File.join(cache_root,dir,resultname))
+ rescue
+ str = "<br/><br/>unable to access cache</a>"
+ else
+ str = "<br/><br/><a href='/cache/#{dir}/#{resultname}'>#{resultname}</a>&nbsp;&nbsp;(#{File.size?(resultname)} bytes)"
+ end
+ message('Result', 'You can pick up the result here:' + str + logdata)
+ else
+ send_file(resultfile)
+ end
+ else
+ message('Error', 'There is a problem in handling this request (no result file).' + logdata)
+ end
+ end
+ end
+
+end
diff --git a/Master/texmf-dist/scripts/context/ruby/www/login.rb b/Master/texmf-dist/scripts/context/ruby/www/login.rb
new file mode 100644
index 00000000000..1c88a97e6ad
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/www/login.rb
@@ -0,0 +1,13 @@
+require 'www/lib'
+
+# basic login
+
+class WWW
+
+ def handle_login()
+ check_template_file('login','exalogin.htm')
+ set('password', '')
+ message('Login','')
+ end
+
+end
diff --git a/Master/texmf-dist/scripts/context/ruby/wwwclient.rb b/Master/texmf-dist/scripts/context/ruby/wwwclient.rb
new file mode 100644
index 00000000000..8f5451a8dcf
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/wwwclient.rb
@@ -0,0 +1,677 @@
+#!/usr/bin/env ruby
+
+# a direct request is just passed on
+#
+# exaclient --direct --request=somerequest.exa --result=somefile.pdf
+#
+# in an extended request the filename in the template file is replaced by the filename
+# given on the command line; templates are located on the current path and at parent
+# directories (two levels); the filename is expanded to a full path
+#
+# exaclient --extend --template=tmicare-l-h.exa --file=somefile.xml --result=somefile.pdf
+#
+# a constructed request is build out of the provided filename and action; the filename is
+# expanded to a full path
+#
+# exaclient --construct --action=tmicare-s-h.exa --file=somefile.xml --result=somefile.pdf
+#
+# in all cases, the result is either determined by a switch or taken from a reply file
+
+banner = ['WWWClient', 'version 1.0.0', '2003-2006', 'PRAGMA ADE/POD']
+
+$: << File.dirname(File.expand_path($0))
+
+require 'base/switch'
+require 'base/logger'
+
+require 'timeout'
+require 'thread'
+require 'rexml/document'
+require 'net/http'
+
+class File
+
+ def File.backtracked(filename,level=3)
+ if level > 0 && filename && ! filename.empty? then
+ if FileTest.file?(filename) then
+ filename
+ else
+ File.backtracked('../'+filename,level-1)
+ end
+ else
+ filename
+ end
+ end
+
+ def File.expanded(filename)
+ File.expand_path(filename)
+ end
+
+end
+
+class Commands
+
+ include CommandBase
+
+end
+
+class Commands
+
+ @@namespace = "xmlns:exa='http://www.pragma-ade.com/schemas/example.rng'"
+ @@randchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "0123456789" + "abcdefghijklmnopqrstuvwxyz"
+
+ def traceback
+ "(error: #{$!})" + "\n -- " + $@.join("\n >>")
+ end
+
+ def pdf(action,filename,enabled)
+ if enabled && FileTest.file?(filename) then
+ begin
+ report("pdf action #{action} on #{filename}")
+ case action
+ when 'close' then system("pdfclose --all")
+ when 'open' then system("pdfopen --file #{filename}")
+ end
+ rescue
+ # forget about it
+ end
+ end
+ end
+
+ def status(replyfile,str) # when block, then ok
+ begin
+ # def status(*whatever)
+ # end
+ File.open(replyfile,'w') do |f|
+ report("saving reply info in '#{replyfile}'")
+ f.puts("<?xml version='1.0'?>\n\n")
+ f.puts("<exa:reply #{@@namespace}>\n")
+ if block_given? then
+ f.puts(" <exa:status>ok</exa:status>\n")
+ f.puts(" #{yield}\n")
+ else
+ f.puts(" <exa:status>error</exa:status>\n")
+ end
+ f.puts(" <exa:comment>" + str + "</exa:comment>\n")
+ f.puts("</exa:reply>\n")
+ f.close
+ report("saving status: #{str}")
+ end
+ rescue
+ report("saving reply info in '#{replyfile}' fails")
+ ensure
+ exit
+ end
+ exit # to be real sure
+ end
+
+
+ def boundary_string (length) # copied from webrick/utils
+ rand_max = @@randchars.size
+ ret = ""
+ length.times do
+ ret << @@randchars[rand(rand_max)]
+ end
+ ret.upcase
+ end
+
+end
+
+class Commands
+
+ @@connecttimeout = 10*60 # ten minutes
+ @@processtimeout = 60*60 # an hour
+ @@polldelay = 5 # 5 seconds
+
+ def main
+
+ datatemplate = @commandline.option('template')
+ datafile = @commandline.option('file')
+ dataaction = @commandline.option('action')
+
+ if ! datatemplate.empty? then
+ report("template '#{datatemplate}' specified without --construct")
+ report("aborting")
+ elsif ! dataaction.empty? then
+ report("action data '#{dataaction}' specified without --construct or --extend")
+ report("aborting")
+ elsif ! datafile.empty? then
+ report("action file '#{datafile}' specified without --construct or --extend")
+ report("aborting")
+ else
+ report("assuming --direct")
+ direct()
+ end
+
+ end
+
+ def construct
+
+ requestfile = @commandline.option('request')
+ replyfile = @commandline.option('reply')
+
+ datatemplate = @commandline.option('template')
+ datafile = @commandline.option('file')
+ dataaction = @commandline.option('action')
+
+ domain = @commandline.option('domain')
+ project = @commandline.option('project')
+ username = @commandline.option('username')
+ password = @commandline.option('password')
+
+ threshold = @commandline.option('threshold')
+
+ datablob = ''
+
+ begin
+ datablob = IO.read(datatemplate)
+ rescue
+ datablob = ''
+ else
+ begin
+ request = REXML::Document.new(datablob)
+ if e = REXML::XPath.match(request.root,"/exa:request/exa:data") then
+ datablob = e.to_s.chomp
+ end
+ rescue
+ datablob = ''
+ end
+ end
+
+ begin
+ File.open(requestfile,'w') do |f|
+ f.puts "<?xml version='1.0'?>\n"
+ f.puts "<exa:request #{@@namespace}>\n"
+ f.puts " <exa:application>\n"
+ f.puts " <exa:action>#{dataaction}</exa:action>\n" unless dataaction.empty?
+ f.puts " <exa:filename>#{datafile}</exa:filename>\n" unless datafile.empty?
+ f.puts " <exa:threshold>#{threshold}</exa:threshold>\n" unless threshold.empty?
+ f.puts " </exa:application>\n"
+ f.puts " <exa:client>\n"
+ f.puts " <exa:domain>#{domain}</exa:domain>\n"
+ f.puts " <exa:project>#{project}</exa:project>\n"
+ f.puts " <exa:username>#{username}</exa:username>\n"
+ f.puts " <exa:password>#{password}</exa:password>\n"
+ f.puts " </exa:client>\n"
+ if datablob.empty? then
+ f.puts " <exa:data/>\n"
+ else
+ f.puts " #{datablob.chomp}\n"
+ end
+ f.puts "</exa:request>"
+ end
+ rescue
+ status(replyfile,"unable to create '#{requestfile}'")
+ end
+
+ direct()
+
+ end
+
+ def extend
+
+ requestfile = @commandline.option('request')
+ replyfile = @commandline.option('reply')
+
+ datatemplate = @commandline.option('template')
+ datafile = @commandline.option('file')
+ dataaction = @commandline.option('action')
+
+ threshold = @commandline.option('threshold')
+
+ if datatemplate.empty? then
+ status(replyfile,"invalid data template '#{datatemplate}'")
+ else
+ begin
+ if FileTest.file?(datatemplate) && oldrequest = IO.read(datatemplate) then
+ request, done = REXML::Document.new(oldrequest), false
+ if ! threshold.empty? && e = REXML::XPath.match(request.root,"/exa:request/exa:application/exa:threshold") then
+ e.text, done = threshold, true
+ end
+ if ! dataaction.empty? && e = REXML::XPath.match(request.root,"/exa:request/exa:application/exa:action") then
+ e.text, done = dataaction, true
+ end
+ if ! datafile.empty? && e = REXML::XPath.match(request.root,"/exa:request/exa:application/exa:filename") then
+ e.text, done = datafile, true
+ end
+ #
+ if ! threshold.empty? && e = REXML::XPath.match(request.root,"/exa:request/exa:application") then
+ e = e.add_element('exa:threshold')
+ e.add_text(threshold.to_s)
+ done = true
+ end
+ #
+ report("nothing replaced in template file") unless done
+ begin
+ File.open(requestfile,'w') do |f|
+ f.puts(newrequest.to_s)
+ end
+ rescue
+ status(replyfile,"unable to create '#{requestfile}'")
+ end
+ else
+ status(replyfile,"unable to read data template '#{datatemplate}'")
+ end
+ rescue
+ status(replyfile,"unable to handle data template '#{datatemplate}'")
+ end
+ end
+
+ direct()
+
+ end
+
+ def direct
+
+ requestpath = @commandline.option('path')
+ requestfile = @commandline.option('request')
+ replyfile = @commandline.option('reply')
+ resultfile = @commandline.option('result')
+ datatemplate = @commandline.option('template')
+ datafile = @commandline.option('file')
+ threshold = @commandline.option('threshold')
+ address = @commandline.option('address')
+ port = @commandline.option('port')
+ session_id = @commandline.option('session')
+ exaurl = @commandline.option('exaurl')
+
+ exaurl = "/#{exaurl}" unless exaurl =~ /^\//
+
+ address.sub!(/^http\:\/\//io) do
+ ''
+ end
+ address.sub!(/\:(\d+)$/io) do
+ port = $1
+ ''
+ end
+
+ autopdf = @commandline.option('autopdf')
+
+ dialogue = nil
+
+ resultfile.sub!(/\.[a-z]+?$/, '') # don't overwrite the source
+
+ unless requestpath.empty? then
+ begin
+ if FileTest.directory?(requestpath) then
+ if Dir.chdir(requestpath) then
+ report("gone to path '#{requestpath}'")
+ else
+ status(replyfile,"unable to go to path '#{requestpath}")
+ end
+ else
+ status(replyfile,"unable to locate '#{requestpath}'")
+ end
+ rescue
+ status(replyfile,"unable to handle '#{requestpath}'")
+ end
+ end
+
+ datafile = File.expand_path(datafile) unless datafile.empty?
+ datatemplate = File.backtracked(datatemplate,3) unless datatemplate.empty?
+
+ # request must be valid
+
+ status(replyfile,'no request file') if requestfile.empty?
+ status(replyfile,"invalid request file '#{requestfile}'") unless FileTest.file?(requestfile)
+
+ begin
+ request = IO.readlines(requestfile).join('')
+ request = REXML::Document.new(request)
+ status(replyfile,'invalid request (no request)') unless request.root.fully_expanded_name=='exa:request'
+ status(replyfile,'invalid request (no application block)') unless request.elements['exa:request'].elements['exa.application'] == nil # explicit nil test needed
+ rescue REXML::ParseException
+ status(replyfile,'invalid request (invalid xml file)')
+ rescue
+ status(replyfile,'invalid request (invalid file)')
+ else
+ report("using request file '#{requestfile}'")
+ end
+
+ # request can force session_id
+
+ if session_id && session_id.empty? then
+ begin
+ id = request.elements['exa:request'].elements['exa:application'].elements['exa:session'].text
+ rescue Exception
+ id = ''
+ ensure
+ if id && ! id.empty? then
+ session_id = id
+ end
+ end
+ end
+
+ # request can overload reply name
+
+ begin
+ rreplyfile = request.elements['exa:request'].elements['exa:application'].elements['exa:output'].text
+ rescue Exception
+ rreplyfile = nil
+ ensure
+ if rreplyfile && ! rreplyfile.empty? then
+ replyfile = rreplyfile
+ report("reply file '#{replyfile} set by request'")
+ else
+ report("using reply file '#{replyfile}'")
+ end
+ end
+
+ # request can overload result name
+
+ begin
+ rresultfile = request.elements['exa:request'].elements['exa:application'].elements['exa:result']
+ rescue Exception
+ rresultfile = nil
+ ensure
+ if rresultfile && ! rresultfile.empty? then
+ resultfile = rresultfile
+ report("result file '#{resultfile}' set by request")
+ else
+ report("using result file '#{resultfile}'")
+ end
+ end
+
+ # try to connect to server
+
+ start_time = Time.now
+
+ processtimeout = begin @commandline.option('timeout').to_i rescue @@processtimeout end
+ processtimeout = @@processtimeout if processtimeout == 0 # 'xx'.to_i => 0
+
+ dialogue = start_dialogue(address, port, processtimeout)
+
+ if dialogue then
+ # continue
+ else
+ status(replyfile,'no connection')
+ end
+
+ # post request
+
+ timeout (@@processtimeout-10) do # -10 so that we run into this one first
+ begin
+ report("posting request of type '#{exaurl}'")
+ report("using session id '#{session_id}'") if session_id && ! session_id.empty?
+ firstline, chunks, total = nil, 0, 0
+ body, boundary, crlf = '', boundary_string(32), "\x0d\x0a"
+ body << '--' + boundary + crlf
+ body << "Content-Disposition: form-data; name=\"exa:request\""
+ body << crlf
+ body << "Content-Type: text/plain"
+ body << crlf + crlf
+ body << request.to_s
+ body << crlf + '--' + boundary + crlf
+if session_id && ! session_id.empty? then
+ body << "Content-Disposition: form-data; name=\"exa:session\""
+ body << "Content-Type: text/plain"
+ body << crlf + crlf
+ body << session_id
+ body << crlf + '--' + boundary + crlf
+end
+ begin
+ File.open(datafile,'rb') do |df|
+ body << "Content-Disposition: form-data; name=\"filename\""
+ body << "Content-Type: text/plain"
+ body << crlf + crlf
+ body << datafile
+ body << crlf + '--' + boundary + crlf
+ body << "Content-Disposition: form-data; name=\"fakename\" ; filename=\"#{datafile}\""
+ body << "Content-Type: application/octetstream"
+ body << "Content-Transfer-Encoding: binary"
+ body << crlf + crlf
+ body << df.read
+ body << crlf + '--' + boundary + '--' + crlf
+ end
+ rescue
+ # skip
+ end
+ headers = Hash.new
+ headers['content-type'] = "multipart/form-data; boundary=#{boundary}"
+ headers['content-length'] = body.length.to_s
+ begin
+ File.open(resultfile,'wb') do |rf|
+ begin
+ # firstline is max 1024 but ok for reply
+ dialogue.post(exaurl,body,headers) do |str|
+ if ! firstline || firstline.empty? then
+ report('receiving result') if total == 0
+ firstline = str
+ end
+ total += 1
+ rf.write(str)
+ end
+ rescue
+ report("forced close #{traceback}")
+ end
+ end
+ rescue
+ status(replyfile,'cannot open file')
+ end
+ begin
+ File.delete(resultfile) if File.zero?(resultfile)
+ rescue
+ end
+ unless FileTest.file?(resultfile) then
+ report("deleting empty resultfile")
+ begin
+ File.delete(resultfile)
+ rescue
+ # nice try, an error anyway
+ end
+ status(replyfile,'empty file')
+ else
+ n, id, status = 0, '', ''
+ loop do
+ again = false
+ if ! dialogue then
+ again = true
+ elsif firstline =~ /(\<exa:reply)/moi then
+ begin
+ reply = REXML::Document.new(firstline)
+ id = (REXML::XPath.match(reply.root,"/exa:reply/exa:session/text()") || '').to_s
+ status = (REXML::XPath.match(reply.root,"/exa:reply/exa:status/text()") || '').to_s
+ rescue
+ report("error in parsing reply #{traceback}")
+ break
+ else
+ report("status: #{status}")
+ if (status =~ /^running\s*\:\s*(background|busy)$/i) && (! id.empty?) then
+ report("waiting for status reply (#{n*@@polldelay})")
+ again = true
+ end
+ end
+ end
+ if again then
+ n += 1
+ sleep(@@polldelay) # todo: duplicate when n > 1
+ unless dialogue then
+ report('reestablishing connection')
+ dialogue = start_dialogue(address, port, processtimeout)
+ end
+ if dialogue then
+ begin
+ File.open(resultfile,'wb') do |rf|
+ begin
+ body = "id=#{id}"
+ headers = Hash.new
+ headers['content-type'] = "application/x-www-form-urlencoded"
+ headers['content-length'] = body.length.to_s
+ total, firstline = 0, ''
+ dialogue.post("/exastatus",body,headers) do |str|
+ if ! firstline || firstline.empty? then
+ firstline = str
+ end
+ total += 1
+ rf.write(str)
+ end
+ rescue
+ report("forced close #{traceback}")
+ dialogue = nil
+ again = true
+ end
+ end
+ begin
+ File.delete(resultfile) if File.zero?(resultfile)
+ rescue
+ end
+ rescue
+ report("error in opening file #{traceback}")
+ status(replyfile,'cannot open file')
+ end
+ else
+ report("unable to make a connection")
+ status(replyfile,'unable to make a connection') # exit
+ end
+ else
+ break
+ end
+ end
+ case firstline
+ when /<\?xml\s*version=.*?\?>\s*<exa:reply/moi then
+ begin
+ File.delete(replyfile) if FileTest.file?(replyfile)
+ resultfile = replyfile if File.rename(resultfile,replyfile)
+ rescue
+ end
+ report("reply saved in '#{resultfile}'")
+ when /\%PDF\-/io then
+ report("done, file #{resultfile}, type pdf, #{total} chunks, #{File.size? rescue 0} bytes")
+ if resultfile =~ /\.pdf$/i then
+ report("file identified as 'pdf'")
+ elsif resultfile =~ /\..*$/o
+ report("result file suffix should be 'pdf'")
+ else
+ newresultfile = resultfile + '.pdf'
+ newresultfile.sub!(/\.pdf\.pdf/io, '.pdf')
+ pdf('close',newresultfile,autopdf)
+ begin
+ File.delete(newresultfile) if FileTest.file?(newresultfile)
+ resultfile = newresultfile if File.rename(resultfile,newresultfile)
+ rescue
+ report("adding 'pdf' suffix to result name failed")
+ else
+ report("'pdf' suffix added to result name")
+ end
+ end
+ report("result saved in '#{resultfile}'")
+ pdf('open',resultfile,autopdf)
+ status(replyfile,'ok') do
+ "<exa:filename>#{resultfile}</exa:filename>"
+ end
+ when /html/io then
+ report("done, file #{resultfile}, type html, #{total} chunks, #{File.size? rescue 0} bytes")
+ if resultfile =~ /\.(htm|html)$/i then
+ report("file identified as 'html'")
+ elsif resultfile =~ /\..*$/o
+ report("result file suffix should be 'htm'")
+ else
+ newresultfile = resultfile + '.htm'
+ begin
+ File.delete(newresultfile) if FileTest.file?(newresultfile)
+ resultfile = newresultfile if File.rename(resultfile,newresultfile)
+ rescue
+ report("adding 'htm' suffix to result name failed")
+ else
+ report("'htm' suffix added to result name")
+ end
+ end
+ report("result saved in '#{resultfile}'")
+ status(replyfile,'ok') do
+ "<exa:filename>#{resultfile}</exa:filename>"
+ end
+ else
+ report("no result file, first line #{firstline}")
+ status(replyfile,'no result file')
+ end
+ end
+ rescue TimeoutError
+ report("aborted due to time out")
+ status(replyfile,'time out')
+ rescue
+ report("aborted due to some problem #{traceback}")
+ status(replyfile,"no answer #{traceback}")
+ end
+ end
+
+ begin
+ report("run time: #{Time.now-start_time} seconds")
+ rescue
+ end
+
+ end
+
+ def start_dialogue(address, port, processtimeout)
+ timeout(@@connecttimeout) do
+ report("trying to connect to #{address}:#{port}")
+ begin
+ begin
+ if dialogue = Net::HTTP.new(address, port) then
+ # dialogue.set_debug_output $stderr
+ dialogue.read_timeout = processtimeout # set this before start
+ if dialogue.start then
+ report("connected to #{address}:#{port}, timeout: #{processtimeout}")
+ else
+ retry
+ end
+ else
+ retry
+ end
+ rescue
+ sleep(2)
+ retry
+ else
+ return dialogue
+ end
+ rescue TimeoutError
+ return nil
+ rescue
+ return nil
+ end
+ end
+ end
+
+end
+
+logger = Logger.new(banner.shift)
+commandline = CommandLine.new
+
+commandline.registerflag('autopdf')
+
+commandline.registervalue('path' , '')
+
+commandline.registervalue('request' , 'request.exa')
+commandline.registervalue('reply' , 'reply.exa')
+commandline.registervalue('result' , 'result')
+
+commandline.registervalue('template' , '')
+commandline.registervalue('file' , '')
+commandline.registervalue('action' , '')
+commandline.registervalue('timeout' , '')
+
+commandline.registervalue('domain' , 'default')
+commandline.registervalue('project' , 'default')
+commandline.registervalue('username' , 'guest')
+commandline.registervalue('password' , 'anonymous')
+commandline.registervalue('exaurl' , 'exarequest')
+commandline.registervalue('threshold' , '0')
+commandline.registervalue('session' , '')
+
+commandline.registervalue('address' , 'localhost')
+commandline.registervalue('port' , '80')
+
+commandline.registeraction('direct' , '[--path --request --reply --result --autopdf]')
+commandline.registeraction('construct', '[--path --request --reply --result --autopdf] --file --action')
+commandline.registeraction('extend' , '[--path --request --reply --result --autopdf] --file --action --template')
+
+commandline.registeraction('direct')
+commandline.registeraction('construct')
+commandline.registeraction('extend')
+
+commandline.registerflag('verbose')
+commandline.registeraction('help')
+commandline.registeraction('version')
+
+commandline.expand
+
+Commands.new(commandline,logger,banner).send(commandline.action || 'main')
diff --git a/Master/texmf-dist/scripts/context/ruby/wwwserver.rb b/Master/texmf-dist/scripts/context/ruby/wwwserver.rb
new file mode 100644
index 00000000000..18ea57df1d2
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/wwwserver.rb
@@ -0,0 +1,293 @@
+#!/usr/env ruby
+
+banner = ['WWWServer', 'version 1.0.0', '2003-2006', 'PRAGMA ADE/POD']
+
+$: << File.dirname(File.expand_path($0))
+
+require 'base/switch'
+require 'base/logger'
+
+require 'monitor'
+
+# class WWW < Monitor
+# end
+# class Server < Monitor
+# end
+
+require 'www/lib'
+require 'www/dir'
+require 'www/login'
+require 'www/exa'
+
+require 'tempfile'
+require 'ftools'
+require 'webrick'
+
+class Server
+
+ attr_accessor :document_root, :work_path, :logs_path, :port_number, :exa_url, :verbose, :trace, :direct
+
+ def initialize(logger)
+ @httpd = nil
+ @document_root = ''
+ @work_path = ''
+ @logs_path = ''
+ @port_number = 8061
+ @exa_url = 'http://localhost:8061'
+ @logger = logger
+ @n_of_clients = 500
+ @request_timeout = 5*60
+ @verbose = false
+ @trace = false
+ @direct = false
+ end
+
+ def report(str)
+ @logger.report(str) if @logger
+ end
+
+ def setup
+ if @document_root.empty? then
+ rootpath = File.expand_path($0)
+ @document_root = File.expand_path(File.join(File.dirname(rootpath),'..','documents'))
+ unless FileTest.directory?(@document_root) then # todo: optional
+ loop do
+ prevpath = rootpath.dup
+ rootpath = File.dirname(rootpath)
+ if prevpath == rootpath then
+ break
+ else
+ checkpath = File.join(rootpath,'documents')
+ # report("locating: #{checkpath}")
+ if FileTest.directory?(checkpath) then
+ @document_root = checkpath
+ break
+ else
+ checkpath = File.join(rootpath,'docroot/documents')
+ # report("locating: #{checkpath}")
+ if FileTest.directory?(checkpath) then
+ @document_root = checkpath
+ break
+ end
+ end
+ end
+ end
+ end
+ end
+ @document_root = File.join(Dir.pwd, 'documents') unless FileTest.directory?(@document_root)
+ unless FileTest.directory?(@document_root) then
+ report("invalid document root: #{@document_root}")
+ exit
+ else
+ report("using document root: #{@document_root}")
+ end
+ #
+ @work_path = File.expand_path(File.join(@document_root,'..','work')) if @work_path.empty?
+ # begin File.makedirs(@work_path) ; rescue ; end # no, let's auto-temp
+ if ! FileTest.directory?(@work_path) || ! FileTest.writable?(@work_path) then
+ @work_path = File.expand_path(File.join(Dir.tmpdir,'exaserver','work'))
+ begin File.makedirs(@logs_path) ; rescue ; end
+ end
+ report("using work path: #{@work_path}")
+ #
+ @logs_path = File.expand_path(File.join(@document_root,'..','logs')) if @logs_path.empty?
+ # begin File.makedirs(@logs_path) ; rescue ; end # no, let's auto-temp
+ if ! FileTest.directory?(@logs_path) || ! FileTest.writable?(@logs_path) then
+ @logs_path = File.expand_path(File.join(Dir.tmpdir,'exaserver','logs'))
+ begin File.makedirs(@logs_path) ; rescue ; end
+ end
+ report("using log path: #{@logs_path}")
+ #
+ if @logs_path.empty? then
+ @logfile = $stderr
+ @accfile = $stderr
+ else
+ @logfile = File.join(@logs_path,'exa-info.log')
+ @accfile = File.join(@logs_path,'exa-access.log')
+ begin File.delete(@logfile) ; rescue ; end
+ begin File.delete(@accfile) ; rescue ; end
+ end
+ #
+ begin
+ @httpd = WEBrick::HTTPServer.new(
+ :DocumentRoot => @document_root,
+ :DocumentRootOptions => { :FancyIndexing => false },
+ :DirectoryIndex => ['index.html','index.htm','showcase.pdf'],
+ :Port => @port_number.to_i,
+ :Logger => WEBrick::Log.new(@logfile, WEBrick::Log::INFO), # DEBUG
+ :RequestTimeout => @request_timeout,
+ :MaxClients => @n_of_clients,
+ :AccessLog => [
+ [ @accfile, WEBrick::AccessLog::COMMON_LOG_FORMAT ],
+ [ @accfile, WEBrick::AccessLog::REFERER_LOG_FORMAT ],
+ [ @accfile, WEBrick::AccessLog::AGENT_LOG_FORMAT ],
+ # :CGIPathEnv => ENV["PATH"] # PATH environment variable for CGI.
+ ]
+ )
+ rescue
+ report("starting server at port: #{@port_number} failed")
+ exit
+ else
+ report("running server at port: #{@port_number}")
+ end
+
+ begin
+ #
+ @httpd.mount_proc("/dir") do |request,reply|
+ report("accepting /dir") if @verbose
+ web_session(request,reply).handle_dir
+ end
+ @httpd.mount_proc("/login") do |request,reply|
+ report("accepting /login") if @verbose
+ web_session(request,reply).handle_login
+ end
+ @httpd.mount("/cache", WEBrick::HTTPServlet::FileHandler, File.join(@work_path,'cache'))
+ # @httpd.mount_proc("/cache") do |request,reply|
+ # WEBrick::HTTPServlet::FileHandler(@httpd,@work_path) # not ok
+ # end
+ @httpd.mount_proc("/exalogin") do |request,reply|
+ report("accepting /exalogin") if @verbose
+ web_session(request,reply).handle_exalogin
+ end
+ @httpd.mount_proc("/exadefault") do |request,reply|
+ report("accepting /exadefault") if @verbose
+ web_session(request,reply).handle_exadefault
+ end
+ @httpd.mount_proc("/exainterface") do |request,reply|
+ report("accepting /exainterface") if @verbose
+ web_session(request,reply).handle_exainterface
+ end
+ @httpd.mount_proc("/exarequest") do |request,reply|
+ report("accepting /exarequest") if @verbose
+ web_session(request,reply).handle_exarequest
+ end
+ @httpd.mount_proc("/exacommand") do |request,reply|
+ report("accepting /exacommand") if @verbose
+ web_session(request,reply).handle_exacommand
+ end
+ @httpd.mount_proc("/exastatus") do |request,reply|
+ report("accepting /exastatus") if @verbose
+ web_session(request,reply).handle_exastatus
+ end
+ @httpd.mount_proc("/exaadmin") do |request,reply|
+ report("accepting /exaadmin") if @verbose
+ web_session(request,reply).handle_exaadmin
+ end
+ #
+ rescue
+ report("problem in starting server: #{$!}")
+ end
+ [:INT, :TERM, :EXIT].each do |signal|
+ trap(signal) do
+ @httpd.shutdown
+ end
+ end
+ end
+
+ def start
+ unless @httpd then
+ setup
+ @httpd.start
+ end
+ end
+
+ def stop
+ @httpd.shutdown if @httpd
+ end
+
+ def restart
+ stop
+ start
+ end
+
+ private
+
+ def web_session(request,reply)
+ www = WWW.new(@httpd,request,reply)
+ www.set('path:work', @work_path)
+ www.set('path:logs', @logs_path)
+ www.set('path:root', File.dirname(@document_root))
+ www.set('process:exaurl', @exa_url)
+ www.set('trace:errors','yes') if @trace
+ www.set('process:background', 'no') if @direct
+ return www
+ end
+
+end
+
+class Commands
+
+ include CommandBase
+
+ def start
+ if server = setup then server.start end
+ end
+
+ def stop
+ if server = setup then server.stop end
+ end
+
+ def restart
+ if server = setup then server.restart end
+ end
+
+ private
+
+ def setup
+ server = Server.new(logger)
+ server.document_root = @commandline.option('root')
+ server.verbose = @commandline.option('verbose')
+ if @commandline.option('forcetemp') then
+ server.work_path = Dir.tmpdir + '/exa/work'
+ server.logs_path = Dir.tmpdir + '/exa/logs'
+ [server.work_path,server.logs_path].each do |d|
+ begin
+ File.makedirs(d) unless FileTest.directory?(d)
+ rescue
+ report("unable to create #{d}")
+ exit
+ end
+ unless FileTest.writable?(d) then
+ report("unable to access #{d}")
+ exit
+ end
+ end
+ else
+ server.work_path = @commandline.option('work')
+ server.logs_path = @commandline.option('logs')
+ end
+ server.port_number = @commandline.option('port')
+ server.exa_url = @commandline.option('url')
+ server.trace = @commandline.option('trace')
+ server.direct = @commandline.option('direct')
+ return server
+ end
+
+end
+
+logger = Logger.new(banner.shift)
+commandline = CommandLine.new
+
+commandline.registervalue('root' , '')
+commandline.registervalue('work' , '')
+commandline.registervalue('logs' , '')
+commandline.registervalue('address', 'localhost')
+commandline.registervalue('port' , '8061')
+commandline.registervalue('url' , 'http://localhost:8061')
+
+commandline.registeraction('start' , 'start the server [--root --forcetemp --work --logs --address --port --url]')
+commandline.registeraction('stop' , 'stop the server')
+commandline.registeraction('restart', 'restart the server')
+
+commandline.registerflag('forcetemp')
+commandline.registerflag('direct')
+commandline.registerflag('verbose')
+commandline.registerflag('trace')
+
+commandline.registeraction('help')
+commandline.registeraction('version')
+
+commandline.expand
+
+Commands.new(commandline,logger,banner).send(commandline.action || 'start')
+
diff --git a/Master/texmf-dist/scripts/context/ruby/wwwwatch.rb b/Master/texmf-dist/scripts/context/ruby/wwwwatch.rb
new file mode 100644
index 00000000000..0afb9a39291
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/wwwwatch.rb
@@ -0,0 +1,483 @@
+#!/usr/bin/env ruby
+
+banner = ['WWWWatch', 'version 1.0.0', '2003-2006', 'PRAGMA ADE/POD']
+
+$: << File.dirname(File.expand_path($0))
+
+require 'base/switch'
+require 'base/logger'
+
+require 'www/common'
+
+require 'monitor'
+require 'fileutils'
+require 'ftools'
+require 'tempfile'
+require 'timeout'
+require 'thread'
+
+class Watch < Monitor
+
+ include Common
+
+ @@session_prefix = ''
+ @@check_factor = 4
+ @@process_timeout = 1*60*60
+ @@fast_wait_loop = false
+
+ @@session_line = /^\s*(?![\#\%])(.*?)\s*\=\s*(.*?)\s*$/o
+ @@session_begin = 'begin exa session'
+ @@session_end = 'end exa session'
+
+ attr_accessor :root_path, :work_path, :create, :cache_path, :delay, :max_threads, :max_age, :verbose
+
+ def initialize(logger) # we need to register all @vars here becase of the monitor
+ @threads = Hash.new
+ @files = Array.new
+ @stats = Hash.new
+ @skips = Hash.new
+ @root_path = ''
+ @work_path = Dir.tmpdir
+ @cache_path = @work_path
+ @last_action = Time.now
+ @delay = 1
+ @max_threads = 5
+ @max_age = @@process_timeout
+ @logger = logger
+ @verbose = false
+ @create = false
+ # [:INT, :TERM, :EXIT].each do |signal|
+ # trap(signal) do
+ # kill
+ # exit # rescue false
+ # end
+ # end
+ # at_exit do
+ # kill
+ # end
+ end
+
+ def trace
+ if @verbose && @logger then
+ @logger.report("exception: #{$!})")
+ $@.each do |t|
+ @logger.report(">> #{t}")
+ end
+ end
+ end
+
+ def report(str)
+ @logger.report(str) if @logger
+ end
+
+ def setup
+ @threads = Hash.new
+ @files = Array.new
+ @stats = Hash.new
+ @skips = Hash.new
+ @root_path = File.expand_path(File.join(File.dirname(Dir.pwd),'.')) if @root_path.empty?
+ @work_path = File.expand_path(File.join(@root_path,'work','watch')) if @work_path.empty?
+ # @cache_path = File.expand_path(File.join(@root_path,'work','cache')) if @cache_path.empty?
+ @cache_path = File.expand_path(File.join(File.dirname(@work_path),'cache')) if @cache_path.empty?
+ if @create then
+ begin File.makedirs(@work_path) ; rescue ; end
+ begin File.makedirs(@cache_path) ; rescue ; end
+ end
+ unless File.writable?(@work_path) then
+ @work_path = File.expand_path(File.join(Dir.tmpdir,'work','watch'))
+ if @create then
+ begin File.makedirs(@work_path) ; rescue ; end
+ end
+ end
+ unless File.writable?(@cache_path) then
+ @cache_path = File.expand_path(File.join(Dir.tmpdir,'work','cache'))
+ if @create then
+ begin File.makedirs(@cache_path) ; rescue ; end
+ end
+ end
+ unless File.writable?(@work_path) then
+ puts "no valid work path: #{@work_path}"
+ exit! rescue false # no checking, no at_exit done
+ end
+ unless File.writable?(@cache_path) then
+ puts "no valid work path: #{@work_path}" ; # no reason to exit
+ end
+ @last_action = Time.now
+ report("watching path #{@work_path}") if @verbose
+ end
+
+ def lock(lck)
+ begin
+ report("watchdog: locking #{lck}") if @verbose
+ File.open(lck,'w') do |f|
+ f << Time.now
+ end
+ rescue
+ trace
+ end
+ end
+
+ def unlock(lck)
+ begin
+ report("watchdog: unlocking #{lck}") if @verbose
+ File.delete(lck)
+ rescue
+ trace
+ end
+ end
+
+ def kill
+ @threads.each do |t|
+ t.kill rescue false
+ end
+ end
+
+ def restart
+ @files = Array.new
+ @skips = Hash.new
+ @stats = Hash.new
+ kill # threads
+ end
+
+ def collect
+ begin
+ @files = Array.new
+ Dir.glob("#{@work_path}/#{@@session_prefix}*.ses").each do |sessionfile|
+ sessionfile = File.expand_path(sessionfile)
+ begin
+ if @threads.key?(sessionfile) then
+ # leave alone
+ elsif (Time.now - File.mtime(sessionfile)) > @max_age.to_i then
+ # delete
+ FileUtils::rm_r(sessionfile) rescue false
+ FileUtils::rm_r(sessionfile.sub(/ses$/,'dir')) rescue false
+ FileUtils::rm_r(sessionfile.sub(/ses$/,'lck')) rescue false
+ begin
+ FileUtils::rm_r(File.join(@cache_path, File.basename(sessionfile.sub(/ses$/,'dir'))))
+ rescue
+ report("watchdog: problems in cache cleanup #{$!}") # if @verbose
+ end
+ @stats.delete(sessionfile) rescue false
+ @skips.delete(sessionfile) rescue false
+ report("watchdog: removing session #{sessionfile}") if @verbose
+ elsif ! @skips.key?(sessionfile) then
+ @files << sessionfile
+ report("watchdog: checking session #{sessionfile}") if @verbose
+ end
+ rescue
+ # maybe purged in the meantime
+ end
+ end
+ rescue
+ if File.directory?(@work_path) then
+ @files = Array.new
+ else
+ # maybe dir is deleted (manual cleanup)
+ restart
+ end
+ end
+ begin
+ Dir.glob("#{@cache_path}/*.dir").each do |dirname|
+ begin
+ if (Time.now - File.mtime(dirname)) > @max_age.to_i then
+ begin
+ FileUtils::rm_r(dirname)
+ rescue
+ report("watchdog: problems in cache cleanup #{$!}") # if @verbose
+ end
+ end
+ rescue
+ # maybe purged in the meantime
+ end
+ end
+ rescue
+ end
+ end
+
+ def purge
+ begin
+ Dir.glob("#{@work_path}/#{@@session_prefix}*").each do |sessionfile|
+ sessionfile = File.expand_path(sessionfile)
+ begin
+ if (Time.now - File.mtime(sessionfile)) > @max_age.to_i then
+ begin
+ if FileTest.directory?(sessionfile) then
+ FileUtils::rm_r(sessionfile)
+ else
+ File.delete(sessionfile)
+ end
+ rescue
+ end
+ begin
+ @stats.delete(sessionfile)
+ @skips.delete(sessionfile)
+ rescue
+ end
+ report("watchdog: purging session #{sessionfile}") if @verbose
+ end
+ rescue
+ # maybe purged in the meantime
+ end
+ end
+ rescue
+ end
+ end
+
+ def loaded_session_data(filename)
+ begin
+ if data = IO.readlines(filename) then
+ return data if (data.first =~ /^[\#\%]\s*#{@@session_begin}/o) && (data.last =~ /^[\#\%]\s*#{@@session_end}/o)
+ end
+ rescue
+ trace
+ end
+ return nil
+ end
+
+ def load(sessionfile)
+ # we assume that we get an exception when the file is locked
+ begin
+ if data = loaded_session_data(sessionfile) then
+ report("watchdog: loading session #{sessionfile}") if @verbose
+ vars = Hash.new
+ data.each do |line|
+ begin
+ if line.chomp =~ /^(.*?)\s*\=\s*(.*?)\s*$/o then
+ key, value = $1, $2
+ vars[key] = value
+ end
+ rescue
+ end
+ end
+ return vars
+ else
+ return nil
+ end
+ rescue
+ trace
+ return nil
+ end
+ end
+
+ def save(sessionfile, vars)
+ begin
+ report("watchdog: saving session #{sessionfile}") if @verbose
+ if @stats.key?(sessionfile) then
+ @stats[sessionfile] = File.mtime(sessionfile)
+ elsif @stats[sessionfile] == File.mtime(sessionfile) then
+ else
+ # construct data first
+ str = "\# #{@@session_begin}\n"
+ for k,v in vars do
+ str << "#{k}=#{v}\n"
+ end
+ str << "\# #{@@session_end}\n"
+ # save as fast as possible
+ File.open(sessionfile,'w') do |f|
+ f.puts(str)
+ end
+ end
+ rescue
+ report("watchdog: unable to save session #{sessionfile}") if @verbose
+ trace
+ return false
+ else
+ return true
+ end
+ end
+
+ def launch
+ begin
+ @files.each do |sessionfile|
+ if @threads.length < @max_threads then
+ begin
+ if ! @skips.key?(sessionfile) && (vars = load(sessionfile)) then
+ if (id = vars['id']) && vars['status'] then
+ if vars['status'] == 'running: background' then
+ @last_action = Time.now
+ @threads[sessionfile] = Thread.new(vars, sessionfile) do |vars, sessionfile|
+ begin
+ report("watchdog: starting thread #{sessionfile}") if @verbose
+ dir = File.expand_path(sessionfile.sub(/ses$/,'dir'))
+ lck = File.expand_path(sessionfile.sub(/ses$/,'lck'))
+ start_of_run = Time.now
+ start_of_job = start_of_run.dup
+ max_runtime = @max_age
+ begin
+ start_of_job = vars['starttime'].to_i || start_of_run
+ start_of_job = start_of_run if start_of_job == 0
+ rescue
+ start_of_job = Time.now
+ end
+ begin
+ max_runtime = vars['maxtime'].to_i || @max_age
+ max_runtime = @max_age if max_runtime == 0
+ max_runtime = max_runtime - (Time.now.to_i - start_of_job.to_i)
+ rescue
+ max_runtime = @max_age
+ end
+ lock(lck)
+ if max_runtime > 0 then
+ command = vars['command'] || ''
+ if ! command.empty? then
+ vars['status'] = 'running: busy'
+ vars['timeout'] = max_runtime.to_s
+ save(sessionfile,vars)
+ timeout(max_runtime) do
+ begin
+ command = command_string(dir,command,'process.log')
+ report("watchdog: #{command}") if @verbose
+ system(command)
+ rescue TimeoutError
+ vars['status'] = 'running: timeout'
+ rescue
+ trace
+ vars['status'] = 'running: aborted'
+ else
+ vars['status'] = 'running: finished'
+ vars['runtime'] = sprintf("%.02f",(Time.now - start_of_run))
+ vars['endtime'] = Time.now.to_i.to_s
+ end
+ end
+ else
+ vars['status'] = 'running: aborted' # no command
+ end
+ else
+ vars['status'] = 'running: aborted' # not enough time
+ end
+ save(sessionfile,vars)
+ unlock(lck)
+ report("watchdog: ending thread #{sessionfile}") if @verbose
+ @threads.delete(sessionfile)
+ rescue
+ trace
+ end
+ end
+ else
+ report("watchdog: skipping - id (#{vars['id']}) / status (#{vars['status']})") if @verbose
+ end
+ @skips[sessionfile] = true
+ else
+ # not yet ok
+ end
+ else
+ # maybe a lock
+ end
+ rescue
+ trace
+ end
+ else
+ break
+ end
+ end
+ rescue
+ trace
+ end
+ end
+
+ def wait
+ begin
+ # report(Time.now.to_s) if @verbose
+ loop do
+ if @threads.length == @max_threads then
+ if @delay > @max_threads then
+ sleep(@delay)
+ else
+ sleep(@max_threads)
+ end
+ break if @@fast_wait_loop
+ else
+ sleep(@delay)
+ break
+ end
+ end
+ rescue
+ trace
+ end
+ end
+
+ def check
+ begin
+ time = Time.now
+ if (time - @last_action) > @@check_factor*@max_age then
+ report("watchdog: cleanup") if @verbose
+ @stats = Hash.new
+ @last_action = time
+ kill
+ end
+ rescue
+ trace
+ end
+ end
+
+ def cycle
+ loop do
+ begin
+ collect
+ launch
+ wait
+ check
+ rescue
+ trace
+ report("watchdog: some problem, restarting loop")
+ end
+ end
+ end
+
+end
+
+class Commands
+
+ include CommandBase
+
+ def watch
+ if watch = setup then
+ watch.cycle
+ else
+ report("provide valid work path")
+ end
+ end
+ def main
+ watch
+ end
+
+ private
+
+ def setup
+ if watch = Watch.new(logger) then
+ watch.root_path = @commandline.option('root')
+ watch.work_path = @commandline.option('work')
+ watch.cache_path = @commandline.option('cache')
+ watch.create = @commandline.option('create')
+ watch.verbose = @commandline.option('verbose')
+ begin
+ watch.max_threads = @commandline.option('threads').to_i
+ rescue
+ watch.max_threads = 5
+ end
+ watch.setup
+ end
+ return watch
+ end
+
+end
+
+logger = Logger.new(banner.shift)
+commandline = CommandLine.new
+
+commandline.registervalue('root', '')
+commandline.registervalue('work', '')
+commandline.registervalue('cache', '')
+commandline.registervalue('threads', '5')
+
+commandline.registerflag('create')
+
+commandline.registeraction('watch', '[--work=path] [--root=path] [--create]')
+
+commandline.registerflag('verbose')
+commandline.registeraction('help')
+commandline.registeraction('version')
+
+commandline.expand
+
+Commands.new(commandline,logger,banner).send(commandline.action || 'main')
diff --git a/Master/texmf-dist/scripts/context/ruby/xmltools.rb b/Master/texmf-dist/scripts/context/ruby/xmltools.rb
index a57f7445020..a10d34314aa 100644
--- a/Master/texmf-dist/scripts/context/ruby/xmltools.rb
+++ b/Master/texmf-dist/scripts/context/ruby/xmltools.rb
@@ -10,13 +10,16 @@
# info : j.hagen@xs4all.nl
# www : www.pragma-ade.com
+# todo : use kpse lib
+
# This script will harbor some handy manipulations on tex
# related files.
-banner = ['XMLTools', 'version 1.1.1', '2002/2005', 'PRAGMA ADE/POD']
+banner = ['XMLTools', 'version 1.2.0', '2002/2006', 'PRAGMA ADE/POD']
unless defined? ownpath
ownpath = $0.sub(/[\\\/][a-z0-9\-]*?\.rb/i,'')
+ # ownpath = File.dirname($0)
$: << ownpath
end
@@ -170,7 +173,7 @@ class Commands
if FileTest.file?(file+'.xml') then
style = "--arg=\"style=#{style}\"" unless style.empty?
modes = "--mode=#{modes}" unless modes.empty?
- if system("texmfstart texexec.pl --batch --pdf --once --result=#{long} --use=mmlpag #{style} #{modes} #{file}.xml") then
+ if system("texmfstart texexec --batch --pdf --once --result=#{long} --use=mmlpag #{style} #{modes} #{file}.xml") then
if eps then
if f = open("#{file}-mmlpages.txt") then
while line = f.gets do
@@ -226,7 +229,7 @@ class Commands
else
report("error in processing file #{file}")
end
- system("texmfstart texutil --purge")
+ system("texmfstart ctxtools --purge")
else
report("error in processing file #{file}")
end
@@ -235,77 +238,188 @@ class Commands
def analyze
- file = @commandline.argument('first')
- result = @commandline.option('output')
+ file = @commandline.argument('first')
+ result = @commandline.option('output')
+ utf = @commandline.option('utf')
+ process = @commandline.option('process')
if FileTest.file?(file) then
if data = IO.read(file) then
- report("xml file #{file} loaded")
- elements = Hash.new
- attributes = Hash.new
- entities = Hash.new
- data.scan(/<([^>\s\/\!\?]+)([^>]*?)>/o) do
- element, attributelist = $1, $2
- if elements.key?(element) then
- elements[element] += 1
- else
- elements[element] = 1
- end
- attributelist.scan(/\s*([^\=]+)\=([\"\'])(.*?)(\2)/) do
- key, value = $1, $3
- attributes[element] = Hash.new unless attributes.key?(element)
- attributes[element][key] = Hash.new unless attributes[element].key?(key)
- if attributes[element][key].key?(value) then
- attributes[element][key][value] += 1
+ if data =~ /<?xml.*?version\=/ then
+ report("xml file #{file} loaded")
+ elements = Hash.new
+ attributes = Hash.new
+ entities = Hash.new
+ chars = Hash.new
+ unicodes = Hash.new
+ names = Hash.new
+ data.scan(/<([^>\s\/\!\?]+)([^>]*?)>/o) do
+ element, attributelist = $1, $2
+ if elements.key?(element) then
+ elements[element] += 1
else
- attributes[element][key][value] = 1
+ elements[element] = 1
+ end
+ attributelist.scan(/\s*([^\=]+)\=([\"\'])(.*?)(\2)/) do
+ key, value = $1, $3
+ attributes[element] = Hash.new unless attributes.key?(element)
+ attributes[element][key] = Hash.new unless attributes[element].key?(key)
+ if attributes[element][key].key?(value) then
+ attributes[element][key][value] += 1
+ else
+ attributes[element][key][value] = 1
+ end
end
end
- end
- data.scan(/\&([^\;]+)\;/o) do
- entity = $1
- if entities.key?(entity) then
- entities[entity] += 1
- else
- entities[entity] = 1
+ data.scan(/\&([^\;]+)\;/o) do
+ entity = $1
+ if entities.key?(entity) then
+ entities[entity] += 1
+ else
+ entities[entity] = 1
+ end
end
- end
- result = file.gsub(/\..*?$/, '') + '.xlg' if result.empty?
- if f = File.open(result,'w') then
- report("saving report in #{result}")
- f.puts "<?xml version='1.0'?>\n"
- f.puts "<document>\n"
- if entities.length>0 then
- f.puts " <entities>\n"
- entities.keys.asort.each do |entity|
- f.puts " <entity name=#{entity.xstring} n=#{entities[entity].to_s.xstring}/>\n"
+ if utf then
+ data.scan(/(\w)/u) do
+ chars[$1] = (chars[$1] || 0) + 1
+ end
+ if chars.size > 0 then
+ begin
+ # todo : use kpse lib
+ filename, ownpath, foundpath = 'contextnames.txt', File.dirname($0), ''
+ begin
+ foundpath = File.dirname(`kpsewhich -progname=context -format=\"other text files\" #{filename}`.chomp)
+ rescue
+ foundpath = '.'
+ else
+ foundpath = '.' if foundpath.empty?
+ end
+ [foundpath,ownpath,File.join(ownpath,'../../../context/data')].each do |path|
+ fullname = File.join(path,filename)
+ if FileTest.file?(fullname) then
+ report("loading '#{fullname}'")
+ # rough scan, we assume no valid lines after comments
+ IO.read(fullname).scan(/^([0-9A-F][0-9A-F][0-9A-F][0-9A-F])\s*\;\s*(.*?)\s*\;\s*(.*?)\s*\;\s*(.*?)\s*$/) do
+ names[$1.hex.to_i.to_s] = [$2,$3,$4]
+ end
+ break
+ end
+ end
+ rescue
+ end
end
- f.puts " </entities>\n"
end
- if elements.length>0 then
- f.puts " <elements>\n"
- elements.keys.sort.each do |element|
- if attributes.key?(element) then
- f.puts " <element name=#{element.xstring} n=#{elements[element].to_s.xstring}>\n"
+ result = file.gsub(/\..*?$/, '') + '.xlg' if result.empty?
+ if f = File.open(result,'w') then
+ report("saving report in #{result}")
+ f.puts "<?xml version='1.0'?>\n"
+ f.puts "<document>\n"
+ if entities.length>0 then
+ total = 0
+ entities.each do |k,v|
+ total += v
+ end
+ f.puts " <entities n=#{total.to_s.xstring}>\n"
+ entities.keys.asort.each do |entity|
+ f.puts " <entity name=#{entity.xstring} n=#{entities[entity].to_s.xstring}/>\n"
+ end
+ f.puts " </entities>\n"
+ end
+ if utf && (chars.size > 0) then
+ total = 0
+ chars.each do |k,v|
+ total += v
+ end
+ f.puts " <characters n=#{total.to_s.xstring}>\n"
+ chars.each do |k,v|
+ if k.length > 1 then
+ begin
+ u = k.unpack('U')
+ unicodes[u] = (unicodes[u] || 0) + v
+ rescue
+ report("invalid utf codes")
+ end
+ end
+ end
+ unicodes.keys.sort.each do |u|
+ ustr = u.to_s
+ if names[ustr] then
+ f.puts " <character number=#{ustr.xstring} pname=#{names[ustr][0].xstring} cname=#{names[ustr][1].xstring} uname=#{names[ustr][2].xstring} n=#{unicodes[u].to_s.xstring}/>\n"
+ else
+ f.puts " <character number=#{ustr.xstring} n=#{unicodes[u].to_s.xstring}/>\n"
+ end
+ end
+ f.puts " </characters>\n"
+ end
+ if elements.length>0 then
+ f.puts " <elements>\n"
+ elements.keys.sort.each do |element|
if attributes.key?(element) then
- attributes[element].keys.asort.each do |attribute|
- f.puts " <attribute name=#{attribute.xstring}>\n"
- attributes[element][attribute].keys.asort.each do |value|
- f.puts " <instance value=#{value.xstring} n=#{attributes[element][attribute][value].to_s.xstring}/>\n"
+ f.puts " <element name=#{element.xstring} n=#{elements[element].to_s.xstring}>\n"
+ if attributes.key?(element) then
+ attributes[element].keys.asort.each do |attribute|
+ f.puts " <attribute name=#{attribute.xstring}>\n"
+ if attribute =~ /id$/o then
+ nn = 0
+ attributes[element][attribute].keys.asort.each do |value|
+ nn += attributes[element][attribute][value].to_i
+ end
+ f.puts " <instance value=#{"*".xstring} n=#{nn.to_s.xstring}/>\n"
+ else
+ attributes[element][attribute].keys.asort.each do |value|
+ f.puts " <instance value=#{value.xstring} n=#{attributes[element][attribute][value].to_s.xstring}/>\n"
+ end
+ end
+ f.puts " </attribute>\n"
end
- f.puts " </attribute>\n"
end
+ f.puts " </element>\n"
+ else
+ f.puts " <element name=#{element.xstring} n=#{elements[element].to_s.xstring}/>\n"
end
- f.puts " </element>\n"
- else
- f.puts " <element name=#{element.xstring} n=#{elements[element].to_s.xstring}/>\n"
end
+ f.puts " </elements>\n"
+ end
+ f.puts "</document>\n"
+ f.close
+ if process then
+ system("texmfstart texexec --purge --pdf --use=xml-analyze #{result}")
+ end
+ else
+ report("unable to open file '#{result}'")
+ end
+ else
+ report("invalid xml file '#{file}'")
+ end
+ else
+ report("unable to load file '#{file}'")
+ end
+ else
+ report("unknown file '#{file}'")
+ end
+ end
+
+ def cleanup # todo, share loading/saving with previous
+
+ file = @commandline.argument('first')
+ force = @commandline.option('force')
+ verbose = @commandline.option('verbose')
+
+ if FileTest.file?(file) then
+ if data = IO.read(file) then
+ if data =~ /<?xml.*?version\=/ then
+ data = doxmlcleanup(data,verbose)
+ result = if force then file else file.gsub(/\..*?$/, '') + '.xlg' end
+ begin
+ if f = File.open(result,'w') then
+ f << data
+ f.close
end
- f.puts " </elements>\n"
+ rescue
+ report("unable to open file '#{result}'")
end
- f.puts "</document>\n"
else
- report("unable to open file '#{result}'")
+ report("invalid xml file '#{file}'")
end
else
report("unable to load file '#{file}'")
@@ -313,8 +427,77 @@ class Commands
else
report("unknown file '#{file}'")
end
+
end
+ def doxmlreport(str,verbose=false)
+ if verbose then
+ result = str
+ report(result)
+ return result
+ else
+ return str
+ end
+ end
+
+ def doxmlcleanup(data="",verbose=false)
+
+ # remove funny spaces (looks cleaner)
+ #
+ # data = "<whatever ></whatever ><whatever />"
+
+ data.gsub!(/\<(\/*\w+)\s*(\/*)>/o) do
+ "<#{$1}#{$2}>"
+ end
+
+ # remove funny ampersands
+ #
+ # data = "<x> B&W </x>"
+
+ data.gsub!(/\&([^\<\>\&]*?)\;/mo) do
+ "<entity name='#{$1}'/>"
+ end
+ data.gsub!(/\&/o) do
+ doxmlreport("&amp;",verbose)
+ end
+ data.gsub!(/\<entity name=\'(.*?)\'\/\>/o) do
+ doxmlreport("&#{$1};",verbose)
+ end
+
+ # remove funny < >
+ #
+ # data = "<x> < 5% </x>"
+
+ data.gsub!(/<([^>].*?)>/o) do
+ tag = $1
+ case tag
+ when /^\//o then
+ "<#{tag}>" # funny tag but ok
+ when /\/$/o then
+ "<#{tag}>" # funny tag but ok
+ when /</o then
+ doxmlreport("&lt;#{tag}>",verbose)
+ else
+ "<#{tag}>"
+ end
+ end
+
+ # remove funny < >
+ #
+ # data = "<x> > 5% </x>"
+
+ data.gsub!(/<([^>].*?)>([^\>\<]*?)>/o) do
+ doxmlreport("<#{$1}>#{$2}&gt;",verbose)
+ end
+
+ return data
+ end
+
+ # puts doxmlcleanup("<whatever ></whatever ><whatever />")
+ # puts doxmlcleanup("<x> B&W </x>")
+ # puts doxmlcleanup("<x> < 5% </x>")
+ # puts doxmlcleanup("<x> > 5% </x>")
+
end
logger = Logger.new(banner.shift)
@@ -322,7 +505,8 @@ commandline = CommandLine.new
commandline.registeraction('dir', 'generate directory listing')
commandline.registeraction('mmlpages','generate graphic from mathml')
-commandline.registeraction('analyze', 'report entities and elements')
+commandline.registeraction('analyze', 'report entities and elements [--utf --process]')
+commandline.registeraction('cleanup', 'cleanup xml file [--force]')
# commandline.registeraction('dir', 'filename --pattern= --output= [--recurse --stripname --longname --url --root]')
# commandline.registeraction('mmlpages','filename [--eps --jpg --png --style= --mode=]')
@@ -344,8 +528,11 @@ commandline.registervalue('root')
commandline.registerflag('eps')
commandline.registerflag('png')
commandline.registerflag('jpg')
+commandline.registerflag('utf')
+commandline.registerflag('process')
commandline.registervalue('style')
commandline.registervalue('modes')
+commandline.registervalue('verbose')
commandline.expand
diff --git a/Master/texmf-dist/scripts/context/stubs/mswin/ctxtools.bat b/Master/texmf-dist/scripts/context/stubs/mswin/ctxtools.bat
new file mode 100644
index 00000000000..13614a1d98d
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/mswin/ctxtools.bat
@@ -0,0 +1,2 @@
+@echo off
+texmfstart ctxtools.rb %*
diff --git a/Master/texmf-dist/scripts/context/stubs/mswin/exatools.bat b/Master/texmf-dist/scripts/context/stubs/mswin/exatools.bat
new file mode 100644
index 00000000000..36230a528f4
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/mswin/exatools.bat
@@ -0,0 +1,2 @@
+@echo off
+texmfstart exatools.rb %*
diff --git a/Master/texmf-dist/scripts/context/stubs/mswin/makempy.bat b/Master/texmf-dist/scripts/context/stubs/mswin/makempy.bat
new file mode 100644
index 00000000000..9622d96a5f3
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/mswin/makempy.bat
@@ -0,0 +1,2 @@
+@echo off
+texmfstart makempy.pl %*
diff --git a/Master/texmf-dist/scripts/context/stubs/mswin/mpstools.bat b/Master/texmf-dist/scripts/context/stubs/mswin/mpstools.bat
new file mode 100644
index 00000000000..10ec3f1d687
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/mswin/mpstools.bat
@@ -0,0 +1,2 @@
+@echo off
+texmfstart mpstools.rb %*
diff --git a/Master/texmf-dist/scripts/context/stubs/mswin/mptopdf.bat b/Master/texmf-dist/scripts/context/stubs/mswin/mptopdf.bat
new file mode 100644
index 00000000000..757ea58f9ce
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/mswin/mptopdf.bat
@@ -0,0 +1,2 @@
+@echo off
+texmfstart mptopdf.pl %*
diff --git a/Master/texmf-dist/scripts/context/stubs/mswin/pdftools.bat b/Master/texmf-dist/scripts/context/stubs/mswin/pdftools.bat
new file mode 100644
index 00000000000..71662d3f766
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/mswin/pdftools.bat
@@ -0,0 +1,2 @@
+@echo off
+texmfstart pdftools.rb %*
diff --git a/Master/texmf-dist/scripts/context/stubs/mswin/pstopdf.bat b/Master/texmf-dist/scripts/context/stubs/mswin/pstopdf.bat
new file mode 100644
index 00000000000..091b0d4d7bd
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/mswin/pstopdf.bat
@@ -0,0 +1,2 @@
+@echo off
+texmfstart pstopdf.rb %*
diff --git a/Master/texmf-dist/scripts/context/stubs/mswin/rlxtools.bat b/Master/texmf-dist/scripts/context/stubs/mswin/rlxtools.bat
new file mode 100644
index 00000000000..e5cdca25009
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/mswin/rlxtools.bat
@@ -0,0 +1,2 @@
+@echo off
+texmfstart rlxtools.rb %*
diff --git a/Master/texmf-dist/scripts/context/stubs/mswin/runtools.bat b/Master/texmf-dist/scripts/context/stubs/mswin/runtools.bat
new file mode 100644
index 00000000000..37df398ab37
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/mswin/runtools.bat
@@ -0,0 +1,2 @@
+@echo off
+texmfstart runtools.rb %*
diff --git a/Master/texmf-dist/scripts/context/stubs/mswin/texexec.bat b/Master/texmf-dist/scripts/context/stubs/mswin/texexec.bat
new file mode 100644
index 00000000000..44615dbd918
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/mswin/texexec.bat
@@ -0,0 +1,2 @@
+@echo off
+texmfstart texexec.rb %*
diff --git a/Master/texmf-dist/scripts/context/stubs/mswin/texfont.bat b/Master/texmf-dist/scripts/context/stubs/mswin/texfont.bat
new file mode 100644
index 00000000000..9dd50309ff3
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/mswin/texfont.bat
@@ -0,0 +1,2 @@
+@echo off
+texmfstart texfont.pl %*
diff --git a/Master/texmf-dist/scripts/context/stubs/mswin/textools.bat b/Master/texmf-dist/scripts/context/stubs/mswin/textools.bat
new file mode 100644
index 00000000000..4fc5c549255
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/mswin/textools.bat
@@ -0,0 +1,2 @@
+@echo off
+texmfstart textools.rb %*
diff --git a/Master/texmf-dist/scripts/context/stubs/mswin/texutil.bat b/Master/texmf-dist/scripts/context/stubs/mswin/texutil.bat
new file mode 100644
index 00000000000..61e90ca6509
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/mswin/texutil.bat
@@ -0,0 +1,2 @@
+@echo off
+texmfstart texutil.rb %*
diff --git a/Master/texmf-dist/scripts/context/stubs/mswin/tmftools.bat b/Master/texmf-dist/scripts/context/stubs/mswin/tmftools.bat
new file mode 100644
index 00000000000..a7053043d22
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/mswin/tmftools.bat
@@ -0,0 +1,2 @@
+@echo off
+texmfstart tmftools.rb %*
diff --git a/Master/texmf-dist/scripts/context/stubs/mswin/xmltools.bat b/Master/texmf-dist/scripts/context/stubs/mswin/xmltools.bat
new file mode 100644
index 00000000000..9721095b298
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/mswin/xmltools.bat
@@ -0,0 +1,2 @@
+@echo off
+texmfstart xmltools.rb %*
diff --git a/Master/texmf-dist/scripts/context/stubs/unix/ctxtools b/Master/texmf-dist/scripts/context/stubs/unix/ctxtools
new file mode 100644
index 00000000000..84e47bbee3c
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/unix/ctxtools
@@ -0,0 +1,2 @@
+#!/bin/sh
+texmfstart ctxtools.rb "$@"
diff --git a/Master/texmf-dist/scripts/context/stubs/unix/exatools b/Master/texmf-dist/scripts/context/stubs/unix/exatools
new file mode 100644
index 00000000000..50ff0f07e46
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/unix/exatools
@@ -0,0 +1,2 @@
+#!/bin/sh
+texmfstart exatools.rb "$@"
diff --git a/Master/texmf-dist/scripts/context/stubs/unix/makempy b/Master/texmf-dist/scripts/context/stubs/unix/makempy
new file mode 100644
index 00000000000..4bf7a1af230
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/unix/makempy
@@ -0,0 +1,2 @@
+#!/bin/sh
+texmfstart makempy.pl "$@"
diff --git a/Master/texmf-dist/scripts/context/stubs/unix/mpstools b/Master/texmf-dist/scripts/context/stubs/unix/mpstools
new file mode 100644
index 00000000000..b4c8f634548
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/unix/mpstools
@@ -0,0 +1,2 @@
+#!/bin/sh
+texmfstart mpstools.rb "$@"
diff --git a/Master/texmf-dist/scripts/context/stubs/unix/mptopdf b/Master/texmf-dist/scripts/context/stubs/unix/mptopdf
new file mode 100644
index 00000000000..980a3123d1a
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/unix/mptopdf
@@ -0,0 +1,2 @@
+#!/bin/sh
+texmfstart mptopdf.pl "$@"
diff --git a/Master/texmf-dist/scripts/context/stubs/unix/pdftools b/Master/texmf-dist/scripts/context/stubs/unix/pdftools
new file mode 100644
index 00000000000..92ee803a868
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/unix/pdftools
@@ -0,0 +1,2 @@
+#!/bin/sh
+texmfstart pdftools.rb "$@"
diff --git a/Master/texmf-dist/scripts/context/stubs/unix/pstopdf b/Master/texmf-dist/scripts/context/stubs/unix/pstopdf
new file mode 100644
index 00000000000..5b38ed426cb
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/unix/pstopdf
@@ -0,0 +1,2 @@
+#!/bin/sh
+texmfstart pstopdf.rb "$@"
diff --git a/Master/texmf-dist/scripts/context/stubs/unix/rlxtools b/Master/texmf-dist/scripts/context/stubs/unix/rlxtools
new file mode 100644
index 00000000000..41cea40fc09
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/unix/rlxtools
@@ -0,0 +1,2 @@
+#!/bin/sh
+texmfstart rlxtools.rb "$@"
diff --git a/Master/texmf-dist/scripts/context/stubs/unix/runtools b/Master/texmf-dist/scripts/context/stubs/unix/runtools
new file mode 100644
index 00000000000..ff9a333791b
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/unix/runtools
@@ -0,0 +1,2 @@
+#!/bin/sh
+texmfstart runtools.rb "$@"
diff --git a/Master/texmf-dist/scripts/context/stubs/unix/texexec b/Master/texmf-dist/scripts/context/stubs/unix/texexec
new file mode 100644
index 00000000000..2158172906a
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/unix/texexec
@@ -0,0 +1,2 @@
+#!/bin/sh
+texmfstart texexec.rb "$@"
diff --git a/Master/texmf-dist/scripts/context/stubs/unix/texfont b/Master/texmf-dist/scripts/context/stubs/unix/texfont
new file mode 100644
index 00000000000..a91f786e3f8
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/unix/texfont
@@ -0,0 +1,2 @@
+#!/bin/sh
+texmfstart texfont.pl "$@"
diff --git a/Master/texmf-dist/scripts/context/stubs/unix/textools b/Master/texmf-dist/scripts/context/stubs/unix/textools
new file mode 100644
index 00000000000..7445eac371c
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/unix/textools
@@ -0,0 +1,2 @@
+#!/bin/sh
+texmfstart textools.rb "$@"
diff --git a/Master/texmf-dist/scripts/context/stubs/unix/texutil b/Master/texmf-dist/scripts/context/stubs/unix/texutil
new file mode 100644
index 00000000000..607154af059
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/unix/texutil
@@ -0,0 +1,2 @@
+#!/bin/sh
+texmfstart texutil.rb "$@"
diff --git a/Master/texmf-dist/scripts/context/stubs/unix/tmftools b/Master/texmf-dist/scripts/context/stubs/unix/tmftools
new file mode 100644
index 00000000000..7531a966390
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/unix/tmftools
@@ -0,0 +1,2 @@
+#!/bin/sh
+texmfstart tmftools.rb "$@"
diff --git a/Master/texmf-dist/scripts/context/stubs/unix/xmltools b/Master/texmf-dist/scripts/context/stubs/unix/xmltools
new file mode 100644
index 00000000000..03086d0436b
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/stubs/unix/xmltools
@@ -0,0 +1,2 @@
+#!/bin/sh
+texmfstart xmltools.rb "$@"
diff --git a/Master/texmf-dist/tex/context/base/colo-ini.tex b/Master/texmf-dist/tex/context/base/colo-ini.tex
index 285c0148643..bb0b8c6e84b 100644
--- a/Master/texmf-dist/tex/context/base/colo-ini.tex
+++ b/Master/texmf-dist/tex/context/base/colo-ini.tex
@@ -72,7 +72,7 @@
title: kleur
1: systeem -- is globaal actief
2: systeem -- is lokaal actief
- 3: -- is niet gedefinieerd
+ 3: -- is niet gedefinieerd --
4: systeem -- wordt geladen
5: onbekend systeem --
6: palet -- is beschikbaar
@@ -88,7 +88,7 @@
title: color
1: system -- is global activated
2: system -- is local activated
- 3: -- is not defined
+ 3: -- is not defined --
4: system -- is loaded
5: unknown system --
6: palette -- is available
@@ -104,7 +104,7 @@
title: farbe
1: system -- ist global aktiviert
2: system -- ist lokal aktiviert
- 3: -- ist undefiniert
+ 3: -- ist undefiniert --
4: system -- ist geladen
5: unbekanntes System --
6: palette -- ist verfuegbar
@@ -120,7 +120,7 @@
title: barva
1: system -- je globalne aktivovana
2: system -- je lokalne activovana
- 3: -- neni definovana
+ 3: -- neni definovana --
4: system -- je nacten
5: neznamy system --
6: palette -- je k dispozici
@@ -136,7 +136,7 @@
title: colore
1: sistema -- attivato globalmente
2: sistema -- attivato localmente
- 3: -- non definito
+ 3: -- non definito --
4: sistema -- caricato
5: sistema -- sconosciuto
6: tavolozza -- resa disponibile
@@ -144,7 +144,7 @@
8: specifica -- del colore -- convertita in nero
9: spazio dei colori -- non supportato
10: spazio dei colori -- supportato
- 11: il colore è convertito in grigio
+ 11: il colore ø convertito in grigio
12: -- is registered
\stopmessages
@@ -152,15 +152,15 @@
title: farge
1: system -- er aktivert globalt
2: system -- er aktivert lokalt
- 3: -- er udefinert
+ 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å
+ 9: -- fargerom er ikke støttet
+ 10: -- fargerom er støttet
+ 11: fargen vil bli vist som grø
12: -- is registered
\stopmessages
@@ -168,7 +168,7 @@
title: culori
1: sistem -- este activata global
2: sistem -- este activata local
- 3: -- nu este definita
+ 3: -- nu este definita --
4: sistem -- este incarcata
5: sistem -- necunoscuta
6: paleta -- este disponibila
@@ -180,6 +180,22 @@
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
@@ -310,31 +326,6 @@
\def\dodefineglobalcolor{\dododefinecolor\doglobal\setgvalue\setxvalue1}
\def\dodefinenamedcolor {\dododefinecolor\doglobal\setvalue \setevalue0}
-% keep this for readability
-%
-% \def\dodefinecolor[#1][#2]%
-% {\addtocommalist{#1}\colorlist
-% \doifassignmentelse{#2}
-% {\@@resetcolorparameters
-% \getparameters[\??cl @@][#2]%
-% \doifelse{\@@cl@@r\@@cl@@g\@@cl@@b}{\@@cl@@z\@@cl@@z\@@cl@@z}
-% {\doifelse{\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k}{\@@cl@@z\@@cl@@z\@@cl@@z\@@cl@@z}
-% {\doifelse\@@cl@@s\@@cl@@z
-% {\showmessage\m!colors8{{[#2]},#1}%
-% \setevalue{\??cr#1}{\colorZpattern}}
-% {\setevalue{\??cr#1}{\colorSpattern}}}
-% {\setevalue{\??cr#1}{\colorCpattern}}}
-% {\setevalue{\??cr#1}{\colorRpattern}}}
-% {\doifdefinedelse{\??cr#2}
-% {\doifelse{#1}{#2}
-% {% this way we can freeze \definecolor[somecolor][somecolor]
-% % and still prevent cyclic definitions
-% \iffreezecolors\setevalue{\??cr#1}{\getvalue{\??cr#2}}\fi}
-% {\iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi
-% {\??cr#1}{\getvalue{\??cr#2}}}}
-% {\showmessage\m!colors3{#1}}}%
-% \unexpanded\setvalue{#1}{\color[#1]}} % \unexpanded toegevoegd
-
\def\dododefinecolor#1#2#3#4[#5][#6]% #2==set(g)value #3==set[e|x]value
{#1\addtocommalist{#5}\colorlist % optional
\doifassignmentelse{#6}
@@ -356,18 +347,30 @@
\ifx\@@cl@@e\empty \else
\doregisterspotcolorname{#5}\@@cl@@e
\fi}
- {\doifdefinedelse{\??cr#6}
- {\doifelse{#5}{#6}
- {% this way we can freeze \definecolor[somecolor][somecolor]
- % and still prevent cyclic definitions
- \iffreezecolors#3{\??cr#5}{\getvalue{\??cr#6}}\fi}
- {\iffreezecolors\@EA#3\else\@EA#2\fi
- {\??cr#5}{\getvalue{\??cr#6}}}}
- {\showmessage\m!colors3{#5}}}%
+ {\doifelsenothing\currentpalet
+ \donefalse
+ {\doifdefinedelse{\??cr\currentpalet#6}\donetrue\donefalse}%
+ \ifdone
+ \doifnot{#5}{#6}
+ {#2{\??cr#5}{\paletcolorspec{#6}}}%
+ \else
+ \doifdefinedelse{\??cr#6}
+ {\doifelse{#5}{#6}
+ {% this way we can freeze \definecolor[somecolor][somecolor]
+ % and still prevent cyclic definitions
+ \iffreezecolors#3{\??cr#5}{\csname\??cr#6\endcsname}\fi}
+ {\iffreezecolors\@EA#3\else\@EA#2\fi
+ {\??cr#5}{\csname\??cr#6\endcsname}}}
+ {\showmessage\m!colors3{#5 (def)}}%
+ \fi}%
\ifcase#4\or
\unexpanded#2{#5}{\switchtocolor[#5]}% \unexpanded toegevoegd
\fi}
+\def\paletcolorspec#1%
+% {\executeifdefined{\??cr\currentpalet#1}{\executeifdefined{\??cr#1}\empty}}
+ {\csname\??cr\currentpalet#1\endcsname}
+
%D Hex color support is not enabled by default. You need to say \setupcolor
%D [hex] to get this working.
@@ -388,6 +391,9 @@
\edef\@@cl@@n{#2}%
\getparameters[\??cl @@][#3]%
\doifnothing\@@cl@@p{\let\@@cl@@p\!!plusone}%
+ \ifx\@@cl@@e\empty \else
+ \doregisterspotcolorname{#2}\@@cl@@e
+ \fi
\doglobal\addtocommalist{#2}\allspotcolors
\setxvalue{\??cr#1}{\colorPpattern}% was \setevalue
\setgvalue{#1}{\switchtocolor[#1]}}} % was \setvalue
@@ -473,14 +479,15 @@
\processcommalist[#1]\docommand}}
\def\checkmultitonecolor#1%
- {\getvalue{\??cl#1\s!check}\letgvalue{\??cl#1\s!check}\relax}
+ {\csname\??cl#1\s!check\endcsname\letgvalue{\??cl#1\s!check}\relax}
-\def\dodefinespotcolor[#1][#2][#3]% todo: always global
+\def\dodefinespotcolor[#1][#2][#3]% todo: always global (REDEFINED)
{\doifnot{#1}{#2}
{\@@resetcolorparameters
\edef\@@cl@@n{#2}%
\getparameters[\??cl @@][#3]%
- \doifnothing\@@cl@@p{\let\@@cl@@p\!!plusone}%
+ \doifnothing \@@cl@@p{\let\@@cl@@p\!!plusone}%
+ \doifsomething\@@cl@@e{\doregisterspotcolorname{#2}\@@cl@@e}%
\doglobal\addtocommalist{#2}\allspotcolors
\setxvalue{\??cr#1}{\colorPpattern}% was \setevalue
\setgvalue{#1}{\switchtocolor[#1]}}}% was \setvalue
@@ -587,10 +594,12 @@
\processcommalist[#1]\dodosetupcolor}}
\def\dodosetupcolor#1%
- {\makeshortfilename[\f!colorprefix\truefilename{#1}]%
- \readsysfile\shortfilename
- {\showmessage\m!colors4\colorstyle}
- {\showmessage\m!colors5\colorstyle}}
+ {\makeshortfilename[\truefilename{\f!colorprefix#1}]%
+ \startreadingfile
+ \readsysfile\shortfilename
+ {\showmessage\m!colors4\colorstyle}
+ {\showmessage\m!colors5\colorstyle}%
+ \stopreadingfile}
\let\usecolors\setupcolor
@@ -1351,19 +1360,22 @@
\ifx\initializemaintextcolor\undefined
-% \def\initializemaintextcolor
-% {\doifsomething\@@cltekstkleur
-% {\appendtoks\starttextcolor[\@@cltekstkleur]\to\everystarttext
-% \appendtoks\stoptextcolor \to\everystoptext
-% \let\initializemaintextcolor\relax}}
-
- % global ?
+ \let\@@clprevcolor\empty
\def\initializemaintextcolor
- {\doifelsenothing\@@cltextcolor
+ {% saveguard for setting text color to empty after
+ % it has been set
+ \doifnothing\@@cltextcolor
+ {\ifx\@@clprevcolor\empty\else
+ \let\@@cltextcolor\defaulttextcolor
+ \fi}%
+ \doifelsenothing\@@cltextcolor
{\let\maintextcolor\empty}
- {\let\maintextcolor\@@themaintextcolor
- \definecolor[\@@themaintextcolor][\@@cltextcolor]%
+ {\edef\@@clprevcolor{\@@cltextcolor}%
+ \let\maintextcolor\@@themaintextcolor
+ \doifelsenothing\@@cltextcolor % another saveguard
+ {\definecolor[\@@themaintextcolor][\defaulttextcolor]}%
+ {\definecolor[\@@themaintextcolor][\@@cltextcolor]}%
\doinitializemaintextcolor}}
\def\doinitializemaintextcolor
@@ -1708,14 +1720,14 @@
%D
%D \showsetup{startcolor}
-\def\startcolor
+\unexpanded\def\startcolor
{\ifincolor
\expandafter\doglobalstartcolor
\else
\expandafter\noglobalstartcolor
\fi}
-\def\stopcolor
+\unexpanded\def\stopcolor
{\ifincolor
\doglobalstopcolor
\else
@@ -1766,7 +1778,7 @@
\global\@EA\let\csname\@@currentcolorstop\endcsname\dodoglobalstopcolor
\startcolormode\@@askedcolor}
{\global\@EA\let\csname\@@currentcolorstop\endcsname\donoglobalstopcolor
- \showmessage\m!colors3\@@askedcolor}%
+ \showmessage\m!colors3\@@askedcolor\empty}%
\fi\fi}
\def\doglobalstartcolor[#1]%
@@ -2111,7 +2123,7 @@
{\dodoformatcolor{#1}}
\def\doformatcolor#1:%
- {\getvalue{doformatcolor#1}}
+ {\csname doformatcolor#1\endcsname}
\def\colorvalue
{\dowithcolor\doformatcolor}
@@ -2134,7 +2146,7 @@
{\dowithcolor\doformatcolor{#1}}
\def\doformatgray#1:%
- {\getvalue{doformatgray#1}}
+ {\csname doformatgray#1\endcsname}
\def\grayvalue
{\dowithcolor\doformatgray}
@@ -2237,24 +2249,38 @@
\setevalue{\??pa\??pa#1}{#2}%
\def\dodododefinepalet[##1=##2]%
{\doifvaluesomething{\??pa#1}
- {\setevalue{\??pa#1}{\getvalue{\??pa#1},}}%
- \setevalue{\??pa#1}{\getvalue{\??pa#1}##1}%
- \doifdefinedelse{\??cr##2}
- {\iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi
- {\??cr#1:##1}{\getvalue{\??cr##2}}}
- {\letvalue{\??cr#1:##1}\colorXpattern}}%
+ {\setevalue{\??pa#1}{\csname\??pa#1\endcsname,}}%
+ \setevalue{\??pa#1}{\csname\??pa\endcsname##1}%
+ \doifassignmentelse{##2}
+ {% == \definepalet[test][xx={y=.4}]
+ \definecolor[\??pa#1:##1][##2]%
+ \iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi
+ {\??cr#1:##1}{\csname\??cr\??pa#1:##1\endcsname}}
+ {% == \definepalet[test][xx=green]
+ \doifdefinedelse{\??cr##2}
+ {\iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi
+ {\??cr#1:##1}{\csname\??cr##2\endcsname}}
+ {\letvalue{\??cr#1:##1}\colorXpattern}}}%
\def\dododefinepalet##1%
{\dodododefinepalet[##1]}%
\processcommalist[#2]\dododefinepalet}
{\doifdefined{\??pa#2}
- {\expanded{\dodefinepalet[#1][\getvalue{\??pa\??pa#2}]}}}}
+ {\expanded{\dodefinepalet[#1][\csname\??pa\??pa#2\endcsname]}}}}
\let\paletsize\!!zerocount
\def\getpaletsize[#1]%
- {\getcommacommandsize[\getvalue{\??pa\??pa#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
@@ -2331,7 +2357,7 @@
[#2]
[ \v!cmyk=>\edef\currentcolorspace{C},
\v!rgb=>\edef\currentcolorspace{R},
- \v!gray=>\edef\currentcolorspace{S},
+ \v!gray=>\edef\currentcolorspace{S},
\v!spot=>\edef\currentcolorspace{P},
\v!s=>\edef\currentcolorspace{S},
\s!unknown=>\edef\currentcolorspace{R}]%
@@ -2346,7 +2372,7 @@
{\doloop
{\doifdefinedelse{\??cr#2:\recurselevel}
{\setevalue{\??cr#1:\recurselevel}%
- {\getvalue{\??cr#2:\recurselevel}}}
+ {\csname\??cr#2:\recurselevel\endcsname}}
{\exitloop}}}%
\fi}
diff --git a/Master/texmf-dist/tex/context/base/cont-fil.tex b/Master/texmf-dist/tex/context/base/cont-fil.tex
index b6d3fba6571..6988f57f008 100644
--- a/Master/texmf-dist/tex/context/base/cont-fil.tex
+++ b/Master/texmf-dist/tex/context/base/cont-fil.tex
@@ -14,11 +14,14 @@
\writestatus{loading}{Context File Synonyms}
\definefilesynonym [chemie] [chemic]
+\definefilesynonym [chemics] [chemic]
\definefilesynonym [unit] [units]
\definefilesynonym [eenheid] [units]
\definefilesynonym [einheit] [units]
+\definefilesynonym [pstricks] [pstric]
+
\definefilesynonym [finance] [financ]
\definefilesynonym [con-01] [contml] % will go away
@@ -93,9 +96,14 @@
\definefilesynonym [abr-smallcaps] [abr-02]
\definefilesynonym [chinese] [chi-00]
+\definefilesynonym [japanese] [jap-00]
+
%definefilesynonym [chi-simplified] [chi-01]
%definefilesynonym [chi-traditional] [chi-02]
\definefilesynonym [greek] [grk-00]
+\definefilesynonym [unic-chi] [unic-cjk]
+\definefilesynonym [unic-jap] [unic-cjk]
+
\endinput
diff --git a/Master/texmf-dist/tex/context/base/cont-fr.tex b/Master/texmf-dist/tex/context/base/cont-fr.tex
new file mode 100644
index 00000000000..338d6c6d4ed
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/cont-fr.tex
@@ -0,0 +1,38 @@
+%D \module
+%D [ file=cont-de,
+%D version=1997.08.19,
+%D title=\CONTEXT,
+%D subtitle=\CONTEXT\ German 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{french}
+
+\input context.tex
+
+\unprotect
+
+\setupcurrentlanguage[\s!fr]
+
+\loaduserspecifications
+
+\installlanguage [\s!en] [\c!state=\v!start]
+\installlanguage [\s!uk] [\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]
+
+\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 aa1e1ce72ad..dae135a1c1f 100644
--- a/Master/texmf-dist/tex/context/base/cont-log.tex
+++ b/Master/texmf-dist/tex/context/base/cont-log.tex
@@ -89,7 +89,7 @@
\kern-.11em\TeX}
\def\AMSswitch#1%
- {$\fam2\ifdim\korpsgrootte>1.1em\scriptstyle\fi#1$}
+ {$\fam2\ifdim\bodyfontsize>1.1em\scriptstyle\fi#1$}
\def\AmSTeX
{\AMSswitch A%
diff --git a/Master/texmf-dist/tex/context/base/cont-new.tex b/Master/texmf-dist/tex/context/base/cont-new.tex
index 87d53cb68dc..0cdb791700c 100644
--- a/Master/texmf-dist/tex/context/base/cont-new.tex
+++ b/Master/texmf-dist/tex/context/base/cont-new.tex
@@ -11,6 +11,8 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\newcontextversion{2006.08.08 21:51}
+
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
%D features.
@@ -22,8 +24,233 @@
\unprotect
+% \setuplabeltext[\s!itemcount1={{I(},{)}}]
+% \def\labeledcountervalue#1{\labeltexts{#1}{\countervalue{#1}}}
+
\writestatus{\m!systems}{beware: some patches loaded from cont-new.tex}
+% we need to overhaul the page modules anyway
+
+\def\settext
+ {\doquintupleempty\dosettext}
+
+\def\dosettext[#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\resettext
+ {\dotripleempty\doresettext}
+
+\def\doresettext[#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}
+
+\setvalue{:\c!middle:\c!text:}{\c!middletext}
+\setvalue{:\c!left :\c!text:}{\c!lefttext }
+\setvalue{:\c!right :\c!text:}{\c!righttext }
+
+% \settext[header][text][middle][xxx][yyy]
+
+%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}
+
+% This will move to core-fig asap:
+%
+% todo: process between runs
+
+\startXMLmapping[rli]
+ \defineXMLprocess[rl:identify]
+ \defineXMLsavecontent[rl:width] {\!!zeropoint}
+ \defineXMLsavecontent[rl:height]{\!!zeropoint}
+\stopXMLmapping
+
+\let\rliwidth \!!zeropoint
+\let\rliheight\!!zeropoint
+
+\def\getRLIfiguredimensions#1%
+ {\global\let\rliwidth \!!zeropoint
+ \global\let\rliheight\!!zeropoint
+ \doifelsenothing\@@efconversion
+ {\doiffileelse\@@effilenametype
+ {\doiffileelse{\@@effilenametype.rli}
+ {}
+ {% let's try runtime running first
+ \writestatus\m!figures{using rlxtools to determine size of \@@effilenametype}%
+ \executesystemcommand{texmfstart rlxtools --identify \@@effilenametype}}%
+ \doiffileelse{\@@effilenametype.rli}
+ {}
+ {% we assume that runtime running failed
+ \installprogram{texmfstart rlxtools --identify \@@effilenametype}}%
+ \startnointerference
+ \startXMLmapping[rli]%
+ \startXMLignore
+ \processXMLfile{\@@effilenametype.rli}%
+ \xdef\rliwidth {\XMLflush{rl:width}}%
+ \xdef\rliheight{\XMLflush{rl:height}}%
+ \stopXMLignore
+ \stopXMLmapping
+ \stopnointerference}
+ {}}
+ {}} % no rli when rlx conversion is in place
+
+\def\getfiguredimensionsC
+ {\ifcase\figurestatus\ifcase\figurefilemode\else
+ \doifsomething\@@efcurrentpath
+ {\doifnotinset\@@effiletype{\c!tex,\c!tmp}
+ {\doiffileelse\@@efcurrentfile
+ {\@@eftrace{using rlxtools to identify \@@effilenametype}%
+ \getRLIfiguredimensions{\@@effilenametype}%
+ \ifdim\rliwidth>\zeropoint \ifdim\rliheight>\zeropoint
+ \geteparameters % e !
+ [\??ep]
+ [\c!x=\!!zeropoint,\c!y=\!!zeropoint, % brrr, todo: bbox
+ \c!w=\rliwidth,\c!h=\rliheight]%
+ \let\@@eftype\@@efcurrenttype
+ \let\@@effullname\@@efcurrentfile
+ \chardef\figurestatus\plusfour % todo, message is wrong now
+ \fi \fi
+ \@@eftrace{\ifcase\figurestatus not \fi found}}
+ {}}}%
+ \fi\fi}
+
+\let\doanalyzefigurefilesB\relax % obsolete
+\let\doanalyzefigurefilesC\relax % obsolete
+
+\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\startenvironment
+ \popmacro\stopenvironment}
+
+\def\singlewidened #1{\hbox spread 1em{\hss#1\hss}}
+\def\complexwidened[#1]#2{\hbox spread #1{\hss#2\hss}}
+
+\definecomplexorsimple\widened
+
+% todo
+%
+% \def\definelocation{\dodoubleargument\dodefinelocation}
+% \def\dodefinelocation[#1][#2]{\setvalue{loc:#1}{#2}}
+%
+% \definelocation[lt] [\v!left\v!top]
+% \definelocation[tl] [\v!left\v!top]
+% \definelocation[\v!top\v!left][\v!left\v!top]
+%
+% \def\getlocation#1{\executeifdefined{loc:#1}{#1}}
+
+\def\convertencodedtokens{\stringifyencodedtokens}
+
+% test case:
+%
+% \enableregime[cp1250]
+% \mainlanguage[cz]
+%
+% \starttext
+%
+% \title{Žluouècí konì úpí}
+% \placelist[chapter][criterium=all]
+%
+% \startbuffer
+% <chapter>
+% <title>Žluouècí 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
+
+% just in case we load something from a file (pdfr-ec for instance)
+
+\prependtoks \restoreendofline \to \everybeforeshipout
+
% \tracefilestrue
%
% \unexpanded\def\readfile#1#2#3%
@@ -63,9 +290,11 @@
\def\docheckprepfile
{\ifcase\preprocessmethod
+ \iftracefiles\writestatus\m!systems{preprocessing - not needed}\fi
% no preprocessing
\or
% only check for existence
+ \iftracefiles\writestatus\m!systems{preprocessing - check exitence of \readfilename\preprocesssuffix}\fi
\doiffileexistselse{\readfilename\preprocesssuffix}
{\chardef\preprocessstate\plusone}
\donothing
@@ -75,14 +304,21 @@
\splitfilename\readfilename
\ifx\splitofftype\empty
% saveguard and speed up
+ \iftracefiles\writestatus\m!systems{preprocessing - no suffix}\fi
\egroup
\else
- \doifdefinedelse{fp..\splitoffname.\splitofftype}
+ \iftracefiles\writestatus\m!systems{preprocessing - check presence of \readfilename\preprocesssuffix}\fi
+ \doifdefinedelse{fp..\readfilename}
{\egroup
\doiffileexistselse{\readfilename\preprocesssuffix}
{\chardef\preprocessstate\plusone}
{\chardef\preprocessstate\plustwo}}%
- {\egroup}%
+ {\doifdefinedelse{fp..\splitoffname.\splitofftype}
+ {\egroup
+ \doiffileexistselse{\readfilename\preprocesssuffix}
+ {\chardef\preprocessstate\plusone}
+ {\chardef\preprocessstate\plustwo}}%
+ {\egroup}}%
\fi
\fi}
@@ -176,9 +412,6 @@
\relax
\the\everyafterreadfile}
-\def\headparameter#1% to do: everywhere in core-sec
- {\csname\??ko\currenthead#1\endcsname}
-
% The following may be a solution for the fact that one cannot
% change catcodes of characters like : and ; inside an environment.
@@ -588,7 +821,7 @@
%D \getbuffer[c]
\long\def\rescan#1{\scantokens{#1\ignorespaces}}
-\long\def\rescanwithsetup#1#2{\bgroup\directsetup{#1}\scantokens{#2\ignorespaces}\egroup}
+\long\def\rescanwithsetup#1#2{\begingroup\directsetup{#1}\scantokens{#2\ignorespaces}\endgroup}
% 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
@@ -612,6 +845,8 @@
% \egroup
%
% more generic
+%
+% IS THIS STILL OK? TO BE CHECKED (UTF AND SUCH) ! ! ! !
\def\XMLexpanded#1%
{\bgroup
@@ -649,14 +884,73 @@
\installoutput\synchronizeoutput % maybe add pagediscards
{\ifvoid\normalpagebox\else
\unvbox\normalpagebox
- \pagediscards
+ \pagediscards % maybe not needed ?
\fi}
% temp hack, else no proper default fall back (like \textmultiply); todo: sync encoding
+\def\dealwithmathtextencoding
+ {\expanded{\everyhbox{\the\everyhbox\noexpand\fastenableencoding{\currentencoding}}}%
+ \def\dealwithmathtextencoding{\let\characterencoding\nocharacterencoding}%
+ \dealwithmathtextencoding}
\appendtoks
- \let\characterencoding\nocharacterencoding
+ \dealwithmathtextencoding
+\to \everymathematics
+
+\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
+
+\let\outerencoding\empty
+
+\def\checkoutermathencoding
+ {\ifx\outerencoding\empty
+ \ifx\outerencoding\s!default\else
+ \edef\outerencoding{\currentencoding}%
+ \fi
+ \fi}
+
+\prependtoks
+ \checkoutermathencoding
\to \everymathematics
+
+% \startmathcollection[euler:texnansi]
+% \definemathsymbol [breve] [accent] [tf] ["15]
+% \stopmathcollection
+% \startmathcollection[euler:ec]
+% \definemathsymbol [breve] [accent] [tf] ["08]
+% \stopmathcollection
+%
+% $\breve e$
% \separatestring123 456\to\test [\test]
@@ -1209,8 +1503,8 @@
\prependtoks \normalenableXML \to \everyXMLinputmode
\appendtoks \processingXMLtrue \to \everyXMLinputmode
-\def\enableXML {\setinputmode[XML]}
-\def\disableXML{\setinputmode[TEX]}
+\unexpanded\def\enableXML {\setinputmode[XML]} % \enableXML is used in edef's and marks
+\unexpanded\def\disableXML{\setinputmode[TEX]}
\beginTEX
@@ -1342,7 +1636,8 @@
%\ifgridsnapping \else \baselinecorrection \fi % ! ! ! test test test ! ! ! !
\doplacefloatbox
\doinsertfloatinfo
- \dochecknextindentation\??bk}
+ \dochecknextindentation\??bk
+ \dorechecknextindentation}
% todo: switch koppelen aan par scheelt pos
@@ -1361,6 +1656,16 @@
% \headsym{xx} test \par test
% \stopitemize
+% \def\removeunwantedspaces
+% {\ifhmode
+% \doloop{\ifdim\lastskip>\zeropoint\unskip\else\exitloop\fi}%
+% \fi}
+
+\def\removeunwantedspaces
+ {\ifhmode \ifdim\lastskip>\zeropoint
+ \unskip \@EAEAEA\removeunwantedspaces
+ \fi \fi}
+
% wait till bugfix in etex is widespead
%
% \beginETEX \lastnodetype
@@ -1420,16 +1725,6 @@
% documentation : \setupregister[alternative=a|b|A|B]
-\def\pushXMLmeaning#1%
- {\@EA\pushmacro\csname\@@XMLelement:#1/\endcsname
- \@EA\pushmacro\csname\@@XMLelement:#1\endcsname
- \@EA\pushmacro\csname\@@XMLelement:/#1\endcsname}
-
-\def\popXMLmeaning#1%
- {\@EA\popmacro\csname\@@XMLelement:#1/\endcsname
- \@EA\popmacro\csname\@@XMLelement:#1\endcsname
- \@EA\popmacro\csname\@@XMLelement:/#1\endcsname}
-
\def\defineXMLstore {\doquadrupleargument\dodefineXMLstore[\saveXMLasdata]}
\def\defineXMLgstore{\doquadrupleargument\dodefineXMLstore[\gsaveXMLasdata]}
@@ -2363,7 +2658,7 @@
\snaptogrid\vbox{\box\columnspanbox}
\fi
\endgraf
- \prevdepth\strutdp
+ \ifvmode\prevdepth\strutdp\fi
\egroup}
\vbox\bgroup
%\topskipcorrection % becomes an option !
@@ -2390,10 +2685,6 @@
\def\stopgeheel
{\stoplinecorrection}
-%D No more news.
-
-\protect
-
%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
%D up in the distributed files.
@@ -2401,4 +2692,4 @@
\readsysfile {cont-loc} {} {} % local improvements, patches, new features
\readsysfile {cont-exp} {} {} % experimental features (e.g. local speed-ups)
-\endinput
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/cont-old.tex b/Master/texmf-dist/tex/context/base/cont-old.tex
index d0529c695ca..70628a10c76 100644
--- a/Master/texmf-dist/tex/context/base/cont-old.tex
+++ b/Master/texmf-dist/tex/context/base/cont-old.tex
@@ -15,6 +15,8 @@
\unprotect
+% \def\middleraggedness {6\bodyfontsize}
+
\def\dosubstitutecommand#1#2%
{\writestatus\m!systems{\string#1\normalspace -> \string#2}%
\gdef#1{#2}%
diff --git a/Master/texmf-dist/tex/context/base/cont-sys.ori b/Master/texmf-dist/tex/context/base/cont-sys.ori
index a74614bd1bf..fff231619b5 100644
--- a/Master/texmf-dist/tex/context/base/cont-sys.ori
+++ b/Master/texmf-dist/tex/context/base/cont-sys.ori
@@ -82,12 +82,15 @@
\resetmapfiles
+% more recent versions of pdftex support map loading on each page
+
\donefalse \ifx\pdftexversion\undefined \else \ifnum\number\pdftexversion>119
\donetrue
\fi \fi \ifdone
\loadmapfile[original-base.map]
\loadmapfile[original-ams-base.map]
+ \loadmapfile[original-ams-euler.map]
\loadmapfile[original-public-lm.map]
\else
diff --git a/Master/texmf-dist/tex/context/base/context.tex b/Master/texmf-dist/tex/context/base/context.tex
index 0d67d6746f0..4dac19ed231 100644
--- a/Master/texmf-dist/tex/context/base/context.tex
+++ b/Master/texmf-dist/tex/context/base/context.tex
@@ -31,7 +31,11 @@
%D 2004.8.30 the low level interface is english. Watch out and adapt
%D your styles an modules.
-\def\contextversion{2005.10.27}
+\def\contextversion{2006.08.08 21:51}
+
+%D For those who want to use this:
+
+\def\fmtname{context}
%D Welcome to the main module. When this module is ran through
%D \type{initex} or \type {tex -i} or \type {whatevertex} using
@@ -123,10 +127,10 @@
\input supp-vis.tex
\input supp-fun.tex
\input supp-eps.tex
-\input supp-pdf.tex
+%input supp-pdf.tex
\input supp-spe.tex
\input supp-mps.tex
-\input supp-mpe.tex
+%input supp-mpe.tex
\input supp-tpi.tex
\input supp-mat.tex
\input supp-ran.tex
@@ -181,10 +185,14 @@
\input filt-ini.tex
\input hand-ini.tex
\input regi-ini.tex
+\input regi-syn.tex
\input lang-ini.tex
\input lang-ctx.tex
\input lang-dis.tex % after lang-ctx !
\input unic-ini.tex
+%input unic-ext.tex % obsolete
+
+% \readfile{lang-url.pat}{}{} % test
\input colo-ini.tex
\input colo-ext.tex
@@ -234,19 +242,21 @@
\input core-vis.tex
%input core-con.tex
\input core-rul.tex
+\input core-num.tex
+\input core-tsp.tex % splitter
\input core-tab.tex
\input core-nav.tex
\input core-ref.tex
\input core-obj.tex
\input core-buf.tex
\input core-lst.tex
-\input core-num.tex
\input core-itm.tex
\input core-des.tex
\input core-mat.tex
\input core-syn.tex
\input core-spa.tex
\input core-sys.tex
+\input core-pos.tex
\input page-ini.tex
\input page-not.tex
@@ -267,6 +277,8 @@
\input page-app.tex % unfinished
\input page-flw.tex % experimental: flows
\input page-spr.tex % experimental: spreads
+\input page-plg.tex % experimental: plugins
+\input page-str.tex % experimental: streams
\input core-job.tex
@@ -283,18 +295,21 @@
%D support is also organized in its own class of modules.
\input meta-ini.tex
+\input meta-pdf.tex
\input meta-pag.tex
\input meta-fig.tex
%D On which the next one depends:
-\input core-pos.tex
+\input core-pgr.tex
+\input core-bar.tex
\input core-snc.tex
%D A few more languages, that have specifics using core
%D functionality:
\input lang-chi.tex
+\input lang-jap.tex
%D How about fill||in fields and related stuff?
@@ -320,11 +335,14 @@
\input type-ini.tex
\input type-def.tex
+\input meta-tex.tex % we need fonts
+
\input prop-ini.tex
\input prop-lay.tex % needs core-ref.tex
\input prop-mis.tex
\input math-ini.tex % needs enco-ini.tex
+\input math-ext.tex
%D Now we're ready for more core modules.
@@ -345,7 +363,7 @@
%D Sorting:
-% not yet: \input sort-ini.tex
+\input sort-ini.tex
%D Only the basic XML parser and remapper are part of the core.
%D These macrosa re loaded last since they overload and|/|or
@@ -354,7 +372,8 @@
\input xtag-ini.tex
\input xtag-ext.tex
\input xtag-prs.tex
-\input xtag-map.tex
+\input xtag-map.tex % may become obsolete
+\input xtag-stk.tex
\input xtag-exp.tex
\input xtag-pre.tex
\input xtag-xsd.tex
@@ -365,6 +384,16 @@
\input meta-xml.tex % to be documented
+%D Temporary hack, will go when we move to newtexexec:
+
+% \unprotect
+% \appendtoks % newtexexec/newtexutil, after option file is loaded:
+% \doif{\systemparameter\c!method} {2}
+% {\def\TEXEXECcommand{texmfstart newtexexec} %
+% \readsysfile {sort-ini} {} {}}%
+% \to \everyjob
+% \protect
+
% %D The next two modules implement some additional
% %D functionality concerning classes of documents and output.
% %D These modules probably will be replaced some day.
@@ -448,15 +477,15 @@
\startinterface italian
-\writestring{Questo pacchetto è basato sul Plain TeX. Usa una versione adattata del}
+\writestring{Questo pacchetto è basato sul Plain TeX. Usa una versione adattata del}
\writestring{meccanismo di marcatura esteso di J. Fox (1987) ad alcune parti del}
\writestring{meccanismo per gli oggetti mobili laterali di D. Comenetz (1993).}
-\writestring{La maggior parte del Plain TeX (\fmtversion) di D.E. Knuth è disponibile}
-\writestring{e può essere usata senza problemi. Questo pacchetto usa TaBlE,}
+\writestring{La maggior parte del Plain TeX (\fmtversion) di D.E. Knuth è disponibile}
+\writestring{e può essere usata senza problemi. Questo pacchetto usa TaBlE,}
\writestring{un pacchetto progettato da e con diritti di copia di M.J. Wichura (1988).}
\writestring{Vengono generati pochi file ausiliari, alcuni dei quali devono essere}
\writestring{elaborati da TeXUtil (\utilityversion). La versione attuale del blocco}
-\writestring{è \blockversion.}
+\writestring{è \blockversion.}
\writestring{}
\writestring{L'INTERFACCIA UTENTE ITALIANA E' ANCORA IN VIA DI SVILUPPO!}
\writestring{THE ITALIAN USER INTERFACE IS STILL UNDER DEVELOPMENT!}
diff --git a/Master/texmf-dist/tex/context/base/core-bar.tex b/Master/texmf-dist/tex/context/base/core-bar.tex
new file mode 100644
index 00000000000..eeb3de630a1
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/core-bar.tex
@@ -0,0 +1,195 @@
+%D \module
+%D [ file=core-bar,
+%D version=2003.03.16,
+%D title=\CONTEXT\ Core 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 Plus Macros / Margin Bars etc}
+
+\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
+
+\newcounter\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
+ \doglobal\increment\currentsidebar
+ \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:\currentsidebar}%
+ {e:side:\currentsidebar}%
+ {mpos:bar}%
+ {self=side:\currentsidebar,
+ linewidth=\getvalue{\??br#1\c!rulethickness},
+ linecolor=\getvalue{\??br#1\c!rulecolor},
+ distance=\the\sidebardistance}}%
+ \stoppositionoverlay
+% \edef\stopsidebar{\noexpand\dostopsidebar{\currentsidebar}}%
+ \bpos{side:\currentsidebar}\ignorespaces}
+
+% \def\dostopsidebar#1%
+% {\removelastspace\tpos{side:#1}\carryoverpar\egroup}
+
+\def\stopsidebar
+ {\removelastspace\tpos{side:\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-box.tex b/Master/texmf-dist/tex/context/base/core-box.tex
index 8875cfe5fd1..184f0647ce1 100644
--- a/Master/texmf-dist/tex/context/base/core-box.tex
+++ b/Master/texmf-dist/tex/context/base/core-box.tex
@@ -164,7 +164,7 @@
\def\dodosetcollector[#1][#2]% todo: keep reference point
{\def\currentcollector{#1}%
- \chardef\collectorbox\csname\@@collectorbox#1\endcsname
+ \mathchardef\collectorbox\csname\@@collectorbox#1\endcsname
\getparameters[\??cb#1][#2]%
\@@layerxsiz\wd\collectorbox
\@@layerysiz\ht\collectorbox
@@ -261,7 +261,7 @@
\def\doadaptcollector[#1][#2]%
{\bgroup
\def\currentcollector{#1}%
- \chardef\collectorbox\csname\@@collectorbox#1\endcsname
+ \mathchardef\collectorbox\csname\@@collectorbox#1\endcsname
\getparameters
[\??cb#1][\c!voffset=\zeropoint,\c!hoffset=\zeropoint,#2]%
\scratchdimen\wd\collectorbox
diff --git a/Master/texmf-dist/tex/context/base/core-buf.tex b/Master/texmf-dist/tex/context/base/core-buf.tex
index 0aab656f9d8..73c93b356f5 100644
--- a/Master/texmf-dist/tex/context/base/core-buf.tex
+++ b/Master/texmf-dist/tex/context/base/core-buf.tex
@@ -97,10 +97,10 @@
\startmessages norwegian library: textblocks
title: tekstblokker
- 1: ny versjon, andre gjennomkjøring nødvendig
+ 1: ny versjon, andre gjennomkjøring nødvendig
2: skriver blokker til --
3: leser blokker fra --
- 4: andre gjennomkjøring nødvendig
+ 4: andre gjennomkjøring nødvendig
5: -- ikke skjult
6: -- skjult og behandlet
7: -- skjult
@@ -127,6 +127,22 @@
12: -- sarit peste
\stopmessages
+\startmessages french library: textblocks
+ title: blocs de texte
+ 1: nouvelle version, une seconde passe est nécessaire
+ 2: ecriture des blocs vers --
+ 3: lecture des blocs en provenance de --
+ 4: seconde passe nécessaire
+ 5: -- non caché
+ 6: -- caché et traité
+ 7: -- caché
+ 8: -- composé
+ 9: -- non composé
+ 10: -- chargé et traité
+ 11: -- chargé et composé
+ 12: -- sauté
+\stopmessages
+
\unprotect
% more accurate
@@ -199,19 +215,28 @@
\fi
\next}
+\chardef\buffernestmode\plusone % 0: not nested, 1: startbuffer nested, 2: all buffers nested
+
\def\dododostartbuffer[#1][#2][#3][#4]%
{%\showmessage\m!systems{15}{#2}%
\doifelsevalue{\??bu#1\c!paragraph}\v!yes
{\segmentatebuffertrue}
{\doifnumberelse{\getvalue{\??bu#1\c!paragraph}}\segmentatebuffertrue\segmentatebufferfalse}%
+ \doifvalue{\??bu#1\c!local}\v!yes
+ {\chardef\buffernestmode\plustwo}% permit nesting
\doifelsenothing{#4}
{\letbeundefined{\e!stop\v!buffer}% % \let\stopbuffer=\relax % \undefined
\@EA\@EA\@EA\convertargument\@EA\e!start\v!buffer\to\beginofblock % else a space
\@EA\@EA\@EA\convertargument\@EA\e!stop \v!buffer\to\endofblock
- \let\processnextblockline\processnextbufferline}
+ \ifcase\buffernestmode \else
+ \let\processnextblockline\processnextbufferline
+ \fi}
{\letbeundefined{#4}% \letvalue{#4}=\relax % \undefined
\@EA\convertargument\csname#3\endcsname\to\beginofblock
- \@EA\convertargument\csname#4\endcsname\to\endofblock}%
+ \@EA\convertargument\csname#4\endcsname\to\endofblock
+ \ifcase\buffernestmode \or \else
+ \let\processnextblockline\processnextbufferline
+ \fi}%
\def\closeblock
{\ifsegmentatebuffer
\immediate\write\tmpblocks{\string\stopbufferparagraph}%
@@ -274,8 +299,7 @@
\dobuffer{16}[#2]\readjobfile
\getvalue{\??bu#1\c!after}}
-\let\getbuffer \processTEXbuffer % handy
-\let\getbuffer\processTEXbuffer % will move to mult-com.tex
+\let\getbuffer\processTEXbuffer % handy
\def\typebuffer
{\dodoubleempty\dotypebuffer}
@@ -297,7 +321,7 @@
\getparameters[\??bu][#1]%
\fi}
-\def\dodefinebuffer[#1]%
+\def\dodefinebuffer[#1][#2]%
{\iffirstargument % else problems
\doglobal\increment\nofdefinedbuffers
\letvalue{\??bu#1\c!number}\nofdefinedbuffers
@@ -307,11 +331,12 @@
\setevalue{\e!get#1}%
{\noexpand\dodoprocessTEXbuffer[#1][def-\nofdefinedbuffers]}%
\setevalue{\e!type#1}%
- {\noexpand\dodotypebuffer[#1][def-\nofdefinedbuffers]}%
+ {\noexpand\dotypebuffer[#1][def-\nofdefinedbuffers]}%
+ \getparameters[\??bu#1][#2]%
\fi}
\def\definebuffer
- {\dosingleargument\dodefinebuffer}
+ {\dodoubleempty\dodefinebuffer}
% yet another undocumented feature, but who cares:
@@ -468,8 +493,8 @@
\@EA\dosetblockcounters\@EA[\blockstatus]%
\fi}
-\def\getblockstatus#1% is this still ok
- {\dosetfilterlevel{\getvalue{\??by\@@bscriterium}}\empty
+\def\getblockstatus#1%
+ {\dosetfilterlevel{\@@bscriterium}\empty
\expanded{\doifblklevelelse[#1\sectionseparator\sectionseparator0]}
{\global\blockpermittedtrue}
{\global\blockpermittedfalse}%
@@ -520,7 +545,7 @@
\ifcase\blocklevel\doingblocksfalse\else\doingblockstrue\fi}
\def\opentmpblock
- {\immediate\openout\tmpblocks=\TEXbufferfile{\f!utilityfilename\the\blocklevel}}
+ {\immediate\openout\tmpblocks\TEXbufferfile{\f!utilityfilename\the\blocklevel}}
\def\closetmpblock
{\immediate\write\tmpblocks{}% een lege regel is handig voor \par commando's
@@ -550,7 +575,7 @@
\def\checkcopyingblocks
{\ifcopyingblocks
\else
- \immediate\openout\outblocks\f!utilityfilename.\f!blockextension
+ \immediate\openout\outblocks\f!utilityfilename.\f!blockextension%
\immediate\write\outblocks{\string\thisisblockversion{\blockversion}}%
\immediate\write\outblocks{\string\thisissectionseparator{\sectionseparator}}%
\global\copyingblockstrue
@@ -737,8 +762,11 @@
\c!style=,
\c!file=\jobname]}
+% \def\defineblock
+% {\dosingleargumentwithset\dodefineblock}
+
\def\defineblock
- {\dosingleargumentwithset\dodefineblock}
+ {\dosingleargument\dodefineblock}
\def\dosetupblock[#1][#2]%
{\getparameters[\??tb#1][#2]}
@@ -781,7 +809,7 @@
\def\next
{\def\dobeforeblock####1####2%
{\begingroup
- \global\visiblefalse}%
+ \visiblefalse}%
\def\doafterblock####1####2%
{{\setbox0\vbox
{\catcode`\^^M=\@@endofline\relax
@@ -965,16 +993,15 @@
{\settrue \processblockstatus\douseblocks}
\def\doselectblocks[#1][#2][#3]%
- {\doifelsenothing{#3}
- {\getparameters[\??bs][#2]%
- \douseblocks[#1][]}
- {\getparameters[\??bs][#3]%
- \douseblocks[#1][#2]}}%
+ {\begingroup
+ \doifelsenothing{#3}
+ {\getparameters[\??bs][\c!criterium=\v!all,#2]%
+ \dodouseblocks[#1][]}
+ {\getparameters[\??bs][\c!criterium=\v!all,#3]%
+ \dodouseblocks[#1][#2]}}%
\def\selectblocks
- {\begingroup
- \doassign[\??bs][\c!criterium=\v!all]%
- \dotripleempty\doselectblocks}
+ {\dotripleempty\doselectblocks}
\def\beginblock[#1]% % we also check \endblock[..]
{\getvalue{\e!begin#1}}
@@ -1022,11 +1049,11 @@
\setupcopyblock
\skipblocklineAB}
-% the buffer mechanism handles nesting, add some switch
+% \setvalue{\e!start\v!hiding}%
+% {\dostartbuffer[buf-\nofpostponedblocks]
+% [\e!start\v!hiding][\e!stop\v!hiding]}
-\setvalue{\e!start\v!hiding}%
- {\dostartbuffer[buf-\nofpostponedblocks]
- [\e!start\v!hiding][\e!stop\v!hiding]}
+\definebuffer[\v!hiding] \setupbuffer[\v!hiding][\c!local=\v!yes]
\setupbuffer
[\c!paragraph=\v!no,
diff --git a/Master/texmf-dist/tex/context/base/core-con.tex b/Master/texmf-dist/tex/context/base/core-con.tex
index a6d66641cc1..98837ec6dc3 100644
--- a/Master/texmf-dist/tex/context/base/core-con.tex
+++ b/Master/texmf-dist/tex/context/base/core-con.tex
@@ -20,6 +20,21 @@
%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
@@ -43,6 +58,8 @@
\def\numbers#1{\purenumber{#1}}
\def\Numbers#1{\purenumber{#1}}
+\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
%D {romannumerals,Romannumerals}
@@ -308,24 +325,32 @@
%D
%D Anyhow, the conversion looks like:
-\def\doconvertmonth#1%
- {\labeltext
- {\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
- \fi}}
+\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\month
- {\doconvertmonth}
+\def\monthlong {\doconvertmonthlong}
+\def\monthshort{\doconvertmonthshort}
+\def\month {\doconvertmonth}
-\def\MONTH#1%
- {{\let\labeltext\LABELTEXT\month{#1}}}
+\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
@@ -596,7 +621,9 @@
{\bgroup
\let\labellanguage\currentlanguage
\def\betweendates{\let\betweendates\dobetweendates}%
- \processcommacommand[#1]\docomplexcurrentdate
+ % was \processcommacommandp[#1]\docomplexcurrentdate
+ \safeedef\ascii{\empty#1}% keep encoded chars
+ \@EA\processcommalist\@EA[\ascii]\docomplexcurrentdate
\ifdim\lastskip=\datesignal\relax
\unskip
\fi
@@ -604,8 +631,7 @@
\def\docomplexcurrentdate#1%
{\lowercase{\edef\!!stringa{#1}}% permits usage in \smallcapped
- \processaction
- [#1]
+ \expanded{\processaction[\!!stringa]}% [#1]
[ \v!day=>\betweendates\the\normalday,
%\v!day+=>\betweendates\ordinaldaynumber\normalday,
\v!day+=>\betweendates\convertnumber{\v!day+}\normalday,
@@ -767,6 +793,22 @@
\dododefineconversion[][#1][#2]%
\fi}
+%D \starttyping
+%D \def\dododefineconversion[#1][#2][#3]%
+%D {\ConvertConstantAfter\doifinstringelse{,}{#3}
+%D {\scratchcounter\zerocount
+%D \def\docommando##1%
+%D {\advance\scratchcounter \plusone
+%D \setvalue{\??cv#1#2\the\scratchcounter}{##1}}%
+%D \processcommalist[#3]\docommando
+%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
@@ -774,30 +816,22 @@
{\advance\scratchcounter \plusone
\setvalue{\??cv#1#2\the\scratchcounter}{##1}}%
\processcommalist[#3]\docommando
- \setvalue{\??cv#1#2}##1{\csname\??cv#1#2##1\endcsname}}
+ \setevalue{\??cv#1#2}##1%
+ {\noexpand\docheckedconversion{#1#2}{\the\scratchcounter}{##1}}}
{\setvalue{\??cv#1#2}{#3}}}
-% \def\convertnumber#1%
-% {\csname\??cv#1\endcsname}
+\def\docheckedconversion#1#2#3% class maxnumber number
+ {\executeifdefined{\??cv#1#3}\unknown}
-% \def\convertnumber#1%
-% {\csname\??cv
-% \ifundefined{\??cv\currentlanguage#1}\else\currentlanguage\fi
-% #1\endcsname}
+%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\doifconversiondefinedelse#1%
-% {\ifundefined{\??cv#1}%
-% \@EA\secondoftwoarguments
-% \else
-% \@EA\firstoftwoarguments
-% \fi}
+\def\docheckedconversion#1#2#3% class maxnumber number
+ {\executeifdefined{\??cv#1\modulatednumber{#2}{#3}}\unknown}
-% \def\doifconversiondefinedelse#1%
-% {\ifundefined{\??cv\ifundefined{\??cv\currentlanguage:#1}\else\currentlanguage\fi#1}%
-% \@EA\secondoftwoarguments
-% \else
-% \@EA\firstoftwoarguments
-% \fi}
+%D Taco's modulo code is implemented in the system module
+%D \type {syst-con}.
\beginETEX \ifcsname
@@ -903,6 +937,9 @@
\defineconversion [arabicnumerals] [\numbers]
\defineconversion [persiannumerals] [\numbers]
+\defineconversion [month] [\doconvertmonthlong]
+\defineconversion [month:mnem] [\doconvertmonthshort]
+
\beginXETEX \number
\defineconversionvector{arabicnumerals} {"0660}
diff --git a/Master/texmf-dist/tex/context/base/core-dat.tex b/Master/texmf-dist/tex/context/base/core-dat.tex
index 239b27d70eb..aab352daaa5 100644
--- a/Master/texmf-dist/tex/context/base/core-dat.tex
+++ b/Master/texmf-dist/tex/context/base/core-dat.tex
@@ -2,7 +2,7 @@
%D [ file=core-dat, % was core-02a,
%D version=1999.08.10, % 1997.03.31,
%D title=\CONTEXT\ Core Macros,
-%D subtitle=Database Support, % 2A
+%D subtitle=Database Support, % 2A
%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.
-% THIS WILL DISAPPEAR, I.E. BE MOVED TO A MODULE
+% THIS WILL DISAPPEAR, I.E. BE MOVED TO A MODULE
\writestatus{loading}{Context Database Support}
@@ -39,7 +39,7 @@
4: unbekannte Datei --
\stopmessages
-% TOM :
+% TOM :
\startmessages czech library: databases
title: databases
@@ -73,105 +73,113 @@
4: fisier necunoscut --
\stopmessages
+\startmessages french library: databases
+ title: bases de données
+ 1: --
+ 2: fichier local --
+ 3: fichier global --
+ 4: fichier inconnu --
+\stopmessages
+
\unprotect
%D This module is a (limited) rewrite of the original \type
%D {core-02a} module, the module that dealt with managing a
-%D database of addresses. The principles and methods have not
-%D changed; they are only generalized.
-%D
-%D A database file |<|in most cases such a base is generated
-%D from another one|>| is structured as follows:
-%D
-%D \starttyping
+%D database of addresses. The principles and methods have not
+%D changed; they are only generalized.
+%D
+%D A database file |<|in most cases such a base is generated
+%D from another one|>| is structured as follows:
+%D
+%D \starttyping
%D \startrecord{tag}
%D \memberofgroup{grouplist}
%D \setrecordentry{name}{...}
%D ....
%D \stoprecord
-%D \stoptyping
-%D
-%D The interface to such a database is defined as follows:
-%D
-%D \starttyping
+%D \stoptyping
+%D
+%D The interface to such a database is defined as follows:
+%D
+%D \starttyping
%D \definerecord[class][settings]
%D \setuprecord[class][settings]
%D \definerecordentry[class][name]
-%D \stoptyping
-%D
-%D and processed by
-%D
-%D \starttyping
+%D \stoptyping
+%D
+%D and processed by
+%D
+%D \starttyping
%D \processrecords[file list][tag and/or group list]
-%D \stoptyping
-%D
-%D The actual processing is done by a macro assigned to \type
-%D {command}:
-%D
-%D \starttyping
+%D \stoptyping
+%D
+%D The actual processing is done by a macro assigned to \type
+%D {command}:
+%D
+%D \starttyping
%D \setuprecord[class][command=\DoWithRecord]
-%D \stoptyping
-%D
-%D Given that one can ask for a field with
-%D
-%D \starttyping
+%D \stoptyping
+%D
+%D Given that one can ask for a field with
+%D
+%D \starttyping
%D \getrecordentry{name}
-%D \stoptyping
-%D
-%D such a command can look like:
-%D
-%D \starttyping
+%D \stoptyping
+%D
+%D such a command can look like:
+%D
+%D \starttyping
%D \def\DoWithRecord#1%
%D {\startpacked
%D \let\\=\quad
%D name: \getrecordentry{name}~\getrecordentry{family name}\par
%D address: \getrecordentry{postal address}\par
%D \stoppacked}
-%D \stoptyping
-%D
+%D \stoptyping
+%D
%D The argument passed is the tag. The database can look like:
-%D
-%D \starttyping
+%D
+%D \starttyping
%D \startrecord{hagenj}
%D \memberofgroup{a,b}
%D \setrecordentry{naam}{Hans}
%D \setrecordentry{family name}{Hagen}
%D \setrecordentry{postal address}{J. Hagen\\Ridderstraat 29\\Hasselt NL}
%D \stoprecord
-%D
+%D
%D \startrecord{ottenaf}
%D \memberofgroup{a}
%D \setrecordentry{name}{Ton}
%D \setrecordentry{family name}{Otten}
%D \setrecordentry{postal address}{A.F. Otten\\Prinsengracht 17\\Hasselt NL}
%D \stoprecord
-%D \stoptyping
-%D
-%D The definition of this database looks like:
-%D
-%D \starttyping
+%D \stoptyping
+%D
+%D The definition of this database looks like:
+%D
+%D \starttyping
%D \definerecord[address][command=\DoWithRecord]
-%D
+%D
%D \definerecordentry[address][name]
%D \definerecordentry[address][family name]
%D \definerecordentry[address][postal address]
-%D \stoptyping
-%D
-%D The actual processing is now done by (for instance):
-%D
-%D \starttyping
+%D \stoptyping
+%D
+%D The actual processing is now done by (for instance):
+%D
+%D \starttyping
%D \processrecords[datafile][hagenj]
%D \processrecords[datafile][hagenj,offenaf]
%D \processrecords[datafile][all]
%D \processrecords[datafile][a]
%D \processrecords[datafile][b]
-%D \stoptyping
-%D
+%D \stoptyping
+%D
%D Of course one can reassign the command used to handle the
-%D records in between.
+%D records in between.
-% \??kt ->
-% \??kw ->
+% \??kt ->
+% \??kw ->
\def\??db {@@db}
\def\c!velden{velden}
@@ -200,7 +208,7 @@
\letvalue{\??db#1\c!velden}\recordentries}
%D Watch out: the entries are defined global! While
-%D processing a record, no grouping is applied.
+%D processing a record, no grouping is applied.
\def\getrecordentry #1{\getvalue {\??db:#1}}
\def\resetrecordentry #1{\letgvalueempty{\??db:#1}}
@@ -211,7 +219,7 @@
\newif\ifrecordok
-\newtoks\resetrecordlist
+\newtoks\resetrecordlist
\def\processrecords
{\dotripleargument\doprocessrecords}
@@ -225,11 +233,11 @@
\processcommacommand[\getvalue{\??db#1\c!velden}]\docommando
\let\setrecordentry\skiprecord
\the\resetrecordlist
- \doifelse{#2}\v!all % 't Is nu eenmaal alles
+ \doifelse{#2}\v!all % 't Is nu eenmaal alles
\recordoktrue
- {\doifelsenothing{#2} % of niets
+ {\doifelsenothing{#2} % of niets
\recordoktrue
- \recordokfalse}% % zullen we maar zeggen.
+ \recordokfalse}% % zullen we maar zeggen.
\ifrecordok
\let\askedrecords\v!all
\else
@@ -279,10 +287,10 @@
%D experiments with \type {%} before each entry and changing
%D the category code of the comment char. Because \TEX\ scans
%D the line anyway |<|this is needed because the end of line
-%D character can be non standard|>| this is not faster.
-%D
+%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 prefered out of speed reasons.
+%D prefered out of speed reasons.
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-des.tex b/Master/texmf-dist/tex/context/base/core-des.tex
index f2612be3db5..382dc8ca703 100644
--- a/Master/texmf-dist/tex/context/base/core-des.tex
+++ b/Master/texmf-dist/tex/context/base/core-des.tex
@@ -15,6 +15,8 @@
\unprotect
+% beware: \insidedescription should be set to zero inside footnotes
+
% Dit kan en moet dus anders:
%
% \start... : \vbox\bgroup
@@ -51,7 +53,7 @@
\newbox\@@descriptionbox
-\def\descriptionparameter #1{\csname\??dd\currentdescription#1\endcsname}
+\def\descriptionparameter#1{\csname\??dd\currentdescription#1\endcsname}
\def\@@descriptionhandler{\descriptionparameter{\s!do\c!command}}
@@ -240,14 +242,14 @@
\advance\leftskip -\leftskipadaption \relax
\ifdim\leftskipadaption=\zeropoint
\leftskipadaption1.5em % just some default
- \ifnum\insidedefinition=\plusone
+ \ifnum\insidedescription=\plusone
\ifdim\leftskip>\zeropoint \relax
\leftskipadaption\leftskip
\fi
\fi
\fi
- \ifnum\insidedefinition=\plusone
- \advance\leftskip \leftskipadaption
+ \ifnum\insidedescription>\zerocount % was \ifnum\insidedescription=\plusone
+ \advance\leftskip \leftskipadaption % but we're already further on
\fi
\hskip-\leftskipadaption
\ifhbox\@@descriptionbox\unhcopy\else\copy\fi\@@descriptionbox
@@ -266,7 +268,10 @@
%D A new key 'headalign' in definitions.
-\chardef\insidedefinition=0
+\def\resetdescriptions % to be used in e.g. footnotes
+ {\chardef\insidedescription\zerocount}
+
+\resetdescriptions
\let\@@leftdescriptionskip \!!zeropoint
\let\@@rightdescriptionskip\!!zeropoint
@@ -307,26 +312,28 @@
\doifelse{\descriptionparameter\c!aligntitle}\v!no
{\edef\@@leftdescriptionskip {\the\leftskip }%
\edef\@@rightdescriptionskip{\the\rightskip}}
- {\ifcase\insidedefinition
+ {\ifcase\insidedescription
\edef\@@leftdescriptionskip {\the\leftskip }%
\edef\@@rightdescriptionskip{\the\rightskip}%
\fi}%
\expanded{\indenting[\descriptionparameter\c!indenting]}%
% better a system mode
- \ifcase\insidedefinition
- \chardef\insidedefinition\plusone
+ \ifcase\insidedescription
+ \chardef\insidedescription\plusone
\or
- \chardef\insidedefinition\plustwo
+ \chardef\insidedescription\plustwo
\fi} % now happens elsewhere : \noindent\ignorespaces
\def\@@stopdescription#1%
{\def\currentdescription{#1}%
- \dostopattributes
- \par % maybe better after \dostopattributes
+ % was \par \dostopattributes % here, else problems with interlinespace and font change
+ \dostopparbasedattributes % == \settrue\parbasedattributes \dostopattributes
\endgroup
- \descriptionparameter\c!after
+ \descriptionparameter\c!after %hm, which currentdescription?
\egroup % temporary hack
- \dochecknextindentation{\??dd#1}}% \currentdescription}}
+ \def\currentdescription{#1}%
+ \dochecknextindentation{\??dd\currentdescription}%
+ \dorechecknextindentation}
\def\@@dodescription
{\dostartattributes{\??dd\currentdescription}\c!style\c!color\empty
@@ -334,18 +341,6 @@
% starters:
-% \def\@@startdescription[#1][#2]%
-% {\def\currentdescription{#1}%
-% \doifelse{\descriptionparameter{\s!do\c!state}}\v!start
-% {\@@startsomedescription{#1}[#2]{}}
-% {\dowithwargument{\@@startsomedescription{#1}[#2]}}}
-%
-% \def\@@description[#1][#2]%
-% {\def\currentdescription{#1}%
-% \doifelse{\descriptionparameter{\s!do\c!state}}\v!start
-% {\@@somedescription{#1}[#2]{}}
-% {\dowithwargument{\@@somedescription{#1}[#2]}}}
-
\def\@@startdescription[#1][#2]%
{\def\currentdescription{#1}%
\doifelse{\descriptionparameter\c!title}\v!yes
@@ -373,7 +368,8 @@
% which calls:
\def\@@makedescription#1%
- {\def\currentdescription{#1}%
+ {\postponefootnotes % new, assumes grouping
+ \def\currentdescription{#1}%
\executeifdefined
{@@description\descriptionparameter\c!location}
{\getvalue{@@description\v!left}}}
@@ -398,23 +394,9 @@
\def\dodosetupdescriptions[#1]% [#2]%
{\getparameters[\??dd#1]} % [#2]}
-% \def\dodefinedescription[#1][#2]%
-% {\copyparameters[\??dd#1][\??dd]
-% [\c!location,\c!headstyle,\c!style,\c!color,\c!headcolor,
-% \c!width,\c!hang,\c!sample,\c!before,\c!inbetween,\c!after,\c!margin,
-% \c!indenting,\c!indentnext,\c!align,\c!text,\c!distance,\c!titledistance,\c!command]%
-% \getparameters[\??dd#1]
-% [\s!do\c!state=\v!stop,\s!do\c!command=\normal@@descriptionhandler,\c!level=,#2]%
-% %\doifvalue{\??dd#1\c!location}\v!top{\doassign[\??dd#1][\c!inbetween=\blank]}%
-% \doifvalue{\??dd#1\c!location}\v!top % we actually need more granularity
-% {\doifnotvalue{\??dd#1\c!inbetween}{\doassign[\??dd#1][\c!inbetween=\blank]}}%
-% \setvalue {#1}{\dodoubleempty\@@description[#1]}%
-% \setvalue{\e!start#1}{\dodoubleempty\@@startdescription[#1]}%
-% \setvalue{\e!stop #1}{\@@stopdescription{#1}}}%
-
\def\dodefinedescription[#1][#2]%
{\copyparameters[\??dd#1][\??dd]
- [\c!location,\c!headstyle,\c!style,\c!color,\c!headcolor,
+ [\c!location,\c!headstyle,\c!style,\c!color,\c!headcolor,\c!title,
\c!width,\c!hang,\c!sample,\c!before,\c!inbetween,\c!after,\c!margin,
\c!indenting,\c!indentnext,\c!align,\c!text,\c!distance,\c!titledistance,\c!command]%
\getparameters[\??dd#1]
@@ -436,62 +418,6 @@
\def\currentdescriptionnumber
{\csname\??dd\currentdescription\??dd\c!number\endcsname}
-% \def\special@@descriptionhandler[#1]#2#3%
-% {\strut
-% \doifelse{\descriptionparameter\c!number}\v!no
-% \!!doneafalse{\doifelse{#1}{-}\!!doneafalse\!!doneatrue}%
-% \chardef\descriptioncoupling\zerocount
-% \iflocation
-% \doifsomething{\descriptionparameter\c!coupling}
-% {\processaction % genereert > of <
-% [\descriptionparameter\c!couplingway]
-% [ \v!local=>\chardef\descriptioncoupling\plusone, % old: default
-% \v!global=>\chardef\descriptioncoupling\plustwo]}% new: global crosslinking
-% \fi
-% \setupnumber % the number is called indirectly
-% [\currentdescriptionnumber]
-% [\c!sectionnumber=\descriptionparameter\c!sectionnumber]%
-% \if!!donea
-% \makeprecedingsectionnumber[\currentdescriptionnumber]%
-% \preparethenumber{\??dd\currentdescription}\precedingsectionnumber\preparednumber
-% \iftrialtypesetting\startlocal\fi
-% \getvalue{\e!next\currentdescription}% tricky but we need the preroll
-% \iftrialtypesetting\stoplocal\fi
-% % \getvalue{\e!next#2#1}%
-% \iflocation
-% \bgroup
-% \letvalue{\??dd\currentdescription\c!sectionnumber}\v!yes
-% \protectconversion
-% \makeprecedingsectionnumber[\currentdescriptionnumber]%
-% \preparethenumber{\??dd\currentdescription}\precedingsectionnumber\preparednumber
-% \ifcase\descriptioncoupling \or
-% \xdef\@@internalenumber{\doshowdnnumber}%
-% \rawreference\s!num{#1:\@@internalenumber}{}%
-% \or
-% \xdef\@@internalenumber{\countervalue{\??dd\c!coupling\currentdescription}}%
-% \rawreference\s!num{\currentdescription:\@@internalenumber}{}%
-% \fi
-% \egroup
-% \fi
-% %\makeprecedingsectionnumber[\currentdescriptionnumber]%
-% %\preparethenumber{\??dd\currentdescription}\precedingsectionnumber\preparednumber
-% \disablepseudocaps % sorry, uppercase causes troubles
-% \doattributes % \nocase primitive needed
-% {\??dd\currentdescription}\c!headstyle\c!headcolor % todo: sub as well
-% {\descriptionparameter\c!command{\showdntext\domakednnumber}}% hook for taco
-% \iflocation\ifcase\descriptioncoupling \else
-% \edef\localconnection{\descriptionparameter\c!coupling:\@@internalenumber}%
-% \doifreferencefoundelse\localconnection
-% {\in[\localconnection]}\donothing % genereert > of <
-% \fi\fi
-% \doifnot{#1}{-}{\rawreference\s!num{#1}{\doshowdnnumber}}%
-% \else % Why was this strange expansion needed?
-% \edef\!!stringa{\showdnpuretext}% nog eens testen binnen \expanded
-% \expanded{\doattributes{\??dd\currentdescription}\noexpand\c!headstyle\noexpand\c!headcolor
-% {\noexpand\descriptionparameter\noexpand\c!command{\!!stringa}}}%
-% \doifnot{#1}{-}{\rawreference\s!num{#1}{}}%
-% \fi}
-
\def\special@@descriptionhandler[#1]#2#3%
{\strut
\doifelse{\descriptionparameter\c!number}\v!no
@@ -509,7 +435,7 @@
[\c!sectionnumber=\descriptionparameter\c!sectionnumber]%
\if!!donea
\makeprecedingsectionnumber[\currentdescriptionnumber]%
- \preparethenumber{\??dd\currentdescription}\precedingsectionnumber\preparednumber
+ \prepareprefixnumber{\??dd\currentdescription}\precedingsectionnumber\preparednumber
\iftrialtypesetting\startlocal\fi
\getvalue{\e!next\currentdescription}% tricky but we need the preroll
\iftrialtypesetting\stoplocal\fi
@@ -519,7 +445,7 @@
\letvalue{\??dd\currentdescription\c!sectionnumber}\v!yes
\protectconversion
\makeprecedingsectionnumber[\currentdescriptionnumber]%
- \preparethenumber{\??dd\currentdescription}\precedingsectionnumber\preparednumber
+ \prepareprefixnumber{\??dd\currentdescription}\precedingsectionnumber\preparednumber
\ifcase\descriptioncoupling \or
\xdef\@@internalenumber{\doshowdnnumber}%
\rawreference\s!num{#1:\@@internalenumber}{}%
@@ -530,7 +456,7 @@
\egroup
\fi
%\makeprecedingsectionnumber[\currentdescriptionnumber]%
- %\preparethenumber{\??dd\currentdescription}\precedingsectionnumber\preparednumber
+ %\prepareprefixnumber{\??dd\currentdescription}\precedingsectionnumber\preparednumber
\disablepseudocaps % sorry, uppercase causes troubles
\doattributes % \nocase primitive needed
{\??dd\currentdescription}\c!headstyle\c!headcolor % todo: sub as well
@@ -582,17 +508,17 @@
\setvalue{showdn\v!sub\c!number}%
{\getvalue{showdn\c!number}%
- \descriptionparameter\c!separator
+ \spr{\descriptionparameter\c!separator}%
\convertednumber[\v!sub\currentdescriptionnumber]}
\setvalue{showdn\v!sub\v!sub\c!number}%
{\getvalue{showdn\v!sub\c!number}%
- \descriptionparameter\c!separator
+ \spr{\descriptionparameter\c!separator}%
\convertednumber[\v!sub\v!sub\currentdescriptionnumber]}
\setvalue{showdn\v!sub\v!sub\v!sub\c!number}%
{\getvalue{showdn\v!sub\v!sub\c!number}%
- \descriptionparameter\c!separator
+ \spr{\descriptionparameter\c!separator}%
\convertednumber[\v!sub\v!sub\v!sub\currentdescriptionnumber]}
\def\domakednnumber
@@ -667,49 +593,6 @@
\def\setupenumerations
{\dodoubleempty\dosetupenumerations}
-% \def\dododefineenumeration#1#2#3[#4][#5]%
-% {\makecounter{\??dd\c!coupling#1}% new: global cross linking
-% \dodefinedescription[#3#1]%
-% [\s!do\c!state=\v!start,\c!level=#3,
-% \s!do\c!command=\special@@descriptionhandler]%
-% \copyparameters[\??dd#3#1][\??dn]
-% [\c!location,\c!headstyle,\c!style,\c!color,\c!headcolor,
-% \c!width,\c!number,\c!distance,\c!command,
-% \c!sample,\c!hang,\c!align,\c!before,\c!inbetween,\c!after,
-% \c!levels,\c!way,\c!blockway,\c!separator,\c!margin,
-% \c!indenting,\c!indentnext,\c!stopper,\c!sectionnumber,
-% \c!number]%
-% \doifassignmentelse{#4}
-% {\getparameters[\??dd#3#1]%
-% [\c!text=#1,\??dd\c!number=#1,\c!conversion=,
-% \c!left=,\c!right=,\c!coupling=,\c!couplingway=\v!local,#4]}%
-% {\doifelsenothing{#4}
-% {\getparameters[\??dd#3#1]%
-% [\c!text=#1,\??dd\c!number=#1,\c!conversion=,
-% \c!stopper=,
-% \c!left=,\c!right=,\c!coupling=,\c!couplingway=,#4]}%
-% {\copyparameters[\??dd#3#1][\??dd#3#4]
-% [\c!location,\c!headstyle,\c!style,\c!color,\c!headcolor,
-% \c!width,\c!number,\c!distance,\c!command,\c!margin,
-% \c!sample,\c!hang,\c!align,\c!before,\c!inbetween,\c!after,
-% \c!stopper,\c!indenting,\c!indentnext,\c!left,\c!right,
-% \c!coupling,\c!couplingway]%
-% \getparameters[\??dd#3#1]
-% [\c!text=#1,\??dd\c!number=#4,\c!conversion=,#5]}}%
-% \doifvalue{\??dd#3#1\??dd\c!number}{#1}
-% {\definenumber
-% [#3#1]
-% [\c!way=\descriptionparentparameter\c!way,
-% \c!blockway=\descriptionparentparameter\c!blockway,
-% \c!sectionnumber=\descriptionparentparameter\c!sectionnumber]%
-% \doifvalue{\??dd#1\c!levels}{#2}% % for
-% {\doifsomething{\getvalue{\??dd#1\c!conversion}}% % old
-% {\setupnumber[#3#1] % times
-% [\c!conversion=\descriptionparameter\c!conversion]}}}% % sake
-% \setvalue{\s!set #3#1}{\dosetenumerationnumber[#1][#3]}%
-% \setvalue{\s!reset#3#1}{\doresetenumerationnumber[#1][#3]}%
-% \setvalue{\e!next #3#1}{\dotripleempty\donextenumerationnumber[#1][#3]}}
-
\def\dododefineenumeration#1#2#3[#4][#5]%
{\makecounter{\??dd\c!coupling#1}% new: global cross linking
\dodefinedescription[#3#1]%
@@ -751,9 +634,14 @@
[\c!conversion=\descriptionparameter\c!conversion]}}}% % sake
\doifvaluesomething{\??dd#3#1\c!list}
{\definelist[\getvalue{\??dd#3#1\c!type}:\getvalue{\??dd#3#1\c!list}]}% new
- \setvalue{\s!set #3#1}{\dosetenumerationnumber[#1][#3]}%
- \setvalue{\s!reset#3#1}{\doresetenumerationnumber[#1][#3]}%
- \setvalue{\e!next #3#1}{\dotripleempty\donextenumerationnumber[#1][#3]}}
+ % should work ...
+ %setvalue{\s!set #3#1}{\dosetenumerationnumber[#1][#3]}%
+ %setvalue{\s!reset#3#1}{\doresetenumerationnumber[#1][#3]}%
+ %setvalue{\e!next #3#1}{\dotripleempty\donextenumerationnumber[#1][#3]}}
+ % but since we use \currentdescription, we need ...
+ \setevalue{\s!set #3#1}{\noexpand \dosetenumerationnumber [#1][#3]}%
+ \setevalue{\s!reset#3#1}{\noexpand \doresetenumerationnumber[#1][#3]}%
+ \setevalue{\e!next #3#1}{\noexpand\dotripleempty\noexpand\donextenumerationnumber [#1][#3]}}
\def\descriptionparentparameter#1{\csname\??dd\currentdescriptionnumber#1\endcsname}
@@ -818,7 +706,8 @@
{\getvalue{\??ds#1\c!width}}
{\doattributes
{\??ds#1}\c!headstyle\c!headcolor
- {\getvalue{\??ds#1\c!sample}\getvalue{\??ds#1\c!separator}}}
+ {\getvalue{\??ds#1\c!sample}%
+ \spr{\getvalue{\??ds#1\c!separator}}}}
{\getvalue{\??ds#1\c!distance}}%
\advance\!!widtha \getvalue{\??ds#1\c!distance}%
\setbox2\hbox to \!!widtha
@@ -827,7 +716,7 @@
{\strut
\getvalue{\??ds#1\c!text}%
\hss
- \getvalue{\??ds#1\c!separator}%
+ \spr{\getvalue{\??ds#1\c!separator}}%
\hskip\getvalue{\??ds#1\c!distance}}}%
\parindent\zeropoint
\hskip#2\!!widtha\indent\box2%
@@ -923,7 +812,7 @@
\c!conversion=, % to be upward compatible
\c!way=\v!by\v!text,
\c!sectionnumber=\v!yes,
- \c!separator=.,
+ \c!separator=\@@koseparator, % per 2006.06.23, was .
\c!stopper=,
\c!number=,
\c!command=]
diff --git a/Master/texmf-dist/tex/context/base/core-fig.tex b/Master/texmf-dist/tex/context/base/core-fig.tex
index 572500bbdaf..f8d58e03838 100644
--- a/Master/texmf-dist/tex/context/base/core-fig.tex
+++ b/Master/texmf-dist/tex/context/base/core-fig.tex
@@ -101,7 +101,7 @@
\startmessages italian library: figures
title: figure
1: figura -- non trovata
- 2: la figura -- non è preimpostata
+ 2: la figura -- non è preimpostata
3: dimensioni della figura -- prese da --
4: dimensioni di -- caricate dal file di immagini stesso
5: dimensioni di -- caricate dal file di immagini --
@@ -128,6 +128,21 @@
11: including resource --
\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: les dimensions de la figure -- adaptées à partir de --
+ 4: les dimensions de -- chargées implicitement à partir du fichier de figure
+ 5: les dimensions de -- chargées à partir du fichier de figure --
+ 6: les dimensions de -- calculées par TeXUtil
+ 7: regénérer le fichier de figure --
+ 8: figureobject -- est réutilisé
+ 9: la figure -- n'est pas manipulée
+ 10: la figure -- a des dimensions nulles
+ 11: inclusion de la ressource --
+\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
@@ -346,6 +361,9 @@
%D Here we start scanning the other types:
+% TODO: svg, get figuresize from file, but when not supported by
+% backend, don't use it yet (else backend will force replacement).
+
\def\@@dogetfiguresize{dogetfiguresize}
\def\getfiguredimensionsA
@@ -418,8 +436,14 @@
\startnointerference
\startXMLignore
\defineXMLcommand[svg][width=100,height=75]
- {\global\dimen1=\XMLop{width}\onebasepoint
- \global\dimen3=\XMLop{height}\onebasepoint
+% {\global\dimen1=\XMLpar{svg}{width}{0}\onebasepoint
+% \global\dimen3=\XMLpar{svg}{height}{0}\onebasepoint
+ {\doifdimensionelse{\XMLop{width}}
+ {\global\dimen1=\XMLop{width}}
+ {\global\dimen1=\XMLop{width}\onebasepoint}%
+ \doifdimensionelse{\XMLop{width}}
+ {\global\dimen3=\XMLop{height}}
+ {\global\dimen3=\XMLop{height}\onebasepoint}%
\endinput}%
\processXMLfilegrouped{#1}%
\stopXMLignore
@@ -452,7 +476,7 @@
\@EA\DOIF\@EA{\@@effilenametype}{#1} % hm, tzt ook nog eens met pad/naam
{\getparameters[\??ep][#2]%
\ExpandBothAfter\doif\@@epe\@@efcurrenttype
- {\chardef\figurestatus4
+ {\chardef\figurestatus\plusfour
\let\@@eftype\@@efcurrenttype
\let\@@effullname\@@efcurrentfile}}%
\else
@@ -462,24 +486,22 @@
\def\getfiguredimensionsC
{\ifconsultutilityfile \ifrunutilityfile
\ifcase\figurestatus\ifcase\figurefilemode\else
-\doifsomething\@@efcurrentpath
-{%
- \doifnotinset\@@effiletype{\c!tex,\c!tmp}
- {\doiffileelse\@@efcurrentfile
- {\edef\@@effilenametype{\@@effilename.\@@efcurrenttype}%
- \@@eftrace{running texutil on \@@effilenametype}%
- \def\@@efloadname{\f!utilityfilename.\f!temporaryextension}%
- \executesystemcommand{texutil --fig --out=\@@efloadname\space\@@effilenametype}%
- \@@eftrace{analyzing \@@efloadname\space on \@@effilenametype}%
- \pushendofline
- \startreadingfile
- \let\presetfigure\presetfigureB
- \readsetfile{.}\@@efloadname\donothing\donothing
- \stopreadingfile
- \popendofline
- \@@eftrace{\ifcase\figurestatus not \fi found}}
- {}}%
-}%
+ \doifsomething\@@efcurrentpath
+ {\doifnotinset\@@effiletype{\c!tex,\c!tmp}
+ {\doiffileelse\@@efcurrentfile
+ {\edef\@@effilenametype{\@@effilename.\@@efcurrenttype}%
+ \@@eftrace{running texutil on \@@effilenametype}%
+ \def\@@efloadname{\f!utilityfilename.\f!temporaryextension}%
+ \executesystemcommand{texutil --fig --out=\@@efloadname\space\@@effilenametype}%
+ \@@eftrace{analyzing \@@efloadname\space on \@@effilenametype}%
+ \pushendofline
+ \startreadingfile
+ \let\presetfigure\presetfigureB
+ \readsetfile{.}\@@efloadname\donothing\donothing
+ \stopreadingfile
+ \popendofline
+ \@@eftrace{\ifcase\figurestatus not \fi found}}
+ {}}}%
\fi\fi
\fi\fi}
@@ -494,19 +516,17 @@
\def\doanalyzefigurefilesB
{\ifconsultutilityfile\ifcase\figurestatus\ifcase\figurefilemode\else
-\doifsomething\@@efcurrentpath
-{%
- \assignfullfilename\@@efcurrentpath\@@exfile\to\@@efloadname
- \edef\@@effilenametype{\@@effilename.\figureextension{\@@efcurrenttype}}%
- \@@eftrace{analyzing \@@efloadname\space on \@@efcurrentpath\space for \@@effilenametype}%
- \pushendofline
- \startreadingfile
- \let\presetfigure\presetfigureC
- \readsetfile\@@efcurrentpath\@@exfile\donothing\donothing
- \stopreadingfile
- \popendofline
- \@@eftrace{\ifcase\figurestatus not \fi found}%
-}%
+ \doifsomething\@@efcurrentpath
+ {\assignfullfilename\@@efcurrentpath\@@exfile\to\@@efloadname
+ \edef\@@effilenametype{\@@effilename.\figureextension{\@@efcurrenttype}}%
+ \@@eftrace{analyzing \@@efloadname\space on \@@efcurrentpath\space for \@@effilenametype}%
+ \pushendofline
+ \startreadingfile
+ \let\presetfigure\presetfigureC
+ \readsetfile\@@efcurrentpath\@@exfile\donothing\donothing
+ \stopreadingfile
+ \popendofline
+ \@@eftrace{\ifcase\figurestatus not \fi found}}%
\fi\fi\fi}
\def\presetfigureC[#1][#2]%
@@ -514,7 +534,7 @@
\@EA\DOIF\@EA{\@@effilenametype}{#1}
{\getparameters[\??ep][#2]%
\doif\@@epe\@@efcurrenttype
- {\chardef\figurestatus4
+ {\chardef\figurestatus\plusfour
\let\@@eftype\@@efcurrenttype
\let\@@effullname\@@efcurrentfile}}%
\else
@@ -526,18 +546,16 @@
\def\doanalyzefigurefilesC
{\ifconsultutilityfile\ifcase\figurestatus\ifcase\figurefilemode\else
-\doifsomething\@@efcurrentpath
-{%
- \assignfullfilename\@@efcurrentpath\@@exfile\to\@@efloadname
- \@@eftrace{analyzing \@@efloadname\space on \@@efcurrentpath\space for \@@effilename.* surrogate}%
- \pushendofline
- \startreadingfile
- \let\presetfigure\presetfigureD
- \readsetfile\@@efcurrentpath\@@exfile\donothing\donothing
- \stopreadingfile
- \popendofline
- \@@eftrace{\ifcase\figurestatus not \fi found}%
-}%
+ \doifsomething\@@efcurrentpath
+ {\assignfullfilename\@@efcurrentpath\@@exfile\to\@@efloadname
+ \@@eftrace{analyzing \@@efloadname\space on \@@efcurrentpath\space for \@@effilename.* surrogate}%
+ \pushendofline
+ \startreadingfile
+ \let\presetfigure\presetfigureD
+ \readsetfile\@@efcurrentpath\@@exfile\donothing\donothing
+ \stopreadingfile
+ \popendofline
+ \@@eftrace{\ifcase\figurestatus not \fi found}}%
\fi\fi\fi}
\def\presetfigureD[#1][#2]%
@@ -617,7 +635,11 @@
{\global\fighei\@@efheight}%
\doifsomething\@@efscale
{\figxsca\@@efscale
- \figysca\@@efscale}}
+ \figysca\@@efscale}%
+ \doifsomething\@@efxscale
+ {\figxsca\@@efxscale}%
+ \doifsomething\@@efyscale
+ {\figxsca\@@efyscale}}
\def\setfactorfiguresize
{\doifinsetelse\@@effactor{\v!max,\v!fit,\v!broad}
@@ -655,9 +677,9 @@
\fi}
\def\setscalefiguresize
- {\doifsomething\@@efscale
- {\doapplyfigurescale\figwid\@@epw\figxsca
- \doapplyfigurescale\fighei\@@eph\figysca
+ {\doifsomething{\@@efscale\@@efxscale\@@efxscale}
+ {\doapplyfigurescale\figwid\@@epw\figxsca\@@efxscale
+ \doapplyfigurescale\fighei\@@eph\figysca\@@efyscale
\global\figwid\zeropoint
\global\fighei\zeropoint
\doifelsenothing\@@efmaxwidth
@@ -700,8 +722,8 @@
{\docalculatefigurescales\fighei\@@eph\figwid\@@epw}%
\else
\dosetdimensionfiguresize
- {\doapplyfigurescale\figwid\@@epw\figxsca
- \doapplyfigurescale\fighei\@@eph\figysca}%
+ {\doapplyfigurescale\figwid\@@epw\figxsca\@@efxscale
+ \doapplyfigurescale\fighei\@@eph\figysca\@@efyscale}%
{\docalculatefigurescales\figwid\@@epw\fighei\@@eph}%
{\docalculatefigurescales\fighei\@@eph\figwid\@@epw}%
\fi
@@ -821,13 +843,29 @@
\divide\dimen0 \dimen2
#3=\dimen0 } % #3 = schaal
- \def\doapplyfigurescale#1#2#3%
+% \def\doapplyfigurescale#1#2#3%
+% {\global#1=#2\relax
+% \ifcase0\@@efscale\relax % beter: doifnum...
+% #3=\plusthousand
+% \else
+% #3=\@@efscale
+% \fi\relax % important !
+% \ifnum#3=\plusthousand\else
+% \global\divide #1 \plusthousand
+% \global\multiply#1 #3\relax
+% \fi}
+
+ \def\doapplyfigurescale#1#2#3#4%
{\global#1=#2\relax
- \ifcase0\@@efscale\relax % beter: doifnum...
- #3=\plusthousand
+ \ifcase0#4\relax % @@ef.scale kan empty zijn
+ \ifcase0\@@efscale\relax % @@efscale kan empty zijn
+ #3=\plusthousand
+ \else
+ #3=\@@efscale
+ \fi
\else
- #3=\@@efscale
- \fi\relax % important !
+ #3=#4%
+ \fi
\ifnum#3=\plusthousand\else
\global\divide #1 \plusthousand
\global\multiply#1 #3\relax
@@ -839,6 +877,8 @@
\beginETEX \dimexpr
+ % todo: use \relax instead of ()
+
\def\docalculatefigurescales#1#2#3#4%
{\scratchdimen\dimexpr(#1/\dimexpr(#2/\plusthousand))%
\figxsca\scratchdimen
@@ -848,14 +888,28 @@
\def\docalculatefigurescale#1#2#3%
{#3\dimexpr(#1/\dimexpr(#2/\plusthousand))}
- \def\doapplyfigurescale#1#2#3%
- {% #3=\ifnum0\number\@@efscale=\zerocount\plusthousand\else\@@efscale\fi
- \ifcase0\@@efscale\relax % @@efschaal kan empty zijn
- #3=\plusthousand
+% \def\doapplyfigurescale#1#2#3%
+% {% #3=\ifnum0\number\@@efscale=\zerocount\plusthousand\else\@@efscale\fi
+% \ifcase0\@@efscale\relax % @@efscale kan empty zijn
+% #3=\plusthousand
+% \else
+% #3=\@@efscale
+% \fi\relax % important !
+% \global#1\ifnum#3=\plusthousand#2\else\dimexpr(#3\dimexpr(#2/\plusthousand))\fi
+% \relax}
+
+ \def\doapplyfigurescale#1#2#3#4% todo: also #5 being sx/sy (\ifdim0#5=0pt ...)
+ {\ifcase0#4\relax % @@ef.scale kan empty zijn
+ \ifcase0\@@efscale\relax % @@efscale kan empty zijn
+ #3=\plusthousand
+ \else
+ #3=\@@efscale
+ \fi
\else
- #3=\@@efscale
- \fi\relax % important !
- \global#1\ifnum#3=\plusthousand#2\else\dimexpr(#3\dimexpr(#2/\plusthousand))\fi
+ #3=#4%
+ \fi
+ \relax % important !
+ \global#1\ifnum#3=\plusthousand#2\else\dimexpr#3\dimexpr#2/\plusthousand\relax\relax\fi
\relax}
\endETEX
@@ -1031,7 +1085,7 @@
\getparameters
[\??ep]
[\c!e=\s!unknown,
- %\c!w=15\korpsgrootte,\c!h=10\korpsgrootte,
+ %\c!w=15\bodyfontsize,\c!h=10\bodyfontsize,
\c!w=8\lineheight,\c!h=6\lineheight,
\c!x=\!!zeropoint,\c!y=\!!zeropoint,
\c!t=,\c!s=,\c!a=,\c!f=\@@effilename]%
@@ -1041,7 +1095,7 @@
\c!object=\@@exobject,\c!preset=\v!yes,\c!split=,\c!size=,
\c!page=0,\c!controls=\v!no,\c!preview=\v!no,\c!repeat=\v!no,
\c!maxwidth=\@@exmaxwidth,\c!maxheight=\@@exmaxheight,
- \c!scale=,\c!width=,\c!height=,\c!display=,\c!lines=,\c!grid=,
+ \c!scale=,\c!xscale=,\c!yscale=,\c!width=,\c!height=,\c!display=,\c!lines=,\c!grid=,
%\c!foregroundcolor=,
\c!color=,\c!conversion=\@@exconversion,\c!prefix=\@@exprefix,\c!cache=\@@excache,
\c!factor=,\c!hfactor=,\c!wfactor=]%
@@ -1105,8 +1159,8 @@
{\let\@@eftype\c!mps}
{\processaction
[\@@effiletype]
- [ \c!tex=>\let\@@eftype\c!tex,
- \c!tmp=>\let\@@eftype\c!tex
+ [ \c!tex=>\let\@@eftype\c!tex, % check
+ \c!tmp=>\let\@@eftype\c!tex % check
\edef\@@effilepref{\bufferprefix}%
\edef\@@effilename{\@@effilepref\@@effilename},
% todo: nop when conversion
@@ -1120,7 +1174,7 @@
% up in files, therefore:
\let\@@efobject\v!no
\fi
- \edef\@@efobjectname{\@@effilename-\@@eftype-\@@effiletype-\@@efpage}%
+ \edef\@@efobjectname{\@@effilename-\@@eftype-\@@effiletype-\@@efpage}% will be configurable
\doifelse\@@efobject\v!no
\donefalse
{\doifspecialavailableelse\dostartscaling
@@ -1167,19 +1221,19 @@
\edef\@@effullname{\@@effilename.\@@effiletype}%
\def\figureextension##1{\@@effiletype}%
\fi}%
-% begin prelocate to be converted image
-\let\@@efconversionpath\empty
-\let\@@efconversionfile\@@effilename
-\let\@@efconversiontype\@@effiletype
-\doifmodeelse{\systemmodeprefix\v!first}
- {\doifelsenothing\@@efconversion\donefalse\donetrue}%
- {\donefalse}%
-\ifdone
- \chardef\figurestatus\zerocount
- \locatefigureconversionfile
- \chardef\figurestatus\zerocount
-\fi
-% end
+ % begin prelocate to be converted image
+ \let\@@efconversionpath\empty
+ \let\@@efconversionfile\@@effilename
+ \let\@@efconversiontype\@@effiletype
+ \doifmodeelse{\systemmodeprefix\v!first}
+ {\doifelsenothing\@@efconversion\donefalse\donetrue}%
+ {\donefalse}%
+ \ifdone
+ \chardef\figurestatus\zerocount
+ \locatefigureconversionfile
+ \chardef\figurestatus\zerocount
+ \fi
+ % end
\doifelse\@@efpreset\v!no
{\doifelse\@@eftype\s!unknown
{\chardef\figurestatus\zerocount
@@ -1333,7 +1387,7 @@
\fi
\xdef\figurewidth {\the\figwid}%
\xdef\figureheight{\the\fighei}%
- \global\setbox\foundexternalfigure\vbox to \fighei
+ \global\setbox\foundexternalfigure\naturalvbox to \fighei
{\vfill
\hsize\figwid
\ifdone
@@ -1436,7 +1490,7 @@
\box\foundexternalfigure
\fi\fi\fi
\else
- \feedbackexternalfigure
+ \iftrialtypesetting \else \feedbackexternalfigure \fi
\settrue\externalfigurelevel
\ifskipexternalfigures
\externalfigurereplacement\figurelabel\figurefullname{skipped}%
@@ -1469,7 +1523,8 @@
\fi\fi\fi
\fi
\else
- \feedbackexternalfigure % maybe also; \the\externalfigurepostprocessors
+ % maybe also \the\externalfigurepostprocessors
+ \iftrialtypesetting \else \feedbackexternalfigure \fi
\fi}%
\globalpopmacro\figurefilecache
\globalpopmacro\figurefilepath
@@ -2145,6 +2200,24 @@
\egroup}%
\hbox}
+%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
+
\def\clip{\dosingleempty\doclip}
\def\setupclipping
@@ -2251,10 +2324,10 @@
\c!reset=\v!no,
\c!maxwidth=\@@efwidth,
\c!maxheight=\@@efheight,
- \c!bodyfont=\korpsgrootte,
+ \c!bodyfont=\bodyfontsize,
\c!directory=,
\c!file=\f!utilityfilename.\f!figureextension,
- \c!radius=.5\korpsgrootte,
+ \c!radius=.5\bodyfontsize,
\c!corner=\v!rectangular,
\c!frame=\v!off,
\c!background=, % new
diff --git a/Master/texmf-dist/tex/context/base/core-fil.tex b/Master/texmf-dist/tex/context/base/core-fil.tex
index 5820798cdc5..c3a7c52d1a5 100644
--- a/Master/texmf-dist/tex/context/base/core-fil.tex
+++ b/Master/texmf-dist/tex/context/base/core-fil.tex
@@ -41,7 +41,7 @@
\startmessages italian library: files
title: file
- 1: sinonimo file -- già in uso per --
+ 1: sinonimo file -- già in uso per --
\stopmessages
\startmessages norwegian library: files
@@ -54,6 +54,26 @@
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:
+
+% \starttext
+% \immediate\openout\scratchwrite=oeps.tmp
+% \immediate\write\scratchwrite{oeps}
+% \immediate\closeout\scratchwrite
+% \registertempfile{oeps.tmp}
+% \typefile{oeps.tmp}
+% \stoptext
+
+\let\usedtempfile\gobbleoneargument
+
+\def\registertempfile#1{\immediatewriteutility{f t {#1}}}
+
%D \macros
%D {definefilesynonym}
%D
@@ -158,9 +178,9 @@
\ifconditional\moduleisloaded % sometimes (see xtag-map)
\let\next\relax % or: \expandafter\gobbleoneargument
\else
- \makeshortfilename[#1\truefilename{#2}]%
+ \makeshortfilename[#1\truefilename{#2}]% beware: *- is not part of syn
\doifelseflagged\shortfilename
- {\showmessage\m!systems7{#2}%
+ {\showmessage\m!systems7{#2 (line \number\inputlineno)}%
\settrue\moduleisloaded
\let\next\relax}
{\doglobal\setflag\shortfilename
@@ -187,22 +207,112 @@
\showmessage\m!systems6{#2}%
\fi}
-\def\dousemodules[#1][#2]%
- {\ifsecondargument
+% \def\usemodules
+% {\dodoubleempty\dousemodules}
+%
+% \def\dousemodules[#1][#2]%
+% {\ifsecondargument
+% \doifelsenothing{#2}
+% {\let\next\relax}
+% {\def\next{\processcommalist[#2]{\dodousemodules{#1}}}}%
+% \else
+% \def\next{\usemodules[][#1]}%
+% \fi
+% \next}
+%
+% \let\usemodule\usemodules
+
+\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}
- {\def\next{\processcommalist[#2]{\dodousemodules{#1}}}}%
+ {\doifassignmentelse{#2}
+ {\def\currentmoduleparameters{#2}%
+ \def\next{\processcommalist[#1]{\dodousemodules{}}}}
+ {\def\next{\processcommalist[#2]{\dodousemodules{#1}}}}}%
\else
- \def\next{\usemodules[][#1]}%
+ \def\next{\processcommalist[#1]{\dodousemodules{}}}%
+ \fi\fi
+ \next
+ \popmacro\currentmoduleparameters
+ \popmacro\currentmodule}
+
+\let\currentmoduleparameters\empty
+\let\currentmodule \s!unknown
+
+\def\startmodule
+ {\doifnextcharelse[\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
- \next}
+ \let\currentmoduleparameters\empty}
-\def\usemodules
- {\dodoubleempty\dousemodules}
+\def\moduleparameter #1#2{\executeifdefined{\??md:#1:#2}\s!empty}
+\def\currentmoduleparameter#1{\executeifdefined{\??md:\currentmodule:#1}\s!empty}
-\let\usemodule\usemodules
+% \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
-% \usemodule[t][speech]
+% 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.
diff --git a/Master/texmf-dist/tex/context/base/core-fld.tex b/Master/texmf-dist/tex/context/base/core-fld.tex
index 5f03d699ed6..4262bbdd210 100644
--- a/Master/texmf-dist/tex/context/base/core-fld.tex
+++ b/Master/texmf-dist/tex/context/base/core-fld.tex
@@ -28,6 +28,19 @@
\unprotect
+%D First we hook fields into the (viewer based) layering mechanism
+%D (implemented as properties).
+
+\ifx\currentlayerproperty\undefined\else \let\currentlayerproperty\empty\fi
+
+\appendtoks
+ \doif\@@iafieldlayer\v!auto
+ {\def\@@iafieldlayer{\currentlayerproperty}}%
+\to \everysetupinteraction
+
+\setupinteraction
+ [\c!fieldlayer=\v!auto] % auto by default
+
%D Internal command, linked to \type{\definesymbol}.
\def\dogetfieldsymbol#1%
@@ -93,7 +106,6 @@
\@@DriverFieldAfterKey,\@@DriverFieldFormat,\@@DriverFieldValidate,\@@DriverFieldCalculate,%
\@@DriverFieldFocusIn,\@@DriverFieldFocusOut}}
-
\def\presettextfield
{\preparefieldvariables
\dopresettextfield
@@ -771,7 +783,7 @@
{\setvalue{\strippedcsname\setupfield##1}{\dosetupfield[##1][#1,##2][#2,##3][#3,##4][#4,##5]}}}%
\else\iffirstargument
\doifelse{#1}\v!reset
- {\let\dodosetupfield\normaldodosetupfield}
+ {\resetfields}
{\setupfields[][][][#1]}% checken
\else
\writestatus\m!fields{provide either 1 or 4 arguments}%
@@ -780,6 +792,11 @@
\def\setupfields
{\doquadrupleempty\dosetupfields}
+\def\resetfields
+ {\let\dodosetupfield\normaldodosetupfield}
+
+% \setupfields[\v!reset]
+
% opties: veld, label, kader, vertikaal/horizontaal
\newif\ifShowFieldLabel
@@ -798,8 +815,8 @@
\HorizontalFieldfalse\VerticalFieldfalse,
\v!label=>\ShowFieldLabeltrue,
\v!frame=>\ShowFieldFrametrue,
- \v!horizontal=>\HorizontalFieldtrue,
- \v!vertical=>\VerticalFieldtrue]%
+ \v!horizontal=>\HorizontalFieldtrue,
+ \v!vertical=>\VerticalFieldtrue]%
\ifVerticalField
\getparameters[\??fd]
[\c!distance=\!!zeropoint,\c!inbetween=\vskip\@@localoffset,
@@ -846,7 +863,7 @@
\c!afterkey=,\c!format=,\c!validate=,\c!calculate=,
\c!focusin=,\c!focusout=,
\c!fieldoffset=\!!zeropoint,\c!fieldbackgroundcolor=,
- \c!fieldframecolor=,\c!fieldlayer=,#5]%
+ \c!fieldframecolor=,\c!fieldlayer=\@@iafieldlayer,#5]%
\scratchdimen\framedwidth \edef\@@DriverFieldWidth {\the\scratchdimen}%
\scratchdimen\framedheight\edef\@@DriverFieldHeight{\the\scratchdimen}%
\vfill
@@ -887,7 +904,7 @@
\c!focusin=,\c!focusout=,
\c!afterkey=,\c!format=,\c!validate=,\c!calculate=,
\c!fieldoffset=\!!zeropoint,\c!fieldbackgroundcolor=,
- \c!fieldframecolor=,\c!fieldlayer=,#5,\c!align=]
+ \c!fieldframecolor=,\c!fieldlayer=\@@iafieldlayer,#5,\c!align=]
{\dogetcommacommandelement1\from\@@DriverFieldValues\to\@@DriverFieldValue
\ifx\@@DriverFieldValue\empty
\let\@@DriverFieldValue\@@DriverFieldDefault
@@ -995,7 +1012,8 @@
[\c!frame=\v!off,
\c!option=,
\c!regionin=JS(Vide_Field{\currentsystemfield:txt}),
- \c!regionout=JS(Hide_Field{\currentsystemfield:txt})]%
+ \c!regionout=JS(Hide_Field{\currentsystemfield:txt}),
+ \c!fieldlayer=\@@iafieldlayer]%
\lower2ex\hbox to \zeropoint
{\fitfield[\currentsystemfield:but]}%
#2}%
@@ -1004,7 +1022,7 @@
%D And one more:
-\def\definefieldstack%
+\def\definefieldstack
{\dotripleargument\dodefinefieldstack}
\def\dodefinefieldstack[#1][#2][#3]% name, symbols, settings
diff --git a/Master/texmf-dist/tex/context/base/core-fnt.tex b/Master/texmf-dist/tex/context/base/core-fnt.tex
index 6a55849f454..dc6b8153d03 100644
--- a/Master/texmf-dist/tex/context/base/core-fnt.tex
+++ b/Master/texmf-dist/tex/context/base/core-fnt.tex
@@ -149,6 +149,11 @@
\def\cap{\mathortext\normalcap\smallcapped}
\def\Cap{\mathortext\normalCap\SmallCapped}
+\appendtoks
+ \let\cap\firstofoneargument
+ \let\Cap\firstofoneargument
+\to \simplifiedcommands
+
%D \macros
%D {setupcapitals}
%D
diff --git a/Master/texmf-dist/tex/context/base/core-ini.tex b/Master/texmf-dist/tex/context/base/core-ini.tex
index a63b0c74ee9..4f6e9fe1d87 100644
--- a/Master/texmf-dist/tex/context/base/core-ini.tex
+++ b/Master/texmf-dist/tex/context/base/core-ini.tex
@@ -36,7 +36,7 @@
\appendtoks \registerparoptions \to \everypar
\appendtoks \flushsyncpositions \to \everypar
\appendtoks \flushpostponednodedata \to \everypar
-\appendtoks \dohandlespeech \to \everypar
+\appendtoks \dohandlerepeatdelimitedtext \to \everypar
\appendtoks \insertparagraphintro \to \everypar
\appendtoks \flushpostponedbookmark \to \neverypar
diff --git a/Master/texmf-dist/tex/context/base/core-int.tex b/Master/texmf-dist/tex/context/base/core-int.tex
index 44d4fa7789b..b4bcd4c5f86 100644
--- a/Master/texmf-dist/tex/context/base/core-int.tex
+++ b/Master/texmf-dist/tex/context/base/core-int.tex
@@ -89,6 +89,16 @@
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 @+
@@ -138,6 +148,13 @@
3: pagini selectate: --
\stopmessages
+\startmessages french library: versions
+ title: version
+ 1: @+ manquant
+ 2: marquage des pages
+ 3: pages sélectionnées : --
+\stopmessages
+
\unprotect
\definesystemconstant {link}
@@ -334,17 +351,16 @@
\@EA\processcommalist\@EA[\!!stringa]\doprepareidentity
\global\let\doprepareidentity\relax}
-\def\doinitializeidentity#1%
- {%\iflocation
- \doprepareidentity
- \dosetupidentity % no \expanded{..} will be done in special (else no pdfdoc)
- {\@@iatitle}{\@@iasubtitle}{\@@iaauthor}{#1}%
- {\@@iadate}{\@@iakeyword}%
- \global\let\initializeidentity\relax
- }%\fi}
+%D The Creator field is changed per 12/04/2006 due to user presure. This
+%D means that I need to put my own status info someplace else.
-\def\initializeidentity % not to be changed !
- {\doinitializeidentity{ConTeXt/user/\jobname.tex}}
+\def\initializeidentity
+ {\doprepareidentity
+ \dosetupidentity % no \expanded{..} will be done in special (else no pdfdoc)
+ {\@@iatitle}{\@@iasubtitle}{\@@iaauthor}%
+ {ConTeXt - \contextversion}%
+ {\@@iadate}{\@@iakeyword}%
+ \global\let\initializeidentity\relax}
\appendtoks \initializeidentity \to \everyshipout
@@ -491,7 +507,9 @@
\iffirstargument
\bgroup
\ifsecondargument
- \edef\openbookmarklist{#2}%
+ \doifelse{#2}\v!all
+ {\edef\openbookmarklist{#1}}
+ {\edef\openbookmarklist{#2}}%
\else
\let\openbookmarklist\empty
\fi
diff --git a/Master/texmf-dist/tex/context/base/core-itm.tex b/Master/texmf-dist/tex/context/base/core-itm.tex
index 976daf129c6..d495011f1b2 100644
--- a/Master/texmf-dist/tex/context/base/core-itm.tex
+++ b/Master/texmf-dist/tex/context/base/core-itm.tex
@@ -33,33 +33,38 @@
\stopmessages
\startmessages italian library: layouts
- 9: attualmente non più di -- livelli di elencazione
+ 9: attualmente non più di -- livelli di elencazione
\stopmessages
\startmessages norwegian library: layouts
- 9: for øyeblikket maksimalt -- nivåer i opplisting
+ 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
+
\unprotect
% - instellingen in macro
% - [0] voor start op 0
% - start=2
-\newif\ifsubitem \subitemfalse
-\newif\ifsymbolitem \symbolitemfalse
-\newif\ifheaditem \headitemfalse
-\newif\ifitemintro \itemintrofalse
-\newif\ifautoitemintro \autoitemintrofalse
-\newif\ifoptimizeitems \optimizeitemstrue
-\newif\ifpackeditems \packeditemsfalse
-\newif\iffirstlist \firstlistfalse
-\newif\ifparagraphitems \paragraphitemsfalse
-\newif\iftextitems \textitemsfalse
+\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
\newcounter\noflists
\newcounter\itemlevel
@@ -75,9 +80,19 @@
% #1=level #2=parameter
\def\getitemparameter #1#2{\csname\??op\currentitemgroup#1#2\endcsname}
-\def\setitemparameter #1#2{\@EA\def\csname\??op\currentitemgroup#1#2\endcsname}
+\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}
+% test this: saves hash entries and is also faster
+%
+% \let\doinitializeitemgrouplevel\gobbleoneargument % todo ! ! !
+
+\def\getitemparameter#1#2%
+ {\executeifdefined{\??op\currentitemgroup#1#2}%
+ {\executeifdefined{\??op\currentitemgroup #2}%
+ {\executeifdefined{\??oo #2}%
+ {}}}}
+
\def\doitemattributes #1{\doattributes{\??op\currentitemgroup#1}}
\def\@@globalitemsymbol #1{\??op\currentitemgroup\c!symbol\s!global#1}
@@ -86,11 +101,11 @@
\def\@@itemcounter{\s!itemcount\currentitemgroup}
-% \def\doitembreak#1{\iftextitems\else\dosomebreak#1\fi}
+% \def\doitembreak#1{\ifconditional\textlistitem\else\dosomebreak#1\fi}
%
% s-pre-61 / pre-dis, test extensively, 2004/5
-\def\doitembreak#1{\ifoptimizeitems\iftextitems\else\dosomebreak#1\fi\fi}
+\def\doitembreak#1{\ifconditional\optimizelistitem\ifconditional\textlistitem\else\dosomebreak#1\fi\fi}
\def\dolistreference
{\immediatewriteutilitycommand
@@ -120,7 +135,8 @@
\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!leftmargin,\c!rightmargin,\c!indentnext,
+ \c!command,
\c!start,\c!lefttext,\c!righttext]}
\def\setupitemgroups
@@ -145,7 +161,7 @@
{\expandafter\doitemreference\itemreferences,,\\}
\def\packitems
- {\ifcase\itemlevel \else \packeditemstrue \fi}
+ {\ifcase\itemlevel \else \settrue\packlistitem \fi}
\def\dosetupitemgroupvariable[#1]% [#2]% niveau instellingen
{\doifelsenothing{#1}
@@ -158,12 +174,13 @@
{\processaction
[#2#3#4]
[ \v!packed*=>\packitems,
- \v!intro*=>\itemintrotrue,
- \v!autointro*=>\autoitemintrotrue,
+ \v!intro*=>\settrue\introlistitem, % here? not set to false
+% no: \v!random*=>\settrue\randomizeitems,% here? not set to false
+ \v!autointro*=>\settrue\autointrolistitem,
\v!broad*=>\setitemparameter{#1}\c!factor{1},
#2#3*\v!broad*=>\setitemparameter{#1}\c!factor{#2#3},
#2*\v!broad*=>\setitemparameter{#1}\c!factor{#2},
- \v!text*=>\textitemstrue
+ \v!text*=>\settrue\textlistitem
\settrue\inlinelistitem
\dosetuppackeditemgroup{#1}%
\packitems,
@@ -172,16 +189,16 @@
\v!inmargin*=>\setitemparameter{#1}\c!width{-2em}, % signal
\v!atmargin*=>\doifnot{#1}{1}{\setitemparameter{#1}\c!width{0em}}, % signal
\v!intext*=>\settrue\inlinelistitem, % new
- \v!loose*=>\optimizeitemsfalse,
- \v!paragraph*=>\paragraphitemstrue
+ \v!loose*=>\setfalse\optimizelistitem,
+ \v!paragraph*=>\settrue\paragraphlistitem
\packitems,
\v!joinedup*=>\dosetuppackeditemgroup{#1}%
\packitems,
\v!serried*=>\setitemparameter{#1}\c!factor{-1},
#2#3*\v!serried*=>\setitemparameter{#1}\c!factor{-#2#3},
#2*\v!serried*=>\setitemparameter{#1}\c!factor{-#2},
- \v!stopper*=>\setitemparameter{#1}\c!placestopper\v!yes,
- \v!unpacked*=>\packeditemsfalse,
+ \v!stopper*=>\setitemparameter{#1}\c!placestopper{\v!yes}, % keep {}
+ \v!unpacked*=>\setfalse\packlistitem,
\v!repeat*=>\settrue\repeatlistitem, % new
\v!standard*=>\dosetupstandarditemgroup{#1}]}
@@ -205,21 +222,11 @@
\letitemparameter{#1}\c!after \empty
\letitemparameter{#1}\c!inbetween \empty}
-% \def\dosetupitemgroupconstant[#1][#2]%
-% {\def\dodosetupitemgroupconstant##1%
-% {\dododosetupitemgroupconstant[#1][##1*]}%
-% \processcommacommand[#2]\dodosetupitemgroupconstant} % expansion of #2 is handy for xml
-
\def\dosetupitemgroupconstant[#1][#2]%
{\def\dodosetupitemgroupconstant##1% catches empty in [a,b,] handy for xml
{\doifsomething{##1}{\dododosetupitemgroupconstant[#1][##1*]}}%
\processcommacommand[#2]\dodosetupitemgroupconstant} % expansion of #2 is handy for xml
-%\def\dododododosetupitemgroup[#1][#2]%
-% {\doifassignmentelse{#2}
-% {\dosetupitemgroupvariable[#1][#2]}
-% {\setitemparameter{#1}\empty{\dosetupitemgroupconstant[#1][#2]}}}%
-
\def\dododododosetupitemgroup[#1][#2]%
{\doifassignmentelse{#2}%
{\dosetupitemgroupvariable[#1][#2]}%
@@ -258,25 +265,13 @@
{\doquadrupleempty\dosetupitemgroup}
\def\doadvanceitem
- {\ifsubitem\else\ifsymbolitem\else
+ {\ifconditional\sublistitem\else\ifconditional\symbollistitem\else
\pluscounter{\@@itemcounter\itemlevel}%
\fi\fi}
-% \def\setitemlevel#1%
-% {\ifnum\itemlevel>0\relax
-% \firstlisttrue
-% \doifnotinset\v!verder{#1}
-% {\resetcounter{\@@itemcounter\itemlevel}}%
-% \def\tempnumber%
-% {\countervalue{\@@itemcounter\itemlevel}}%
-% \doifelse{\getitemparameter\itemlevel\c!plaatsafsluiter}\v!ja
-% {\def\tempsymbol{\getitemparameter\itemlevel\c!afsluiter}}
-% {\let\tempsymbol\empty}%
-% \fi}
-
\def\setitemlevel#1%
{\ifnum\itemlevel>\zerocount
- \firstlisttrue
+ \settrue\firstlistitem
\doifnotinset\v!continue{#1}
{\doifinset{0}{#1}{\setitemparameter\itemlevel\c!start{0}}%
\doifsomething{\getitemparameter\itemlevel\c!start}
@@ -306,16 +301,16 @@
\setxvalue{\@@globalitemsymbol\itemlevel}{\currentitemsymbol}%
\setgvalue{\@@localitemsymbol \itemlevel}%
{\convertnumber{\currentitemsymbol}{\countervalue{\@@itemcounter\itemlevel}}}%
- \iftextitems
+ \ifconditional\textlistitem
\doifsomething{\getitemparameter\itemlevel\c!lefttext}
{\let\tempsymbol\empty}%
\fi
\def\listitem
{\getitemparameter\itemlevel
- {\iftextitems\c!lefttext\else\c!left\fi}%
+ {\ifconditional\textlistitem\c!lefttext\else\c!left\fi}%
\getvalue{\@@localitemsymbol\itemlevel}\tempsymbol
\getitemparameter\itemlevel
- {\iftextitems\c!righttext\else\c!right\fi}}%
+ {\ifconditional\textlistitem\c!righttext\else\c!right\fi}}%
\let\@@opsymbol\empty}%\let\docommando\gobbleoneargument}
{}}}
@@ -368,73 +363,36 @@
\fi
\expanded{\redostartitemgroup[\itemgroupoptions]}}% [#2]
+\let\startcollectitems\relax
+\let\stopcollectitems \relax
+
\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
- \iftextitems\else\doifnotinset\v!text{#1}\par\fi % suboptimal
+ \ifconditional\textlistitem\else\doifnotinset\v!text{#1}\par\fi % suboptimal
\fi
\begingroup
- \ifnum\itemlevel=\plusone % NIEUW
- \doadaptleftskip {\getitemparameter1\c!margin}%
- \doadaptleftskip {\getitemparameter1\c!leftmargin}%
- \doadaptrightskip{\getitemparameter1\c!rightmargin}%
- \fi
- \dosetraggedcommand{\getitemparameter\itemlevel\c!align}\raggedcommand
- \doifsomething{\getitemparameter\itemlevel\c!indenting}
- {% is \expanded needed?
- \expanded{\setupindenting[\getitemparameter\itemlevel\c!indenting]}}%
- \doifinset\v!columns{#1}%
- {\ifinsidecolumns\else\ifnum\itemcolumndepth=\zerocount
- \globallet\itemcolumndepth\itemlevel
- \getitemparameter\itemlevel\c!before
- \processfirstactioninset
- [#1]
- [ \v!one=>\!!counta1\relax,
- \v!two=>\!!counta2\relax,
- \v!three=>\!!counta3\relax,
- \v!four=>\!!counta4\relax,
- \v!five=>\!!counta5\relax,
- \s!unknown=>\@EA\!!counta\getitemparameter\itemlevel\c!n]%
- % new
-% now handled in column routines
-% \edef\columneditemleftskip{\the\leftskip}%
-% \def\postprocesscolumnbox##1%
-% {\scratchdimen\columneditemleftskip
-% \divide\scratchdimen \nofcolumns
-% \hbox{\hskip\columneditemleftskip\hbox{\box##1}}}%
-% \scratchdimen-\columneditemleftskip
-% \multiply\scratchdimen \nofcolumns
-% \advance\scratchdimen \columneditemleftskip
-% \advance\scratchdimen \hsize
-% \edef\columntextwidth{\the\scratchdimen}%
-% \leftskip\zeropoint
- % so far
- \startcolumns
- [\c!n=\!!counta, % netter \??op\itemlevel\c!n
- \c!height=,
- \c!rule=\v!off,
- \c!balance=\v!yes,
- \c!align=\v!no]%
- \fi\fi}%
- \doifinsetelse\v!intro{#1}\itemintrotrue\itemintrofalse
+ \doifinsetelse\v!intro{#1}{\settrue\introlistitem}{\setfalse\introlistitem}%
+ \doifinsetelse\v!random{#1}{\settrue\randomizeitems}{\setfalse\randomizeitems}%
+ % == \doifinsetelse\v!intro{#1}\settrue\setfalse\introlistitem
\doglobal\increment\noflists
\let\currentlist\noflists
\newcounter\noflistelements
- \headitemfalse
- \subitemfalse
- \symbolitemfalse
+ \setfalse\headlistitem
+ \setfalse\sublistitem
+ \setfalse\symbollistitem
\let\marsymbol\relax
\globallet\somdestination\empty
\let\symsymbol\empty
\the\itemgroupcommands
- \setitemlevel{#1}%
- %\getitemparameter\itemlevel\empty
+ % \getitemparameter\itemlevel\empty
\let\listitem\empty % ** start value
\doifelsenothing{#1} % iffirstargument
{\edef\@@opsymbol{\getitemparameter\itemlevel\c!symbol}%
@@ -455,28 +413,60 @@
{\doifnot{##1}{0}{\setitemmark{##1}}}%
% \processcommalist[#1,\@@opsymbol]\docommando
\processcommalist[#1]\docommando}% ** preset sequence or provided sequence
+ % moved to here, after settings
+ \ifnum\itemlevel=\plusone % NIEUW
+ \doadaptleftskip {\getitemparameter1\c!margin}%
+ \doadaptleftskip {\getitemparameter1\c!leftmargin}%
+ \doadaptrightskip{\getitemparameter1\c!rightmargin}%
+ \fi
+ \dosetraggedcommand{\getitemparameter\itemlevel\c!align}\raggedcommand
+ \doifsomething{\getitemparameter\itemlevel\c!indenting}
+ {% is \expanded needed?
+ \expanded{\setupindenting[\getitemparameter\itemlevel\c!indenting]}}%
+ %
+ \setitemlevel{#1}% moved to here
\ifx\listitem\empty
\setitemmark\@@opsymbol % ** default value
\ifx\listitem\empty
\edef\currentitemsymbol{\itemlevel}% ** fall back
\fi
\fi
- \ifautoitemintro\ifnum\prevgraf<3
- \itemintrotrue
+ \ifconditional\autointrolistitem\ifnum\prevgraf<3
+ \settrue\introlistitem
\fi\fi
- \ifparagraphitems
+ \ifconditional\paragraphlistitem
\ifnum\itemlevel>\plusone
\letitemparameter\itemlevel\c!inbetween\empty
\fi
- \else\ifpackeditems
+ \else\ifconditional\packlistitem
\letitemparameter\itemlevel\c!inbetween\empty
\fi\fi
+ \doifinset\v!columns{#1}%
+ {\ifinsidecolumns\else\ifnum\itemcolumndepth=\zerocount
+ \globallet\itemcolumndepth\itemlevel
+ \getitemparameter\itemlevel\c!before
+ \processfirstactioninset
+ [#1]
+ [ \v!one=>\!!counta1\relax,
+ \v!two=>\!!counta2\relax,
+ \v!three=>\!!counta3\relax,
+ \v!four=>\!!counta4\relax,
+ \v!five=>\!!counta5\relax,
+ \s!unknown=>\@EA\!!counta\getitemparameter\itemlevel\c!n]%
+ \startcolumns
+ [\c!n=\!!counta, % netter \??op\itemlevel\c!n
+ \c!height=,
+ \c!rule=\v!off,
+ \c!balance=\v!yes,
+ \c!align=\v!no]%
+ \fi\fi}
\calculatelistwidth\itemlevel{\dimen0}%
\ifdim\dimen0>\zeropoint\relax
\ifconditional\inlinelistitem\else
\advance\leftskip \dimen0\relax
\fi
- \fi}
+ \fi
+ \startcollectitems}
% test / example
%
@@ -493,22 +483,25 @@
% \stopitemize \blank
\def\stopitemgroup
- {\iftextitems
+ {\stopcollectitems
+ \ifconditional\textlistitem
\removeunwantedspaces\space\ignorespaces
\else
\par
\fi
\ifnum\itemcolumndepth=\zerocount \dolistreference \fi % beware !
- \iffirstlist \else \endgroup \fi % toegevoegd, eerste \som opent groep
+ \ifconditional\firstlistitem \else \endgroup \fi % toegevoegd, eerste \som opent groep
\ifnum\itemcolumndepth=\itemlevel\relax
\stopcolumns
\doglobal\newcounter\itemcolumndepth
\getitemparameter\itemlevel\c!after
+ \dontrechecknextindentation
\else
\ifnum\itemlevel=\plusone
\doitembreak\allowbreak % toegevoegd
\getitemparameter1\c!after
- \dochecknextindentation\??oo
+ % was: \dochecknextindentation\??oo, is now:
+ \dochecknextindentation{\??op\currentitemgroup\itemlevel}%
\else
% nieuw, not yet nobreak handling
\ifcase\autoitemgroupspacing
@@ -516,13 +509,15 @@
\or
\getitemparameter\itemlevel\c!after
\fi
+ \dontrechecknextindentation
\fi
\fi
\endgroup
\doglobal\decrement(\itemlevel,\itemincrement)%
\egroup
% new needed in sidefloats (surfaced in volker's proceedings)
- \iftextitems\else\par\fi}
+ \ifconditional\textlistitem\else\par\fi
+ \dorechecknextindentation}
\newtoks\itemgroupcommands
@@ -537,11 +532,12 @@
{\itemgroupsymbol{\strut}\strut}
\def\itemgroupsubitem
- {\subitemtrue\itemgroupitem}
+ {\settrue\sublistitem
+ \itemgroupitem}
\def\itemgroupsymbol#1%
{\def\symsymbol{\doitemattributes\itemlevel\c!symstyle\c!symcolor{#1}}%
- \symbolitemtrue
+ \settrue\symbollistitem
\itemgroupitem}
\def\itemgroupedge#1%
@@ -551,7 +547,7 @@
{#1\hskip\getitemparameter\itemlevel\c!distance}}}
\def\itemgrouphead
- {\headitemtrue\doitemgrouphead}
+ {\settrue\headlistitem\doitemgrouphead}
\def\itemgroupitems
{\dosingleempty\doitemgroupitems}
@@ -579,6 +575,28 @@
\appendtoks \letvalue\v!its \itemgroupitems \to \itemgroupcommands
\appendtoks \letvalue\v!mar \itemgroupmargin \to \itemgroupcommands
+% todo : \startitem .. \stopitem
+
+% quick hack ...
+
+\def\v!item{item}
+
+\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
@@ -587,13 +605,33 @@
% \headsym{xx} test \par test
% \stopitemize
+\appendtoks \let\headsym \itemgroupheadsym \to \itemgroupcommands
+
\def\itemgroupheadsym#1%
{\def\symsymbol{\doitemattributes\itemlevel\c!symstyle\c!symcolor{#1}}%
- \symbolitemtrue
- \headitemtrue
+ \settrue\symbollistitem
+ \settrue\headlistitem
\doitemgrouphead}
-\appendtoks \let\headsym \itemgroupheadsym \to \itemgroupcommands
+% \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{\doitemattributes\itemlevel\c!headstyle\c!headcolor{#1}}%
+ \settrue\symbollistitem
+ \settrue\txtlistitem
+ \itemgroupitem}
\def\itembreak % -10
{\flushnotes\penalty-5\relax}
@@ -601,15 +639,26 @@
\def\itemnobreak % +5
{\flushnotes\penalty+5\ifinsidecolumns\else00\fi\relax}
+\def\dodotxtitem
+ {\scratchdimen\wd8
+ \advance \scratchdimen \getitemparameter\itemlevel\c!distance\relax
+ \ifdim\scratchdimen>\dimen0
+ \advance\scratchdimen -\dimen0
+ \else
+ \scratchdimen\z@
+ \fi
+ \llap{\hbox to \dimen0{\ifconditional\sublistitem\llap{+}\fi\box8\hfill}}%
+ \hskip\scratchdimen}
+
\def\dolistitem % evt aantal items opslaan per niveau, scheelt zoeken
- {\iftextitems
+ {\ifconditional\textlistitem
% begin of item
\else
\par
\fi
- \ignorespaces
+% \ignorespaces
\increment\noflistelements
- \ifnum\itemcolumndepth=\zerocount \ifoptimizeitems
+ \ifnum\itemcolumndepth=\zerocount \ifconditional\optimizelistitem
\ifnum\noflistelements=\plusone % tgv bv kolommen/nesting
\findtwopassdata\s!list{\noflists:}% % wordt soms de volgorde
\fi % verstoord, vandaar \find
@@ -623,7 +672,7 @@
\fi
\else\ifnum\twopassdata>3
\ifnum\noflistelements=2
- \ifitemintro
+ \ifconditional\introlistitem
\doitembreak\nobreak
\else
\doitembreak\itemnobreak
@@ -633,20 +682,26 @@
\else\ifnum\noflistelements>2
\doitembreak\itembreak
\else
- \ifitemintro\else\doitembreak\itembreak\fi
+ \ifconditional\introlistitem\else\doitembreak\itembreak\fi
\fi\fi\fi
\fi\fi
\fi
\fi\fi
\noindent
\setbox8\hbox
- {\ifheaditem
- \doitemattributes\itemlevel\c!headstyle\c!headcolor{\listitem}%
- \else\ifsymbolitem
- \symsymbol
+ {\ifconditional\headlistitem
+ \ifconditional\symbollistitem
+ \symsymbol
+ \else
+ \doitemattributes\itemlevel\c!headstyle\c!headcolor{\listitem}%
+ \fi
\else
- \doitemattributes\itemlevel\c!style\c!color{\listitem}%
- \fi\fi}%
+ \ifconditional\symbollistitem
+ \symsymbol % no attributes, why?
+ \else
+ \doitemattributes\itemlevel\c!style\c!color{\listitem}%
+ \fi
+ \fi}%
\doifsomething\somdestination
{\setbox8\hbox{\goto{\box8}[\somdestination]}}%
\globallet\somdestination\empty
@@ -655,35 +710,35 @@
\ht8=\strutheight
\dp8=\strutdepth
% so that content differs per run (esp mp graphics afterwards)
-\checkforrepeatedlistitem
+ \checkforrepeatedlistitem
\ifdim\dimen2<\zeropoint\relax
- \llap{\ifsubitem\llap{+}\fi\box8\hskip\leftmargindistance}%
+ \llap{\ifconditional\sublistitem\llap{+}\fi\box8\hskip\leftmargindistance}%
\else
\ifdim\dimen2=\zeropoint\relax
\calculatelistwidth1{\dimen0}%
\else
\calculatelistwidth\itemlevel{\dimen0}%
\fi
- \iftextitems
- \hbox{\ifsubitem+\fi\box8\hskip\fontdimen2\font}\nobreak
+ \ifconditional\textlistitem
+ \hbox{\ifconditional\sublistitem+\fi\box8\hskip\fontdimen2\font}\nobreak
+ \else\ifconditional\inlinelistitem
+ \hbox to \dimen0{\ifconditional\sublistitem\llap{+}\fi\box8\hfill}%
+ \else\ifconditional\txtlistitem
+ \dodotxtitem
\else
- \ifconditional\inlinelistitem
- \hbox to \dimen0{\ifsubitem\llap{+}\fi\box8\hfill}%
- \else
- % todo: align+marge binnen de hbox
- \llap{\hbox to \dimen0{\ifsubitem\llap{+}\fi\box8\hfill}}%
- \fi
- \fi
+ % todo: align+marge binnen de hbox
+ \llap{\hbox to \dimen0{\ifconditional\sublistitem\llap{+}\fi\box8\hfill}}%
+ \fi\fi\fi
\fi
-\forceunexpanded % needed for m conversion (\os) / i need to look into this
+ \forceunexpanded % needed for m conversion (\os) / i need to look into this
\setevalue{\@@currentitemsymbol\itemlevel}%
{\getvalue{\@@localitemsymbol\itemlevel}}% still problems with \uchar ?
%{\noexpand\getvalue{\@@localitemsymbol\itemlevel}}% no, spoils subrefs
\resetunexpanded
- \headitemfalse
- \subitemfalse
- \symbolitemfalse
- \EveryPar{\ignorespaces}%
+ \setfalse\headlistitem
+ \setfalse\sublistitem
+ \setfalse\symbollistitem
+ \EveryPar{\ignorespaces}% needed ?
\ignorespaces}
% For Frank Grieshaber and Mojca Miklavec:
@@ -691,31 +746,55 @@
\newconditional\repeatlistitem
\def\checkforrepeatedlistitem
- {\ifnum\itemlevel=\plusone \ifnum\itemlevel=\plusone
+ {\ifnum\itemlevel=\plusone
\initializeboxstack{item}%
- \fi \fi
+ \fi
\ifconditional\repeatlistitem
- \savebox{item}{\itemlevel}{\hbox{\ifnum\itemlevel>\plusone \copy8\else\fi}}%
- \setbox8\hbox
- {\setbox\scratchbox\hbox{\foundbox{item}{\itemlevel}}%
+ \savebox{item}{\itemlevel}{\hbox{\copy8}}%
+ \setbox8\hbox to \wd8
+ {\setbox\scratchbox\hbox
+ {\scratchcounter\itemlevel
+ \advance\scratchcounter\minusone
+ \dorecurse\scratchcounter{\foundbox{item}{\recurselevel}}}%
\ifnum\itemlevel>\plusone
- \hskip-\wd\scratchbox
- \ifnum\countervalue{\@@itemcounter\itemlevel}>\plusone
- \llap{\box\scratchbox}%
+ \ifdim\wd\scratchbox>\zeropoint
+ \hskip-\dimen2
+ \box\scratchbox
\fi
\fi
- \box8}%
+ \box8 }%
\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]%
- {\iftextitems
+ {\ifconditional\textlistitem
% begin of item
\else
\par
\fi
- \ignorespaces
+% \ignorespaces
\ifconditional\concatnextitem % new, concat
\doitembreak\nobreak % new, concat
\fi % new, concat
@@ -723,18 +802,18 @@
\ifnum\itemcolumndepth=0\relax\ifnum\noflistelements>0\relax
\doitembreak\nobreak
\fi\fi
- \iffirstlist
- \firstlistfalse
+ \ifconditional\firstlistitem
+ \setfalse\firstlistitem
\begingroup
\ifcase\itemlevel
\or % 1
\ifnum\itemcolumndepth=0\relax
- \ifitemintro\doitembreak\nobreak\fi
+ \ifconditional\introlistitem\doitembreak\nobreak\fi
\getitemparameter1\c!before
- \ifitemintro\doitembreak\nobreak\fi
+ \ifconditional\introlistitem\doitembreak\nobreak\fi
\fi
\else % 2 en hoger
- \ifparagraphitems \else
+ \ifconditional\paragraphlistitem \else
\let\previtemlevel\itemlevel
\decrement\previtemlevel
\ifcase\autoitemgroupspacing\relax % nieuw
@@ -756,9 +835,10 @@
\vskip-\lineheight % new, concat
\nobreak % new, concat
\fi % new, concat
- \ignorespaces
+% \ignorespaces
\dolistitem
- \ifpackeditems
+ \relax
+ \ifconditional\packlistitem
\setupwhitespace[\v!none]%
\fi
\getitemparameter\itemlevel\c!inner
@@ -773,11 +853,27 @@
\strut % added 11-08-99
\setfalse\concatnextitem % new, concat
\hskip\itemsignal % new, concat
+ \getitemparameter\itemlevel\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[]\ignorespaces\begstrut#2\unskip\endstrut\par
+ {\startitemgroup[#1]%
+ \complexdoitemgroupitem[]\begstrut#2\endstrut\par
\stopitemgroup}
\definecomplexorsimpleempty\item
@@ -785,24 +881,24 @@
\def\complexhead[#1]#2\par#3\par
{\startitemgroup[#1]%
- \complexdoitemgrouphead[]\ignorespaces#2\par#3\par
+ \complexdoitemgrouphead[]\begstrut#2\endstrut\par\begstrut#3\endstrut\par
\stopitemgroup}
% \def\complexdoitemgrouphead[#1]#2\par% % beter in \complexdosom hangen met een if
-% {\iffirstlist\else\doitembreak\allowbreak\fi
-% \ifpackeditems\else\getitemparameter\itemlevel\c!beforehead\fi
-% \iffirstlist\ifitemintro\else\ifcase\itemlevel % incr in \complexdosom
+% {\ifconditional\firstlistitem\else\doitembreak\allowbreak\fi
+% \ifconditional\packlistitem\else\getitemparameter\itemlevel\c!beforehead\fi
+% \ifconditional\firstlistitem\ifconditional\introlistitem\else\ifcase\itemlevel % incr in \complexdosom
% \doitembreak\allowbreak
% \fi\fi\fi
% \complexdoitemgroupitem[#1]{\doitemattributes\itemlevel\c!headstyle\c!headcolor
% {\ignorespaces#2}}%
-% \iftextitems
+% \ifconditional\textlistitem
% \removeunwantedspaces\space\ignorespaces
% \else
% \par
% \fi
% \doitembreak\nobreak
-% \ifpackeditems\else\getitemparameter\itemlevel\c!afterhead\fi
+% \ifconditional\packlistitem\else\getitemparameter\itemlevel\c!afterhead\fi
% \doitembreak\nobreak
% \noindentation}
%
@@ -812,9 +908,9 @@
\def\dostopitemattributes {\dostopattributes}
\def\complexdoitemgrouphead[#1]% beter in \complexdosom hangen met een if
- {\iffirstlist\else\doitembreak\allowbreak\fi
- \ifpackeditems\else\getitemparameter\itemlevel\c!beforehead\fi
- \iffirstlist\ifitemintro\else\ifcase\itemlevel % incr in \complexdosom
+ {\ifconditional\firstlistitem\else\doitembreak\allowbreak\fi
+ \ifconditional\packlistitem\else\getitemparameter\itemlevel\c!beforehead\fi
+ \ifconditional\firstlistitem\ifconditional\introlistitem\else\ifcase\itemlevel % incr in \complexdosom
\doitembreak\allowbreak
\fi\fi\fi
\complexdoitemgroupitem[#1]%
@@ -827,13 +923,13 @@
{\removeunwantedspaces
\dostopitemattributes
\egroup
- \iftextitems
+ \ifconditional\textlistitem
\space\ignorespaces
\else
\par
\fi
\doitembreak\nobreak
- \ifpackeditems\else\getitemparameter\itemlevel\c!afterhead\fi
+ \ifconditional\packlistitem\else\getitemparameter\itemlevel\c!afterhead\fi
\doitembreak\nobreak
\noindentation}
@@ -895,6 +991,7 @@
\c!righttext=),
\c!start=1,
\c!option=,
+ \c!command=\defaultitemcommand,
\c!symbol=\itemlevel] % \v!niveau
\def\defineitemgroup
diff --git a/Master/texmf-dist/tex/context/base/core-job.tex b/Master/texmf-dist/tex/context/base/core-job.tex
index 0a398f462de..03d91f5a45e 100644
--- a/Master/texmf-dist/tex/context/base/core-job.tex
+++ b/Master/texmf-dist/tex/context/base/core-job.tex
@@ -54,7 +54,7 @@
{% #1=\readlocfile|\readsetfile{dir} #2=filename
% #1{#2}\donothing\donothing
#1{#2}\donothing{\readfile{#2}\donothing\donothing}}
-
+
\def\processfile#1%
{\ifx\allinputpaths\empty
\def\next{\processlocalfile\readlocfile}%
@@ -74,6 +74,22 @@
\fi
\next{#1}}
+\def\doifinputfileelse#1% rarely used
+ {\ifx\allinputpaths\empty
+ \@EA\secondoftwoarguments
+ \else
+ \let\filepath\empty
+ \def\docommando##1%
+ {\doiffileelse{\pathplusfile{##1}{#1}}{\donetrue\def\filepath{##1}}\donefalse
+ \ifdone\expandafter\quitcommalist\fi}%
+ \processcommacommand[.,\allinputpaths]\docommando
+ \ifx\filepath\empty
+ \@EAEAEA\secondoftwoarguments
+ \else
+ \@EAEAEA\firstoftwoarguments
+ \fi
+ \fi}
+
\let\allinputpaths\empty
% \def\usepath[#1]%
@@ -147,6 +163,8 @@
\processcommacommand[\@@svdirectory]\doloadsystemfile
\fi}
+\ifx\disableXML\undefined \let\disableXML\relax \fi
+
\def\loadsystemfiles
{\reportprotectionstate
\readsysfile\f!newfilename
@@ -160,7 +178,10 @@
\loadallsystemfiles\f!sysfilename
{\loadallsystemfiles{\f!sysfilename.rme}\donothing % new, fall back
\doglobal\appendtoks
+ \bgroup
+ \disableXML
\loadallsystemfiles\f!errfilename\donothing
+ \egroup
\to\everygoodbye}}
%\loadallsystemfiles\f!modfilename
@@ -332,13 +353,21 @@
% \expandafter\endinput
% \fi}
-\let\currentcomponent\v!text
+\let\currentcomponent \v!text
+\let\currentcomponentpath\f!currentpath
\def\donextlevel#1#2#3#4#5#6#7\\%
{\pushmacro\currentcomponent
- \let\currentcomponent#1
+ \pushmacro\currentcomponentpath
+ \let\currentcomponent#1%
\setsystemmode\currentcomponent
- \beforesplitstring#7\at.\to#2\relax
+ \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}}%
@@ -350,7 +379,8 @@
\fullexpandoneargafter\addtocommalist{#1}\loadedfiles}
\def\doprevlevel
- {\popmacro\currentcomponent
+ {\popmacro\currentcomponentpath
+ \popmacro\currentcomponent
\setsystemmode\currentcomponent
\ifnum\filelevel=\plusone
\expandafter\stoptext
@@ -426,7 +456,7 @@
\currentcomponent,\currentenvironment}
{\loadedlocalenvironments}
{\letvalue{\e!stop\v!localenvironment}\relax}
- {\grabuntil{\e!stop\v!localenvironment}\relax}}
+ {\grabuntil{\e!stop\v!localenvironment}\gobbleoneargument}} % TH: fixed, was \relax
\setvalue{\v!localenvironment}#1 {\doexecutefileonce{#1}}
@@ -454,23 +484,23 @@
\def\executesystemcommand{\immediate\write18}
% soon, when pdftex 1.22 is out in the field:
-%
-% \chardef\systemcommandmode\zerocount % 0=unknown 1=disabled 2=enabled
-%
-% \ifx\pdftexversion\undefined \else \ifnum\number\pdftexversion>122
-% \prependtoks
-% \chardef\systemcommandmode \ifeof18 \plusone \else \plustwo \fi
-% \to \everyjob
-% \fi
-%
-% maybe in meta-ini
-%
-% \appendtoks
-% \ifrunMPgraphics \ifcase\systemcommandmode \or
-% \writestatus\m!systems{system commands are disabled}%
-% \runMPgraphicsfalse
-% \fi \fi
-% \to \everyjob
+
+\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
diff --git a/Master/texmf-dist/tex/context/base/core-lnt.tex b/Master/texmf-dist/tex/context/base/core-lnt.tex
index 9c215c992d4..b19019bb825 100644
--- a/Master/texmf-dist/tex/context/base/core-lnt.tex
+++ b/Master/texmf-dist/tex/context/base/core-lnt.tex
@@ -106,6 +106,8 @@
% \stoplinenumbering
% \stopbuffer
%
+% \setupnotedefinition[linenote] [location=serried,distance=.5em]
+%
% {\typebuffer[test] \getbuffer[test]} \page
%
% \startbuffer[setup]
diff --git a/Master/texmf-dist/tex/context/base/core-lst.tex b/Master/texmf-dist/tex/context/base/core-lst.tex
index d3a5ebdb4d1..8029d4fe15b 100644
--- a/Master/texmf-dist/tex/context/base/core-lst.tex
+++ b/Master/texmf-dist/tex/context/base/core-lst.tex
@@ -141,24 +141,63 @@
\addutilityreset{listentries}
-\setvalue{\??li\c!alternative a}% nr - tit - pag
-% {\def\listfill {\hskip 1.75em}% was \hskip.5em\hskip 1.25em
- {\def\listfill {\hskip .25em}% omdat nu check
- \def\listskip {0em}%
- \def\listwidth{2em}}
-
-\setvalue{\??li\c!alternative b}% nr - tit - fill - pag
- {\def\listfill {\hfill}% was \hskip.5em\hfill
- \def\listskip {5em}%
- \def\listwidth{2em}}
-
-\setvalue{\??li\c!alternative c}% nr - tit - dots - pag
- {\def\listfill {\hskip.5em\listdots\hskip.5em}%
- \def\listskip {5em}%
- \def\listwidth{0pt}}
+% old values:
+%
+% a: \def\listfill {\hskip 1.75em}
+% b: \def\listfill {\hskip.5em\hfill}
+% c: \def\listfill {\hskip.5em\listdots\hskip.5em}
+
+% todo: interface them
+
+% \setvalue{\??li\c!alternative a}% nr - tit - pag
+% {\def\listfill {\hskip.25em\relax}%
+% \def\listskip {0pt}%
+% \def\listwidth {2em}%
+% \def\liststretch{10em}}
+
+% \setvalue{\??li\c!alternative b}% nr - tit - fill - pag
+% {\def\listfill {\hfill}%
+% \def\listskip {5em}%
+% \def\listwidth {2em}%
+% \def\liststretch{10em}}
+
+% \setvalue{\??li\c!alternative c}% nr - tit - dots - pag
+% {\def\listfill {\hskip.5em\listdots\hskip.5em\relax}%
+% \def\listskip {5em}%
+% \def\listwidth {0pt}%
+% \def\liststretch{10em}}
+
+\def\listalternativeparameter#1%
+ {\csname\??li\??li\listparameter\c!alternative#1\endcsname}
+
+\def\setuplistalternative[#1]%
+ {\dodoubleargument\getparameters[\??li\??li#1]}
+
+ % \listfill cum suis will be replaced by the direct call
+
+\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}
+% \starttext
+% \placelist[section][alternative=c]
+% \setuplistalternative[c][distance=1em,stretch=0em]
+% \placelist[section][alternative=c]
+% \section{test}
+% \section{\readfile{tufte}{}{}}
+% \stoptext
+
\setvalue{\??li\c!alternative}{\getvalue{\??li\c!alternative b}}
\getvalue{\??li\c!alternative}
@@ -282,7 +321,7 @@
\dosetlistmode
\endgroup}
-% the simple appreach:
+% the simple approach:
%
% \def\dosettoclevel#1#2%
% {\dosetfilterlevel{\getvalue{#1#2\c!criterium}}\empty}
@@ -404,7 +443,7 @@
{\let\splitlistsymbol\currentlistnumber}}% geen \edef ivm enz
\doif{\listparameter\c!label}\v!yes{\leftlabeltext\currentlist}%
\strut
- \def\numberseparator{\listparameter\c!separator}%
+ \def\numberseparator{\listparameter\c!separator}% overloaded, todo
\@EA\dohandlelistnumber\@EA{\splitlistsymbol}%
\listparameter\c!stopper
\doif{\listparameter\c!label}\v!yes{\rightlabeltext\currentlist}}
@@ -591,17 +630,15 @@
{\forgetall
\dostartlistattributes\c!style\c!color\empty
\!!widthb\hsize
-\doifelse{\listparameter\c!headnumber}\v!yes{%
- \setbox2\hbox \ifdim\!!widtha>\zeropoint to \!!widtha \fi
- {\makelistelement\v!sectionnumber
- {\donestedlistattributes\c!numberstyle\c!numbercolor
- {\listparameter\c!numbercommand{\currentlistsymbol}}%
- \hfill}}%
-}{%
- \!!widtha\zeropoint
- \!!widthc\zeropoint
- \setbox2\hbox{}%
-}%
+ \doifelse{\listparameter\c!headnumber}\v!yes
+ {\setbox2\hbox \ifdim\!!widtha>\zeropoint to \!!widtha \fi
+ {\makelistelement\v!sectionnumber
+ {\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
@@ -625,7 +662,7 @@
% we kunnen gewoon afbreken aan het eind
\else
\ifdim\listskip>\zeropoint\relax
- \rightskip\listskip\!!plus10em\relax
+ \rightskip\listskip\!!plus\liststretch\relax
\parfillskip-\rightskip
\fi
\fi
@@ -1040,10 +1077,10 @@
\setvalue{\e!complete#1}%
{\dodoubleempty\docompletecombinedlist[#1]}}
-\def\definecombinedlist%
+\def\definecombinedlist
{\dotripleempty\dodefinecombinedlist}
-\def\placecombinedlist%
+\def\placecombinedlist
{\dodoubleempty\doplacecombinedlist}
% new and yet undocumented (used in cocoa qa)
diff --git a/Master/texmf-dist/tex/context/base/core-mak.tex b/Master/texmf-dist/tex/context/base/core-mak.tex
index 68315ea5715..761f83156c7 100644
--- a/Master/texmf-dist/tex/context/base/core-mak.tex
+++ b/Master/texmf-dist/tex/context/base/core-mak.tex
@@ -48,24 +48,6 @@
\def\doplacement
{\dodoubleempty\dodoplacement}
-% \def\dodoplacement[#1][#2]% correctie moet mooier
-% {\bgroup
-% \dowithnextbox
-% {\setlocalhsize
-% \getparameters[#1][#2]%
-% \getvalue{#1\c!voor}%
-% \doifvalue{#1\c!regelcorrectie}\v!aan \startbaselinecorrection
-% \doifinset{\getvalue{#1\c!marge}}{\v!standaard,\v!ja}\noindent
-% \hbox to \localhsize
-% {\getvalue{#1\c!links}%
-% \flushnextbox
-% \getvalue{#1\c!rechts}}%
-% \doifvalue{#1\c!dieptecorrectie}\v!aan\baselinecorrection
-% \doifvalue{#1\c!regelcorrectie }\v!aan\stopbaselinecorrection
-% \getvalue{#1\c!na}%
-% \egroup}
-% \vbox}
-
\def\dodoplacement[#1][#2]% correctie moet mooier
{\bgroup
\dowithnextboxcontent
diff --git a/Master/texmf-dist/tex/context/base/core-mar.tex b/Master/texmf-dist/tex/context/base/core-mar.tex
index cdc09838e03..257c3dc4cc0 100644
--- a/Master/texmf-dist/tex/context/base/core-mar.tex
+++ b/Master/texmf-dist/tex/context/base/core-mar.tex
@@ -36,12 +36,12 @@
\beginTEX
\def\mainmarking#1%
- {\@EA\ifx\csname\??mk#1\c!coupling\endcsname\else
+ {\@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\else
+ {\@EA\ifx\csname\??mk#1\c!coupling\endcsname\relax\else
\@EA\resetmark\csname\??mk\csname\??mk#1\c!coupling\endcsname\endcsname
\fi}
@@ -103,14 +103,17 @@
\ifx\decouplemarking\undefined \def\decouplemarking[#1]{} \fi
+\let\alldefinedmarks\empty
+
\def\dododefinemarking[#1][#2]%
{\getparameters[\??mk#1]
- [\c!expansion=\v!no, % saves a macro
- \c!separator={ --- }, % watch the spaces
+ [\c!expansion=\v!no, % saves a macro
+ \c!separator={\space\emdash\space},
\c!limittext=\@@kolimittext,
\c!state=\v!start]%
\decouplemarking[#1]% % no coupling with sections
\setevalue{\??mk#1\c!coupling}{#2}%
+ \doglobal\addtocommalist{#2}\alldefinedmarks
\expandafter\newmark\csname\??mk#2\endcsname
\showmessage\m!systems{13}{#1,[#2]}}
@@ -138,71 +141,235 @@
{\doifdefinedelse{\??mk#1}}
% \def\fetchmark[#1][#2]% never \unexpanded
-% {\@EA\@EA\csname\??mk\??mk#2\endcsname
-% \csname\??mk\mainmarking{#1}\endcsname}
+% {\@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]% never \unexpanded
- {\@EA\ifx\csname\??mk#1\c!coupling\endcsname\else
- \@EA\@EA\csname\??mk\??mk#2\endcsname
- \csname\??mk\csname\??mk#1\c!coupling\endcsname\endcsname
+\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]% never \unexpanded
- {\ifcsname\??mk#1\c!coupling\endcsname
- % \@EA\@EA\csname\??mk\??mk#2\endcsname
- % \csname\??mk\csname\??mk#1\c!coupling\endcsname\endcsname
+\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\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
+\letvalue{\??mk::\??mk::\v!current }\fourthoffourarguments
+
+% 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
+
+\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]}}}
+
+% fetching
+
\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]}}}}
+ {\dofetchtwomarks[#1][#1]}
\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]}
+ {\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]}
+ {\getvalue{\??mk#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]\getvalue{\??mk#1\c!separator}}}}%
+ \fetchtwomarks[#1][#2]}
+
+% \newtoks \everymarking
+
+% \def\Interesting{\doifmodeelse{*\v!marking}{Interesting}{Boring}}
+% \setupheadertexts[chapter]
+% \starttext
+% \chapter{This Is \Interesting}
+% \stoptext
-\def\dogetmarking[#1][#2]%
+\def\dogetmarking[#1][#2][#3]%
{\doifvalue{\??mk#1\c!state}\v!start
{\bgroup
+ \setsystemmode\v!marking
+ \the\everymarking
%\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]}]%
+ \ifthirdargument
+ \processaction % slow
+ [#3]
+ [ \v!both=>{\dofetchtwomarks[#1][#1:#2]},
+ \v!all=>{\dofetchallmarks[#1][#1:#2]},
+ \s!default=>{\fetchmark [#1:#2][\v!first]},
+ \s!unknown=>{\fetchmark [#1:#2][#3]}]%
+ \else
+ \processaction % slow
+ [#2]
+ [ \v!both=>{\dofetchtwomarks[#1][#1]},
+ \v!all=>{\dofetchallmarks[#1][#1]},
+ \s!default=>{\fetchmark [#1][\v!first]},
+ \s!unknown=>{\fetchmark [#1][#2]}]%
+ \fi
\egroup}}
-\def\nogetmarking[#1][#2]%
+\def\nogetmarking[#1][#2][#3]%
{}
\unexpanded\def\getmarking
- {\dodoubleargument\dogetmarking}
+ {\dotripleargument\dogetmarking}
\let\setsomemark\setmark
\beginTEX
\def\domarking[#1]#2%
- {\@EA\ifx\csname\??mk#1\c!coupling\endcsname\else
+ {\@EA\ifx\csname\??mk#1\c!coupling\endcsname\relax\else
\bgroup
\doifelsevalue{\??mk#1\c!expansion}\v!yes
\expandmarkstrue\expandmarksfalse
diff --git a/Master/texmf-dist/tex/context/base/core-mat.tex b/Master/texmf-dist/tex/context/base/core-mat.tex
index 10f8d16f34a..72a620973bb 100644
--- a/Master/texmf-dist/tex/context/base/core-mat.tex
+++ b/Master/texmf-dist/tex/context/base/core-mat.tex
@@ -1,11 +1,11 @@
%D \module
%D [ file=core-mat,
-%D version=1998.12.07,
+%D version=2006.03.27, % 1998.12.07
%D title=\CONTEXT\ Core Macros,
%D subtitle=Math Fundamentals,
-%D author=Hans Hagen,
+%D author={Hans Hagen \& Taco Hoekwater},
%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%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
@@ -17,6 +17,32 @@
\unprotect
+% \definemessageconstant{math}
+
+% \startmessages all library: math
+% title: math
+% 1: don't use -- here (line \the\inputlineno)
+% \stopmessages
+
+% \def\invalidmathcommand#1{\showmessage\m!math1{#1}}
+
+% \let\normaleqno \eqno
+% \let\normalleqno\leqno
+
+% \appendtoks
+% \def\eqno {\invalidmathcommand{\string\eqno }}%
+% \def\leqno{\invalidmathcommand{\string\leqno}}%
+% \to \everydisplay
+
+% \appendtoks
+% \let\eqno\normaleqno
+% \let\leqno\normaleqno
+% \to \everymath
+
+% \placeformula\startformula
+% H(K|M,C) = H(K|C) - H(M|C)\eqno{\hbox{(\in{}[eq:keyapp])}}
+% \stopformula
+
\def\mathortext
{\ifmmode
\expandafter\firstoftwoarguments
@@ -129,7 +155,8 @@
[\c!text=\v!formula,
\c!way=\@@fmway,
\c!blockway=\@@fmblockway,
- \c!location=\v!intext]
+ \c!location=\v!intext,
+ \c!conversion=\@@fmconversion]
\def\setupformulas
{\dodoubleargument\getparameters[\??fm]}
@@ -137,6 +164,8 @@
\newconditional\handleformulanumber
\newconditional\incrementformulanumber
+\def\formuladistance{\formulaparameter\c!distance}
+
\def\dododoformulanumber#1#2#3#4% (#1,#2)=outer(ref,sub) (#3,#4)=inner(ref,sub)
{\hbox\bgroup
\ifconditional\handleformulanumber
@@ -150,22 +179,25 @@
\else
\let\hetsubnummer\empty
\fi
- \doifsomething{#1}{\rawreference{\s!for}{#1}{\hetnummer\hetsubnummer}}%
+ \doifsomething{#1}{\rawreference{\s!for}{#1}{\composedsectionnumber\hetsubnummer}}%
\setbox0\hbox{\ignorespaces#4\unskip}%
\ifdim\wd0>\zeropoint
\edef\hetsubnummer{#4}%
\fi
- \doifsomething{#3}{\rawreference\s!for{#3}{\hetnummer\hetsubnummer}}%
+ \doifsomething{#3}{\rawreference\s!for{#3}{\composedsectionnumber\hetsubnummer}}%
+ \doflushformulalistentry{\composedsectionnumber\hetsubnummer}%
\rm % nodig ?
+ \doif{\formulaparameter\c!location}\v!right{\hskip\formuladistance}%
\@@fmnumbercommand
{\dostartattributes\??fm\c!numberstyle\c!numbercolor
\strut
\@@fmleft
- \preparethenumber\??fm\hetnummer\preparednumber
+ \preparefullnumber\??fm\composedsectionnumber\preparednumber
\labeltexts\v!formula
{\ignorespaces\preparednumber\ignorespaces\hetsubnummer\unskip}%
\@@fmright
\dostopattributes}%
+ \doif{\formulaparameter\c!location}\v!left{\hskip\formuladistance}%
\fi
\egroup}
@@ -213,6 +245,7 @@
[\c!way=\@@nrway,
\c!blockway=,
\c!sectionnumber=\@@nrsectionnumber,
+ \c!conversion=\v!numbers,
\c!location=\v!right,
\c!left=(,
\c!right=),
@@ -268,7 +301,8 @@
\fi
\advance\displaywidth-\displayindent
\advance\displaywidth-\rightdisplayskip
- \advance\displaywidth-\rightdisplaymargin}
+ \advance\displaywidth-\rightdisplaymargin
+ \hsize\displaywidth} % new, else overfull in itemize
\newif\ifoptimizedisplayspacing
@@ -281,6 +315,13 @@
% 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
%
@@ -294,6 +335,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
\doifsomething{\formulaparameter\c!margin}% so we test first
{\dosetleftskipadaption{\formulaparameter\c!margin}%
\edef\leftdisplaymargin{\the\leftskipadaption}}% overloaded
@@ -333,7 +379,9 @@
\resetlastlinewidth
\nonoindentation
\dochecknextindentation{\??fm\currentformula}%
- \egroup}
+ \egroup
+ \setfalse\handleformulanumber
+ \dorechecknextindentation} % here ?
\newif\ifinformula
@@ -395,9 +443,9 @@
%\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
+ \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
@@ -519,22 +567,22 @@
% \defineformulaalternative[multi][\begindmath][\enddmath]
%
% \fakewords{20}{40}\epar
-% \plaatsformule {a} $$ \fakespacingformula $$
+% \placeformula {a} $$ \fakespacingformula $$
% \fakewords{20}{40}\epar
-% \plaatsformule {b} \startformule \fakespacingformula \stopformule
-% \plaatsformule {b} \startformule \fakespacingformula \stopformule
+% \placeformula {b} \startformule \fakespacingformula \stopformule
+% \placeformula {b} \startformule \fakespacingformula \stopformule
% \fakewords{20}{40}\epar
-% \plaatsformule {c} \startmdformule \fakespacingformula \stopmdformule
-% \plaatsformule {c} \startmdformule \fakespacingformula \stopmdformule
+% \placeformula {c} \startmdformule \fakespacingformula \stopmdformule
+% \placeformula {c} \startmdformule \fakespacingformula \stopmdformule
% \fakewords{20}{40}\epar
-% \plaatsformule {d} \startmpformule \fakespacingformula \stopmpformule
-% \plaatsformule {d} \startmpformule \fakespacingformula \stopmpformule
+% \placeformula {d} \startmpformule \fakespacingformula \stopmpformule
+% \placeformula {d} \startmpformule \fakespacingformula \stopmpformule
% \fakewords{20}{40}\epar
-% \plaatsformule {e} \startsdformule \fakespacingformula \stopsdformule
-% \plaatsformule {e} \startsdformule \fakespacingformula \stopsdformule
+% \placeformula {e} \startsdformule \fakespacingformula \stopsdformule
+% \placeformula {e} \startsdformule \fakespacingformula \stopsdformule
% \fakewords{20}{40}\epar
-% \plaatsformule {f} \startspformule \fakespacingformula \stopspformule
-% \plaatsformule {f} \startspformule \fakespacingformula \stopspformule
+% \placeformula {f} \startspformule \fakespacingformula \stopspformule
+% \placeformula {f} \startspformule \fakespacingformula \stopspformule
% \fakewords{20}{40}
% \convertcommand\next\to\ascii \getfirstcharacter\ascii
@@ -548,36 +596,123 @@
{\setfalse\incrementformulanumber
\dodoubleempty\doplaceformula}
+%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
+
+\definelist[\v!formula]
+
+\global\let\doflushformulalistentry\gobbleoneargument
+
+\def\setformulalistentry#1%
+ {\gdef\doflushformulalistentry##1%
+ {\expanded{\writetolist[\v!formula]{##1}}{#1}%
+ \global\let\doflushformulalistentry\gobbleoneargument}}
+
+\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\def\dostartformula####1{\relax}%
+% \ifx\next\bgroup
+% \@EA\moreplaceformula % [ref]{}
+% \else
+% \expandafter\convertargument\e!start\to\asciiA % actually, \next's meaning is \dostartformula
+% \expandafter\convertargument\next \to\asciiB
+% \ExpandBothAfter\doifincsnameelse\asciiA\asciiB
+% {\egroup \@EA\dodoplaceformula}% [ref]\start
+% {\egroup \@EA\dispplaceformula}% [ref]$$
+% \fi[#1]{}}%
+% \futurelet\next\redoplaceformula}
+%
+% \long\def\moreplaceformula[#1]#2#3#4% #2 dummy #4 gobbles spaces
+% {\def\redoplaceformula
+% {\expandafter\convertargument\e!start\to\asciiA
+% \expandafter\convertargument\next \to\asciiB
+% \ExpandBothAfter\doifincsnameelse\asciiA\asciiB
+% {\egroup \dodoplaceformula}% [ref]\start
+% {\egroup \dispplaceformula}% [ref]$$
+% [#1]{#3}}%
+% \futurelet\next\redoplaceformula#4}
+%
+% BEGIN OF PATCH (CORE-MAT.TEX)
+
\def\doplaceformula[#1][#2]% #2 = dummy, gobbles spaces
- {\def\redoplaatsformule
- {\bgroup\def\dostartformula####1{\relax}%
+ {\def\redoplaceformula
+ {\bgroup
\ifx\next\bgroup
- \@EA\moreplaatsformule % [ref]{}
+ \egroup \@EA\moreplaceformula % [ref]{}
\else
- \expandafter\convertargument\e!start\to\asciiA
- \expandafter\convertargument\next \to\asciiB
- \ExpandBothAfter\doifincsnameelse\asciiA\asciiB
- {\egroup \@EA\dodoplaceformula}% [ref]\start
- {\egroup \@EA\dispplaatsformule}% [ref]$$
+ \def\nextnext{$}%
+ \ifx\next\nextnext
+ \egroup \@EAEAEA\dispplaceformula % [ref]$$
+ \else
+ \egroup \@EAEAEA\dodoplaceformula % [ref]\start
+ \fi
\fi[#1]{}}%
- \futurelet\next\redoplaatsformule}
-
-\long\def\moreplaatsformule[#1]#2#3#4% #2 dummy #4 gobbles spaces
- {\def\redoplaatsformule
- {\expandafter\convertargument\e!start\to\asciiA
- \expandafter\convertargument\next \to\asciiB
- \ExpandBothAfter\doifincsnameelse\asciiA\asciiB
- {\egroup \dodoplaceformula}% [ref]\start
- {\egroup \dispplaatsformule}% [ref]$$
+ \futurelet\next\redoplaceformula}
+
+\long\def\moreplaceformula[#1]#2#3#4% #2 dummy #4 gobbles spaces
+ {\def\redoplaceformula
+ {\bgroup
+ \def\nextnext{$}%
+ \ifx\next\nextnext
+ \egroup \@EA\dispplaceformula % [ref]$$
+ \else
+ \egroup \@EA\dodoplaceformula % [ref]\start
+ \fi
[#1]{#3}}%
- \futurelet\next\redoplaatsformule#4}
+ \futurelet\next\redoplaceformula#4}
+
+% END OF PATCH
-\def\dispplaatsformule[#1]#2$$#3$$%
+\def\startformulas#1\stopformulas % new / to be internationalized
+ {\bgroup
+ \forgetdisplayskips
+ \startdisplaymath
+ \setlocalhsize
+ \long\def\startformula##1\stopformula{\advance\scratchcounter\plusone}%
+ \scratchcounter\zerocount #1% preroll
+ \divide \hsize \scratchcounter
+ \hbox to \localhsize \bgroup
+ \hss
+ \def\normalstartformula{\vskip-\strutdepth$$}% i hate this
+ \def\normalstartformula{\vskip-\strutdepth$$}% i hate this
+ \def\normalstopformula {$$}%
+ \def\startformula{$\vcenter\bgroup\normalstartformula}%
+ \def\stopformula {\normalstopformula\egroup$\hss}%
+ #1%
+ \egroup
+ \stopdisplaymath
+ \egroup}
+
+\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
{\doifelse{#1}{-}
{\setfalse\handleformulanumber}
@@ -588,6 +723,9 @@
\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}%
@@ -598,7 +736,8 @@
{\normalreqno{\doformulanumber[#1][#2][]{}}}}%
\else
\def\formulanumber{\doformulanumber[#1][#2]}%
- \global\let\subformulanumber\doformulanumber
+ \let\donestedformulanumber\gobbletwoarguments
+ \let\subformulanumber\doformulanumber % was \global
\global\let\doplaceformulanumber\empty
\fi}
@@ -615,7 +754,7 @@
\def\resetdisplaymatheq
{\let\normalleqno\relax \let\leqno\relax
\let\normalreqno\relax \let\eqno \relax
- \let\doplaceformulanumber\relax}
+ \let\doplaceformulanumber\empty}
\let\normaldispl@y\displ@y
@@ -644,8 +783,47 @@
\def\mathhbox
{\iftracemath\ruledhbox\else\hbox\fi}
-\def\startmathbox#1#2%
+% \def\startmathbox#1#2%
+% {\hsize\displaywidth
+% \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
+% \mathhbox to \displaywidth\bgroup
+% \mathinnerstrut
+% $\displaystyle
+% \ifx\@leqno\empty\else \ifcase#2
+% \rlap{\@leqno}%
+% \else
+% \@leqno\hskip\formulaparameter\c!distance
+% \fi \fi
+% #1}
+
+% \def\stopmathbox#1#2%
+% {$#1%
+% \ifx\@eqno\empty\else \ifcase#2
+% \llap{\@eqno}%
+% \else
+% \hskip\formulaparameter\c!distance\@eqno
+% \fi \fi
+% \egroup}
+
+% \defineinnermathhandler\v!right {\startmathbox\empty1}{\stopmathbox\hfill0}
+% \defineinnermathhandler\v!left {\startmathbox\hfill0}{\stopmathbox\empty1}
+% \defineinnermathhandler\v!middle{\startmathbox\hfill0}{\stopmathbox\hfill0}
+
+\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
@@ -653,28 +831,74 @@
\let\normalleqno\leqno
% added
\doplaceformulanumber
- \mathhbox to \displaywidth\bgroup
+ \setbox\scratchbox\mathhbox to \displaywidth\bgroup
\mathinnerstrut
- $\displaystyle
- \ifx\@leqno\empty\else \ifcase#2
- \rlap{\@leqno}%
- \else
- \@leqno\hskip\formulaparameter\c!distance
- \fi \fi
- #1}
-
-\def\stopmathbox#1#2%
- {$#1%
- \ifx\@eqno\empty\else \ifcase#2
+ $%
+ \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
- \hskip\formulaparameter\c!distance\@eqno
- \fi \fi
+ \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!right{\startmathbox\empty1}{\stopmathbox\hfill0}
-\defineinnermathhandler\v!left {\startmathbox\hfill0}{\stopmathbox\empty1}
-\defineinnermathhandler\v!middle{\startmathbox\hfill0}{\stopmathbox\hfill0}
+\defineinnermathhandler\v!left {\startmathbox\plusone }{\stopmathbox}
+\defineinnermathhandler\v!middle{\startmathbox\plustwo }{\stopmathbox}
+\defineinnermathhandler\v!right {\startmathbox\plusthree}{\stopmathbox}
%D [The examples below are in english and don't process in the
%D documentation style, which will be english some day.]
@@ -1421,6 +1645,833 @@
\appendtoks \let\text\mathtext \to \everymathematics
%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
+ \expanded{\scratchtoks{\the\scratchtoks\the\!!toksa}}%
+ \dorecurse{\numexpr\mathalignmentparameter\c!n-\plusone\relax}
+ {\expanded{\scratchtoks{\the\scratchtoks\the\!!toksb}}}}%
+ \expanded{\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
+% {\!!toksa{\strut\hfil$\displaystyle{##}$}%
+% \!!toksb{&$\displaystyle{{}##{}}$\hfil}%
+% \!!toksc\emptytoks
+% \buildeqalign
+% \null\,\vcenter
+% {\openup.25\bodyfontsize% was: \openup\jot
+% \mathsurround\zeropoint
+% \expandafter \ialign \expandafter {\the\scratchtoks\crcr#1\crcr}%
+% }\,}
+
+\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}%
+% \!!toksc{\hfil\tabskip\centering&\llap{\span\textineqalign{##}}\tabskip\zeropoint}%
+% \buildeqalign
+% \presetdisplaymath
+% \tabskip\centering}
+
+% \def\prepareleqalignno
+% {\!!toksa{\strut\firstineqalign\hfil\leftofeqalign\span\mathineqalign{##}\rightofeqalign\tabskip\zeropoint}%
+% \!!toksb{&\nextineqalign\leftofeqalign\span\mathineqalign{##}\rightofeqalign\tabskip\zeropoint}%
+% \!!toksc{\hfil\tabskip\centering&\kern-\displaywidth\rlap{\span\textineqalign{##}}\tabskip\displaywidth}%
+% \buildeqalign
+% \presetdisplaymath
+% \tabskip\centering}
+
+\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 % \let\doplaceformulanumber\relax % strange hack
+% \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\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\@@fmlocation\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]%
+% {\doifsomething{#1}
+% {\doifelse{#1}{+}
+% {\doformulanumber[][#2][]{}}
+% {\doformulanumber[#1][#2][]{}}}%
+% \crcr}
+
+\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)
+
+% \def\startsplit
+% {\startalign[*]} % no number by default
+%
+% \def\stopsplit
+% {&\doalignNR[+][]\crcr % for a number on last line
+% \stopalign}
+
+%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
+ \expanded{\scratchtoks{\the\scratchtoks\the\!!toksa}}%
+ \dorecurse{\numexpr\scratchcounter-\plusone\relax}
+ {\expanded{\scratchtoks{\the\scratchtoks\the\!!toksb}}}%
+ \expanded{\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\dostartmathmatrix[#1][#2]%
+ {\begingroup
+ \edef\currentmathmatrix{#1}%
+ \doifassignmentelse{#2}{\setupmathmatrix[#1][#2]}\donothing
+ \null
+ \mathmatrixparameter\c!left
+ \processaction
+ [\mathmatrixparameter\c!location]
+ [ \v!high=>\let\vchbox\vtop,
+ \v!low=>\let\vchbox\vbox,
+ \v!lohi=>\let\vchbox\vcenter,
+ \v!top=>\let\vchbox\vtop,
+ \v!bottom=>\let\vchbox\vbox,
+ \s!default=>\let\vchbox\vcenter,
+ \s!unknown=>\let\vchbox\vcenter]%
+ \vchbox\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>\scratchcounter \eqaligncolumn \else \plusone \fi
+ \global\eqaligncolumn\plusone
+ \preparemathmatrix } % uses scratchcounter
+
+\def\dostopmathmatrix
+ {\crcr
+ \mathstrut\crcr
+ \noalign{\kern-\baselineskip}%
+ \egroup
+ \popmacro\domatrixNC
+ \egroup
+ \mathmatrixparameter\c!right
+ \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 \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 {startintertext}
+%D
+%D Preliminary feature:
+%D
+%D {\em example code}
+
+% \def\startintertext#1\stopintertext
+% {\noalign{\dointertext{#1}}\NR}
+
+% \unexpanded\def\dointertext#1%
+% {\penalty\postdisplaypenalty
+% \afterdisplayspace % the matching \before... is not needed
+% \vbox{\forgetall\noindent#1\par}%
+% \penalty\postdisplaypenalty}
+
+\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 {frac, xfrac, xxfrac}
%D
%D This is another one Tobias asked for. It replaces the
@@ -1595,6 +2646,21 @@
\def\positive {\doraisedmathord{positive}}
\def\zeroamount{\donumbermathord{zeroamount}}
+%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{\rm#1}\nolimits}
+
%D How negative such a symbol looks is demonstrated in:
%D $\negative 10^{\negative 10^{\negative 10}}$.
diff --git a/Master/texmf-dist/tex/context/base/core-mis.tex b/Master/texmf-dist/tex/context/base/core-mis.tex
index acd84554e7f..0b103243656 100644
--- a/Master/texmf-dist/tex/context/base/core-mis.tex
+++ b/Master/texmf-dist/tex/context/base/core-mis.tex
@@ -52,6 +52,7 @@
% 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.
@@ -88,7 +89,8 @@
\appendtoks \def\MetaPost{MetaPost}\to\simplifiedcommands
\appendtoks \def\MetaFont{MetaFont}\to\simplifiedcommands
\appendtoks \def\MetaFun{MetaFun}\to\simplifiedcommands
-\appendtoks \def||{-}\to\simplifiedcommands
+%appendtoks \def||{-}\to\simplifiedcommands
+\appendtoks \def|#1|{\ifx#1\empty\empty-\else#1\fi}\to\simplifiedcommands
\appendtoks\let\buildtextaccent\secondoftwoarguments\to\simplifiedcommands
@@ -236,106 +238,328 @@
%
% 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\docommando##1%
+% {\getparameters[\??al#1##1][#3]}%
+% \processcommalist[#2]\docommando}}}
+%
+% \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
+
+\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]%
- {\setvalue{\s!do\s!next#1}%
- {\def\\{\getvalue{#1}}}%
- \setvalue{#1}%
+ {\edef\currentparagraph{#1}%
+ \setvalue{\s!do\s!next\currentparagraph}%
+ {\def\\{\getvalue\currentparagraph}}%
+ \setvalue\currentparagraph
{\getvalue{\s!do\s!next#1}%
- \dostartalineas{#1}}%
- \setvalue{\e!next#1}%
+ \dostartparagraphs{#1}}%
+ \setvalue{\e!next\currentparagraph}%
{\getvalue{#1}}%
- \setvalue{\e!start#1}%
+ \setvalue{\e!start\currentparagraph}%
{\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!style=,
- \c!color=,
- \c!top=,
- \c!top=\vss,
- \c!bottom=\vfill,
+ \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
- {\getvalue{\??al#1\c!n}}
- {\setupparagraphs[#1][\recurselevel]
+ {\paragraphparameter\c!n}
+ {\setupparagraphs
+ [\currentparagraph]
+ [\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!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]}
+ %\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]%
- {\doifelse{#2}\v!each
- {\dorecurse
- {\getvalue{\??al#1\c!n}}
- {\getparameters[\??al#1\recurselevel][#3]}}
- {\ConvertToConstant\doifelse{#3}{}
- {\getparameters[\??al#1][#2]}
- {\def\docommando##1%
- {\getparameters[\??al#1##1][#3]}%
- \processcommalist[#2]\docommando}}}
+ {\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}
-\newcount\alteller
-\newcount\alnsize
-\newdimen\alhsize
-
-\def\doalinealijn#1#2%
- {\doifelsevalue{\??al#2\the\alteller\c!rule}\v!on
- {\dimen2=#1\relax
- \hskip.5\dimen2
- \hskip-\linewidth
- \vrule\!!width\linewidth
- \hskip.5\dimen2}
- {\hskip#1}}
-
-\def\dostartalinea#1%
- {\doifelsevaluenothing{\??al#1\the\alteller\c!width}
+\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\paragraphcellmeter\alcounter\c!distance
+ \advance\scratchdimen-\linewidth
+ \divide\scratchdimen \plustwo
+ \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\getvalue{\??al#1\the\alteller\c!width}}%
- \dostartattributes
- {\??al#1\the\alteller}\c!style\c!color
- \empty
- \doifelsevalue{\??al#1\the\alteller\c!height}\v!fit
- {\setbox0\vtop}
- {\setbox0\vtop to \getvalue{\??al#1\the\alteller\c!height}}%
+ {\!!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
- \getvalue{\??al#1\the\alteller\c!top}%
- \getvalue{\??al#1\c!inner}%
- \hsize\!!widtha % setting \wd afterwards removed
- \getvalue{\??al#1\the\alteller\c!inner}%
- \edef\!!stringa{\getvalue{\??al#1\the\alteller\c!align}}% nodig?
- \expandafter\setupalign\expandafter[\!!stringa]%
- \edef\!!stringa{\getvalue{\??al#1\the\alteller\c!tolerance}}% nodig?
- \expandafter\setuptolerance\expandafter[\!!stringa]%
+ \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
@@ -348,70 +572,75 @@
%
\everypar{\begstrut\everypar\emptytoks}%
%
- \ignorespaces\geenspatie % dubbel: \ignorespaces
- \getvalue{\??al#1\the\alteller\c!command}}
+ \nospace % remove + ignore
+ \paragraphcellmeter\alcounter\c!command}
-\def\dostopalinea#1%
+\def\dostopparagraph
{\ifvmode
\removelastskip
\else
\unskip\endstrut\endgraf
\fi
- \getvalue{\??al#1\the\alteller\c!bottom}%
+ \paragraphcellmeter\alcounter\c!bottom
\egroup
- \ifdim\wd0=\zeropoint % no data
- \wd0\!!widtha
+ \ifdim\wd\scratchbox=\zeropoint % no data
+ \wd\scratchbox\!!widtha
\fi
- \box0
+ \box\scratchbox
\dostopattributes
- %\ifnum\alteller<\getvalue{\??al#1\c!n}\relax
- % \def\next{\doalinea{#1}}%
- %\else
- % \def\next{\dostopalineas{#1}}%
- %\fi
- %\next}
- \ifnum\alteller<\getvalue{\??al#1\c!n}\relax
- \@EA\doalinea
+ \ifnum\alcounter<\paragraphparameter\c!n\relax
+ \@EA\doparagraphcell
\else
- \@EA\dostopalineas
- \fi{#1}}
+ \@EA\dostopparagraphs
+ \fi}
-\def\doalinea#1%
- {\global\advance\alteller \plusone
- \doifelsevaluenothing{\??al#1\the\alteller\c!distance}
- {\doifnot{\the\alteller}{1}
- {\hskip\getvalue{\??al#1\c!distance}}}
- {\doifelse{\the\alteller}{1}%
- {\hskip\getvalue{\??al#1\the\alteller\c!distance}}
- {\doalinealijn{\getvalue{\??al#1\the\alteller\c!distance}}{#1}}}%
- \setvalue{#1}{\dostopalinea{#1}}%
- \dostartalinea{#1}}
-
-\def\dostartalineas#1%
- {\global\alteller\zerocount
+\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\getvalue{\??al#1\c!n}\relax
- \dorecurse
- {\getvalue{\??al#1\c!n}}
- {\doifelsevaluenothing{\??al#1\recurselevel\c!distance}
- {\doifnot{\recurselevel}{1}
- {\global\advance\alhsize -\getvalue{\??al#1\c!distance}\relax}}
- {\global\advance\alhsize -\getvalue{\??al#1\recurselevel\c!distance}\relax}%
- \doifvaluesomething{\??al#1\recurselevel\c!width}
+ \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 -\getvalue{\??al#1\recurselevel\c!width}\relax}}%
- %\whitespace % gaat fout bij \framed
- \getvalue{\??al#1\c!before}%
- \leavevmode % gaat wel goed bij \framed
- \vbox\bgroup\hbox\bgroup\doalinea{#1}}
+ \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\dostopalineas#1%
+\def\dostopparagraphs
{\egroup
\egroup
+ \iftrue
+ \hbox{\raise\strutheight\box\scratchbox}% new
+ \else
+ \box\scratchbox % old
+ \fi
\par
- \getvalue{\??al#1\c!after}}%
+ \paragraphparameter\c!after
+ \egroup}
\def\dosetuptab[#1]%
{\getparameters[\??ta]
@@ -500,10 +729,13 @@
\resetsubscripts
\egroup}
-\def\celsius#1{#1\mathematics{^\circ}C}
-\def\graden {\mathematics{^\circ}}
-\def\inch {\hbox{\rm\char125\relax}}
-\def\fraction#1#2{\mathematics{#1\over#2}}
+\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 {}
@@ -560,27 +792,42 @@
\unexpanded\def\ongeveer
{\mathematics\pm}
+\chardef\boundarycharactermode\plusone
+
\def\midboundarycharacter#1#2%
- {%\nobreak
- \hskip\hspaceamount\currentlanguage{#2}%
- \languageparameter#1%
- %\nobreak
- \hskip\hspaceamount\currentlanguage{#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%
- {\languageparameter#1%
- \nobreak
- \hskip\hspaceamount\currentlanguage{#2}}
-
-% \def\rightboundarycharacter#1#2%
-% {\nobreak
-% \hskip\hspaceamount\currentlanguage{#2}%
-% \languageparameter#1}
+ {\ifcase\boundarycharactermode
+ \or
+ \languageparameter#1%
+ \nobreak
+ \hskip\hspaceamount\currentlanguage{#2}%
+ \or
+ \languageparameter#1%
+ \fi
+ \chardef\boundarycharactermode\plusone}
\def\rightboundarycharacter#1#2%
- {\prewordbreak %\nobreak
- \hskip\hspaceamount\currentlanguage{#2}%
- \languageparameter#1}
+ {\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
%
@@ -634,44 +881,79 @@
\newsignal \subsentencesignal
\newcounter\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
- {\ifdim\lastkern=\subsentencesignal
+ {\beforesubsentence
+ \ifdim\lastkern=\subsentencesignal
\unskip
\kern\hspaceamount\currentlanguage{intersentence}%
\fi
\doglobal\increment\subsentencelevel
\ifnum\subsentencelevel=\plusone
- \leaveoutervmode
+ \dontleavehmode % was \leaveoutervmode
\fi
- \symbol[\ifodd\subsentencelevel\c!leftsentence \else
- \c!leftsubsentence\fi]%
- \ignorespaces}
+ \symbol[\ifodd\subsentencelevel\c!leftsentence\else\c!leftsubsentence\fi]%
+ }% \ignorespaces}
-\def\beginofsubsentencespacing
- {\kern\subsentencesignal\ignorespaces}
-
-\def\endofsubsentence
- {\symbol[\ifodd\subsentencelevel\c!rightsentence \else
- \c!rightsubsentence\fi]%
+\def\endofsubsentence % relax prevents space gobbling
+ {\symbol[\ifodd\subsentencelevel\c!rightsentence\else\c!rightsubsentence\fi]%
\doglobal\decrement\subsentencelevel
\unskip
- \kern\subsentencesignal}
+ \kern\subsentencesignal\relax
+ \aftersubsentence}
+
+\def\beginofsubsentencespacing % relax prevents space gobbling
+ {\kern\subsentencesignal\relax}% \ignorespaces}
\def\endofsubsentencespacing
{\ifdim\lastkern=\subsentencesignal
\unskip
\hskip\hspaceamount\currentlanguage{intersentence}%
- \ignorespaces
+ % no good, actually language dependent:
+% \ignorespaces
\else
\unskip
\fi}
-% test |<|test |<|test|>| test|>| test \par
-% test|<|test|<|test|>|test|>|test \par
-% test |<||<|test|>||>| test \par
+%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
@@ -712,100 +994,99 @@
[\c!middlespeech]
[\leftboundarycharacter\c!middlespeech{speech}]
-%%%%% will be replaced by delimitedtext %%%%%
-
-\def\leftquotationmark
- {\setbox\scratchbox\hbox{\symbol[\c!leftquotation]}%
- \doif\@@cilocation\v!margin{\hskip-\wd\scratchbox}%
- \box\scratchbox}
-
-\def\rightquotationmark
- {\hsmash{\symbol[\c!rightquotation]}}
-
-\newsignal\quotationsignal
-
-\def\setupquote
- {\dodoubleargument\getparameters[\??ci]}
-
-% \def\setuoquotation
-% {\setupquote}
-
-\def\startquotation
- {\bgroup\dosingleempty\dostartquotation}
-
-\def\dostartquotation[#1]%
- {\@@cibefore
- \doifelsenothing{#1}
- {\let\dostopquotation\relax}
- {\startnarrower[#1]%
- \let\dostopquotation\stopnarrower}%
- \dostartattributes\??ci\c!style\c!color\empty
- \leftquotationmark
- \ignorespaces}
-
-\def\stopquotation
- {\removeunwantedspaces
- \removelastskip
- \rightquotationmark
- \dostopattributes
- \dostopquotation
- \@@ciafter
- \egroup}
-
-\def\dohandlequotation#1#2%
- {\ifdim\lastskip=\quotationsignal
- \unskip\hskip\hspaceamount\currentlanguage{interquotation}%
- \else
- #2%
- \fi
- \ifhmode % else funny pagebeaks
- \penalty\!!tenthousand\hskip\zeropoint % == \prewordbreak
- \fi
- \strut % new, needed below
- \symbol[#1]%
- \penalty\!!tenthousand\hskip\quotationsignal} % +- \prewordbreak
-
-\def\handlequotation#1%
- {\dohandlequotation{#1}\relax}
-
-\unexpanded\def\quotation
- {\groupedcommand
- {\dohandlequotation\c!leftquotation \relax}
- {\dohandlequotation\c!rightquotation\removelastskip}}
-
-\unexpanded\def\quote
- {\doifelse\@@cistyle\v!normal\doquotedcite\doattributedcite}
-
-\def\doquotedcite
- {\groupedcommand
- {\dohandlequotation\c!leftquote \relax}
- {\dohandlequotation\c!rightquote\removelastskip}}
-
-\def\doattributedcite
- {\groupedcommand
- {\dostartattributes\??ci\c!style\c!color}
- {\dostopattributes}}
+% has been replaced by delimitedtext
+%
+% \def\leftquotationmark
+% {\setbox\scratchbox\hbox{\symbol[\c!leftquotation]}%
+% \doif\@@cilocation\v!margin{\hskip-\wd\scratchbox}%
+% \box\scratchbox}
+%
+% \def\rightquotationmark
+% {\hsmash{\symbol[\c!rightquotation]}}
+%
+% \newsignal\quotationsignal
+%
+% \def\setupquote
+% {\dodoubleargument\getparameters[\??ci]}
+%
+% \def\startquotation
+% {\bgroup\dosingleempty\dostartquotation}
+%
+% \def\dostartquotation[#1]%
+% {\@@cibefore
+% \doifelsenothing{#1}
+% {\let\dostopquotation\relax}
+% {\startnarrower[#1]%
+% \let\dostopquotation\stopnarrower}%
+% \dostartattributes\??ci\c!style\c!color\empty
+% \leftquotationmark
+% \ignorespaces}
+%
+% \def\stopquotation
+% {\removeunwantedspaces
+% \removelastskip
+% \rightquotationmark
+% \dostopattributes
+% \dostopquotation
+% \@@ciafter
+% \egroup}
+%
+% \def\dohandlequotation#1#2%
+% {\ifdim\lastskip=\quotationsignal
+% \unskip\hskip\hspaceamount\currentlanguage{interquotation}% hardcoded
+% \else
+% #2%
+% \fi
+% \ifhmode % else funny pagebeaks
+% \penalty\!!tenthousand\hskip\zeropoint % == \prewordbreak
+% \fi
+% \strut % new, needed below
+% \symbol[#1]%
+% \penalty\!!tenthousand\hskip\quotationsignal} % +- \prewordbreak
+%
+% \def\handlequotation#1%
+% {\dohandlequotation{#1}\relax}
+%
+% \unexpanded\def\quotation
+% {\groupedcommand
+% {\dohandlequotation\c!leftquotation \relax}
+% {\dohandlequotation\c!rightquotation\removelastskip}}
+%
+% \unexpanded\def\quote
+% {\doifelse\@@cistyle\v!normal\doquotedcite\doattributedcite}
+%
+% \def\doquotedcite
+% {\groupedcommand
+% {\dohandlequotation\c!leftquote \relax}
+% {\dohandlequotation\c!rightquote\removelastskip}}
+%
+% \def\doattributedcite
+% {\groupedcommand
+% {\dostartattributes\??ci\c!style\c!color}
+% {\dostopattributes}}
%D The previous one fails in \placefloat[left]{}{}, so instead
%D we use the next alternative, where the first one is handled
%D outside group. Watch the strut.
-\unexpanded\def\quotation
- {\dohandlequotation\c!leftquotation\relax
- \groupedcommand \donothing
- {\dohandlequotation\c!rightquotation\removelastskip}}
-
-\def\doquotedcite
- {\dohandlequotation\c!leftquote\relax
- \groupedcommand \donothing
- {\dohandlequotation\c!rightquote\removelastskip}}
-
-\setupquote
- [\c!location=\v!margin,
- \c!style=\v!normal,
- \c!color=,
- \c!before=\startnarrower,
- \c!after=\stopnarrower]
+% has been replaced by delimitedtext
+%
+% \unexpanded\def\quotation
+% {\dohandlequotation\c!leftquotation\relax
+% \groupedcommand \donothing
+% {\dohandlequotation\c!rightquotation\removelastskip}}
+%
+% \def\doquotedcite
+% {\dohandlequotation\c!leftquote\relax
+% \groupedcommand \donothing
+% {\dohandlequotation\c!rightquote\removelastskip}}
+%
+% \setupquote
+% [\c!location=\v!margin,
+% \c!style=\v!normal,
+% \c!color=,
+% \c!before=\startnarrower,
+% \c!after=\stopnarrower]
\appendtoks\def\quotation#1{"#1"}\to\simplifiedcommands
\appendtoks\def\quote #1{'#1'}\to\simplifiedcommands
@@ -818,38 +1099,38 @@
%D closing symbols are defined per language. Italian is an
%D example of a language that has them set.
-%%%%% will be replaced by delimitedtext %%%%%
-
-\newcounter\speechlevel \newconditional\insidespeech
-
-\def\startspeech
- {\doglobal\increment\speechlevel\relax
- \dohandlequotation\c!leftspeech\relax
- \global\settrue\insidespeech
- \ignorespaces}
-
-\def\stopspeech
- {\dohandlequotation\c!rightspeech\removelastskip
- \doglobal\decrement\speechlevel\relax
- \ifcase\speechlevel\relax \global\setfalse\insidespeech \fi}
-
-\def\dohandlespeech % indirect since called in everypar
- {\relax % still needed?
- \ifcase\speechlevel\or\dodohandlespeech\fi}
-
-\def\dodohandlespeech
- {\ifconditional\insidespeech
- \dohandlequotation\c!middlespeech\relax
- \else
- \global\settrue\insidespeech
- \fi}
-
-\unexpanded\def\speech
- {\doglobal\increment\speechlevel\relax
- \dohandlequotation\c!leftspeech\relax
- \groupedcommand \ignorespaces
- {\dohandlequotation\c!rightspeech\removelastskip
- \doglobal\decrement\speechlevel\relax}}
+% has been be replaced by delimitedtext
+%
+% \newcounter\speechlevel \newconditional\insidespeech
+%
+% \def\startspeech
+% {\doglobal\increment\speechlevel\relax
+% \dohandlequotation\c!leftspeech\relax
+% \global\settrue\insidespeech
+% \ignorespaces}
+%
+% \def\stopspeech
+% {\dohandlequotation\c!rightspeech\removelastskip
+% \doglobal\decrement\speechlevel\relax
+% \ifcase\speechlevel\relax \global\setfalse\insidespeech \fi}
+%
+% \def\dohandlespeech % indirect since called in everypar
+% {\relax % still needed?
+% \ifcase\speechlevel\or\dodohandlespeech\fi}
+%
+% \def\dodohandlespeech
+% {\ifconditional\insidespeech
+% \dohandlequotation\c!middlespeech\relax
+% \else
+% \global\settrue\insidespeech
+% \fi}
+%
+% \unexpanded\def\speech
+% {\doglobal\increment\speechlevel\relax
+% \dohandlequotation\c!leftspeech\relax
+% \groupedcommand \ignorespaces
+% {\dohandlequotation\c!rightspeech\removelastskip
+% \doglobal\decrement\speechlevel\relax}}
% \appendtoks \dohandlespeech \to \everypar
@@ -883,6 +1164,7 @@
\c!right=,
\c!level=0,
\c!repeat=\v!no,
+ \c!method=,
#2]}%
{\doifdefined{#2}
{\copyparameters[\??ci#1][\??ci#2]
@@ -909,13 +1191,20 @@
\dohandledelimitedtext\c!middle
\fi}
+\let\dohandlerepeatdelimitedtext\relax
+
\def\startdelimitedtext[#1]%
{\bgroup
\def\currentdelimitedtext{#1}%
- \doif{\delimitedtextparameter\c!repeat}\v!yes
- {\appendtoks \dorepeatdelimitedtext \to \everypar}%
- \doifinsetelse{\delimitedtextparameter\c!location}{\v!paragraph,\v!margin}%
- {\dosingleempty\dostartdelimitedtextpar}\dostartdelimitedtexttxt}
+ \doifelse{\delimitedtextparameter\c!method}\s!font
+ {\doglobal\decrementvalue{\??ci\currentdelimitedtext\c!level}%
+ \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
@@ -927,7 +1216,8 @@
% \doadaptrightskip{\delimitedtextparameter\c!rightmargin}%
% backward compatible:
\doifelsenothing{#1}
- {\doadaptleftskip {\delimitedtextparameter\c!leftmargin}%
+ {\endgraf
+ \doadaptleftskip {\delimitedtextparameter\c!leftmargin}%
\doadaptrightskip{\delimitedtextparameter\c!rightmargin}%
\let\dodostopdelimitedtextpar\endgraf}
{\startnarrower[#1]\let\dodostopdelimitedtextpar\stopnarrower}%
@@ -967,8 +1257,10 @@
\def\delimitedtext[#1]%
{\pushmacro\currentdelimitedtext
\def\currentdelimitedtext{#1}%
- \doifinsetelse{\delimitedtextparameter\c!location}{\v!paragraph,\v!margin}%
- \dodelimitedtextpar\dodelimitedtexttxt}
+ \doifelse{\delimitedtextparameter\c!method}\s!font
+ {\dofontdrivendelimited}
+ {\doifinsetelse{\delimitedtextparameter\c!location}{\v!paragraph,\v!margin}%
+ \dodelimitedtextpar\dodelimitedtexttxt}}
% shortcuts
@@ -986,8 +1278,8 @@
{\hsmash{\delimitedtextparameter\c!right}}
\def\dohandledelimitedtext#1#2%
- {\bgroup
- \setbox\scratchbox\hbox{#1}%
+ {\begingroup
+ \setbox\scratchbox\hbox{\delimitedtextparameter#1}%
\ifdim\wd\scratchbox>\zeropoint
\ifdim\lastskip=\delimitedtextsignal
\unskip\hskip\hspaceamount\currentlanguage{interquotation}%
@@ -998,10 +1290,13 @@
\penalty\!!tenthousand\hskip\zeropoint % == \prewordbreak
\fi
\strut % new, needed below
- \delimitedtextparameter#1%
+ \delimitedtextparameter#1% unhbox\scratchbox
\penalty\!!tenthousand\hskip\delimitedtextsignal % +- \prewordbreak
\fi
- \egroup}
+ \endgroup}
+
+\def\ignoredelimitedtext#1%
+ {\delimitedtextparameter#1}
\def\handledelimitedtext#1%
{\dohandledelimitedtext{#1}\relax}
@@ -1029,32 +1324,44 @@
{\dostartattributes{\??ci\currentdelimitedtext}\c!style\c!color}
{\dostopattributes
\popmacro\currentdelimitedtext}}
+
+% \def\dofontdrivendelimited#1% thanks to Taco for sorting out the kerning interference
+% {\languageparameter{\c!left\currentdelimitedtext}%
+% #1% sorry, no verbatim support
+% \languageparameter{\c!right\currentdelimitedtext}%
+% \popmacro\currentdelimitedtext}
+
+\def\dofontdrivendelimited
+ {\simplegroupedcommand
+ {\languageparameter{\c!left\currentdelimitedtext}}
+ {\languageparameter{\c!right\currentdelimitedtext}%
+ \popmacro\currentdelimitedtext}}
-% \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!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]}]
-%
+\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!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
@@ -1064,9 +1371,9 @@
% [\v!quotation]
% [\c!indentnext=\v!no,
% \c!spacebefore=\v!nowhite]
-%
-% \def\setupquotation{\setupdelimitedtext[\v!quotation]}
-% \def\setupquote {\setupdelimitedtext[\v!quote]}
+
+\def\setupquotation{\setupdelimitedtext[\v!quotation]}
+\def\setupquote {\setupdelimitedtext[\v!quote]}
% seldom used, move from kernel to run time module
@@ -1374,6 +1681,10 @@
\startmessages romanian library: systems
41: fisierul extern -- din grupul -- nu exista
\stopmessages
+
+\startmessages french library: systems
+ 41: le fichier externe -- du groupe -- n'existe pas
+\stopmessages
\definetabulate
[\v!legend]
@@ -1767,31 +2078,32 @@
\getparameters[\??co][#1]%
\fi}
-\def\startcombination
- {\dodoubleempty\dostartcombination}
-
\def\combinationparameter#1%
{\csname\??co\currentcombination#1\endcsname}%
+\def\startcombination
+ {\bgroup % so we can grab a group
+ \dodoubleempty\dostartcombination}
+
\def\dostartcombination[#1][#2]%
- {\bgroup
- \global\setsystemmode{combination}%
+ {\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
- \let\currentcombination\empty
+ \doifinstringelse{*}{#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
- %\doifelsenothing{#1}
- % {\dodostartcombination[2*1*]}
- % {\doifelsenothing{#2}
- % {\dodostartcombination[#1*1*]}
- % {\dodostartcombination[#2*1*]}}}
- \expanded{\dodostartcombination
- [\ifsecondargument#2\else\iffirstargument#1\else2\fi\fi*1*]}}
+ \expanded{\dodostartcombination[\currentcombinationspec]}}
\long\def\dodostartcombination[#1*#2*#3]%
{\setuphorizontaldivision
@@ -1936,7 +2248,7 @@
\let\next\vbox
\ExpandFirstAfter\processallactionsinset
[\combinationparameter\c!location]
- [ \v!top=>\let\next\depthonlybox, % \tbox,
+ [ \v!top=>\let\next\depthonlybox, % \tbox,
\v!middle=>\let\next\halfwaybox]%
\next{\copy0}%
% we need to save the caption for a next alignment line
@@ -1970,8 +2282,24 @@
\fi
\next}
+% formally ok:
+%
+% \def\stopcombination
+% {\egroup
+% \egroup}
+%
+% more robust:
+%
+% \def\stopcombination
+% {{}{}{}{}{}{}{}{}% catches (at most 4) missing entries
+% \egroup
+% \egroup}
+%
+% even better:
+
\def\stopcombination
- {\egroup
+ {{\scratchtoks{{}{}{}}\dorecurse\totcombination{\appendtoks{}{}{}{}\to\scratchtoks}\expandafter}\the\scratchtoks
+ \egroup
\egroup}
\newbox\combinationstack
@@ -2020,6 +2348,41 @@
\c!after=,
\c!align=\v!middle]
+%D \macros
+%D {startfloatcombination}
+%D
+%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}}
+
% does not work
%
% \def\plaatsondernaastelkaar#1#2%
@@ -2408,15 +2771,18 @@
% scale
\def\doscalelikeafigure % quite dirty and potential interference possible
- {\doifsomething{\@@xyfactor\@@xyhfactor\@@xywfactor\@@xyscale
+ {\doifsomething{\@@xyscale\@@xyxscale\@@xyyscale
+ \@@xyfactor\@@xyhfactor\@@xywfactor
\@@xywidth\@@xyheight\@@xylines}
- {\let \@@efscale \@@xyscale
+ {\let \@@efscale \@@xyscale
+ \let \@@efxscale \@@xyxscale
+ \let \@@efyscale \@@xyyscale
\let \@@effactor \@@xyfactor
\let \@@efwfactor\@@xywfactor
\let \@@efhfactor\@@xyhfactor
- \let \@@efwidth\@@xywidth
+ \let \@@efwidth \@@xywidth
\let \@@efheight \@@xyheight
- \let \@@eflines \@@xylines
+ \let \@@eflines \@@xylines
\let \@@efgrid \@@xygrid
\let \@@epx \!!zeropoint
\let \@@epy \!!zeropoint
@@ -2435,12 +2801,12 @@
\scratchdimen\scay\points \divide\scratchdimen \plushundred
\edef\@@xysy{\withoutpt\the\scratchdimen}}}
-\def\doscale[#1]%
+\def\doscale[#1]% todo: xscale/yscale
{\bgroup
\forgetall
\getparameters
[\??xy]
- [\c!scale=,\c!width=,\c!height=,\c!lines=,
+ [\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,#1]%
\dowithnextbox
diff --git a/Master/texmf-dist/tex/context/base/core-nav.tex b/Master/texmf-dist/tex/context/base/core-nav.tex
index 2f06b70a2e2..a55022d7766 100644
--- a/Master/texmf-dist/tex/context/base/core-nav.tex
+++ b/Master/texmf-dist/tex/context/base/core-nav.tex
@@ -52,43 +52,54 @@
\def\resetinteractionparameter#1% use with case, no checking done
{\letvalue{\??ia#1}\empty}
+% \def\interactionparameter#1%
+% {\csname\??ia#1\endcsname}
+
+\newtoks\everysetupinteraction
+
\def\setupinteraction
{\dosingleargument\dodosetupinteraction}
\def\dodosetupinteraction[#1]% % \dosetupinteraction == special
{\getparameters[\??ia][#1]%
- \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
- \dosetuppageview\@@iafocus
- \doifsomething\@@iacalculate
- {\doregistercalculationset\@@iacalculate}%
- \doifelse\@@iastrut\v!yes
- \locationstruttrue
- \locationstrutfalse
- \doifelse\@@iaclick\v!yes
- \highlighthyperlinkstrue
- \highlighthyperlinksfalse
- \doifelse\@@iasplit\v!yes
- \locationsplittrue
- \locationsplitfalse
- \doifelse\@@iadisplay\v!new
- \gotonewwindowtrue
- \gotonewwindowfalse
- \doifelse\@@iapage\v!yes
- {\global\usepagedestinationstrue}
- {\global\usepagedestinationsfalse}}
+ \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
+ \dosetuppageview\@@iafocus
+ \doifsomething\@@iacalculate
+ {\doregistercalculationset\@@iacalculate}%
+ \doifelse\@@iastrut\v!yes
+ \locationstruttrue
+ \locationstrutfalse
+ \doifelse\@@iaclick\v!yes
+ \highlighthyperlinkstrue
+ \highlighthyperlinksfalse
+ \doifelse\@@iasplit\v!yes
+ \locationsplittrue
+ \locationsplitfalse
+ \doifelse\@@iadisplay\v!new
+ \gotonewwindowtrue
+ \gotonewwindowfalse
+ \doifelse\@@iapage\v!yes
+ {\global\usepagedestinationstrue}
+ {\global\usepagedestinationsfalse}%
+\to \everysetupinteraction
%D We have to make sure of some settings:
diff --git a/Master/texmf-dist/tex/context/base/core-new.tex b/Master/texmf-dist/tex/context/base/core-new.tex
index 71be6466ae1..d5de7d91ae0 100644
--- a/Master/texmf-dist/tex/context/base/core-new.tex
+++ b/Master/texmf-dist/tex/context/base/core-new.tex
@@ -15,234 +15,6 @@
\unprotect
-% Some kind of new feature, for the moment a private one.
-%
-% \enablemode[screen,paper,bound]
-%
-% \doifmodeelse {paper} {this} {that}
-% \doifmode {paper,screen} {this}
-% \doifnotmode {paper,bound} {that}
-%
-% \startmode [list]
-% \stopmode
-%
-% \startnotmode [list]
-% \stopnotmode
-%
-% system modes have a * as prefix
-%
-% to be implemented: mode naar texutil/scherm + message
-% : geen #2 en nesting (\startregels)
-
-%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%
- {\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}
-
-% 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\rawprocesscommalist[#3]\dodocheckformode
-% \ifcheckedmode\@EA#1\else\@EA#2\fi}
-%
-% better:
-
-\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
-% {\protect\checkedmodetrue\rawprocesscommalist[#3]\dodocheckforallmodes
-% \ifcheckedmode\@EA#1\else\@EA#2\fi}
-%
-% better:
-
-\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\doifallmodeselse
- {\docheckforallmodes\firstoftwoarguments\secondoftwoarguments}
-
-\def\doifallmodes
- {\docheckforallmodes\firstofoneargument\gobbleoneargument}
-
-\def\doifnotallmodes
- {\docheckforallmodes\gobbleoneargument\firstofoneargument}
-
-\long\def\dostartallmodes[#1]%
- {\docheckforallmodes\donothing\dostopallmodes{#1}}
-
-\long\def\dostartnotallmodes[#1]%
- {\docheckforallmodes\dostopallmodes\donothing{#1}}
-
-\let\stopallmodes \donothing
-\let\stopnotallmodes\donothing
-
-\long\def\dostopallmodes #1\stopallmodes {}
-\long\def\dostopnotallmodes#1\stopnotallmodes{}
-
% \def\setups
% {\dosingleargument\dosetups}
%
@@ -270,14 +42,14 @@
%
% \expanded
% {\long\noexpand\def\noexpand\xdostartsetups##1##2\csname\e!stop\v!instellingen\endcsname
-% {\egroup
+% {\endgroup
% \long\noexpand\setvalue{\??su##1}{##2}}}
%
% \def\startsetups % for international purposes
-% {\bgroup\doifnextcharelse[{\startsetupsA\stopsetups}{\startsetupsB\stopsetups}}
+% {\begingroup\doifnextcharelse[{\startsetupsA\stopsetups}{\startsetupsB\stopsetups}}
%
% \def\startlocalsetups % for nested purposes
-% {\bgroup\doifnextcharelse[{\startsetupsA\stoplocalsetups}{\startsetupsB\stoplocalsetups}}
+% {\begingroup\doifnextcharelse[{\startsetupsA\stoplocalsetups}{\startsetupsB\stoplocalsetups}}
%
% \def\startsetupsA#1[#2]%
% {\catcode`\^^M=\@@ignore
@@ -287,7 +59,7 @@
% {\startsetupsA#1[#2]}%
%
% \long\def\dostartsetups#1#2% watch out: not \grabuntil
-% {\dograbuntil#1{\egroup\long\setvalue{\??su#2}}}
+% {\dograbuntil#1{\endgroup\long\setvalue{\??su#2}}}
% todo : \startsetups[name][XML] \setups[name][XML]
@@ -295,7 +67,7 @@
\expanded
{\long\def\@EA\noexpand\csname\e!start\v!setups\endcsname
- {\bgroup\noexpand\doifnextcharelse[%
+ {\begingroup\noexpand\doifnextcharelse[%
{\noexpand\startsetupsA\@EA\noexpand\csname\e!stop\v!setups\endcsname}
{\noexpand\startsetupsB\@EA\noexpand\csname\e!stop\v!setups\endcsname}}}
@@ -329,7 +101,7 @@
\def\startrawsetups {\xxstartsetups\zerocount\stoprawsetups } \let\stoprawsetups \relax
\def\xxstartsetups#1#2%
- {\bgroup\chardef\setupseolmode#1\doifnextcharelse[{\startsetupsA#2}{\startsetupsB#2}}
+ {\begingroup\chardef\setupseolmode#1\doifnextcharelse[{\startsetupsA#2}{\startsetupsB#2}}
\def\startsetupsA#1% [ ] delimited
{\ifcase\setupseolmode\or\catcode`\^^M\@@ignore\fi
@@ -346,12 +118,12 @@
{\ifthirdargument\@EA\startsetupsC\else\@EA\startsetupsD\fi}
% \long\def\dodostartsetups#1#2#3% watch out: not \grabuntil
-% {\dograbuntil#1{\egroup\dodoglobal\long\setvalue{\??su#2:#3}}} % \doglobal
+% {\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{\egroup\dodoglobal\long\setvalue\cleanlabel}} % \doglobal
+ {\cleanuplabel{\??su#2:#3}\dograbuntil#1{\endgroup\dodoglobal\long\setvalue\cleanlabel}} % \doglobal
\def\systemsetupsprefix{*}
@@ -553,45 +325,32 @@
\def\env {\getvariable \s!environment}
\def\envvar {\getvariabledefault\s!environment}
-%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}.
+\bgroup % some day this will go away
-\def\jobsuffix{dvi}
-
-\def\setjobsuffix#1%
- {\resetsystemmode\jobsuffix
- \edef\jobsuffix{#1}%
- \setsystemmode\jobsuffix}
-
-\bgroup
+% actually we should handle all discretionaries here
\gdef\cleanedupcolon{:} \catcode`:=\@@active
\gdef\cleanuplabel#1%
- {\bgroup\let:\cleanedupcolon
+ {\begingroup\let:\cleanedupcolon
\xdef\cleanlabel{#1}%
- \egroup}
+ \endgroup}
\gdef\cleanupprefixedlabel#1#2%
- {\bgroup\let:\cleanedupcolon
+ {\begingroup\let:\cleanedupcolon
\xdef\cleanprefix{#1}%
\xdef\cleanlabel {#2}%
- \egroup}
+ \endgroup}
\gdef\protectlabels
{\let:\cleanedupcolon}
-\global\def\blabelgroup {\bgroup \let:\cleanedupcolon}
-\global\let\elabelgroup \egroup
+\global\def\blabelgroup {\begingroup \let:\cleanedupcolon}
+\global\let\elabelgroup \endgroup
\gdef\labelcsname
- {\bgroup\let:\cleanedupcolon
- \expandafter\egroup\csname}
+ {\begingroup\let:\cleanedupcolon
+ \expandafter\endgroup\csname}
\gdef\labelvalue#1%
{\labelcsname#1\endcsname}
diff --git a/Master/texmf-dist/tex/context/base/core-not.tex b/Master/texmf-dist/tex/context/base/core-not.tex
index 73c5c25550f..30f40012bb9 100644
--- a/Master/texmf-dist/tex/context/base/core-not.tex
+++ b/Master/texmf-dist/tex/context/base/core-not.tex
@@ -29,7 +29,7 @@
%D
%D \startitemize[packed]
%D \item a small number \footnote {a footnote number} or
-%D symbol {\setupfootnotes [conversionconversie=set 2]\footnote
+%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
@@ -82,8 +82,8 @@
\def\notedefparameter #1{\csname\??vn\??vn\currentnote#1\endcsname}
\def\footnoteparameter #1{\csname\??vn \v!footnote#1\endcsname}
-\def\startnotedef {\csname\e!start\??vn\??vn\currentnote\endcsname}
-\def\stopnotedef {\csname\e!stop \??vn\??vn\currentnote\endcsname}
+\def\startnotedef {\resetdescriptions\csname\e!start\??vn\??vn\currentnote\endcsname}
+\def\stopnotedef {\csname\e!stop \??vn\??vn\currentnote\endcsname}
\def\noteinsertion #1{\csname\??vn:#1\endcsname}
\def\currentnoteins {\csname\??vn:\currentnote\endcsname}
@@ -118,7 +118,7 @@
%D and split new part ... todo ...
\def\doenablenotes % brrr
- {\global\count\currentnoteins1000
+ {\global\count\currentnoteins\plusthousand
\global\skip \currentnoteins1\baselineskip\relax}
\def\dodisablenotes
@@ -160,6 +160,9 @@
% maybe we should inherit (todo)
+\def\@@defaultnotedefloc{\v!inleft}
+\def\@@defaultnotedefdis{\!!zeropoint}
+
\def\dodefinenote[#1][#2]%
{\def\currentnote{#1}%
\ifundefined{\??vn:\currentnote}%
@@ -172,7 +175,8 @@
\fi
\definedescription
[\??vn\??vn\currentnote]
- [\c!location=\v!inleft,
+ [\c!location=\@@defaultnotedefloc,
+ \c!distance=\@@defaultnotedefdis,
\c!width=\v!fit,
\c!headstyle=\noteparameter\c!style,
\c!headcolor=\noteparameter\c!color,
@@ -234,8 +238,15 @@
\def\dosetupnote[#1][#2]%
{\edef\currentnote{#1}%
\ifsecondargument
- \getparameters
- [\??vn\currentnote][#2]%
+\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
\processaction
[\noteparameter\c!rule]
[ \v!on=>\letvalue{\??vn\c!rule:\currentnote}\normalnoterule,
@@ -262,6 +273,10 @@
{\edef\noteinsertions{#1}}%
\fi\fi}
+% redefined:
+
+% so that it matches:
+
\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 (**)
@@ -274,7 +289,7 @@
{\chardef\clevernotes\zerocount}}%
\ifcase\clevernotes\relax
% notes not in column areas
- \ifnum\noteparameter\c!n=\zerocount
+ \ifnum\noteparameter\c!n=\zerocount % no ifcase
\settextnotes
\scratchcounter\plusone
\else
@@ -291,7 +306,7 @@
\global\bottomnotestrue}% not: \postponenotes, else global
\else
% notes in column areas
- \ifnum\@@kln=\zerocount % brrr dependency on \??kl
+ \ifnum\@@kln=\zerocount % no ifcase / brrr dependency on \??kl
\scratchcounter\plusone
\else
\scratchcounter\footnoteparameter\c!n\relax % **
@@ -393,18 +408,58 @@
\ifvbox0\unvbox\else\box\fi0}%
\rigidcolumnbalance0\egroup}}
+% \def\settextnotes
+% {\def\startpushnote {\startvboxtohbox
+% \dostartattributes{\??vn\currentnote}\c!style\c!color\empty}%
+% \def\stoppushnote {\hskip\noteparameter\c!columndistance % plus.5em minus.5em
+% \dostopattributes
+% \stopvboxtohbox}%
+% \def\startpopnotes {\vbox\bgroup
+% \doifnotinset{\noteparameter\c!width}{\v!fit,\v!broad}\setnotehsize
+% \beginofshapebox}%
+% \def\stoppopnotes {\endofshapebox
+% \reshapebox{\ifhbox\shapebox\unhbox\else\box\fi\shapebox\endgraf}%
+% \flushshapebox
+% \egroup}}
+%
+% this was wrong (for ages)
+
+% \def\settextnotes
+% {\def\startpushnote {\startvboxtohbox
+% \dostartattributes{\??vn\currentnote}\c!style\c!color\empty}%
+% \def\stoppushnote {\hskip\noteparameter\c!columndistance % plus.5em minus.5em
+% \dostopattributes
+% \stopvboxtohbox}%
+% %\def\startpopnotes {\vbox\bgroup
+% % \doifnotinset{\noteparameter\c!width}{\v!fit,\v!broad}\setnotehsize}
+% %\def\stoppopnotes {\convertvboxtohbox
+% % \egroup}%
+% \def\startpopnotes {\vbox\bgroup
+% \doifnotinset{\noteparameter\c!width}{\v!fit,\v!broad}\setnotehsize
+% \beginofshapebox}%
+% \def\stoppopnotes {\endofshapebox
+% \doreshapebox{\box\shapebox}{}{}{}% get rid of penalties etc
+% \innerflushshapebox
+% \convertvboxtohbox
+% \egroup}%
+% }
+
\def\settextnotes
{\def\startpushnote {\startvboxtohbox
- \dostartattributes{\??vn\currentnote}\c!style\c!color\empty}%
- \def\stoppushnote {\hskip\noteparameter\c!columndistance % plus.5em minus.5em
- \dostopattributes
+ \edef\@@defaultnotedefloc{\ifnum\noteparameter\c!n=\zerocount\v!serried\else\v!inleft \fi}%
+ \edef\@@defaultnotedefdis{\ifnum\noteparameter\c!n=\zerocount .5em\else\!!zeropoint\fi}%
+ \startnotedef}%
+ \def\stoppushnote {\stopnotedef
+ \hskip\noteparameter\c!columndistance % plus.5em minus.5em
\stopvboxtohbox}%
\def\startpopnotes {\vbox\bgroup
+ % here, else problems in preroll
\doifnotinset{\noteparameter\c!width}{\v!fit,\v!broad}\setnotehsize
\beginofshapebox}%
\def\stoppopnotes {\endofshapebox
- \reshapebox{\ifhbox\shapebox\unhbox\else\box\fi\shapebox\endgraf}%
- \flushshapebox
+ \doreshapebox{\box\shapebox}{}{}{}% get rid of penalties etc
+ \innerflushshapebox
+ \convertvboxtohbox
\egroup}}
%D The formatting depends on the width of the table, so we
@@ -450,7 +505,7 @@
%D
%D \bgroup
%D \startnarrower
-%D \setupfootnotes[conversionconversie=set 1]
+%D \setupfootnotes[conversion=set 1]
%D \getbuffer
%D \stopnarrower
%D \egroup
@@ -473,12 +528,13 @@
\def\dosetnote[#1][#2][#3]%
{\unskip
\def\currentnote{#2}%
+ \dochecknote % sometimes needed for local notes
\ifcase#1\relax
\global\notesymbolfalse
\else
\global\notesymboltrue
\fi
- \ifvisible
+ \ifvisible % misty feature, make it obsolete
\ifreshapingbox
\@EAEAEA\gobbletwoarguments
\else
@@ -506,6 +562,8 @@
\newif\ifnotesenabled \notesenabledtrue
+\appendtoks \notesenabledfalse \to \everymarking
+
\newconditional\pagewisenotes % saves two hash entries
\def\lastnotepage{1}
@@ -532,9 +590,27 @@
\@EA\gobbletwoarguments
\fi}
-\def\nododonote#1%
- {\doifnot{#1}{-}{\kern.5em}% quick hack, approximation
- \gobbleoneargument}
+% \def\nododonote#1%
+% {\doifnot{#1}{-}{\kern.5em}% quick hack, approximation
+% \gobbleoneargument}
+%
+% more correct:
+
+\long\def\nododonote#1#2%
+ {\doifnot{#1}{-}
+ {\ifconditional\pagewisenotes
+ \doifreferencefoundelse{\s!fnt:t:\internalfootreference}
+ {\ifnum\currentrealreference>\lastnotepage\relax
+ \globallet\lastnotepage\currentrealreference
+ \resetnumber[\currentnote]%
+ \fi}
+ {}%
+ \fi
+ \incrementnumber[\currentnote]%
+ \makesectionnumber[\currentnote]%
+ \let\lastnotenumber\composedsectionnumber
+ \dolastnotesymbol
+ \decrementnumber[\currentnote]}}
\def\dododonote#1%
{\doglobal\increment\internalfootreference
@@ -553,8 +629,8 @@
\fi
\incrementnumber[\currentnote]%
\makesectionnumber[\currentnote]%
- \rawreference\s!fnt{#1}\hetnummer
- \let\lastnotenumber\hetnummer}%
+ \rawreference\s!fnt{#1}\composedsectionnumber
+ \let\lastnotenumber\composedsectionnumber}%
\dostartnote}
%D The main typesetting routine is more or less the same as the
@@ -620,12 +696,12 @@
\splitmaxdepth\strutdp % not actually needed here
\leftmargindistance\noteparameter\c!margindistance
\rightmargindistance\leftmargindistance
- \ifcase\noteparameter\c!n\relax % new 31-07-99 ; always ?
+ \ifnum\noteparameter\c!n=\zerocount % no ifcase new 31-07-99 ; always ?
\doifnotinset{\noteparameter\c!width}{\v!fit,\v!broad}\setnotehsize
\fi
\startpushnote
{\ifx\lastnotenumber\empty \else
- \preparethenumber{\??vn\currentnote}\lastnotenumber\preparednumber
+ \preparefullnumber{\??vn\currentnote}\lastnotenumber\preparednumber
\doifelse{\noteparameter\c!interaction}\v!no
{\noteparameter\c!numbercommand
{\preparednumber\domovednote\v!nextpage\v!previouspage}}%
@@ -759,11 +835,13 @@
\setnotebodyfont
% % 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
+ \ifcase\noteparameter\c!n\relax
+ \unvbox\currentnoteins
+ \or
\box\currentnoteins
-% \else
-% \unvbox\currentnoteins
-% \fi
+ \else
+ \unvbox\currentnoteins
+ \fi
% this is too ugly actually
\stoppopnotes}%
\setbox2\hbox
@@ -907,10 +985,10 @@
\vbox{\flushshapebox}}}%
\localframed
[\??vn\currentnote]
- [\c!width=\v!fit,
- \c!height=\v!fit,
- \c!strut=\v!no,
- \c!offset=\v!overlay]
+ [ \c!width=\v!fit,
+ \c!height=\v!fit,
+ \c!strut=\v!no,
+ \c!offset=\v!overlay]
{\ifdim\dp0=\zeropoint % this hack is needed because \vadjust
\hbox{\lower\strutdp\box0}% % in margin number placement
\else % hides the (always) present depth
@@ -934,7 +1012,10 @@
\startpopnotes % make sure that fake height is killed
\unvbox#1\endgraf
\stoppopnotes
- \setbox0=\lastbox \ifvbox0 \unvbox0\else\box0\fi % enable columns
+ % weird
+ \ifhmode
+ \setbox0=\lastbox \ifvbox0 \unvbox0\else\box0\fi % enable columns
+ \fi
\noteparameter\c!after
\fi}
@@ -968,9 +1049,12 @@
{\bgroup % here because we support \vbox\startlocalnotes
\dosingleempty\dostartlocalnotes}
+\chardef\localnodemode\zerocount
+
\def\dostartlocalnotes[#1]%
{\let\autopostponenotes\postponenotes
\let\postponenotes\collectlocalnotes
+ \chardef\localnodemode\plusone % new
\def\defaultnotewidth{\ifdim\hsize<\makeupwidth\hsize\else\makeupwidth\fi}%
\processnotes
{\doifsomething{#1}{\setupnote[\currentnote][#1]}%
@@ -988,12 +1072,17 @@
\def\doplacelocalnotes[#1][#2]%
{\bgroup
+ \chardef\localnodemode\plusone % new
\dolocalsetupnotes{#1}{#2}%
- \processnotes
- {\ExpandBothAfter\doifinsetelse\v!none{\noteparameter\c!location}
- \placenotesasnone\placenotesintext\localpostponednotes}%
+ \processnotes\dodoplacelocalnotes
\egroup
- \checknotes}
+ \checknotes} % probably not needed
+
+\def\dodoplacelocalnotes
+ {\dochecknote
+ \expanded{\doifinsetelse{\v!none}{\noteparameter\c!location}}
+ \placenotesasnone\placenotesintext
+ \localpostponednotes}
%D These commands can be used like:
%D
@@ -1202,6 +1291,75 @@
\def\postponefootnotes {\postponenotes}
\def\autopostponefootnotes{\autopostponenotes}
+%D New trickery:
+
+\def\ownnotesymbol#1% #1 gets number passed
+ {\executeifdefined{\??vn::\currentnote}\empty}
+
+\def\setnotesymbol[#1]#2#3%
+ {\prewordbreak % prevent lookback
+ \gdef\lastnotenumber{#2}%
+ \setgvalue{\??vn::#1}{#3}
+ \dolastnotesymbol}
+
+\def\ownnote[#1]#2#3#4%
+ {\setnotesymbol[#1]{#2}{#3}%
+ \setnotetext [#1]{#4}}
+
+\defineconversion
+ [ownnote]
+ [\ownnotesymbol]
+
+%D Usage:
+
+% maybe we should predefine this one
+
+% \definenote
+% [glossary]
+% [way=bypage,
+% location={page,high},
+% factor=0,
+% width=\leftmarginwidth,
+% scope=page,
+% conversion=ownnote,
+% numbercommand=,
+% textcommand=,
+% textstyle=,
+% rule=,
+% before=,
+% after=]
+%
+% \setupnotedefinition
+% [glossary]
+% [location=left,
+% width=fit,
+% distance=.5em,
+% align={right,tolerant,stretch},
+% headstyle=bold,
+% hang=1]
+%
+% \setuplayout
+% [width=middle,
+% height=middle,
+% backspace=5cm,
+% margin=4cm,
+% margindistance=.25cm,
+% cutspace=2cm]
+%
+% \setuptexttexts
+% [margin]
+% [\setups{glossary}]
+% [\setups{glossary}]
+%
+% \startsetups glossary
+% \vbox to \textheight {\placenotes[glossary]\vfill}
+% \stopsetups
+%
+% \dorecurse{10}
+% {\dorecurse{5}
+% {\ownnote[glossary]{whow}{whatever needs to be glossed:~\recurselevel}%
+% \input tufte \relax}}
+
\protect \endinput
% \def\myfootnote[#1]#2% let's guess that #2 is without catcode problems
diff --git a/Master/texmf-dist/tex/context/base/core-ntb.tex b/Master/texmf-dist/tex/context/base/core-ntb.tex
index 080d5c31a65..4e7f0d8a4cd 100644
--- a/Master/texmf-dist/tex/context/base/core-ntb.tex
+++ b/Master/texmf-dist/tex/context/base/core-ntb.tex
@@ -61,13 +61,41 @@
%D However, the next alternative also takes care of preceding
%D and following white space.
+% \def\bTBLCELL % why not \doinhibitblank
+% {\inhibitblank\doconvertfont\tbltblstyle\empty\everypar{\delayedbegstrut}}
+
+% \def\eTBLCELL
+% {\ifhmode
+% \delayedendstrut
+% \par % added 13/4/2006
+% \else
+% \par
+% \ifdim\prevdepth<\zeropoint % =-1000pt ?
+% \vskip-\strutdp
+% \else
+% \removebottomthings
+% \fi
+% \fi}
+
+%D \startbuffer
+%D \bTABLE[left={(},right={)},top=\startnarrower,bottom=\stopnarrower]
+%D \bTR \bTD something \eTD \eTR
+%D \eTABLE
+%D
+%D \typebuffer \getbuffer
+
\def\bTBLCELL % why not \doinhibitblank
- {\inhibitblank\doconvertfont\tbltblstyle\empty\everypar{\begstrut}}
+ {\inhibitblank
+ \doconvertfont\tbltblstyle\empty
+ \everypar{\tbltblleft\delayedbegstrut}}
\def\eTBLCELL
{\ifhmode
- \endstrut
+ \delayedendstrut
+ \tbltblright
+ \par % added 13/4/2006
\else
+ % not sure yet:\tbltblright
\par
\ifdim\prevdepth<\zeropoint % =-1000pt ?
\vskip-\strutdp
@@ -100,10 +128,12 @@
\def\settblwid#1#2{\setxvalue{\@@tblprefix#1:w}{#2}} % global !
\def\settblhei#1#2{\setxvalue{\@@tblprefix#1:h}{#2}} % global !
+\def\settbldis#1#2{\setxvalue{\@@tblprefix#1:d}{#2}} % global !
\def\settblaut#1#2{\setxvalue{\@@tblprefix#1:a}{#2}} % global !
\def\gettblwid#1{\executeifdefined{\@@tblprefix#1:w}\zeropoint}
\def\gettblhei#1{\executeifdefined{\@@tblprefix#1:h}\zeropoint}
+\def\gettbldis#1{\executeifdefined{\@@tblprefix#1:d}\zeropoint}
\def\gettblaut#1{\csname\@@tblprefix#1:a\endcsname}
\def\doiftbltag #1#2{\doifdefined {\@@tblprefix#1:#2:s}}
@@ -136,6 +166,7 @@
\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
@@ -224,46 +255,68 @@
\def\setupTBLcell#1#2% cell over col over row
{\setupTBLsection % already forgotten
-\getvalue{\@@tblprefix\v!each\v!each}%
+ \edef\positiverow{\number#1}%
+ \edef\positivecol{\number#2}%
+ \scratchcounter-\maximumrow\advance\scratchcounter#1\advance\scratchcounter\minusone
+ \edef\negativerow{\number\scratchcounter}%
+ \scratchcounter-\maximumcol\advance\scratchcounter#2\advance\scratchcounter\minusone
+ \edef\negativecol{\number\scratchcounter}%
+ \getvalue{\@@tblprefix\v!each\v!each}%
\getvalue{\@@tblprefix\c!y\v!each}%
\getvalue{\@@tblprefix\c!x\v!each}%
- \getvalue{\@@tblprefix\c!y\v!oddeven{#1}}%
- \getvalue{\@@tblprefix\c!x\v!oddeven{#2}}%
- \getvalue{\@@tblprefix\c!x\v!oddeven{#2}\c!y\v!oddeven{#1}}%
- \ifnum#1=\plusone
+ \getvalue{\@@tblprefix\c!y\v!oddeven\positiverow}%
+ \getvalue{\@@tblprefix\c!x\v!oddeven\positivecol}%
+ \getvalue{\@@tblprefix\c!x\v!oddeven\positivecol\c!y\v!oddeven\positiverow}%
+ \ifnum\positiverow=\plusone
\getvalue{\@@tblprefix\c!y\v!first}%
- \executeifdefined{\@@tblprefix\c!x#2\c!y\v!first}\donothing
+ \executeifdefined{\@@tblprefix\c!x\positivecol\c!y\v!first}\donothing
\fi
- \ifnum#2=\plusone
+ \ifnum\positivecol=\plusone
\getvalue{\@@tblprefix\c!x\v!first}%
- \executeifdefined{\@@tblprefix\c!x\v!first\c!y#1}\donothing
+ \executeifdefined{\@@tblprefix\c!x\v!first\c!y\positiverow}\donothing
\fi
- \ifnum#1=\maximumrow\relax
+ \ifnum\positiverow=\maximumrow\relax
\getvalue{\@@tblprefix\c!y\v!last}%
- \executeifdefined{\@@tblprefix\c!x#2\c!y\v!last}\donothing
+ \executeifdefined{\@@tblprefix\c!x\positivecol\c!y\v!last}\donothing
\fi
- \ifnum#2=\maximumcol\relax
+ \ifnum\positivecol=\maximumcol\relax
\getvalue{\@@tblprefix\c!x\v!last}%
- \executeifdefined{\@@tblprefix\c!x\v!last\c!y#1}\donothing
+ \executeifdefined{\@@tblprefix\c!x\v!last\c!y\positiverow}\donothing
\fi
- \ifnum#1=\maximumrow\relax\ifnum#2=\maximumcol\relax
+ \ifnum\positiverow=\maximumrow\relax\ifnum\positivecol=\maximumcol\relax
\getvalue{\@@tblprefix\c!x\v!last\c!y\v!last}%
\fi\fi
- \ifnum#1=\plusone \ifnum#2=\plusone
+ \ifnum\positiverow=\plusone \ifnum\positivecol=\plusone
\getvalue{\@@tblprefix\c!x\v!first\c!y\v!first}%
\fi\fi
\ifnum#1>\noftblhdnxlines\else
\executeifdefined{\@@tblprefix\v!header\v!each}\donothing
- \executeifdefined{\@@tblprefix\v!header#2}\donothing
+ \executeifdefined{\@@tblprefix\v!header\positivecol}\donothing
\fi
- \executeifdefined{\@@tblprefix\c!y#1}\donothing
-\getvalue{\@@tbl\@@tbl\c!extras}\letvalue{\@@tbl\@@tbl\c!extras}\relax % new, see x-fo
- \executeifdefined{\@@tblprefix\c!x#2}\donothing
-\getvalue{\@@tbl\@@tbl\c!extras}\letvalue{\@@tbl\@@tbl\c!extras}\relax % new, see x-fo
- \executeifdefined{\@@tblprefix\c!x#2\c!y#1}\donothing
+ \executeifdefined{\@@tblprefix\c!y\positiverow}\donothing
+ \executeifdefined{\@@tblprefix\c!y\negativerow}\donothing
+ \getvalue{\@@tbl\@@tbl\c!extras}\letvalue{\@@tbl\@@tbl\c!extras}\relax % new, see x-fo
+ \executeifdefined{\@@tblprefix\c!x\positivecol}\donothing
+ \executeifdefined{\@@tblprefix\c!x\negativecol}\donothing
+ \getvalue{\@@tbl\@@tbl\c!extras}\letvalue{\@@tbl\@@tbl\c!extras}\relax % new, see x-fo
+ \executeifdefined{\@@tblprefix\c!x\positivecol\c!y\positiverow}\donothing
+ \executeifdefined{\@@tblprefix\c!x\negativecol\c!y\negativerow}\donothing
\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:
@@ -283,50 +336,30 @@
\let\eTR\relax % handy in \expanded
\setupTABLE[\v!row][\maximumrow][#1]}
-% \long\def\parseTD[#1][#2]#3\eTD % [#2] is dummy that kills spaces
-% {\getparameters[\@@tbl][\c!ny=\tblnr,\c!nx=\tblnc,nc=1,nr=1,#1]%
-% % goto first cell
-% \doloop
-% {\increment\currentcol
-% \doifnottbltag\maximumrow\currentcol\exitloop}%
-% % fill r*c cells and set span
-% \let\row\maximumrow
-% \let\col\currentcol
-% \dorecurse\tblny
-% {\let\col\currentcol
-% \settblcol\row\col\tblnx
-% \ifnum\tblnx>\maximumrowspan\relax
-% \let\maximumrowspan\tblnx
-% \fi
-% \dorecurse\tblnx
-% {\settbltag\row\col\tblnone
-% \increment\col}%
-% \increment\row}%
-% % check max column
-% \decrement\col
-% \ifnum\col>\maximumcol\relax
-% \let\maximumcol\col
-% \fi
-% % set values
-% \settbltag\maximumrow\currentcol\tblcell
-% \settblcol\maximumrow\currentcol\tblnx
-% \settblrow\maximumrow\currentcol\tblny
-% % save text
-% \edef\celltag{{\maximumrow}{\currentcol}}%
-% \@EA\settbltxt\@EA\maximumrow\@EA\currentcol\@EA
-% {\@EA\handleTBLcell\celltag[#1]{#3}}}
-
\long\def\parseTD[#1][#2]#3\eTD % [#2] is dummy that kills spaces
- {\getparameters[\@@tbl][\c!ny=\tblnr,\c!nx=\tblnc,nc=1,nr=1,\c!n=\currentcol,#1]%
- % goto first cell % NEW, n=cellnumber
+ {\getparameters[\@@tbl][\c!ny=\tblnr,\c!nx=\tblnc,nc=1,nr=1,\c!n=\currentcol,\c!m=,#1]%
+ % goto first cell % NEW, n/m=cellnumber
\increment\currentcolpos
- \doifvaluesomething{\@@tbl\c!n}
+ \doifelsevaluenothing{\@@tbl\c!n}
+ {\increment(\spnTBL,\tblnx)\relax}
{\ifnum\getvalue{\@@tbl\c!n}=\currentcol\else
\scratchcounter\getvalue{\@@tbl\c!n}%
\advance\scratchcounter-\currentcol
- \advance\scratchcounter\plusone
- \expanded{\parseTD[][\c!nx=\the\scratchcounter]}\eTD
- \getparameters[\@@tbl][\c!ny=\tblnr,\c!nx=\tblnc,nc=1,nr=1,\c!n=\currentcol,#1]%
+ \advance\scratchcounter\minusone
+\advance\scratchcounter-\spnTBL
+ \ifnum\scratchcounter>\zerocount
+ \expanded{\parseTD[\c!nx=\the\scratchcounter,\c!n=,\c!m=,*sq=\v!no][]}\eTD
+ \fi
+ \getparameters[\@@tbl][\c!ny=\tblnr,\c!nx=\tblnc,nc=1,nr=1,#1,\c!n=,\c!m=]%
+ \fi}%
+ \doifvaluesomething{\@@tbl\c!m}
+ {\ifnum\getvalue{\@@tbl\c!m}=\currentcol\else
+ \scratchcounter\getvalue{\@@tbl\c!m}%
+ \advance\scratchcounter-\currentcol
+ \advance\scratchcounter\minusone
+% \advance\scratchcounter-\spnTBL
+ \dorecurse\scratchcounter{\expanded{\parseTD[\c!n=,\c!m=][]}\eTD}%
+ \getparameters[\@@tbl][\c!ny=\tblnr,\c!nx=\tblnc,nc=1,nr=1,#1,\c!n=,\c!m=]%
\fi}%
\doloop
{\increment\currentcol
@@ -345,7 +378,7 @@
\increment\col}%
\increment\row}%
% check max column
- \decrement\col
+ \decrement\col\relax
\ifnum\col>\maximumcol\relax
\let\maximumcol\col
\fi
@@ -357,6 +390,41 @@
\edef\celltag{{\maximumrow}{\currentcol}}%
\@EA\settbltxt\@EA\maximumrow\@EA\currentcol\@EA
{\@EA\handleTBLcell\celltag[#1]{#3}}}
+
+%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}
@@ -366,6 +434,51 @@
\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
@@ -414,7 +527,8 @@
\processaction
[\tbltblsplit]
[ \v!yes=>\enableTBLbreaktrue,
- \v!repeat=>\enableTBLbreaktrue\multipleTBLheadstrue]%
+ \v!repeat=>\enableTBLbreaktrue\multipleTBLheadstrue,
+ \v!auto=>\ifinsidesplitfloat\enableTBLbreaktrue\fi]
\processaction
[\tbltblheader]
[\v!repeat=>\multipleTBLheadstrue]%
@@ -520,22 +634,24 @@
\doifnottblcol\row\col{\settblcol\row\col\!!zerocount}%
\doifnottbltag\row\col{\settbltag\row\col\tblnone}}}%
% check and do
- \startTBLprocessing
- \begTBL
- \dorecurse\maximumrow
- {\bTBL
- \let\row\recurselevel
- \dorecurse\maximumcol
- {\let\col\recurselevel
- \expanded{\doTBL{\row}{\col}}}%
- \eTBL}%
- \removeunwantedspaces % only if hmode
- \endTBL
- \stopTBLprocessing
- % wrong ! ! ! better to have an auto-offset-overlay
- % \ifnum\TBLlevel>1
- % \vskip-\strutdp
- % \fi
+ \ifcase\maximumcol\else
+ \startTBLprocessing
+ \begTBL
+ \dorecurse\maximumrow
+ {\bTBL
+ \let\row\recurselevel
+ \dorecurse\maximumcol
+ {\let\col\recurselevel
+ \expanded{\doTBL{\row}{\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}
@@ -573,19 +689,30 @@
{\doglobal\increment\colTBL}
\def\nexttblcol
- {\doglobal\increment\colTBL&}
+ {\doglobal\increment\colTBL
+ \kern\tbltblcolumndistance
+ &}
\def\spantblcol
{\span}
+\newcounter\rowTBL
+\newcounter\colTBL
+\newcounter\spnTBL
+
\def\begintblrow
{\noalign
- {\doglobal\increment\rowTBL
+ {\doglobal\increment \rowTBL
+ \doglobal\newcounter\spnTBL
\doglobal\newcounter\colTBL}%
- \nexttblcol}
+ \nexttblcol
+ \kern\tbltblleftmargindistance
+ \kern-\tbltblcolumndistance}
\def\endtblrow
- {\crcr
+ {\kern-\tbltblcolumndistance
+ \kern\tbltblrightmargindistance
+ \crcr
\noalign
{\nointerlineskip
\allowbreak
@@ -611,6 +738,7 @@
\def\begintbl
{\doglobal\newcounter\colTBL
\doglobal\newcounter\rowTBL
+ \doglobal\newcounter\spnTBL
\doglobal\decrement\rowTBL
\tabskip\zeropoint
\halign\bgroup
@@ -635,6 +763,7 @@
\def\begTBL
{\doglobal\newcounter\rowTBL
\doglobal\newcounter\colTBL
+ \doglobal\newcounter\spnTBL
\chardef\TBLpass\zerocount
\tbltoks\emptytoks
\appendtoks
@@ -659,7 +788,8 @@
{\settblwd \recurselevel\xcol\!!zeropoint
\settblht \recurselevel\xcol\!!zeropoint}%
% till here
- \settblwid\recurselevel\!!zeropoint}%
+ \settblwid\recurselevel\!!zeropoint
+ \settbldis\recurselevel\!!zeropoint}%
\dorecurse\maximumrow
{\settblhei\recurselevel\maxdimen}%
\chardef\TBLpass\plusone
@@ -674,6 +804,7 @@
\settblaut\colTBL\localwidth
\fi}}%
\setbox0\vbox{\trialtypesettingtrue \the\tbltoks}%
+\settbldis\maximumcol{\zeropoint}%
\ifautoTBLspread
% experimental, stretch non fixed cells to \hsize
\checktblwidthsone % trial run
@@ -690,8 +821,11 @@
\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 \the\tbltoks}%
@@ -703,7 +837,10 @@
\globalpushmacro\colTBL
\dorecurse{\gettblcol{##1}{##2}}
{\advance\dimen2 \gettblwid\colTBL
+ \advance\dimen2 \tbltblcolumndistance
+\ifnum\recurselevel<\gettblcol{##1}{##2}\relax \advance\dimen2 \gettbldis\colTBL\fi
\increment\colTBL}%
+ \advance\dimen2 -\tbltblcolumndistance
\edef\widthTBL{\the\dimen2}%
\globalpopmacro\colTBL
\setbox\scratchbox\hbox{\gettbltxt{##1}{##2}}%
@@ -739,7 +876,10 @@
\scratchdimen\zeropoint
\dorecurse{\gettblcol{##1}{##2}}
{\advance\scratchdimen \gettblwid\colTBL
+ \advance\scratchdimen \tbltblcolumndistance
+\ifnum\recurselevel<\gettblcol{##1}{##2}\relax \advance\scratchdimen \gettbldis\colTBL\fi
\increment\colTBL}%
+ \advance\scratchdimen -\tbltblcolumndistance
\edef\widthTBL{\the\scratchdimen}%
\globalpopmacro\colTBL
% cell
@@ -764,18 +904,26 @@
\fi\fi{\the\tbltoks}}
\def\stretchtblwidths
- {\!!dimend\zeropoint
- \dorecurse\maximumcol
- {\advance\!!dimend\gettblwid\recurselevel}%
- % distribute width (stretch)
- \ifdim\!!dimend<\hsize
- \advance\!!dimend-\hsize
- \!!dimend-\!!dimend
- \divide\!!dimend\maximumcol
+ {\ifcase\maximumcol\else % else division by zero
+ \!!dimend\zeropoint
+ \!!dimene\hsize
\dorecurse\maximumcol
- {\scratchdimen\gettblwid\recurselevel
- \advance\scratchdimen\!!dimend
- \settblwid\recurselevel{\the\scratchdimen}}%
+ {\advance\!!dimend \gettblwid\recurselevel
+ \advance\!!dimend \tbltblcolumndistance
+ \advance\!!dimene-\gettbldis\recurselevel}%
+ \advance\!!dimend-\tbltblcolumndistance
+ \advance\!!dimend\tbltblleftmargindistance
+ \advance\!!dimend\tbltblrightmargindistance
+ % distribute width (stretch)
+ \ifdim\!!dimend<\!!dimene
+ \advance\!!dimend-\!!dimene
+ \!!dimend-\!!dimend
+ \divide\!!dimend\maximumcol
+ \dorecurse\maximumcol
+ {\scratchdimen\gettblwid\recurselevel
+ \advance\scratchdimen\!!dimend
+ \settblwid\recurselevel{\the\scratchdimen}}%
+ \fi
\fi}
\newbox\finaltblbox
@@ -787,99 +935,116 @@
\box\finaltblbox
\afterTABLEbox}
+% \def\splittblbox#1%
+% {\ifinsidefloat
+% \notsplittblbox{#1}%
+% \else
+% \executeifdefined{splittblbox\tbltblsplitmethod}\splittblboxa{#1}%
+% \fi}
+
\def\splittblbox#1%
- {\ifinsidefloat
- \notsplittblbox{#1}%
+ {\ifinsidesplitfloat
+ \donetrue
+ \else\ifinsidefloat
+ \donefalse
\else
- \executeifdefined{splittblbox\tbltblsplitmethod}\splittblboxa{#1}%
+ \donetrue
+ \fi\fi
+ \ifdone
+ \executeifdefined{dosplittblbox\tbltblsplitmethod}\dosplittblbox{#1}%
+ \else
+ \notsplittblbox{#1}%
\fi}
\newbox\TABLEsplitbox % public, don't change
-% todo: mode: first|next (of niets)
+\let\extratblsplitheight\zeropoint % additional space taken by before/afterTABLEsplitbox
-\def\splittblboxa#1% spacing between rows gets lost in split
- {\setbox\TABLEsplitbox\vbox{#1}%
- \setbox8\vbox{\doifsomething\tbltblspaceinbetween{\blank[\tbltblspaceinbetween]}}%
- \ifmultipleTBLheads
- \setbox2\vbox{}%
- \setbox4\vbox{}%
- \dorecurse\noftblheadlines
- {\setbox0\vsplit\TABLEsplitbox to \lineheight
- \setbox2\vbox{\unvcopy2\unvcopy0}}%
- \dorecurse\noftblnextlines
- {\setbox0\vsplit\TABLEsplitbox to \lineheight
- \setbox4\vbox{\unvcopy4\unvcopy0}}%
- \ifcase\noftblheadlines\else
- \ifdim\pagegoal<\maxdimen
- \dimen0\ht2
- \advance\dimen0\ht8
- \advance\dimen0\pagetotal\relax
- \ifdim\dimen0>\pagegoal
- \bgroup\page\egroup % make sure that local vars are kept
- \fi
- \fi
- \unvcopy2
- \ifcase\noftblnextlines\else
- \setbox2\box4
- \fi
- \fi
- \fi
- \donefalse
- \!!doneafalse
- \doloop
- {\setbox0\vsplit\TABLEsplitbox to \lineheight
- \if!!donea
- \ifdim\pagegoal<\maxdimen
- \setbox0\vbox{\unvbox0}%
- \ifdim\ht0>\zeropoint
- \dimen0\ht0
- \advance\dimen0\ht8
- \advance\dimen0\pagetotal\relax
- \ifdim\dimen0>\pagegoal
- \bgroup\page\egroup % make sure that local vars are kept
- \ifmultipleTBLheads
- \ifcase\noftblheadlines\else\unvcopy2\fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \!!doneatrue
- \ifdone
- \doifsomething\tbltblspaceinbetween{\blank[\tbltblspaceinbetween]}%
- \fi
- \unvbox0
- %\allowbreak
- \bgroup
- % todo: what if tblnextlines ?
- \scratchcounter\recurselevel
- \ifmultipleTBLheads
- \advance\scratchcounter\noftblheadlines
- \fi
- \setupTBLcell{\number\scratchcounter}1
- \ifx\@@tblsplitafter\relax
- \allowbreak
- \else
- \doifelsenothing\@@tblsplitafter
- \allowbreak
- {\scratchcounter\realpageno
- \@@tblsplitafter
- \ifmultipleTBLheads
- \ifnum\scratchcounter<\realpageno
- \ifcase\noftblheadlines\else\unvcopy2\fi
- \fi
- \fi}%
- \fi
- \egroup
- \ifvoid\TABLEsplitbox \exitloop \else \donetrue \fi}}
+% todo: mode: first|next (of niets)
-\let\extratblsplitheight\zeropoint % additional space taken by before/afterTABLEsplitbox
+% \def\dosplittblboxa#1% spacing between rows gets lost in split
+% {\setbox\TABLEsplitbox\vbox{#1}%
+% \setbox8\vbox{\doifsomething\tbltblspaceinbetween{\blank[\tbltblspaceinbetween]}}%
+% \ifmultipleTBLheads
+% \setbox2\vbox{}%
+% \setbox4\vbox{}%
+% \dorecurse\noftblheadlines
+% {\setbox0\vsplit\TABLEsplitbox to \lineheight
+% \setbox2\vbox{\unvcopy2\unvcopy0}}%
+% \dorecurse\noftblnextlines
+% {\setbox0\vsplit\TABLEsplitbox to \lineheight
+% \setbox4\vbox{\unvcopy4\unvcopy0}}%
+% \ifcase\noftblheadlines\else
+% \ifdim\pagegoal<\maxdimen
+% \dimen0\ht2
+% \advance\dimen0\ht8
+% \advance\dimen0\pagetotal\relax
+% \ifdim\dimen0>\pagegoal
+% \bgroup\page\egroup % make sure that local vars are kept
+% \fi
+% \fi
+% \unvcopy2
+% \ifcase\noftblnextlines\else
+% \setbox2\box4
+% \fi
+% \fi
+% \fi
+% \donefalse
+% \!!doneafalse
+% \doloop
+% {\setbox0\vsplit\TABLEsplitbox to \lineheight
+% \if!!donea
+% \ifdim\pagegoal<\maxdimen
+% \setbox0\vbox{\unvbox0}%
+% \ifdim\ht0>\zeropoint
+% \dimen0\ht0
+% \advance\dimen0\ht8
+% \advance\dimen0\pagetotal\relax
+% \ifdim\dimen0>\pagegoal
+% \bgroup\page\egroup % make sure that local vars are kept
+% \ifmultipleTBLheads
+% \ifcase\noftblheadlines\else\unvcopy2\fi
+% \fi
+% \fi
+% \fi
+% \fi
+% \fi
+% \!!doneatrue
+% \ifdone
+% \doifsomething\tbltblspaceinbetween{\blank[\tbltblspaceinbetween]}%
+% \fi
+% \unvbox0
+% %\allowbreak
+% \bgroup
+% % todo: what if tblnextlines ?
+% \scratchcounter\recurselevel
+% \ifmultipleTBLheads
+% \advance\scratchcounter\noftblheadlines
+% \fi
+% \setupTBLcell{\number\scratchcounter}1
+% \ifx\@@tblsplitafter\relax
+% \allowbreak
+% \else
+% \doifelsenothing\@@tblsplitafter
+% \allowbreak
+% {\scratchcounter\realpageno
+% \@@tblsplitafter
+% \ifmultipleTBLheads
+% \ifnum\scratchcounter<\realpageno
+% \ifcase\noftblheadlines\else\unvcopy2\fi
+% \fi
+% \fi}%
+% \fi
+% \egroup
+% \ifvoid\TABLEsplitbox \exitloop \else \donetrue \fi}}
-% \def\splittblboxb#1%
-% {\testpage[2]% quite save since a row is > 1 lineheight and we don't want one-liners
+% \def\dosplittblboxb#1%
+% {\scratchdimen-\extratblsplitheight
+% \advance\scratchdimen-\tbltblsplitoffset
+% \expanded{\testpage[2][\the\scratchdimen]}% quite save since a row is > 1 lineheight and we don't want one-liners
% \setbox\TABLEsplitbox\vbox{#1}%
% \setbox8\vbox{\doifsomething\tbltblspaceinbetween{\blank[\tbltblspaceinbetween]}}%
+% \dimen8\ht8\advance\dimen8\dp8
% \ifmultipleTBLheads
% \setbox2\vbox{}%
% \setbox4\vbox{}%
@@ -895,33 +1060,57 @@
% {\ifdim\pagegoal<\maxdimen
% \scratchdimen\pagegoal
% \advance\scratchdimen-\pagetotal
+% \!!donecfalse
% \else
% \scratchdimen\textheight
+% \!!donectrue
% \fi
-% \ifmultipleTBLheads
-% \ifcase\noftblheadlines\else
-% \advance\scratchdimen-\ht2
-% \fi
-% \fi
-% \advance\scratchdimen-\ht8
-% \getnoflines\scratchdimen
-% \ifdim\noflines\lineheight>\scratchdimen
-% \advance\scratchdimen-\lineheight
-% \fi
+% \advance\scratchdimen-\dimen8
% \advance\scratchdimen-\extratblsplitheight
+% \advance\scratchdimen-\tbltblsplitoffset
% \setbox\finaltblbox\vbox
% {\ifmultipleTBLheads
% \ifcase\noftblheadlines\else
-% \unvcopy2
-% \doifsomething\tbltblspaceinbetween{\blank[\tbltblspaceinbetween]}%
+% \unvcopy2 \doifsomething\tbltblspaceinbetween{\blank[\tbltblspaceinbetween]}%
% \fi
-% \fi
-% \setbox0\vsplit\TABLEsplitbox to\scratchdimen
-% \unvbox0}%
+% \fi}%
% \if!!donea\else\ifcase\noftblnextlines\else
% \setbox2\box4
% \fi\fi
% \!!doneatrue
+% % alternatively we could use a kind of balancing like splitter
+% % first to scratchdimen and then smaller etc; more code and copy -)
+% \!!counta\zerocount
+% \doloop
+% {\setbox\scratchbox\vsplit\TABLEsplitbox to \onepoint
+% \setbox\scratchbox\vbox{\unvbox\scratchbox}%
+% \bgroup
+% \advance\scratchdimen-\ht\scratchbox
+% \advance\scratchdimen-\dp\scratchbox
+% \advance\scratchdimen-\ht\finaltblbox
+% \advance\scratchdimen-\dp\finaltblbox\relax
+% \ifdim\scratchdimen>\zeropoint
+% \egroup
+% \setbox\finaltblbox\vbox
+% {\unvbox\finaltblbox
+% \unvbox\scratchbox}%
+% \ifvoid\TABLEsplitbox \exitloop \fi
+% \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:
+% \egroup
+% \setbox\finaltblbox\vbox
+% {\unvbox\finaltblbox
+% \unvbox\scratchbox}%
+% \exitloop
+% \else
+% \egroup
+% \setbox\TABLEsplitbox\vbox
+% {\unvbox\scratchbox
+% \ifvoid\TABLEsplitbox\else\unvbox\TABLEsplitbox\allowbreak\fi}%
+% \exitloop
+% \fi\fi}%
+% %
% \postprocessTABLEsplitbox\finaltblbox
% \ifvoid\TABLEsplitbox
% \beforeTABLEsplitbox
@@ -930,116 +1119,42 @@
% \@@tblsplitafter
% \exitloop
% \else
-% % hack
-% \scratchdimen\pagegoal
-% \ifdim\scratchdimen<\maxdimen
+% % hack
+% \ifdim\pagegoal<\maxdimen
+% \scratchdimen\pagegoal
% \advance\scratchdimen \lineheight
% \global\pagegoal\scratchdimen
% \fi
% % brrr
-% \beforeTABLEsplitbox
-% \box\finaltblbox
-% \afterTABLEsplitbox
-% \@@tblsplitafter
+% \ifdim\ht\finaltblbox>\zeropoint
+% \beforeTABLEsplitbox
+% \box\finaltblbox
+% \afterTABLEsplitbox
+% \@@tblsplitafter
+% \fi
% \page
% \fi}}
-\def\splittblboxb#1%
- {\scratchdimen-\extratblsplitheight
- \advance\scratchdimen-\tbltblsplitoffset
- \expanded{\testpage[2][\the\scratchdimen]}% quite save since a row is > 1 lineheight and we don't want one-liners
- \setbox\TABLEsplitbox\vbox{#1}%
- \setbox8\vbox{\doifsomething\tbltblspaceinbetween{\blank[\tbltblspaceinbetween]}}%
- \dimen8\ht8\advance\dimen8\dp8
+\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}% \the\tbltoks
\ifmultipleTBLheads
- \setbox2\vbox{}%
- \setbox4\vbox{}%
\dorecurse\noftblheadlines
- {\setbox0\vsplit\TABLEsplitbox to \lineheight
- \setbox2\vbox{\unvcopy2\unvcopy0}}%
+ {\setbox\scratchbox\vsplit\tsplitcontent to \lineheight
+ \setbox\tsplithead\vbox{\unvcopy\tsplithead\unvcopy\scratchbox}}%
\dorecurse\noftblnextlines
- {\setbox0\vsplit\TABLEsplitbox to \lineheight
- \setbox4\vbox{\unvcopy4\unvcopy0}}%
+ {\setbox\scratchbox\vsplit\tsplitcontent to \lineheight
+ \setbox\tsplitnext\vbox{\unvcopy\tsplitnext\unvcopy\scratchbox}}%
\fi
- \!!doneafalse
- \doloop
- {\ifdim\pagegoal<\maxdimen
- \scratchdimen\pagegoal
- \advance\scratchdimen-\pagetotal
- \!!donecfalse
- \else
- \scratchdimen\textheight
- \!!donectrue
- \fi
- \advance\scratchdimen-\dimen8
- \advance\scratchdimen-\extratblsplitheight
- \advance\scratchdimen-\tbltblsplitoffset
- \setbox\finaltblbox\vbox
- {\ifmultipleTBLheads
- \ifcase\noftblheadlines\else
- \unvcopy2 \doifsomething\tbltblspaceinbetween{\blank[\tbltblspaceinbetween]}%
- \fi
- \fi}%
- \if!!donea\else\ifcase\noftblnextlines\else
- \setbox2\box4
- \fi\fi
- \!!doneatrue
- % alternatively we could use a kind of balancing like splitter
- % first to scratchdimen and then smaller etc; more code and copy -)
- \!!counta\zerocount
- \doloop
- {\setbox\scratchbox\vsplit\TABLEsplitbox to \onepoint
- \setbox\scratchbox\vbox{\unvbox\scratchbox}%
- \bgroup
- \advance\scratchdimen-\ht\scratchbox
- \advance\scratchdimen-\dp\scratchbox
- \advance\scratchdimen-\ht\finaltblbox
- \advance\scratchdimen-\dp\finaltblbox\relax
- \ifdim\scratchdimen>\zeropoint
- \egroup
- \setbox\finaltblbox\vbox
- {\unvbox\finaltblbox
- \unvbox\scratchbox}%
- \ifvoid\TABLEsplitbox \exitloop \fi
- \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:
- \egroup
- \setbox\finaltblbox\vbox
- {\unvbox\finaltblbox
- \unvbox\scratchbox}%
- \exitloop
- \else
- \egroup
- \setbox\TABLEsplitbox\vbox
- {\unvbox\scratchbox
- \ifvoid\TABLEsplitbox\else\unvbox\TABLEsplitbox\allowbreak\fi}%
- \exitloop
- \fi\fi}%
- %
- \postprocessTABLEsplitbox\finaltblbox
- \ifvoid\TABLEsplitbox
- \beforeTABLEsplitbox
- \box\finaltblbox
- \afterTABLEsplitbox
- \@@tblsplitafter
- \exitloop
- \else
- % hack
- \ifdim\pagegoal<\maxdimen
- \scratchdimen\pagegoal
- \advance\scratchdimen \lineheight
- \global\pagegoal\scratchdimen
- \fi
- % brrr
- \ifdim\ht\finaltblbox>\zeropoint
- \beforeTABLEsplitbox
- \box\finaltblbox
- \afterTABLEsplitbox
- \@@tblsplitafter
- \fi
- \pagina
- \fi}}
+ \doifsomething\tbltblspaceinbetween
+ {\def\tsplitinbetween{\blank[\tbltblspaceinbetween]}}%
+ \def\postprocesstsplit{\postprocessTABLEsplitbox{\box\tsplitresult}}%
+ \handletsplit}
% ! ! ! ! TODO: naast \postprocessTABLEsplitbox ook evt \postprocessTABLEbox voor niet split
@@ -1058,8 +1173,14 @@
{\iftraceTABLE\showtblwids{B#1}\fi
\!!dimena\hsize
\!!counta\zerocount
+% test, dunno yet
+\advance\!!dimena-\tbltblleftmargindistance
+\advance\!!dimena-\tbltblrightmargindistance
+\advance\!!dimena-\tbltblcolumndistance
\dorecurse\maximumcol
{\scratchdimen\gettblaut\recurselevel\relax
+% test, seems to work ok
+\advance\!!dimena-\gettbldis\recurselevel\relax
\ifdim\scratchdimen>\zeropoint\relax
\advance\!!dimena -\scratchdimen
\else
@@ -1176,9 +1297,14 @@
% new, needed for icare first col of 'doeltabel', experimental
-\long\def\dohandleTBLcellA#1#2[#3]#4%
- {\setbox\scratchbox\hbox
- {\setupTBLcell{#1}{#2}%
+\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
@@ -1186,10 +1312,21 @@
\scratchdimen\gettblwid\colTBL\relax
\ifdim\wd\scratchbox>\scratchdimen
\ifsqueezeTBLspan
- \ifnum0\number\gettblcol{#1}{#2}>1\relax \settblspn\colTBL \fi
+ \ifautosqueezeTBLspan
+ \doifinsetelse\tbltblwidth{\v!fit,\v!fixed,\v!broad,\v!local}
+ \donetrue \donefalse
+ \else
+ \donetrue
+ \fi
+ \ifdone
+ \ifnum0\number\gettblcol{#1}{#2}>1\relax \settblspn\colTBL \fi
+ \fi
\fi
\doifelsetblspn\colTBL
- \donothing{\settblwid\colTBL{\the\wd\scratchbox}}% auto set
+ \donothing
+ {\ifdim\gettblwid\colTBL<\wd\scratchbox
+ \settblwid\colTBL{\the\wd\scratchbox}%
+ \fi}% auto set
\fi
\let\rowTBLx\rowTBL\increment\rowTBLx
\scratchdimen\gettblhei\rowTBLx\relax
@@ -1200,8 +1337,8 @@
\settblwd{#1}{#2}{\the\wd\scratchbox}%
\ifautoTBLcheckwidth
\ifdim\wd\scratchbox<.75\hsize
- \ifdim\ht\scratchbox>2\openlineheight % honor width since this can be a
- \scratchdimen\gettblaut\colTBL\relax % figure or so
+ \ifdim\ht\scratchbox>2\openlineheight % honor width since this
+ \scratchdimen\gettblaut\colTBL\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
@@ -1210,14 +1347,16 @@
% unless span
\settblaut\colTBL{\the\wd\scratchbox}%
% to be translated
- \writestatus\m!TABLE{no auto width in (\number#1,\number#2)\space\the\wd\scratchbox/\the\hsize}%
+ \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}
+ \box2
+ \egroup}
\long\def\dohandleTBLcellBC#1#2#3[#4]#5%
{\setbox\scratchbox\hbox
@@ -1282,7 +1421,8 @@
[\@@tbl\@@tbl]
[\c!color=,\c!width=\widthTBL,\c!height=\heightTBL]
{\bTBLCELL\TBLcharalign{#2}{#4}\eTBLCELL}%
- \fi}}
+ \fi}%
+ \hskip\gettbldis{#2}}
\setupTABLE
[\c!frameoffset=.5\linewidth,
@@ -1292,7 +1432,8 @@
\c!style=,
\c!headstyle=\v!bold,
\c!headcolor=,
- \c!strut=\v!no,
+ \c!strut=\v!yes,
+ \c!autostrut=\v!no,
\c!aligncharacter=\v!no,
\c!alignmentcharacter={,},
\c!option=, % \v!stretch
@@ -1300,8 +1441,14 @@
\c!spaceinbetween=,
\c!maxwidth=8em,
\c!textwidth=\hsize,
- \c!split=\v!no,
+ \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,
@@ -1358,6 +1505,20 @@
\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
@@ -1426,6 +1587,34 @@
\def\TableTB{\doTableinterline{TB}}
\appendtoks\let\TB\TableTB \to\everytable
-\appendtoks\let\TB\TabulateTB\to\everytabulate
+\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
diff --git a/Master/texmf-dist/tex/context/base/core-num.tex b/Master/texmf-dist/tex/context/base/core-num.tex
index 1054c4e1907..2747ea5e74e 100644
--- a/Master/texmf-dist/tex/context/base/core-num.tex
+++ b/Master/texmf-dist/tex/context/base/core-num.tex
@@ -72,8 +72,10 @@
\c!location=, % no longer used here, will go away (was ooit \c!zetwijze)
\c!conversion=\v!numbers,
\c!start=0,
+ \c!state=\v!start,
#2]%
\makecounter{\@@thenumber{#1}}%
+ \setxvalue{\@@thenumber{#1}\c!n}{\countervalue{\@@thenumber{#1}}}%
\setcounter{\@@thenumber{#1}}{\numberparameter{#1}\c!start}}
\def\setnumber[#1]#2%
@@ -82,9 +84,6 @@
\def\resetnumber[#1]%
{\setcounter{\@@thenumber{#1}}{0\numberparameter{#1}\c!start}}
-\def\dodoreset#1%
- {\getvalue{\s!reset#1}}%
-
\def\savenumber[#1]%
{\savecounter{\@@thenumber{#1}}}
@@ -97,24 +96,36 @@
\def\doreset[#1]%
{\processcommalist[#1]\dodoreset}
+\def\dodoreset#1%
+ {\getvalue{\s!reset#1}}%
+
\def\reset
{\dosingleargument\doreset}
% nieuw, maar kan dit (i.v.m. (sub)page?)
% \def\incrementnumber[#1]%
-% {\checknummer{#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}%
\ifpagechanged\resetcounter{\@@thenumber{#1}}\fi}
- {\checknummer{#1}}%
+ {\checknumber[#1]}%
\doifelse\@@nrstate\v!start % only here
- {\pluscounter{\@@thenumber{#1}}}
+ {\doif{\numberparameter{#1}\c!state}\v!start{\pluscounter{\@@thenumber{#1}}}}
{\setcounter{\@@thenumber{#1}}{0\numberparameter{#1}\c!start}}}
% \defineenumeration [test] [way=bypage,text=\lastchangedpage]
@@ -132,9 +143,12 @@
\def\rawnumber[#1]%
{\countervalue{\@@thenumber{#1}}}
+\def\accumulatednumber[#1]%
+ {\getvalue{\@@thenumber{#1}\c!n}}
+
\let\getnumber\convertednumber
-\ifx\checknummer\undefined \let\checknummer\gobbleoneargument \fi
+\ifx\checknumber\undefined \def\checknumber[#1]{} \fi
% ook de pag nummers hierheen halen ivm \@@nrwijze
diff --git a/Master/texmf-dist/tex/context/base/core-obj.tex b/Master/texmf-dist/tex/context/base/core-obj.tex
index 1e6720540ba..d9e51911c4a 100644
--- a/Master/texmf-dist/tex/context/base/core-obj.tex
+++ b/Master/texmf-dist/tex/context/base/core-obj.tex
@@ -50,6 +50,11 @@
31: obiect duplicat --
\stopmessages
+\startmessages french library: references
+ 30: objet -- inconnu
+ 31: objet -- dupliqué
+\stopmessages
+
%D \macros
%D {setobject,getobject,ifinobject}
%D
diff --git a/Master/texmf-dist/tex/context/base/core-pgr.tex b/Master/texmf-dist/tex/context/base/core-pgr.tex
new file mode 100644
index 00000000000..ea47363a744
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/core-pgr.tex
@@ -0,0 +1,1675 @@
+%D \module
+%D [ file=core-pgr, % split off 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.
+
+\writestatus{loading}{Context Positioning 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.
+
+\unprotect
+
+% in the future, the depth of tail will reflect page depth
+
+\def\textanchor{text:\realfolio}
+
+\ifx\textheight\undefined \def\textheight{\vsize} \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 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\headanchor{head:\realfolio} % virtual position
+\def\tailanchor{tail:\realfolio} % virtual position
+
+\def\presetpositionanchors% compatibility hack (still needed?)
+ {\ifpositioning
+ \dopresetpositionanchors
+ \fi}
+
+\def\dopresetpositionanchors
+ {\bgroup
+ \!!dimena\ifdim\topskip>\strutht\topskip\else\strutht\fi
+ \!!dimenb\MPy\textanchor
+ \!!dimenc\!!dimenb
+ \advance\!!dimenb \MPh\textanchor % space is essential
+ \advance\!!dimenb -\!!dimena
+ \advance\!!dimenc \strutdp
+ \!!dimend\MPx\textanchor
+ \!!dimene\MPw\textanchor
+ \setxvalue{\POSprefix\headanchor}%
+ {\realfolio,\withoutpt\the\!!dimend,\withoutpt\the\!!dimenb,%
+ \withoutpt\the\!!dimene,\withoutpt\the\!!dimena,\withoutpt\the\strutdp}%
+ \setxvalue{\POSprefix\tailanchor}%
+ {\realfolio,\withoutpt\the\!!dimend,\withoutpt\the\!!dimenc,%
+ \withoutpt\the\!!dimene,\withoutpt\the\strutht,\withoutpt\the\strutdp}%
+ %\showanchor\textanchor\showanchor\headanchor\showanchor\tailanchor\wait
+ \egroup}
+
+\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
+
+%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
+ {\ifundefined{\POSactionprefix#1++}\else
+ \the\everycleanpositionaction
+ \iflocalpositioning
+ \letgvalue{\POSactionprefix#1++}\empty
+ \else
+ \setxvalue{\POSactionprefix#1++}{\getvalue{\POSactionprefix#1++}}%
+ \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
+ % \doifdefined{\MPoverlayposprefix#1}
+ % {\getvalue{\MPoverlayposprefix#1}{#1}{#2}{#3}}%
+ \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}}}
+
+\def\prepareMPpositionvariables
+ {\ifundefined{\@@meta self}\setvalue{\@@meta self}{\currentposition}\fi
+ \ifundefined{\@@meta from}\setvalue{\@@meta from}{\currentposition}\fi}
+
+\newif\ifcollectMPpositiongraphics \collectMPpositiongraphicstrue
+
+\long\def\useMPpositiongraphic#1#2#3%
+ {\bgroup
+ \prepareMPvariables{#2}%
+ \prepareMPpositionvariables
+ \enableincludeMPgraphics
+ \ifcollectMPpositiongraphics
+ \expanded{\startMPdrawing#3\noexpand\stopMPdrawing}%
+ \global\MPdrawingdonetrue
+ \else
+ \startMPgraphic#3\stopMPgraphic
+ \loadMPgraphic{\MPgraphicfile.\the\currentMPgraphic}{}%
+ \deallocateMPslot\currentMPgraphic
+ \placeMPgraphic
+ \fi
+ \egroup}
+
+% Now we need a adapted action handler:
+
+\def\dopositionaction#1% test saves hash entry in etex
+ {\ifundefined{\POSactionprefix#1::}\else
+ \ifnum\MPp{#1}>\zerocount % new
+ \bgroup
+ \setbox\scratchbox\hbox
+ \bgroup
+ \traceposstring\clap\red{<#1>}%
+ \the\everyinsertpositionaction
+ \the\everypositionaction
+ \ifcollectMPpositiongraphics
+ % can save a lot of run time
+ \pushMPdrawing
+ \MPshiftdrawingtrue
+ \resetMPdrawing
+ \getvalue{\POSactionprefix#1::}%
+ \ifMPdrawingdone
+ \getMPdrawing
+ \fi
+ \resetMPdrawing
+ \popMPdrawing
+ \else
+ \getvalue{\POSactionprefix#1::}%
+ \fi
+ \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
+ \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
+
+%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.
+
+\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,
+ %snaptops=true, % not that nice: true/false
+ gridcolor=red,
+ linecolor=blue,
+ fillcolor=lightgray,
+ filloffset=\!!zeropoint,
+ linewidth=\linewidth,
+ gridwidth=\linewidth,
+ lineradius=.5\bodyfontsize]
+
+\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} ;
+ boxgridcolor := \MPvar{gridcolor} ;
+ boxlinecolor := \MPvar{linecolor} ;
+ boxfillcolor := \MPvar{fillcolor} ;
+ boxfilloffset := \MPvar{filloffset} ;
+ boxlinewidth := \MPvar{linewidth} ;
+ boxgridwidth := \MPvar{gridwidth} ;
+ boxlineradius := \MPvar{lineradius} ;
+ %snap_multi_par_tops := \MPvar{snaptops} ;
+\stopuseMPgraphic
+
+\startuseMPgraphic{mpos:par:extra}
+ % user stuff, like:
+ % snap_multi_par_tops := false ;
+\stopuseMPgraphic
+
+% \startMPpositionmethod{mpos:par}
+% \doifpositionelse{w:\MPvar{self}}
+% {\startMPpositiongraphic{mpos:par}%
+% {fillcolor,filloffset,linecolor,gridcolor,linewidth,gridwidth,lineradius}
+% initialize_area_par(\MPpos{b:\MPvar{self}},
+% \MPpos{e:\MPvar{self}},
+% \MPpos{w:\MPvar{self}}) ;
+% \includeMPgraphic{mpos:par:setup} ;
+% \includeMPgraphic{mpos:par:extra} ;
+% \includeMPgraphic{\MPvar{mp}} ; % \includeMPgraphic{mpos:par:shape} ;
+% anchor_par(\MPanchor{b:\MPvar{self}}) ;
+% \stopMPpositiongraphic}
+% {\startMPpositiongraphic{mpos:par}%
+% {fillcolor,filloffset,linecolor,gridcolor,linewidth,gridwidth,lineradius}
+% initialize_par(\MPpos{b:\MPvar{self}},
+% \MPpos{e:\MPvar{self}},
+% \MPpos{text:\realfolio},
+% \MPpos{p:\MPparcounter},
+% \MPvv {p:\MPparcounter}{0,0,0,0,0,0}) ;
+% \includeMPgraphic{mpos:par:setup} ;
+% \includeMPgraphic{mpos:par:extra} ;
+% \includeMPgraphic{\MPvar{mp}} ; % \includeMPgraphic{mpos:par:shape} ;
+% anchor_par(\MPanchor{b:\MPvar{self}}) ;
+% \stopMPpositiongraphic}%
+% \MPpositiongraphic{mpos:par}{}%
+% \stopMPpositionmethod
+
+%D Less readable but shorter.
+
+\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,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,lineradius}
+ initialize_par(\MPpos\MPbself,
+ \MPpos\MPeself,
+ \MPpos\textanchor,
+ \MPpos\MPparanchor,
+ \MPvv \MPparanchor{0,0,0,0,0,0}) ;
+ \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
+
+\startMPpositionmethod{mpos:par:columnset}
+ \edef\MPparcounter{\MPv\MPbself{1}{0}}%
+ \startMPpositiongraphic{mpos:par}%
+ {fillcolor,filloffset,linecolor,gridcolor,%
+ linewidth,gridwidth,lineradius}
+ \includeMPgraphic{mpos:par:setup} ;
+ \includeMPgraphic{mpos:par:extra} ;
+ prepare_multi_pars(\MPpos\MPbself,\MPpos\MPeself,\MPpos\MPwself,
+ \MPpos\MPparanchor,\MPvv\MPparanchor{0,0,0,0,0,0}) ;
+ 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 methodmethode=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\realfolio\fi}
+
+%D So far for the trickery.
+
+\newcounter\textbackgrounddepth
+
+\appendtoks
+ \savecurrentvalue\totalnofparbackgrounds\nofparbackgrounds
+\to \everybye
+
+\appendtoks
+ \initializeparbackgrounds
+\to \everystarttext
+
+\ifx\totalnofparbackgrounds\undefined \newcounter\totalnofparbackgrounds \fi
+\ifx\nofparbackgrounds \undefined \newcounter\nofparbackgrounds \fi
+
+\def\initializeparbackgrounds
+ {\ifcase\totalnofparbackgrounds\else
+ \global\positioningtrue
+ \global\positioningpartrue
+ \fi}
+
+\unexpanded\def\starttextbackground
+ {\bgroup
+ \increment\textbackgrounddepth
+ \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\backgroundvariable#1%
+ {\csname\??td\currenttextbackground#1\endcsname}
+
+% \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}%
+ \doglobal\increment\nofparbackgrounds
+ %\edef\currentparbackground{background:\nofparbackgrounds}%
+ \edef\currentparbackground{pbg:\nofparbackgrounds}%
+ \bgroup
+ \increment\nofparbackgrounds
+ %\xdef\nextparbackground{background:\nofparbackgrounds}%
+ \xdef\nextparbackground{pbg:\nofparbackgrounds}%
+ \egroup
+ % todo : \synchonizepositionpage{b:\currentparbackground}{s:\currentparbackground}%
+ \setuptextbackground[#1][#2]%
+ \let\dodostarttextbackground\relax
+ \let\dodostoptextbackground \relax
+ \doifvalue{\??td#1\c!state}\v!start
+ {\dopresettextbackground{#1}}%
+ \dodostarttextbackground}
+
+% todo \backgroundvariable\c!variant
+
+\def\dopresettextbackground#1% todo: \backgroundparameter
+ {\ExpandFirstAfter\processaction % \EFA niet echt nodig
+ [\getvalue{\??td#1\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
+ \doifelsevalue{\??td#1\c!frame}\v!on
+ {\doifelsevalue{\??td#1\c!corner}\v!round
+ {\setvalue{\??td#1\c!frame}{2}}
+ {\setvalue{\??td#1\c!frame}{1}}}
+ {\setvalue{\??td#1\c!frame}{0}}%
+ \doifelsevalue{\??td#1\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{\getvalue{\??td#1\c!level}}}%
+ \expanded
+ {\setMPpositiongraphicrange % moet veel efficienter
+ {\btbanchor}% {b:\currentparbackground}%
+ {\etbanchor}% {e:\currentparbackground}%
+ {\getvalue{\??td#1\c!method}}%
+ {self=\currentparbackground,
+ mp=\getvalue{\??td#1\c!mp},
+ gridtype=\getvalue{\??td#1\c!alternative},
+ filltype=\getvalue{\??td#1\c!background},
+ linetype=\getvalue{\??td#1\c!frame},
+ gridcolor=\getvalue{\??td#1\c!framecolor},
+ linecolor=\getvalue{\??td#1\c!framecolor},
+ fillcolor=\getvalue{\??td#1\c!backgroundcolor},
+ filloffset=\getvalue{\??td#1\c!backgroundoffset},
+ gridwidth=\getvalue{\??td#1\c!rulethickness},
+ linewidth=\getvalue{\??td#1\c!rulethickness},
+ lineradius=\getvalue{\??td#1\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 \leavevmode \fi
+ \dostartattributes{\??td\currenttextbackground}\c!style\c!color\empty
+ \fpos\currentparbackground\ignorespaces}
+
+\def\dostoptextbackgroundtxt
+ {\tpos\currentparbackground
+ \dostopattributes}
+
+% keep this simple one, it's used in prikkels and alike
+%
+% \def\dostarttextbackgroundpar
+% {\endgraf % new
+% \getvalue{\??td\currenttextbackground\c!before}%
+% \noindent\fpos\currentparbackground\ignorespaces
+% \bgroup
+% \nobreak \vskip-\lineheight \nobreak
+% \doassignsomeskip\getvalue{\??td\currenttextbackground\c!topoffset}\to\scratchskip
+% \kern\scratchskip\nobreak
+% \dosetleftskipadaption{\getvalue{\??td\currenttextbackground\c!leftoffset}}%
+% \advance\leftskip\leftskipadaption
+% \dosetleftskipadaption{\getvalue{\??td\currenttextbackground\c!rightoffset}}%
+% \advance\rightskip\leftskipadaption
+% \dostartattributes{\??td\currenttextbackground}\c!style\c!color{}%
+% \nowhitespace
+% \seteffectivehsize
+% \par}
+%
+% \def\dostoptextbackgroundpar
+% {\par
+% \dostopattributes
+% \doassignsomeskip\getvalue{\??td\currenttextbackground\c!bottomoffset}\to\scratchskip
+% \kern\scratchskip\nobreak
+% \nobreak \vskip-\lineheight \nobreak
+% \nowhitespace
+% \egroup
+% \nobreak \noindent \strut \hfill \kern\zeropoint \tpos\currentparbackground
+% \endgraf % new
+% \getvalue{\??td\currenttextbackground\c!after}}
+
+\def\dostarttextbackgroundpar
+ {\endgraf % new
+ \getvalue{\??td\currenttextbackground\c!before}%
+ \doassignsomeskip\getvalue{\??td\currenttextbackground\c!topoffset}\to\scratchskip
+ \xdef\textbackgroundskip{\the\scratchskip}%
+ \noindent
+ \ifgridsnapping
+ \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
+ \doassignsomeskip\getvalue{\??td\currenttextbackground\c!topoffset}\to\scratchskip
+ \ifgridsnapping \else \ifdim\textbackgroundskip>\zeropoint
+ \kern\textbackgroundskip\nobreak
+ \fi \fi
+ \dosetleftskipadaption{\getvalue{\??td\currenttextbackground\c!leftoffset}}%
+ \advance\leftskip\leftskipadaption
+ \dosetleftskipadaption{\getvalue{\??td\currenttextbackground\c!rightoffset}}%
+ \advance\rightskip\leftskipadaption
+ % new
+ \dosetraggedcommand{\getvalue{\??td\currenttextbackground\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\getvalue{\??td\currenttextbackground\c!bottomoffset}\to\scratchskip
+ \ifdim\lastskip>\zeropoint
+ \advance\scratchskip-\lastskip
+ \fi
+ \xdef\textbackgroundskip{\the\scratchskip}%
+ \ifgridsnapping \else \ifdim\textbackgroundskip>\zeropoint
+ \kern\scratchskip\nobreak
+ \fi \fi
+ \nobreak \vskip-\lineheight \nobreak
+ \nowhitespace
+ \egroup
+\bgroup \forgeteverypar % NOT REALLY NEEDED, SAVES HASH/MEM
+ \nobreak \noindent \strut \hfill \kern\zeropoint
+ \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
+ \getvalue{\??td\currenttextbackground\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%
+ {\scratchcounter\MPp#2%\etbanchor
+ \advance\scratchcounter-\MPp#1%\btanchor
+ \edef\textparpages{\the\scratchcounter}%
+ \ifcase\scratchcounter
+ % one page
+ \scratchdimen \MPy#1%\btanchor
+ \advance\scratchdimen-\MPy#2%\etbanchor
+ \else
+ % two or more pages
+ \scratchdimen \MPy#1%\btanchor
+ \advance\scratchdimen-\MPy#2%\etbanchor
+ \advance\scratchdimen-\MPy\textanchor
+ \advance\scratchdimen \MPy\textanchor
+ \advance\scratchdimen \MPh\textanchor\relax
+ \ifcase\scratchcounter>2 \ifnum\scratchcounter<5
+ % more pages
+ \scratchdimen\textheight
+ \advance\scratchcounter \minusone
+ \multiply\scratchdimen \scratchcounter
+ \else
+ % keep'm small
+ \scratchdimen5\textheight
+ \fi \fi
+ \fi
+ \edef\textparheight{\the\scratchdimen}%
+ \ifcase\scratchcounter
+ % one page
+ \scratchdimen \MPx#2%\etbanchor
+ \advance\scratchdimen-\MPx#1%\btanchor
+ \else
+ % two or more pages / maybe also hang
+ \ifx#3\relax
+ \scratchdimen\makeupwidth % \textwidth
+ \else
+ \scratchdimen\MPw\MPparanchor
+ \advance\scratchdimen-\MPl\MPparanchor
+ \advance\scratchdimen-\MPr\MPparanchor
+ \fi
+ \fi
+ \edef\textparwidth{\the\scratchdimen}}
+
+\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]%
+ {\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,
+ \c!radius,\c!frame,\c!framecolor,\c!rulethickness,
+ \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=\getvalue{\??td\currenttextbackground\c!leftoffset},
+ \c!topoffset=\!!zeropoint, % \v!medium,
+ \c!bottomoffset=\getvalue{\??td\currenttextbackground\c!topoffset},
+ \c!level=-1,
+ \c!alternative=0,
+ \c!align=,
+ \c!background=\v!color,
+ \c!backgroundcolor=lightgray,
+ \c!backgroundoffset=\!!zeropoint,
+ \c!corner=\v!rectangular,
+ \c!radius=.5\bodyfontsize,
+ \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}
+
+\newcounter\currentautopos
+
+\def\POSstackprefix{stack:}
+
+\def\dostackposbox#1#2%
+ {\dowithnextbox
+ {#2{\let\previousautopos\currentautopos
+ \doglobal\increment\currentautopos
+ \hpos{\POSstackprefix\currentautopos}
+ {\doifoverlappingelse{\POSstackprefix\currentautopos}{\POSstackprefix\previousautopos}
+ {#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.
+
+% \def\stackeddown
+% {\dowithnextbox
+% {\doglobal\increment\currentautopos
+% \hpos{\POSstackprefix\currentautopos}
+% {\edef\next
+% {\nextboxht\the\nextboxht
+% \nextboxdp\the\nextboxdp
+% \nextboxwd\the\nextboxwd}%
+% \let\previousautopos\currentautopos
+% \scratchdimen\zeropoint
+% \doloop
+% {\decrement\previousautopos
+% \doifoverlappingelse{\POSstackprefix\currentautopos}{\POSstackprefix\previousautopos}
+% {\advance\scratchdimen\MPh{\POSstackprefix\previousautopos}%
+% \advance\scratchdimen\MPd{\POSstackprefix\previousautopos}}%
+% \exitloop
+% \ifnum\previousautopos<\zerocount\exitloop\fi}%
+% % \ifdim\scratchdimen>\zeropoint
+% \setbox\nextbox\iftracepositions\@EA\ruledhbox\else\@EA\hbox\fi
+% {\lower\scratchdimen\flushnextbox}%
+% \next
+% % \fi
+% \flushnextbox}}}
+
+% 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
+
+\def\stackeddown
+ {\bgroup
+ % this macro assumes a few things and is meant to work for margin notes
+ \dowithnextbox
+ {\doglobal\increment\currentautopos
+ \global\laststackvmove\zeropoint
+ \hpos{\POSstackprefix\currentautopos}
+ {\edef\next
+ {\nextboxht\the\nextboxht
+ \nextboxdp\the\nextboxdp
+ \nextboxwd\the\nextboxwd}%
+ \let\previousautopos\currentautopos
+ \scratchdimen\zeropoint
+ \scratchcounter\zerocount
+ \doloop
+ {\decrement\previousautopos\relax
+ \edef\currentposition {\POSstackprefix\currentautopos}%
+ \edef\previousposition{\POSstackprefix\previousautopos}%
+ \ifnum\MPp\currentposition=\MPp\previousposition\relax
+ %\registerstatus{doing \currentautopos/\previousautopos}%
+ \doifoverlappingelse\currentposition\previousposition
+ {\scratchskip \MPy\currentposition
+ \advance\scratchskip-\MPy\previousposition
+ \advance\scratchskip-\MPd\currentposition % untested
+ \advance\scratchskip \MPd\previousposition % untested
+ \advance\scratchskip \MPh\currentposition
+ % todo: also take depth into account
+ \relax
+ \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\currentautopos}%
+ \scratchskip\scratchdimen
+ \advance\scratchskip\MPh\currentposition
+ \scratchdimen-\scratchdimen
+ \advance\scratchdimen\MPy\currentposition
+ %\registerstatus{old \currentautopos: \MPy\currentposition/\MPh\currentposition}%
+ \expanded{\replacepospxywhd
+ {\currentposition}{\MPp\currentposition}{\MPx\currentposition}{\the\scratchdimen}%
+ {\MPw\currentposition}{\the\scratchskip}{\MPd\currentposition}}%
+ %\registerstatus{new \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
+
+\newcounter\currentmarginpos
+
+% \def\dopositionmarginbox#1%
+% {\bgroup
+% \ifrepositionmarginbox
+% \doglobal\increment\currentmarginpos
+% \setposition{\s!margin:\currentmarginpos}%
+% \scratchdimen=\MPy{\s!margin:\currentmarginpos}%
+% \doglobal\increment\currentmarginpos
+% \advance\scratchdimen by -\MPy{\s!margin:\currentmarginpos}%
+% \advance\scratchdimen by -\strutdp
+% \setbox#1=\hbox
+% {\setposition{\s!margin:\currentmarginpos}\raise\scratchdimen\box#1}%
+% \dp#1=\!!zeropoint
+% \ht#1=\!!zeropoint
+% \fi
+% \vadjust{\box#1}%
+% \egroup}
+
+\def\dopositionmarginbox#1% how about page boundaries !
+ {\bgroup
+ \ifrepositionmarginbox
+ \doglobal\increment\currentmarginpos
+ \setposition{\s!margin:\currentmarginpos}%
+ \scratchdimen\MPy{\s!margin:\currentmarginpos}%
+ \doglobal\increment\currentmarginpos
+ \advance\scratchdimen -\MPy{\s!margin:\currentmarginpos}%
+ \advance\scratchdimen -\strutdp
+ % new
+ \setbox#1\hbox
+ {\hskip-\MPx{\s!margin:\currentmarginpos}%
+ \hskip\MPx{head:\realfolio}%
+ \box#1}%
+ % so far
+ \setbox#1\hbox
+ {\setposition{\s!margin:\currentmarginpos}%
+ \raise\scratchdimen\box#1}%
+ \dp#1\zeropoint
+ \ht#1\zeropoint
+ \fi
+ \graphicvadjust{\box#1}%
+ \egroup}
+
+%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\do@@amposition#1#2#3%
+ {\doifelsevalue{\??am#1\c!position}\v!yes
+ {\doglobal\increment\currentamposition
+ \doifnumberelse{#2}
+ {\docheckrealreferencepage{#2}%
+ \global\chardef\currentamrealpage\ifrealreferencepage2\else1\fi}
+ {\doifreferencefoundelse{#2}
+ {\global\chardef\currentamrealpage\ifrealreferencepage2\else1\fi}
+ {\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}}
+ {#3}}
+
+\def\do@@ammenuposition#1%
+ {\ifnum\currentamposition>0
+ \dowithnextbox{\hpos{menu:#1:\realfolio}{\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.
+
+\newcounter\noftabpositions
+\newtoks \posXCtoks
+
+\def\tbPOSprefix
+ {tbp:\noftabpositions:}
+
+\def\tablepos
+ {\scratchtoks\posXCtoks
+ \global\posXCtoks\emptytoks
+ \the\scratchtoks}
+
+\let\tabulatepos\tablepos
+
+\def\dodododoGSC[#1:#2]%
+ {\remappositionframed{#2}{\tbPOSprefix#1}%
+ \bpos{\tbPOSprefix#1}%
+ \doglobal\appendtoks\@EA\epos\@EA{\tbPOSprefix#1}\to\posXCtoks}
+
+\def\dododoGSC[#1:#2:#3]%
+ {\doglobal\appendtoks\dodododoGSC[#1:#2]\to\posXCtoks\NC}
+
+\def\dodoGSC[#1]%
+ {\def\docommando##1{\dododoGSC[##1:##1]}%
+ \processcommalist[#1]\docommando}
+
+\def\dodododoGFC[#1:#2:#3]%
+ {\remappositionframed{#2}{\tbPOSprefix#1}%
+ \bpos{\tbPOSprefix#1}}
+
+\def\dododoGFC[#1]%
+ {\def\docommando##1{\dodododoGFC[##1:##1]}%
+ \processcommalist[#1]\docommando}
+
+\def\dodoGFC[#1]%
+ {\doglobal\appendtoks\dododoGFC[#1]\to\posXCtoks\NC}
+
+\def\dododododoGTC[#1:#2]%
+ {\epos{\tbPOSprefix#1}}
+
+\def\dodododoGTC[#1]%
+ {\def\docommando##1{\dododododoGTC[##1:##1]}%
+ \processcommalist[#1]\docommando}
+
+\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\doGSC[#1]{\iffirstargument\dodoGSC[#1]\else\expandafter\NC\fi}
+\def\doGFC[#1]{\iffirstargument\dodoGFC[#1]\else\expandafter\NC\fi}
+\def\doGTC[#1]{\iffirstargument\dodoGTC[#1]\else\expandafter\NC\fi}
+\def\doXC [#1]{\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
+ {\hss\tabulatepos\hss}
+
+\def\tabulateequalpos
+ {\setbox\scratchbox\hbox{\tabulateEQ}%
+ \hbox to \wd\scratchbox{\hss\kern\zeropoint\tabulatepos\hss}%
+ \hskip-\wd\scratchbox
+ \box\scratchbox}
+
+\def\tabulatenormalcolumn#1% overloaded
+ {&\iftabulateequal\tabulateequalpos\else\tabulatenormalpos\fi
+ &\global\chardef\tabulatetype#1&}
+
+\def\tabulateequalcolumn#1% overloaded
+ {&\tabulateequalpos
+ &\global\chardef\tabulatetype#1&}
+
+\appendtoks
+ \doglobal\increment\noftabpositions
+\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
+ \doglobal\increment\noftabpositions
+\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]
+
+\starttext
+ \startunderline \input tufte \stopunderline \blank
+ \startoverstrike \input tufte \stopoverstrike \blank
+ \startexlines \input tufte \stopexlines \blank
+ \startstrikethrough \input tufte \stopstrikethrough \blank
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/core-pos.tex b/Master/texmf-dist/tex/context/base/core-pos.tex
index 429aefeec15..0324e522c1d 100644
--- a/Master/texmf-dist/tex/context/base/core-pos.tex
+++ b/Master/texmf-dist/tex/context/base/core-pos.tex
@@ -11,7 +11,8 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-% needs a cleanup, things may change
+% 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
@@ -812,6 +813,107 @@
% \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\nextnodelocation#1%
+ {\pluscounter{\@@noden#1}}
+
+\def\newnodelocation#1%
+ {\ifundefined{\@@noden#1}%
+ \setcounter{\@@noden#1}\zerocount
+ \letgvalue {\@@nodeo#1}\!!zerocount
+ \fi}
+
+\def\tagnodelocation#1%
+ {\xypos{\@@nodep#1:\countervalue{\@@noden#1}}}
+
+\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%
+ {\doanalyzenodelocation{#1}{\getnodelocationn{#1}}\zerocount}
+
+\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%
+ {\analyzenodelocation{#1}%
+ (#1,%
+ n:\getnodelocationn{#1},%
+ p:\getnodelocationp{#1},%
+ x:\getnodelocationx{#1},%
+ y:\getnodelocationy{#1},%
+ o:\getnodelocationo{#1})}
+
%D \macros
%D {doifoverlappingelse}
%D
@@ -824,37 +926,6 @@
%D {action when not overlapping}
%D \stoptyping
-% \def\doifoverlappingelse#1#2#3#4%
-% {\relax\ifnum\MPp{#1}=\MPp{#2}\relax
-% \bgroup
-% \donefalse
-% \def\check##1##2%
-% {\ifdone\else
-% \ifdim\dimen1##1<\dimen0 \else \ifdim\dimen1##1>\dimen2 \else
-% \ifdim\dimen1##2<\dimen4 \else \ifdim\dimen1##2>\dimen6 \else
-% \donetrue
-% \fi\fi
-% \fi\fi
-% \fi}%
-% \dimen 0=\MPx{#1}%
-% \dimen 2=\MPx{#1}\advance\dimen 2 \MPw{#1}%
-% \dimen 4=\MPy{#1}\advance\dimen 4 -\MPd{#1}%
-% \dimen 6=\MPy{#1}\advance\dimen 6 \MPh{#1}%
-% \dimen10=\MPx{#2}%
-% \dimen12=\MPx{#2}\advance\dimen12 \MPw{#2}%
-% \dimen14=\MPy{#2}\advance\dimen14 -\MPd{#2}%
-% \dimen16=\MPy{#2}\advance\dimen16 \MPh{#2}%
-% %\message{\the\dimen 0-\the\dimen 2,\the\dimen 4-\the\dimen 6}\wait
-% %\message{\the\dimen10-\the\dimen12,\the\dimen14-\the\dimen16}\wait
-% \check04\check24\check26\check06\ifdone\egroup#3\else\egroup#4\fi
-% \else
-% #4%
-% \fi}
-
-% \newdimen\overlappingmargin \overlappingmargin\zeropoint
-%
-% \overlappingmargin-2sp % better
-
\def\overlappingmargin{-2\scaledpoint}
\def\doifoverlappingelse#1#2%
@@ -936,1796 +1007,10 @@
\rawprocesscommalist[#2]\docommando
\ifdone\egroup#3\else\egroup#4\fi}
-\def\doifpositionsonsamepageelse%
+\def\doifpositionsonsamepageelse
{\dodoifpositionsonsamepageelse{0}}
\def\doifpositionsonthispageelse#1#2#3%
{\dodoifpositionsonsamepageelse\realfolio}
-%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.
-
-% in the future, the depth of tail will reflect page depth
-
-\def\textanchor{text:\realfolio}
-
-% \def\placepositionanchors % todo : depth pagebox
-% {\ifpositioning
-% \setbox\scratchbox\vbox to \teksthoogte
-% {\topskipcorrection
-% \hbox{\strut\dopositionaction\headanchor}%
-% \vfill
-% \hbox{\strut\dopositionaction\tailanchor}}%
-% \dp\scratchbox\zeropoint
-% \wd\scratchbox\zetbreedte % not \zeropoint, else wrong text backgrounds
-% \hpos\textanchor{\box\scratchbox}%
-% \else
-% \vskip\teksthoogte
-% \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 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\headanchor{head:\realfolio} % virtual position
-\def\tailanchor{tail:\realfolio} % virtual position
-
-\def\presetpositionanchors% compatibility hack (still needed?)
- {\ifpositioning
- \dopresetpositionanchors
- \fi}
-
-% \def\dopresetpositionanchors
-% {\bgroup
-% \dimen0=\ifdim\topskip>\strutht\topskip\else\strutht\fi
-% \dimen2=\MPy\textanchor
-% \dimen4=\dimen2
-% \advance\dimen2 \MPh\textanchor % space is essential
-% \advance\dimen2 -\dimen0
-% \advance\dimen4 \strutdp
-% \dimen6=\MPx\textanchor
-% \dimen8=\MPw\textanchor
-% \setxvalue{\POSprefix\headanchor}%
-% {\realfolio,\withoutpt\the\dimen6,\withoutpt\the\dimen2,%
-% \withoutpt\the\dimen8,\withoutpt\the\dimen0,\withoutpt\the\strutdp}%
-% \setxvalue{\POSprefix\tailanchor}%
-% {\realfolio,\withoutpt\the\dimen6,\withoutpt\the\dimen4,%
-% \withoutpt\the\dimen8,\withoutpt\the\strutht,\withoutpt\the\strutdp}%
-% %\showanchor\textanchor\showanchor\headanchor\showanchor\tailanchor\wait
-% \egroup}
-
-\def\dopresetpositionanchors
- {\bgroup
- \!!dimena\ifdim\topskip>\strutht\topskip\else\strutht\fi
- \!!dimenb\MPy\textanchor
- \!!dimenc\!!dimenb
- \advance\!!dimenb \MPh\textanchor % space is essential
- \advance\!!dimenb -\!!dimena
- \advance\!!dimenc \strutdp
- \!!dimend\MPx\textanchor
- \!!dimene\MPw\textanchor
- \setxvalue{\POSprefix\headanchor}%
- {\realfolio,\withoutpt\the\!!dimend,\withoutpt\the\!!dimenb,%
- \withoutpt\the\!!dimene,\withoutpt\the\!!dimena,\withoutpt\the\strutdp}%
- \setxvalue{\POSprefix\tailanchor}%
- {\realfolio,\withoutpt\the\!!dimend,\withoutpt\the\!!dimenc,%
- \withoutpt\the\!!dimene,\withoutpt\the\strutht,\withoutpt\the\strutdp}%
- %\showanchor\textanchor\showanchor\headanchor\showanchor\tailanchor\wait
- \egroup}
-
-\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
-
-%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.
-
-% \def\positionoverlay#1%
-% {\ifpositioning
-% \vbox to \overlayheight
-% {\edef\MPanchor##1{\MPpos{#1::\MPanchoridentifier:\realfolio}}%
-% \the\everyinsertpositionaction
-% \copyposition{#1::\MPanchoridentifier}{#1::\MPanchoridentifier:\realfolio}%
-% \hpos
-% {#1::\MPanchoridentifier:\realfolio}
-% {\hbox to \overlaywidth{\dopositionaction{#1::\MPanchoridentifier}\hss}}%
-% \vfill}%
-% \fi}
-
-\let\MPanchornumber\realfolio
-
-% \def\positionoverlay#1%
-% {\ifpositioning
-% \vbox to \overlayheight
-% {\edef\MPanchorid{#1::\MPanchoridentifier:\MPanchornumber}%
-% \edef\MPanchor##1{\MPpos{\MPanchorid}}%
-% \the\everyinsertpositionaction
-% \copyposition{#1::\MPanchoridentifier}{#1::\MPanchoridentifier:\MPanchornumber}%
-% \hpos
-% {#1::\MPanchoridentifier:\MPanchornumber}
-% {\hbox to \overlaywidth{\dopositionaction{#1::\MPanchoridentifier}\hss}}%
-% \vfill}%
-% \fi}
-
-% \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}%
-% {\hbox to \overlaywidth{\dopositionaction{#1::\MPanchoridentifier}\hss}}}%
-% {\hbox to \overlaywidth{\hss}}%
-% \vfill}%
-% \fi}
-
-\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%
-% {\doifdefined{\POSactionprefix#1++}
-% {\the\everycleanpositionaction
-% \setxvalue{\POSactionprefix#1++}{\getvalue{\POSactionprefix#1++}}}}
-
-%\def\cleanuppositionaction#1%
-% {\ifundefined{\POSactionprefix#1++}\else
-% \the\everycleanpositionaction
-% \setxvalue{\POSactionprefix#1++}{\getvalue{\POSactionprefix#1++}}%
-% \fi}
-
-\def\cleanuppositionaction#1% not in trialtypesetting
- {\ifundefined{\POSactionprefix#1++}\else
- \the\everycleanpositionaction
- \iflocalpositioning
- \letgvalue{\POSactionprefix#1++}\empty
- \else
- \setxvalue{\POSactionprefix#1++}{\getvalue{\POSactionprefix#1++}}%
- \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
- % \doifdefined{\MPoverlayposprefix#1}
- % {\getvalue{\MPoverlayposprefix#1}{#1}{#2}{#3}}%
- \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}}}
-
-%\def\prepareMPpositionvariables
-% {\doifundefined{\@@meta self}{\setvalue{\@@meta self}{\currentposition}}%
-% \doifundefined{\@@meta from}{\setvalue{\@@meta from}{\currentposition}}}
-
-\def\prepareMPpositionvariables
- {\ifundefined{\@@meta self}\setvalue{\@@meta self}{\currentposition}\fi
- \ifundefined{\@@meta from}\setvalue{\@@meta from}{\currentposition}\fi}
-
-% \long\def\useMPpositiongraphic#1#2#3%
-% {\bgroup
-% \prepareMPvariables{#2}%
-% \prepareMPpositionvariables
-% \enableincludeMPgraphics
-% \startMPgraphic#3\stopMPgraphic
-% \loadMPgraphic{\MPgraphicfile.\the\currentMPgraphic}{}%
-% \deallocateMPslot\currentMPgraphic
-% \placeMPgraphic
-% \egroup}
-
-\newif\ifcollectMPpositiongraphics \collectMPpositiongraphicstrue
-
-\long\def\useMPpositiongraphic#1#2#3%
- {\bgroup
- \prepareMPvariables{#2}%
- \prepareMPpositionvariables
- \enableincludeMPgraphics
- \ifcollectMPpositiongraphics
- \expanded{\startMPdrawing#3\noexpand\stopMPdrawing}%
- \global\MPdrawingdonetrue
- \else
- \startMPgraphic#3\stopMPgraphic
- \loadMPgraphic{\MPgraphicfile.\the\currentMPgraphic}{}%
- \deallocateMPslot\currentMPgraphic
- \placeMPgraphic
- \fi
- \egroup}
-
-% Now we need a adapted action handler:
-
-% \def\dopositionaction#1% test saves hash entry in etex
-% {\ifundefined{\POSactionprefix#1::}\else
-% \ifnum\MPp{#1}>\zerocount % new
-% \bgroup
-% \traceposstring\clap\red{<#1>}%
-% \the\everyinsertpositionaction
-% \the\everypositionaction
-% \ifcollectMPpositiongraphics
-% % can save a lot of run time
-% \pushMPdrawing
-% \MPshiftdrawingtrue
-% \resetMPdrawing
-% \getvalue{\POSactionprefix#1::}%
-% \ifMPdrawingdone
-% \getMPdrawing
-% \fi
-% \resetMPdrawing
-% \popMPdrawing
-% \else
-% \getvalue{\POSactionprefix#1::}%
-% \fi
-% \cleanuppositionaction{#1}%
-% \egroup
-% \else
-% % shouldn't happen too often
-% \traceposstring\clap\cyan{<#1>}%
-% \fi
-% \fi}
-
-\def\dopositionaction#1% test saves hash entry in etex
- {\ifundefined{\POSactionprefix#1::}\else
- \ifnum\MPp{#1}>\zerocount % new
- \bgroup
- \setbox\scratchbox\hbox
- \bgroup
- \traceposstring\clap\red{<#1>}%
- \the\everyinsertpositionaction
- \the\everypositionaction
- \ifcollectMPpositiongraphics
- % can save a lot of run time
- \pushMPdrawing
- \MPshiftdrawingtrue
- \resetMPdrawing
- \getvalue{\POSactionprefix#1::}%
- \ifMPdrawingdone
- \getMPdrawing
- \fi
- \resetMPdrawing
- \popMPdrawing
- \else
- \getvalue{\POSactionprefix#1::}%
- \fi
- \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
- \fi}
-
-\def\MPpositiongraphic
- {\dodoublegroupempty\doMPpositiongraphic}
-
-% \def\doMPpositiongraphic#1#2% tag setups
-% {\bgroup
-% \def\@@meta{#1:}%
-% \setupMPvariables[#2]%
-% \prepareMPpositionvariables
-% \MPshiftdrawingtrue
-% \def\doMPpositiongraphic##1##2{\getvalue{MPG:##1}}% temp hack
-% \setbox\positiongraphicbox\hbox
-% {\ignorespaces
-% \executeifdefined{MPM:#1}{\executeifdefined{MPG:#1}\donothing}%
-% \removelastspace}%
-% \smashbox\positiongraphicbox
-% \box\positiongraphicbox
-% \egroup}
-
-\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
-
-%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.
-
-\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
-% {\donefalse
-% \ifnum\MPp{#1}=\realpageno\relax \donetrue
-% \else\ifnum\MPp{#2}=\realpageno\relax \donetrue
-% \else\ifnum\MPp{#1}<\realpageno\relax\ifnum\MPp{#2}>\realpageno\donetrue
-% \fi\fi\fi\fi \ifdone
-% \def\currentposition{#1}\MPpositiongraphic{#3}{#4}%
-% \fi}
-
-\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:
-
-\appendtoks
- if unknown context_core : input mp-core.mp ; fi ;
-\to \MPextensions
-
-%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,
- %snaptops=true, % not that nice: true/false
- gridcolor=red,
- linecolor=blue,
- fillcolor=lightgray,
- filloffset=\!!zeropoint,
- linewidth=\linewidth,
- gridwidth=\linewidth,
- lineradius=.5\bodyfontsize]
-
-\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} ;
- boxgridcolor := \MPvar{gridcolor} ;
- boxlinecolor := \MPvar{linecolor} ;
- boxfillcolor := \MPvar{fillcolor} ;
- boxfilloffset := \MPvar{filloffset} ;
- boxlinewidth := \MPvar{linewidth} ;
- boxgridwidth := \MPvar{gridwidth} ;
- boxlineradius := \MPvar{lineradius} ;
- %snap_multi_par_tops := \MPvar{snaptops} ;
-\stopuseMPgraphic
-
-\startuseMPgraphic{mpos:par:extra}
- % user stuff, like:
- % snap_multi_par_tops := false ;
-\stopuseMPgraphic
-
-% \startMPpositionmethod{mpos:par}
-% \doifpositionelse{w:\MPvar{self}}
-% {\startMPpositiongraphic{mpos:par}%
-% {fillcolor,filloffset,linecolor,gridcolor,linewidth,gridwidth,lineradius}
-% initialize_area_par(\MPpos{b:\MPvar{self}},
-% \MPpos{e:\MPvar{self}},
-% \MPpos{w:\MPvar{self}}) ;
-% \includeMPgraphic{mpos:par:setup} ;
-% \includeMPgraphic{mpos:par:extra} ;
-% \includeMPgraphic{\MPvar{mp}} ; % \includeMPgraphic{mpos:par:shape} ;
-% anchor_par(\MPanchor{b:\MPvar{self}}) ;
-% \stopMPpositiongraphic}
-% {\startMPpositiongraphic{mpos:par}%
-% {fillcolor,filloffset,linecolor,gridcolor,linewidth,gridwidth,lineradius}
-% initialize_par(\MPpos{b:\MPvar{self}},
-% \MPpos{e:\MPvar{self}},
-% \MPpos{text:\realfolio},
-% \MPpos{p:\MPparcounter},
-% \MPvv {p:\MPparcounter}{0,0,0,0,0,0}) ;
-% \includeMPgraphic{mpos:par:setup} ;
-% \includeMPgraphic{mpos:par:extra} ;
-% \includeMPgraphic{\MPvar{mp}} ; % \includeMPgraphic{mpos:par:shape} ;
-% anchor_par(\MPanchor{b:\MPvar{self}}) ;
-% \stopMPpositiongraphic}%
-% \MPpositiongraphic{mpos:par}{}%
-% \stopMPpositionmethod
-
-%D Less readable but shorter.
-
-\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,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,lineradius}
- initialize_par(\MPpos\MPbself,
- \MPpos\MPeself,
- \MPpos\textanchor,
- \MPpos\MPparanchor,
- \MPvv \MPparanchor{0,0,0,0,0,0}) ;
- \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
-
-\startMPpositionmethod{mpos:par:columnset}
- \edef\MPparcounter{\MPv\MPbself{1}{0}}%
- \startMPpositiongraphic{mpos:par}%
- {fillcolor,filloffset,linecolor,gridcolor,%
- linewidth,gridwidth,lineradius}
- \includeMPgraphic{mpos:par:setup} ;
- \includeMPgraphic{mpos:par:extra} ;
- prepare_multi_pars(\MPpos\MPbself,\MPpos\MPeself,\MPpos\MPwself,
- \MPpos\MPparanchor,\MPvv\MPparanchor{0,0,0,0,0,0}) ;
- 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 methodmethode=mpos:par:columnset]
-%D \stoptyping
-
-%D We need to treat floats in a special way.
-
-\appendtoks
- local_multi_par_area:=\iflocalpositioning true\else false\fi;
-\to \MPinitializations
-
-\def\textbackgroundoverlay#1%
- {\iflocalpositioning\v!local\else\v!text\fi#1}
-
-\newcounter\localpositionnumber
-
-\def\MPanchornumber
- {\iflocalpositioning\localpositionnumber\else\realfolio\fi}
-
-%D So far for the trickery.
-
-\newcounter\textbackgrounddepth
-
-\appendtoks
- \savecurrentvalue\totalnofparbackgrounds\nofparbackgrounds
-\to \everybye
-
-\appendtoks
- \initializeparbackgrounds
-\to \everystarttext
-
-\ifx\totalnofparbackgrounds\undefined \newcounter\totalnofparbackgrounds \fi
-\ifx\nofparbackgrounds \undefined \newcounter\nofparbackgrounds \fi
-
-\def\initializeparbackgrounds
- {\ifcase\totalnofparbackgrounds\else
- \global\positioningtrue
- \global\positioningpartrue
- \fi}
-
-\unexpanded\def\starttextbackground
- {\bgroup
- \increment\textbackgrounddepth
- \dodoubleempty\dostarttextbackground}
-
-\let\dodostarttextbackground\relax
-\let\dodostoptextbackground \relax
-
-% \def\currentparbackground{background:0}
-% \def\nextparbackground {background:1}
-
-\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\backgroundvariable#1%
- {\csname\??td\currenttextbackground#1\endcsname}
-
-% \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}%
- \doglobal\increment\nofparbackgrounds
- %\edef\currentparbackground{background:\nofparbackgrounds}%
- \edef\currentparbackground{pbg:\nofparbackgrounds}%
- \bgroup
- \increment\nofparbackgrounds
- %\xdef\nextparbackground{background:\nofparbackgrounds}%
- \xdef\nextparbackground{pbg:\nofparbackgrounds}%
- \egroup
- % todo : \synchonizepositionpage{b:\currentparbackground}{s:\currentparbackground}%
- \setuptextbackground[#1][#2]%
- \let\dodostarttextbackground\relax
- \let\dodostoptextbackground \relax
- \doifvalue{\??td#1\c!state}\v!start
- {\dopresettextbackground{#1}}%
- \dodostarttextbackground}
-
-% todo \backgroundvariable\c!variant
-
-\def\dopresettextbackground#1% todo: \backgroundparameter
- {\ExpandFirstAfter\processaction % \EFA niet echt nodig
- [\getvalue{\??td#1\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
- \doifelsevalue{\??td#1\c!frame}\v!on
- {\doifelsevalue{\??td#1\c!corner}\v!round
- {\setvalue{\??td#1\c!frame}{2}}
- {\setvalue{\??td#1\c!frame}{1}}}
- {\setvalue{\??td#1\c!frame}{0}}%
- \doifelsevalue{\??td#1\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{\getvalue{\??td#1\c!level}}}%
- \expanded
- {\setMPpositiongraphicrange % moet veel efficienter
- {\btbanchor}% {b:\currentparbackground}%
- {\etbanchor}% {e:\currentparbackground}%
- {\getvalue{\??td#1\c!method}}%
- {self=\currentparbackground,
- mp=\getvalue{\??td#1\c!mp},
- gridtype=\getvalue{\??td#1\c!alternative},
- filltype=\getvalue{\??td#1\c!background},
- linetype=\getvalue{\??td#1\c!frame},
- gridcolor=\getvalue{\??td#1\c!framecolor},
- linecolor=\getvalue{\??td#1\c!framecolor},
- fillcolor=\getvalue{\??td#1\c!backgroundcolor},
- filloffset=\getvalue{\??td#1\c!backgroundoffset},
- gridwidth=\getvalue{\??td#1\c!rulethickness},
- linewidth=\getvalue{\??td#1\c!rulethickness},
- lineradius=\getvalue{\??td#1\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 \leavevmode \fi
- \dostartattributes{\??td\currenttextbackground}\c!style\c!color\empty
- \fpos\currentparbackground\ignorespaces}
-
-\def\dostoptextbackgroundtxt
- {\tpos\currentparbackground
- \dostopattributes}
-
-% keep this simple one, it's used in prikkels and alike
-%
-% \def\dostarttextbackgroundpar
-% {\endgraf % new
-% \getvalue{\??td\currenttextbackground\c!before}%
-% \noindent\fpos\currentparbackground\ignorespaces
-% \bgroup
-% \nobreak \vskip-\lineheight \nobreak
-% \doassignsomeskip\getvalue{\??td\currenttextbackground\c!topoffset}\to\scratchskip
-% \kern\scratchskip\nobreak
-% \dosetleftskipadaption{\getvalue{\??td\currenttextbackground\c!leftoffset}}%
-% \advance\leftskip\leftskipadaption
-% \dosetleftskipadaption{\getvalue{\??td\currenttextbackground\c!rightoffset}}%
-% \advance\rightskip\leftskipadaption
-% \dostartattributes{\??td\currenttextbackground}\c!style\c!color{}%
-% \nowhitespace
-% \seteffectivehsize
-% \par}
-%
-% \def\dostoptextbackgroundpar
-% {\par
-% \dostopattributes
-% \doassignsomeskip\getvalue{\??td\currenttextbackground\c!bottomoffset}\to\scratchskip
-% \kern\scratchskip\nobreak
-% \nobreak \vskip-\lineheight \nobreak
-% \nowhitespace
-% \egroup
-% \nobreak \noindent \strut \hfill \kern\zeropoint \tpos\currentparbackground
-% \endgraf % new
-% \getvalue{\??td\currenttextbackground\c!after}}
-
-\def\dostarttextbackgroundpar
- {\endgraf % new
- \getvalue{\??td\currenttextbackground\c!before}%
- \doassignsomeskip\getvalue{\??td\currenttextbackground\c!topoffset}\to\scratchskip
- \xdef\textbackgroundskip{\the\scratchskip}%
- \noindent
- \ifgridsnapping
- \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
- \doassignsomeskip\getvalue{\??td\currenttextbackground\c!topoffset}\to\scratchskip
- \ifgridsnapping \else \ifdim\textbackgroundskip>\zeropoint
- \kern\textbackgroundskip\nobreak
- \fi \fi
- \dosetleftskipadaption{\getvalue{\??td\currenttextbackground\c!leftoffset}}%
- \advance\leftskip\leftskipadaption
- \dosetleftskipadaption{\getvalue{\??td\currenttextbackground\c!rightoffset}}%
- \advance\rightskip\leftskipadaption
- % new
- \dosetraggedcommand{\getvalue{\??td\currenttextbackground\c!align}}%
- \raggedcommand
- %
- \dostartattributes{\??td\currenttextbackground}\c!style\c!color\empty
- \nowhitespace
- \seteffectivehsize
- \doinhibitblank % \blank[\v!disable]% new
- \par}
-
-\def\dostoptextbackgroundpar
- {\par
- \removelastskip % new
- \dostopattributes
- \doassignsomeskip\getvalue{\??td\currenttextbackground\c!bottomoffset}\to\scratchskip
- \ifdim\lastskip>\zeropoint
- \advance\scratchskip-\lastskip
- \fi
- \xdef\textbackgroundskip{\the\scratchskip}%
- \ifgridsnapping \else \ifdim\textbackgroundskip>\zeropoint
- \kern\scratchskip\nobreak
- \fi \fi
- \nobreak \vskip-\lineheight \nobreak
- \nowhitespace
- \egroup
-\bgroup \forgeteverypar % NOT REALLY NEEDED, SAVES HASH/MEM
- \nobreak \noindent \strut \hfill \kern\zeropoint
- \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
- \getvalue{\??td\currenttextbackground\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%
- {\scratchcounter\MPp#2%\etbanchor
- \advance\scratchcounter-\MPp#1%\btanchor
- \edef\textparpages{\the\scratchcounter}%
- \ifcase\scratchcounter
- % one page
- \scratchdimen \MPy#1%\btanchor
- \advance\scratchdimen-\MPy#2%\etbanchor
- \else
- % two or more pages
- \scratchdimen \MPy#1%\btanchor
- \advance\scratchdimen-\MPy#2%\etbanchor
- \advance\scratchdimen-\MPy\textanchor
- \advance\scratchdimen \MPy\textanchor
- \advance\scratchdimen \MPh\textanchor\relax
- \ifcase\scratchcounter>2 \ifnum\scratchcounter<5
- % more pages
- \scratchdimen\textheight
- \advance\scratchcounter \minusone
- \multiply\scratchdimen \scratchcounter
- \else
- % keep'm small
- \scratchdimen5\textheight
- \fi \fi
- \fi
- \edef\textparheight{\the\scratchdimen}%
- \ifcase\scratchcounter
- % one page
- \scratchdimen \MPx#2%\etbanchor
- \advance\scratchdimen-\MPx#1%\btanchor
- \else
- % two or more pages / maybe also hang
- \ifx#3\relax
- \scratchdimen\makeupwidth % \textwidth
- \else
- \scratchdimen\MPw\MPparanchor
- \advance\scratchdimen-\MPl\MPparanchor
- \advance\scratchdimen-\MPr\MPparanchor
- \fi
- \fi
- \edef\textparwidth{\the\scratchdimen}}
-
-\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]%
- {\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,
- \c!radius,\c!frame,\c!framecolor,\c!rulethickness,
- \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=\getvalue{\??td\currenttextbackground\c!leftoffset},
- \c!topoffset=\!!zeropoint, % \v!medium,
- \c!bottomoffset=\getvalue{\??td\currenttextbackground\c!topoffset},
- \c!level=-1,
- \c!alternative=0,
- \c!align=,
- \c!background=\v!color,
- \c!backgroundcolor=lightgray,
- \c!backgroundoffset=\!!zeropoint,
- \c!corner=\v!rectangular,
- \c!radius=.5\bodyfontsize,
- \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}
-
-\newcounter\currentautopos
-
-\def\POSstackprefix{stack:}
-
-\def\dostackposbox#1#2%
- {\dowithnextbox
- {#2{\let\previousautopos\currentautopos
- \doglobal\increment\currentautopos
- \hpos{\POSstackprefix\currentautopos}
- {\doifoverlappingelse{\POSstackprefix\currentautopos}{\POSstackprefix\previousautopos}
- {#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.
-
-% \def\stackeddown
-% {\dowithnextbox
-% {\doglobal\increment\currentautopos
-% \hpos{\POSstackprefix\currentautopos}
-% {\edef\next
-% {\nextboxht\the\nextboxht
-% \nextboxdp\the\nextboxdp
-% \nextboxwd\the\nextboxwd}%
-% \let\previousautopos\currentautopos
-% \scratchdimen\zeropoint
-% \doloop
-% {\decrement\previousautopos
-% \doifoverlappingelse{\POSstackprefix\currentautopos}{\POSstackprefix\previousautopos}
-% {\advance\scratchdimen\MPh{\POSstackprefix\previousautopos}%
-% \advance\scratchdimen\MPd{\POSstackprefix\previousautopos}}%
-% \exitloop
-% \ifnum\previousautopos<\zerocount\exitloop\fi}%
-% % \ifdim\scratchdimen>\zeropoint
-% \setbox\nextbox\iftracepositions\@EA\ruledhbox\else\@EA\hbox\fi
-% {\lower\scratchdimen\flushnextbox}%
-% \next
-% % \fi
-% \flushnextbox}}}
-
-% 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
-
-\def\stackeddown
- {\bgroup
- % this macro assumes a few things and is meant to work for margin notes
- \dowithnextbox
- {\doglobal\increment\currentautopos
- \global\laststackvmove\zeropoint
- \hpos{\POSstackprefix\currentautopos}
- {\edef\next
- {\nextboxht\the\nextboxht
- \nextboxdp\the\nextboxdp
- \nextboxwd\the\nextboxwd}%
- \let\previousautopos\currentautopos
- \scratchdimen\zeropoint
- \scratchcounter\zerocount
- \doloop
- {\decrement\previousautopos\relax
- \edef\currentposition {\POSstackprefix\currentautopos}%
- \edef\previousposition{\POSstackprefix\previousautopos}%
- \ifnum\MPp\currentposition=\MPp\previousposition\relax
- %\registerstatus{doing \currentautopos/\previousautopos}%
- \doifoverlappingelse\currentposition\previousposition
- {\scratchskip \MPy\currentposition
- \advance\scratchskip-\MPy\previousposition
- \advance\scratchskip-\MPd\currentposition % untested
- \advance\scratchskip \MPd\previousposition % untested
- \advance\scratchskip \MPh\currentposition
- % todo: also take depth into account
- \relax
- \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\currentautopos}%
- \scratchskip\scratchdimen
- \advance\scratchskip\MPh\currentposition
- \scratchdimen-\scratchdimen
- \advance\scratchdimen\MPy\currentposition
- %\registerstatus{old \currentautopos: \MPy\currentposition/\MPh\currentposition}%
- \expanded{\replacepospxywhd
- {\currentposition}{\MPp\currentposition}{\MPx\currentposition}{\the\scratchdimen}%
- {\MPw\currentposition}{\the\scratchskip}{\MPd\currentposition}}%
- %\registerstatus{new \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
-
-\newcounter\currentmarginpos
-
-% \def\dopositionmarginbox#1%
-% {\bgroup
-% \ifrepositionmarginbox
-% \doglobal\increment\currentmarginpos
-% \setposition{\s!margin:\currentmarginpos}%
-% \scratchdimen=\MPy{\s!margin:\currentmarginpos}%
-% \doglobal\increment\currentmarginpos
-% \advance\scratchdimen by -\MPy{\s!margin:\currentmarginpos}%
-% \advance\scratchdimen by -\strutdp
-% \setbox#1=\hbox
-% {\setposition{\s!margin:\currentmarginpos}\raise\scratchdimen\box#1}%
-% \dp#1=\!!zeropoint
-% \ht#1=\!!zeropoint
-% \fi
-% \vadjust{\box#1}%
-% \egroup}
-
-\def\dopositionmarginbox#1% how about page boundaries !
- {\bgroup
- \ifrepositionmarginbox
- \doglobal\increment\currentmarginpos
- \setposition{\s!margin:\currentmarginpos}%
- \scratchdimen\MPy{\s!margin:\currentmarginpos}%
- \doglobal\increment\currentmarginpos
- \advance\scratchdimen -\MPy{\s!margin:\currentmarginpos}%
- \advance\scratchdimen -\strutdp
- % new
- \setbox#1\hbox
- {\hskip-\MPx{\s!margin:\currentmarginpos}%
- \hskip\MPx{head:\realfolio}%
- \box#1}%
- % so far
- \setbox#1\hbox
- {\setposition{\s!margin:\currentmarginpos}%
- \raise\scratchdimen\box#1}%
- \dp#1\zeropoint
- \ht#1\zeropoint
- \fi
- \graphicvadjust{\box#1}%
- \egroup}
-
-%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\do@@amposition#1#2#3%
- {\doifelsevalue{\??am#1\c!position}\v!yes
- {\doglobal\increment\currentamposition
- \doifnumberelse{#2}
- {\docheckrealreferencepage{#2}%
- \global\chardef\currentamrealpage\ifrealreferencepage2\else1\fi}
- {\doifreferencefoundelse{#2}
- {\global\chardef\currentamrealpage\ifrealreferencepage2\else1\fi}
- {\global\chardef\currentamrealpage0}}% % not found
- \expanded
- {\doglobal\noexpand\appendtoks
- #1_menu_button(\currentamposition,\the\currentamrealpage,\noexpand\MPpos{#1:\currentamposition}) ;
- \to \MPmenutoks}%
- \hpos{#1:\currentamposition}{#3}}
- {#3}}
-
-\def\do@@ammenuposition#1%
- {\ifnum\currentamposition>0
- \dowithnextbox{\hpos{menu:#1:\realfolio}{\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.
-
-\newcounter\noftabpositions
-\newtoks \posXCtoks
-
-\def\tbPOSprefix
- {tbp:\noftabpositions:}
-
-\def\tablepos
- {\scratchtoks\posXCtoks
- \global\posXCtoks\emptytoks
- \the\scratchtoks}
-
-\let\tabulatepos\tablepos
-
-\def\dodododoGSC[#1:#2]%
- {\remappositionframed{#2}{\tbPOSprefix#1}%
- \bpos{\tbPOSprefix#1}%
- \doglobal\appendtoks\@EA\epos\@EA{\tbPOSprefix#1}\to\posXCtoks}
-
-\def\dododoGSC[#1:#2:#3]%
- {\doglobal\appendtoks\dodododoGSC[#1:#2]\to\posXCtoks\NC}
-
-\def\dodoGSC[#1]%
- {\def\docommando##1{\dododoGSC[##1:##1]}%
- \processcommalist[#1]\docommando}
-
-\def\dodododoGFC[#1:#2:#3]%
- {\remappositionframed{#2}{\tbPOSprefix#1}%
- \bpos{\tbPOSprefix#1}}
-
-\def\dododoGFC[#1]%
- {\def\docommando##1{\dodododoGFC[##1:##1]}%
- \processcommalist[#1]\docommando}
-
-\def\dodoGFC[#1]%
- {\doglobal\appendtoks\dododoGFC[#1]\to\posXCtoks\NC}
-
-\def\dododododoGTC[#1:#2]%
- {\epos{\tbPOSprefix#1}}
-
-\def\dodododoGTC[#1]%
- {\def\docommando##1{\dododododoGTC[##1:##1]}%
- \processcommalist[#1]\docommando}
-
-\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\doGSC[#1]{\iffirstargument\dodoGSC[#1]\else\expandafter\NC\fi}
-\def\doGFC[#1]{\iffirstargument\dodoGFC[#1]\else\expandafter\NC\fi}
-\def\doGTC[#1]{\iffirstargument\dodoGTC[#1]\else\expandafter\NC\fi}
-\def\doXC [#1]{\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
- {\hss\tabulatepos\hss}
-
-\def\tabulateequalpos
- {\setbox\scratchbox\hbox{\tabulateEQ}%
- \hbox to \wd\scratchbox{\hss\kern\zeropoint\tabulatepos\hss}%
- \hskip-\wd\scratchbox
- \box\scratchbox}
-
-\def\tabulatenormalcolumn#1% overloaded
- {&\iftabulateequal\tabulateequalpos\else\tabulatenormalpos\fi
- &\global\chardef\tabulatetype#1&}
-
-\def\tabulateequalcolumn#1% overloaded
- {&\tabulateequalpos
- &\global\chardef\tabulatetype#1&}
-
-\appendtoks
- \doglobal\increment\noftabpositions
-\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
- \doglobal\increment\noftabpositions
-\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
-
-\setupcolors[state=start]
-
-\definetextbackground[underline][location=text,alternative=1,background=,frame=off,distance=2pt]
-
-\definestartstop
- [underline]
- [before={\starttextbackground[underline]},
- after=\stoptextbackground]
diff --git a/Master/texmf-dist/tex/context/base/core-ref.tex b/Master/texmf-dist/tex/context/base/core-ref.tex
index fc5acc2f028..4a0c1a3ce12 100644
--- a/Master/texmf-dist/tex/context/base/core-ref.tex
+++ b/Master/texmf-dist/tex/context/base/core-ref.tex
@@ -93,14 +93,14 @@
3: riferimento di tipo sconosciuto --
4: riferimento illecito --
21: documento -- caricato
- 22: il documento -- non è interattivo
+ 22: il documento -- non ø interattivo
23: riferimento ambiguo -- (prefisso=--)
\stopmessages
\startmessages norwegian library: references
title: referanser
1: ukjent referanse --
- 2: duplikat referanse -- på side --
+ 2: duplikat referanse -- pø side --
3: ukjent referansetype --
4: ulovlig referanse --
21: dokument -- er lest inn
@@ -119,6 +119,17 @@
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
+
%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
@@ -187,8 +198,9 @@
\the\everyreference
\makesectionformat
\writereference{#2}
- {\sectionformat\sectionseparator\sectionseparator\noexpand\pagenumber}
- {\noexpand\realfolio}{#3}%
+ {\sectionformat\sectionseparator\sectionseparator\noexpand\pagenumber}%
+ {\noexpand\realfolio}%
+ {#3}%
\egroup}
\def\rawpagereference#1#2%
@@ -196,15 +208,18 @@
\the\everyreference
\makesectionformat
\writereference{#2}
- {\sectionformat\sectionseparator\sectionseparator\noexpand\pagenumber}
- {\noexpand\realfolio}{}%
+ {\sectionformat\sectionseparator\sectionseparator\noexpand\pagenumber}%
+ {\noexpand\realfolio}%
+ {}%
\egroup}
\def\rawtextreference#1#2#3%
{\bgroup
\the\everyreference
\writereference{#2}
- {}{\noexpand\realfolio}{#3}%
+ {}%
+ {\noexpand\realfolio}%
+ {#3}%
\egroup}
@@ -604,10 +619,47 @@
\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%
{\chardef\currentreferencetype=\ifx#1\relax0\else#1\fi\relax
- \ifnum\currentreferencetype<2
+ \ifnum\currentreferencetype<\plustwo
\edef\currentpagereference{#2}%
+ \let \currentdatareference\empty
+ \edef\currentlocationreference{#2}%
\ifx\currentpagereference \empty
\let\currentfolioreference\folio
\else
@@ -622,6 +674,7 @@
\forwardreferencefalse
\fi
\else
+ \let \currentlocationreference\empty
\edef\currentrealreference {#3}%
\def \currentdatareference {#2}%
\let \currentfolioreference\folio
@@ -713,22 +766,41 @@
\def\rt!crossdone#1#2#3#4{\rt!done{#1}{#2}{#3}{#4}}
+% \def\dohandleduplicatereference#1%
+% {\bgroup
+% \let\rt!cross\rt!crossdone
+% \@EA\xdef\csname\r!cross\referenceprefix#1\endcsname
+% {\csname\r!cross\referenceprefix#1\endcsname}%
+% \egroup}
+
\def\dohandleduplicatereference#1%
{\bgroup
\let\rt!cross\rt!crossdone
- \@EA\xdef\csname\r!cross\referenceprefix#1\endcsname
+ \@EA\xdef\csname\r!cross\referenceprefix#1\endcsname % no let !
{\csname\r!cross\referenceprefix#1\endcsname}%
\egroup}
-\def\checkfirstreferenceoccurance#1#2%
- {\ifcsname\r!cross\referenceprefix#1\endcsname
+% \def\checkfirstreferenceoccurance#1#2% etex
+% {\ifcsname\r!cross\referenceprefix#1\endcsname
+% \getreferenceelements{#1}%
+% \ifnum\currentreferencetype=\rt!cross
+% \dohandleduplicatereference{#1}%
+% #2%
+% \fi
+% \else
+% #2%
+% \fi}
+
+\def\checkfirstreferenceoccurance#1#2% etex
+ {\@EA\ifx\csname\r!cross\referenceprefix#1\endcsname\relax % no ifcsname needed here
+ \predefinereference{#1}%
+ #2%
+ \else
\getreferenceelements{#1}%
\ifnum\currentreferencetype=\rt!cross
\dohandleduplicatereference{#1}%
#2%
\fi
- \else
- #2%
\fi}
\def\doiffirstreferenceoccurance
@@ -1339,7 +1411,7 @@
% \egroup
% \doresetgotowhereever} % to prevent problems with direct goto's
-\def\doifreferencefoundelse#1#2#3% REF \cs
+\def\doifreferencefoundelse#1#2#3% REF \cs / never more than one group (else \aftergroup usage problems)
{\checkreferences
% first we collect the secondary ones
\bgroup
@@ -1666,6 +1738,24 @@
%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%
+% {\bgroup
+% \the\everyreference % cleanup : etc in french
+% \ifinpagebody\else
+% \doifconcepttracing
+% {\doifsomething{#2}
+% {\inleft
+% {\infofont
+% \scratchdimen\leftmarginwidth
+% \advance\scratchdimen -2em
+% \doboundtext{#2}\scratchdimen{..}->}}}%
+% \fi
+% \doifpredefinedreferenceelse
+% \donothing
+% {\predefinereference
+% \showmessage\m!references{#1}{[\unharmedreferenceprefix][#2]}}%
+% \egroup}
+
\def\reportreferenceerror#1#2%
{\bgroup
\the\everyreference % cleanup : etc in french
@@ -1680,7 +1770,7 @@
\fi
\doifpredefinedreferenceelse
\donothing
- {\predefinereference
+ {\predefinereference\predefinedreference
\showmessage\m!references{#1}{[\unharmedreferenceprefix][#2]}}%
\egroup}
@@ -1708,11 +1798,20 @@
% {\setgvalue{\r!cross\predefinedreference}{\rt!cross{}{}{}{}}%
% \setgvalue{\r!cross\unharmedreferenceprefix\predefinedreference}{\rt!cross{}{}{}{}}}
-\def\dummypredefinedreference{\r!cross{}{}{}{}}
+% \def\dummypredefinedreference{\r!cross{}{}{}{}}
+%
+% \def\predefinereference
+% {\global\@EA\let\csname\r!cross\predefinedreference \endcsname\dummypredefinedreference
+% \global\@EA\let\csname\r!cross\unharmedreferenceprefix\endcsname\dummypredefinedreference} % bug!
+%
+% we need to predefine in order to make dup checking possible (when no ref
+% is defined yet)
+
+\def\predefinereference#1% takes now an argument
+ {\global\@EA\let\csname\r!cross #1\endcsname\dummypredefinedreference
+ \global\@EA\let\csname\r!cross\unharmedreferenceprefix#1\endcsname\dummypredefinedreference}
-\def\predefinereference
- {\global\@EA\let\csname\r!cross\predefinedreference \endcsname\dummypredefinedreference
- \global\@EA\let\csname\r!cross\unharmedreferenceprefix\endcsname\dummypredefinedreference}
+\def\dummypredefinedreference{\rt!done{}{}{}{}}
%D Testing on existance then becomes:
diff --git a/Master/texmf-dist/tex/context/base/core-reg.tex b/Master/texmf-dist/tex/context/base/core-reg.tex
index 431cee6b9d6..309aee2f9ed 100644
--- a/Master/texmf-dist/tex/context/base/core-reg.tex
+++ b/Master/texmf-dist/tex/context/base/core-reg.tex
@@ -80,6 +80,34 @@
%
% \index[Ätsch]{Ätsch} test \index{QÄtsch} test \index[ratsch]{RÄtsch} test
+% \def\doprocesspageregister[#1]#2#3% key altnum entry
+% {\begingroup
+% \thisisnextinternal\s!ind
+% \ifduplicate\getlastregisterentry{#3}\fi
+% \convertexpanded{\registerparameter\c!keyexpansion}{#1}\asciiregisterentryA
+% \convertexpanded{\registerparameter\c!expansion }{#3}\asciiregisterentryB
+% \doifsomething{\registerparameter\c!keyexpansion}
+% {\ifx\asciiregisterentryA\empty
+% \convertexpanded{\registerparameter\c!keyexpansion}{#3}\asciiregisterentryA
+% \fi}%
+% \makesectionformat
+% \doifelse{\registerparameter\c!ownnumber}\v!yes
+% \donetrue\donefalse
+% % the spaces between } { are essential for texutil's split
+% \expanded
+% {\writeutility%
+% {r \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}
+
\def\doprocesspageregister[#1]#2#3% key altnum entry
{\begingroup
\thisisnextinternal\s!ind
@@ -123,49 +151,58 @@
% \ifvmode\nobreak\fi
% \GotoPar}
+% \long\def\doflushatpar#1%
+% %{\dogotopar{#1}}
+% %{\dogotopar{\dontleavehmode#1}} % this one can introduce empty lines
+% {\dogotopar{#1\ifvmode\nobreak\fi}} % while this one can mess up vertical space
+%
+% fails when [text] \index{test} [empty line] [text] so we now have
+% Taco's test based solution:
+
+\def\doflushatpar
+ {\ifvmode
+ \expandafter\dogotopar
+ \else
+ \expandafter\firstofoneargument
+ \fi}
+
\def\dodoregister[#1]#2#3%
- {\dogotopar{\doprocesspageregister[#1]{#2}{#3}}}
+ {\doflushatpar{\doprocesspageregister[#1]{#2}{#3}}}
\def\writetoregister[#1]% to be documented
{\doregister{#1}}
\def\startregister
- {\dodoubleargument\dostartregister}
-
-%\def\dostartregister[#1][#2]#3%
-% {\chardef\registerpagestatus=2
-% \def\currentregister{#1}%
-% \setgvalue{\??id#1\??id#2}{\dodostopregister[#1][#2]{#3}}%
-% \complexdoregister[#2]{#3}}
+ {\dotripleempty\dostartregister}
-\def\dostartregister[#1][#2]#3%
- {\chardef\registerpagestatus2
+\def\dostartregister[#1][#2][#3]#4%
+ {\chardef\registerpagestatus\plustwo
\def\currentregister{#1}%
- \setgvalue{\??id#1\??id#2}{\dodostopregister[#1][#2]{#3}}%
- \donoregister[#2]{#3}}
+ \setgvalue{\??id#1\??id#2}{\dodostopregister[#1][#3]{#4}}%
+ \dodoregister[#3]{}{#4}}
\def\stopregister
{\dodoubleargument\dostopregister}
\def\dostopregister[#1][#2]%
- {\getvalue{\??id#1\??id#2}\setgvalue{\??id#1\??id#2}{}}
+ {\getvalue{\??id#1\??id#2}\letgvalue{\??id#1\??id#2}\relax}
-\def\dodostopregister[#1][#2]%
- {\chardef\registerpagestatus3
+\def\dodostopregister[#1][#2]#3%
+ {\chardef\registerpagestatus\plusthree
\def\currentregister{#1}%
- \donoregister[#2]}
+ \dodoregister[#2]{}{#3}} % key altnum entry
-\def\complexdozieregister[#1]#2#3%
+\def\doprocessseeregister[#1]#2#3%
{\begingroup
\thisisnextinternal\s!ind
\ifduplicate\getlastregisterentry{#2}\fi
\convertexpanded{\registerparameter\c!keyexpansion}{#1}\asciiregisterentryA
\convertexpanded{\registerparameter\c!expansion }{#2}\asciiregisterentryB
\convertexpanded{\registerparameter\c!expansion }{#3}\asciiregisterentryC
-\doifsomething{\registerparameter\c!keyexpansion}
- {\ifx\asciiregisterentryA\empty
- \convertexpanded{\registerparameter\c!keyexpansion}{#2}\asciiregisterentryA
- \fi}%
+ \doifsomething{\registerparameter\c!keyexpansion}
+ {\ifx\asciiregisterentryA\empty
+ \convertexpanded{\registerparameter\c!keyexpansion}{#2}\asciiregisterentryA
+ \fi}%
\makesectionformat
\expanded
{\writeutility%
@@ -177,16 +214,18 @@
{\asciiregisterentryC} %
{\sectionformat}}}%
\endgroup
- \registerinfo{> zie}{#2}%
- \GotoPar}
+ \registerinfo{> see}{#2}}
+
+\def\complexdoseeregister[#1]#2#3%
+ {\doflushatpar{\doprocessseeregister[#1]{#2}{#3}}}
-\def\dozieregister#1%
+\def\doseeregister#1%
{\def\currentregister{#1}%
- \complexorsimpleempty\dozieregister}
+ \complexorsimpleempty\doseeregister} % = \dosingleempty\doseeregister
-\def\dowritetoregister[#1]% % de twee-traps-aanroep is nodig
- {\edef\currentregister{#1}% % om gebruik van \ExpandBothAfter
- \doprocesspageregister{}} % mogelijk te maken
+\def\dowritetoregister[#1]% % de twee-traps-aanroep is nodig
+ {\edef\currentregister{#1}% % om gebruik van \ExpandBothAfter
+ \doprocesspageregister} % mogelijk te maken
\def\writetoregister
{\dodoubleempty\dowritetoregister}
@@ -242,12 +281,12 @@
\def\registertexthowto{#2}}%
\def\doregistertexthowto#1#2%
- {\dostartattributes{\??id#1\registertexthowto}\c!textstyle\c!textcolor{}%
+ {\dostartattributes{\??id#1\registertexthowto}\c!textstyle\c!textcolor\empty
\getvalue{\??id#1\c!textcommand}{#2}%
\dostopattributes}
\def\doregisterpagehowto#1#2%
- {\dostartattributes{\??id#1\registerpagehowto}\c!pagestyle\c!pagecolor{}%
+ {\dostartattributes{\??id#1\registerpagehowto}\c!pagestyle\c!pagecolor\empty
\getvalue{\??id#1\c!pagecommand}{#2}%
\dostopattributes}
@@ -292,21 +331,84 @@
\def\dosetpageregisterpage#1#2#3#4#5#6%
{\doifreglevelelse[#5]{\dodosetpageregisterpage{#1}{#2}{#3}{#4}{#5}{#6}}{}}
-\def\dodosetpageregisterpage#1#2#3#4#5#6%
+% \def\dodosetpageregisterpage#1#2#3#4#5#6%
+% {\global\utilitydonetrue
+% \c!entryletter
+% \setregisterhowto[#3]%
+% \def\dohandleregisterentry##1%
+% {\bgroup
+% \if!!donea % \strut nieuw
+% %\setbox0\hbox{\showlocation{\doregistertexthowto{#2}
+% % {\strut\limitedregisterentry{#2}{##1}}}}%
+% % \gotonextinternal\s!ind{#4}{#6}{\box0}%
+% %
+% \hhboxindent\hangindent % maybe also left and right skip
+% \setbox0\hbox{\doregistertexthowto{#2}{\strut\limitedregisterentry{#2}{##1}}}%
+% \unhhbox0\with{\gotonextinternal\s!ind{#4}{#6}{\box\hhbox}}%
+% %
+% \else
+% \doregistertexthowto{#2}{##1}%
+% \fi
+% \egroup
+% \!!doneafalse}%
+% \!!doneafalse
+% \doifelsevalue{\??id#2\c!interaction}\v!text
+% {\ifcase\currententrylevel \or
+% \!!doneatrue\c!entrya\c!entryb\c!entryc \or
+% \c!entrya\!!doneatrue\c!entryb\c!entryc \or
+% \c!entrya\c!entryb\!!doneatrue\c!entryc \fi}
+% {\c!entrya\c!entryb\c!entryc}%
+% \global\let\c!entrya\relax
+% \global\let\c!entryb\relax
+% \global\let\c!entryc\relax
+% \global\let\c!entryletter\relax
+% \global\let\c!entryreference\relax
+% % \global\firstregisterentrytrue
+% \iffirstregisterpage
+% \global\chardef\lastregisterpagestatus\zerocount
+% \expandafter\hskip\getvalue{\??id#2\c!distance}\relax
+% \donetrue
+% \else\ifnum#1=3
+% |--|\relax % -- !
+% \donetrue
+% \else\ifnum\lastregisterpagestatus=2
+% \donefalse % waiting for "to" pagenumber
+% \else
+% \registerpageseparator
+% |\space|\relax % \relax needed because | looks ahead
+% \donetrue
+% \fi\fi\fi
+% \ifdone
+% \begingroup
+% %
+% \doifelsevalue{\??id#2\c!prefix}\v!none % default v!both
+% {\chardef\pageprefixmode\zerocount}%
+% {\doifvalue{\??id#2\c!prefix}\v!first % only first in range (1.2-4)
+% {\ifnum#1=3 \chardef\pageprefixmode\zerocount \fi}}%
+% %
+% \doifelsevalue{\??id#2\c!interaction}\v!pagenumber
+% {\bgroup
+% \setbox0\hbox
+% {\showlocation{\doregisterpage{#2}[#5]\ifnum#1=2\/\fi}}%
+% \gotonextinternal{\s!ind}{#4}{#6}{\box0}%{\copy0}%
+% \egroup}
+% {\hbox{\doregisterpage{#2}[#5]\ifnum#1=2\/\fi}}%
+% \endgroup
+% \ignorespaces
+% \global\chardef\lastregisterpagestatus#1\relax
+% \fi
+% \global\firstregisterpagefalse}
+
+\def\dodosetpageregisterpageA#1#2#3#4#5#6%
{\global\utilitydonetrue
\c!entryletter
\setregisterhowto[#3]%
\def\dohandleregisterentry##1%
{\bgroup
\if!!donea % \strut nieuw
- %\setbox0\hbox{\showlocation{\doregistertexthowto{#2}
- % {\strut\limitedregisterentry{#2}{##1}}}}%
- % \gotonextinternal\s!ind{#4}{#6}{\box0}%
- %
\hhboxindent\hangindent % maybe also left and right skip
\setbox0\hbox{\doregistertexthowto{#2}{\strut\limitedregisterentry{#2}{##1}}}%
\unhhbox0\with{\gotonextinternal\s!ind{#4}{#6}{\box\hhbox}}%
- %
\else
\doregistertexthowto{#2}{##1}%
\fi
@@ -323,8 +425,10 @@
\global\let\c!entryb\relax
\global\let\c!entryc\relax
\global\let\c!entryletter\relax
- \global\let\c!entryreference\relax
- % \global\firstregisterentrytrue
+ \global\let\c!entryreference\relax}
+
+\def\dodosetpageregisterpageB#1#2#3#4#5#6%
+ {% \global\firstregisterentrytrue
\iffirstregisterpage
\global\chardef\lastregisterpagestatus\zerocount
\expandafter\hskip\getvalue{\??id#2\c!distance}\relax
@@ -340,6 +444,13 @@
\donetrue
\fi\fi\fi
\ifdone
+ \begingroup
+ %
+ \doifelsevalue{\??id#2\c!prefix}\v!none % default v!both
+ {\chardef\pageprefixmode\zerocount}%
+ {\doifvalue{\??id#2\c!prefix}\v!first % only first in range (1.2-4)
+ {\ifnum#1=3 \chardef\pageprefixmode\zerocount \fi}}%
+ %
\doifelsevalue{\??id#2\c!interaction}\v!pagenumber
{\bgroup
\setbox0\hbox
@@ -347,13 +458,99 @@
\gotonextinternal{\s!ind}{#4}{#6}{\box0}%{\copy0}%
\egroup}
{\hbox{\doregisterpage{#2}[#5]\ifnum#1=2\/\fi}}%
+ \endgroup
\ignorespaces
\global\chardef\lastregisterpagestatus#1\relax
\fi
\global\firstregisterpagefalse}
+\def\resetseenregisterpage
+ {\global\let\firstseenregisterreal \relax
+ \global\let\currentseenregisterreal\relax
+ \global\let\lastseenregisterreal \relax
+ \global\let\firstseenregisterpage \relax
+ \global\let\currentseenregisterpage\relax
+ \global\let\lastseenregisterpage \relax}
+
+\resetseenregisterpage
+
+\def\dodosetpageregisterpageC#1#2#3#4#5#6%
+ {\xdef\currentseenregisterpage{#5}%
+ \xdef\currentseenregisterreal{#6}%
+ \gdef\flushseenregisterpage{\doflushseenregisterpage{#1}{#2}{#3}{#4}}%
+ \ifx\firstseenregisterreal\relax
+ \global\let\firstseenregisterreal\currentseenregisterreal
+ \global\let\firstseenregisterpage\currentseenregisterpage
+ \global\let\lastseenregisterreal \currentseenregisterreal
+ \global\let\lastseenregisterpage \currentseenregisterpage
+ \else\ifnum\numexpr\lastseenregisterreal+\plusone\relax=\currentseenregisterreal\relax
+ \global\let\lastseenregisterreal \currentseenregisterreal
+ \global\let\lastseenregisterpage \currentseenregisterpage
+ \else
+ \ifx\firstseenregisterreal\lastseenregisterreal
+ \expanded{\dodosetpageregisterpageB{1}{#2}{#3}{#4}{\lastseenregisterpage}{\lastseenregisterreal}}%
+ \else
+ \expanded{\dodosetpageregisterpageB{2}{#2}{#3}{#4}{\firstseenregisterpage}{\firstseenregisterreal}}%
+ \expanded{\dodosetpageregisterpageB{3}{#2}{#3}{#4}{\lastseenregisterpage }{\lastseenregisterreal }}%
+ \fi
+ \global\let\firstseenregisterreal\currentseenregisterreal
+ \global\let\firstseenregisterpage\currentseenregisterpage
+ \global\let\lastseenregisterreal \currentseenregisterreal
+ \global\let\lastseenregisterpage \currentseenregisterpage
+ \fi\fi}
+
+\def\doflushseenregisterpage#1#2#3#4%
+ {\global\let\flushseenregisterpage\relax
+ \ifx\firstseenregisterreal\relax
+ % nothing in the hold
+ \else\ifx\firstseenregisterreal\lastseenregisterreal
+ \expanded{\dodosetpageregisterpageB{1}{#2}{#3}{#4}{\lastseenregisterpage}{\lastseenregisterreal}}%
+ \else
+ \expanded{\dodosetpageregisterpageB{2}{#2}{#3}{#4}{\firstseenregisterpage}{\firstseenregisterreal}}%
+ \expanded{\dodosetpageregisterpageB{3}{#2}{#3}{#4}{\lastseenregisterpage }{\lastseenregisterreal }}%
+ \fi\fi
+ \resetseenregisterpage}
+
+\let\flushseenregisterpage\relax
+
+\chardef\collapseregisterpages\zerocount
+
+\def\dodosetpageregisterpage
+ {\ifcase\collapseregisterpages
+ \expandafter\dodosetpageregisterpagenormal
+ \else
+ \expandafter\dodosetpageregisterpagecollapsed
+ \fi}
+
+\def\dodosetpageregisterpagenormal#1#2#3#4#5#6%
+ {\dodosetpageregisterpageA{#1}{#2}{#3}{#4}{#5}{#6}%
+ \dodosetpageregisterpageB{#1}{#2}{#3}{#4}{#5}{#6}}
+
+\def\dodosetpageregisterpagecollapsed#1#2#3#4#5#6%
+ {\dodosetpageregisterpageA{#1}{#2}{#3}{#4}{#5}{#6}%
+ \dodosetpageregisterpageC{#1}{#2}{#3}{#4}{#5}{#6}}
+
+% test case for collapsing (experimental, for Steffen Wolfrum)
+%
+% \starttext
+% \chardef\collapseregisterpages\zerocount \placeregister[index] \blank[2*big]
+% \chardef\collapseregisterpages\plusone \placeregister[index] \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
+
\def\dosetpageregistersee#1#2#3#4% ugly separator hack
- {\expanded{\doifreglevelelse[#4\sectionseparator\sectionseparator0]}%
+ {\flushseenregisterpage
+ \expanded{\doifreglevelelse[#4\sectionseparator\sectionseparator0]}%
{{\global\utilitydonetrue
\setregisterhowto[#2]%
\def\dohandleregisterentry##1% dubbelop | \strut nieuw
@@ -376,12 +573,13 @@
\def\doregistercharacter[#1]#2%
{\global\firstregisterentrytrue
- \doifelsevalue{\??id#1\c!indicator}\v!yes
- {\executeifdefined
- {\strippedcsname\doregistercharacter\getvalue{\??id#1\c!alternative}}%
- \doregistercharactera
- [#1]{#2}}
- {\noregistercharacter[#1]{#2}}}
+ \doifsomething{#2}
+ {\doifelsevalue{\??id#1\c!indicator}\v!yes
+ {\executeifdefined
+ {\strippedcsname\doregistercharacter\getvalue{\??id#1\c!alternative}}%
+ \doregistercharactera
+ [#1]{#2}}
+ {\noregistercharacter[#1]{#2}}}}
\def\noregistercharacter[#1]#2%
{\getvalue{\??id#1\c!before}%
@@ -413,12 +611,18 @@
%D Don't use \type{\string#2}; another hack is needed, since
%D \type {#2} can be \type {\string} itself.
+% \def\doregisterreference[#1]#2%
+% {\doifvalue{\??id#1\c!referencing}\v!on
+% {\pagereference[#1:#2]}}
+
\def\doregisterreference[#1]#2%
- {\doifvalue{\??id#1\c!referencing}\v!on
- {\pagereference[#1:#2]}}
+ {\doifsomething{#2}
+ {\doifvalue{\??id#1\c!referencing}\v!on
+ {\pagereference[#1:\strippedcsname#2]}}}
\def\dosetpageregisterletter#1#2%
- {\gdef\c!entryreference
+ {\flushseenregisterpage
+ \gdef\c!entryreference
{\global\let\c!entryreference\relax
\doregisterreference[#1]{#2}}%
\gdef\c!entryletter
@@ -426,21 +630,43 @@
\global\let\c!entryletter\relax
\doregistercharacter[#1]{#2}}}
+% \def\HowUgly #1{\doHowUgly#1\relax}
+% \def\doHowUgly#1#2\relax{\iffirstregisterentry{\bf#1}#2\fi#1#2} # handles utf too
+%
+% \setupregister[index][indicator=no,deeptextcommand=\HowUgly]
+%
+% \starttext
+% \chapter{First Chapter}
+% Some text...\index{word}
+% \section {First Section}
+% Some text...\index{word}
+% Some text...\index{another entry}
+% Some text...\index{ansi}
+% Some text...\index{another entry}
+% \page[yes]
+% \completeindex
+% \stoptext
+
+\def\dohandlepageregisterentry#1#2%
+ {\dohandleregisterentry{\executeifdefined{\??id#1\c!deeptextcommand}\firstofoneargument{#2}}}
+
\def\dosetpageregisterentrya#1#2%
- {\edef\currententrylevel{1}%
+ {\flushseenregisterpage
+ \edef\currententrylevel{1}%
\global\let\c!entryb\relax
\global\let\c!entryc\relax
\gdef\c!entrya
{\iffirstregisterentry\else\endgraf\fi % new
\global\firstregisterpagetrue
\hangindent1em\noindent\c!entryreference
- \dohandleregisterentry{#2}%
+ \dohandlepageregisterentry{#1}{#2}%
\global\firstregisterentryfalse
\global\firstsubentrytrue
\global\firstsubsubentrytrue}}
\def\dosetpageregisterentryb#1#2%
- {\edef\currententrylevel{2}%
+ {\flushseenregisterpage % redundant
+ \edef\currententrylevel{2}%
\global\let\c!entryc\relax
\global\def\c!entryb
{\iffirstregisterentry\else\endgraf\fi % new
@@ -448,13 +674,14 @@
\global\let\c!entrya\relax
\iffirstsubentry\nobreak\fi
\hangindent2em\noindent\c!entryreference\hskip1em\relax
- \dohandleregisterentry{#2}%
+ \dohandlepageregisterentry{#1}{#2}%
\global\firstregisterentryfalse
\global\firstsubentryfalse
\global\firstsubsubentrytrue}}
\def\dosetpageregisterentryc#1#2%
- {\edef\currententrylevel{3}%
+ {\flushseenregisterpage % redundant
+ \edef\currententrylevel{3}%
\gdef\c!entryc
{\iffirstregisterentry\else\endgraf\fi % new
\global\firstregisterpagetrue
@@ -462,7 +689,7 @@
\global\let\c!entryb\relax
\iffirstsubsubentry\nobreak\fi
\hangindent3em\noindent\c!entryreference\hskip2em\relax
- \dohandleregisterentry{#2}%
+ \dohandlepageregisterentry{#1}{#2}%
\global\firstregisterentryfalse
\global\firstsubsubentryfalse}}
@@ -509,7 +736,7 @@
\c!entryletter
\iflocation
\getalllistreferences{#1}{#2}%
-% \endgraf
+ % no \endgraf
\hangindent1em\noindent\c!entryreference
%
%\thisissomeinternal{\s!lin}{\internallistreference}%
@@ -566,7 +793,7 @@
\docommando\lastlistreference\v!next}%
% tot hier
\else
-% \endgraf
+ % no \endgraf
\noindent\c!entryreference
\limitedregisterentry{#1}{#2}%
\fi
@@ -594,36 +821,36 @@
\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
+ \ifautoregisterhack
+ \setvalue{#1\s!page}##1##2##3##4%
+ {\doifreglevelelse[##3]
+ {\global\utilitydonetrue
+ \iffirstregisterpage
\@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
+ {\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
- {\csname\??id#1\??id\currentregisterentry\endcsname,##2-##4}%
- \fi
- \fi}
- {}}%
-\fi}
+ {\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
@@ -726,11 +953,29 @@
\docommandoprolinrefB{#1}\nextlistreference\v!next
\fi}}
-\def\dodolinkedregister[#1][#2]#3% page auto link
+% \def\dodolinkedregister[#1][#2]#3% page auto link
+% {\bgroup
+% \chardef\registerpagestatus\plusone
+% \def\currentregister{#1}%
+% \iflocation
+% \ifautoregisterhack
+% \def\next{\doprocessautoregister[#1][#2]}%
+% \else
+% \def\next{\doprocesslinkregister[#1][#2]}%
+% \fi
+% \else
+% \def\next{\doprocesspageregister[#2]{}}%
+% \fi
+% \next{#3}%
+% \egroup
+% \ifvmode\nobreak\fi
+% \GotoPar}
+
+\def\doprocesslinkedregister[#1][#2]#3% page auto link
{\bgroup
\chardef\registerpagestatus\plusone
\def\currentregister{#1}%
- \iflocation
+ \iflocation % \next is not needed
\ifautoregisterhack
\def\next{\doprocessautoregister[#1][#2]}%
\else
@@ -740,9 +985,10 @@
\def\next{\doprocesspageregister[#2]{}}%
\fi
\next{#3}%
- \egroup
- \ifvmode\nobreak\fi
- \GotoPar}
+ \egroup}
+
+\def\dodolinkedregister[#1][#2]#3% page auto link
+ {\doflushatpar{\doprocesslinkedregister[#1][#2]{#3}}}
\def\dolinkedregister#1%
{\dodoubleempty\dodolinkedregister[#1]}
@@ -754,10 +1000,8 @@
\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}}}
+ \setvalue{#1\s!entrya}##1{\dosetautoregisterentrya{#1}{##1}}%
+ \setvalue{#1\s!entry }##1{\dosetpageregisterletter{#1}{##1}}}
\def\dosetautoregisterentrya#1#2%
{\global\utilitydonetrue
@@ -838,6 +1082,9 @@
\begingroup
\edef\currentregister{#1}%
\setupregister[\currentregister][#2]%
+ \doifelse{\registerparameter\c!compress}\v!yes % new
+ {\chardef\collapseregisterpages\plusone}
+ {\chardef\collapseregisterpages\zerocount}%
\raggedright
\startcolumns
[\c!n=\registerparameter\c!n,
@@ -845,12 +1092,20 @@
\c!align=\registerparameter\c!align]%
\dontcomplain
\startpacked[\v!blank]%
- \doutilities\currentregister\jobname\currentregister\relax\par
+ \doutilities\currentregister\jobname\currentregister\dobeforeplaceregister\doafterplaceregister
\stoppacked
\stopcolumns
\endgroup
\fi}
+\def\dobeforeplaceregister
+ {\resetseenregisterpage
+ \relax}
+
+\def\doafterplaceregister
+ {\flushseenregisterpage
+ \par}
+
\def\completeregister
{\dodoubleempty\docompleteregister}
@@ -865,6 +1120,10 @@
\endgroup
\fi}
+\def\doregisterregisterlanguage#1%
+ {\savesortlanguage{\getvalue{\??id#1\s!language}}%
+ \immediatewriteutility{r l {#1} {\getvalue{\??id#1\s!language}}}}
+
\def\dodefineregister[#1][#2]%
{\setupregister[#1]%
[\c!n=2,
@@ -873,6 +1132,7 @@
\c!before=\blank, % binnen kolommen: \blank[\v!line]
\c!after=,
\c!symbol=,
+ \c!compress=\v!no,
\c!interaction=\v!pagenumber,
\c!alternative=\v!a,
\c!distance=1em,
@@ -888,15 +1148,21 @@
\c!maxwidth=,
\c!number=\v!no,
\c!unknownreference=\v!empty,
+ \c!prefix=\v!both,
\c!expansion=,
- \c!keyexpansion=]%
+ \c!keyexpansion=,
+ %\c!deeptextcommand=, % undefined by default !
+ \s!language=\currentmainlanguage]%
+ \doglobal\appendtoksonce
+ \doregisterregisterlanguage{#1}%
+ \to \everysavesortkeys
\presetheadtext[#1=\Word{#1}]%
\addutilityreset{#1}%
\setvalue{#1}{\doregister{#1}}%
\setvalue{\e!coupled#1}{\dolinkedregister{#1}}%
\setvalue{\s!set#1}{\dosetregister{#1}}%
\setvalue{\s!reset#1}{\doresetregister{#1}}%
- \setvalue{\e!see#1}{\dozieregister{#1}}%
+ \setvalue{\e!see#1}{\doseeregister{#1}}%
\setvalue{\e!place#1}{\placeregister[#1]}%
\setvalue{\e!complete#1}{\completeregister[#1]}%
\setvalue{\e!setup#1\e!endsetup}[##1]{\getparameters[\??id#1][##1]}}
diff --git a/Master/texmf-dist/tex/context/base/core-rul.tex b/Master/texmf-dist/tex/context/base/core-rul.tex
index e21d6385a0c..30b06403ca0 100644
--- a/Master/texmf-dist/tex/context/base/core-rul.tex
+++ b/Master/texmf-dist/tex/context/base/core-rul.tex
@@ -556,18 +556,18 @@
\def\@@frame@@{@@frame@@}
-\setvalue{t\@@frame@@\v!on\v!on}{\hrule\!!height\ruledlinewidth\kern-\ruledlinewidth}
+\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{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{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{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}
+\setvalue{r\@@frame@@\v!on }{\kern-\ruledlinewidth\vrule\!!width\ruledlinewidth}
%D I condidered using the low level support command
%D \type{\ruledhbox}, but this would slow down processing by a
@@ -587,6 +587,8 @@
%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
@@ -594,6 +596,7 @@
\newif\ifboxhasstrut
\newif\ifboxisoverlaid
\newif\ifboxhasframe
+\newif\ifdelayedstrut
%D We also need a few \DIMENSIONS:
@@ -638,13 +641,13 @@
\def\copylocalframed[#1]#2[#3]%
{\copyparameters[#1][#3]%
- [\c!width,\c!height,\c!offset,\c!empty,\c!rulethickness,%
+ [\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!location,\c!setups,\c!extras]%
+ \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]%
@@ -696,6 +699,9 @@
\def\framedparameter#1%
{\csname\@@framed#1\endcsname}
+\newdimen\!!framedwidth
+\newdimen\!!framedheight
+
\def\startlocalframed[#1][#2]%
{\bgroup
\inframedtrue
@@ -733,10 +739,13 @@
\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
@@ -784,30 +793,32 @@
\@@localoffset\localoffset
\advance\@@localoffset \ruledlinewidth
\fi\fi
+ \!!framedheight\zeropoint
+ \!!framedwidth \zeropoint
\ifx\localwidth\v!fit
\ifboxhasformat
\boxhaswidthtrue
- \!!widtha\hsize
+ \!!framedwidth\hsize
\else
\boxhaswidthfalse
\fi
\else\ifx\localwidth\v!fixed % equals \v!fit but no shapebox
\ifboxhasformat
\boxhaswidthtrue
- \!!widtha\hsize
+ \!!framedwidth\hsize
\else
\boxhaswidthfalse
\fi
\else\ifx\localwidth\v!broad
\boxhaswidthtrue
- \!!widtha\hsize
+ \!!framedwidth\hsize
\else\ifx\localwidth\v!local
\boxhaswidthtrue
\setlocalhsize
- \!!widtha\localhsize
+ \!!framedwidth\localhsize
\else
\boxhaswidthtrue
- \!!widtha\localwidth
+ \!!framedwidth\localwidth
\fi\fi\fi\fi
\ifx\localheight\v!fit
\boxhasheightfalse % no longer: \boxhasstrutfalse
@@ -815,34 +826,35 @@
\boxhasheightfalse
\else
\boxhasheighttrue
- \!!heighta\localheight
+ \!!framedheight\localheight
\fi\fi
\ifboxhasheight
% obey user set height, also downward compatible
\else
\doifvaluesomething{\@@framed\c!lines}
{\ifcase\framedparameter\c!lines\else
- \!!heighta\framedparameter\c!lines\lineheight
- \edef\localheight{\the\!!heighta}%
+ \!!framedheight\framedparameter\c!lines\lineheight
+ \edef\localheight{\the\!!framedheight}%
\boxhasheighttrue
\fi}%
\fi
% this is now an option: width=local
%
- % \ifdim\!!widtha=\hsize
+ % \ifdim\!!framedwidth=\hsize
% \parindent\zeropoint
% \setlocalhsize
- % \!!widtha\localhsize
+ % \!!framedwidth\localhsize
% \fi
% i.e. disable (colsetbackgroundproblemintechniek)
- \advance\!!widtha -2\@@localoffset
- \advance\!!heighta -2\@@localoffset
+ \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
\fi\fi\fi
\ifboxhasstrut
\setstrut
@@ -853,11 +865,23 @@
\let\localbegstrut\pseudobegstrut % was: \relax
\let\localendstrut\pseudoendstrut % was: \relax
\let\localstrut \pseudostrut % was: \relax
- %\ifboxhasheight\ifdim\!!heighta<\strutht % saveguard
- % \let\localbegstrut\relax % but not that
- % \let\localstrut \relax % save afterall
+ %\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
@@ -893,9 +917,9 @@
\fi
\fi
\edef\framedwidth % a new feature, visible for user
- {\ifdim\!!widtha >\zeropoint\the\!!widtha \else\zeropoint\fi}%
+ {\ifdim\!!framedwidth >\zeropoint\the\!!framedwidth \else\zeropoint\fi}%
\edef\framedheight% a new feature, visible for user
- {\ifdim\!!heighta>\zeropoint\the\!!heighta\else\zeropoint\fi}%
+ {\ifdim\!!framedheight>\zeropoint\the\!!framedheight\else\zeropoint\fi}%
% first alternative
%\def\dowithframedbox%
% {\let\postprocessframebox\relax %new
@@ -955,85 +979,33 @@
%D ...,bottom=\kern0pt,...
%D \stoptyping
-% \def\stoplocalframed
-% {\dontshowcomposition
-% \@@stopframedorientation
-% \ifboxhasformat
-% \ifx\localwidth\v!fit
-% \ifreshapeframebox\doreshapeframedbox\fi
-% \boxhaswidthfalse
-% \else\ifx\localwidth\v!fixed
-% \boxhaswidthfalse
-% \else
-% \resetshapeframebox
-% \fi\fi
-% \else
-% \resetshapeframebox
-% \fi
-% \ifboxhaswidth
-% \wd\framebox\!!widtha
-% \fi
-% \ifboxhasheight
-% \ht\framebox\!!heighta
-% \fi
-% \doifvalue{\@@framed\c!empty}\v!yes
-% {\setbox\scratchbox\null
-% \wd\scratchbox\wd\framebox
-% \ht\scratchbox\ht\framebox
-% \dp\scratchbox\dp\framebox
-% \setbox\framebox\box\scratchbox}%
-% \stopregistercolor
-% \docolorframebox
-% \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
-% \doframedbox
-% \fi
-% \doifvaluesomething{\@@framed\c!background}\dobackedbox
-% \ifx\@@locallocation\v!low
-% \doinlineframedbox
-% \else\ifx\@@locallocation\v!depth
-% \doloweredframedbox
-% \else\ifx\@@locallocation\v!hanging
-% \dohangingframedbox
-% \fi\fi\fi
-% \box\framebox
-% \egroup
-% \egroup}
-%
-% new version, installable handler:
-
\def\stoplocalframed
{\dontshowcomposition
\@@stopframedorientation
\ifboxhasformat
- \ifx\localwidth\v!fit
+ \ifx\@@localautowidth\v!force
\ifreshapeframebox\doreshapeframedbox\fi
\boxhaswidthfalse
- \else\ifx\localwidth\v!fixed
- \boxhaswidthfalse
\else
- \resetshapeframebox
- \fi\fi
+ \ifx\localwidth\v!fit
+ \ifx\@@localautowidth\v!yes
+ \ifreshapeframebox\doreshapeframedbox\fi
+ \fi
+ \boxhaswidthfalse
+ \else\ifx\localwidth\v!fixed
+ \boxhaswidthfalse
+ \else
+ \resetshapeframebox
+ \fi\fi
+ \fi
\else
\resetshapeframebox
\fi
\ifboxhaswidth
- \wd\framebox\!!widtha
+ \wd\framebox\!!framedwidth
\fi
\ifboxhasheight
- \ht\framebox\!!heighta
+ \ht\framebox\!!framedheight
\fi
\doifvalue{\@@framed\c!empty}\v!yes
{\setbox\scratchbox\null
@@ -1182,9 +1154,9 @@
\scratchcounter\@@localorientation
\divide\scratchcounter\plustwo
\ifodd\scratchcounter
- \swapmacros\framedwidth\framedheight
- \swapmacros\localwidth \localheight
- \swapdimens\!!heighta \!!widtha
+ \swapmacros\framedwidth \framedheight
+ \swapmacros\localwidth \localheight
+ \swapdimens\!!framedheight\!!framedwidth
\def\@@stopframedorientation{\@@dostopframedorientation\plusone}%
\else
\def\@@stopframedorientation{\@@dostopframedorientation\zerocount}%
@@ -1194,9 +1166,9 @@
\def\@@dostopframedorientation#1%
{\ifcase#1\else
- \swapmacros\framedwidth\framedheight
- \swapmacros\localwidth \localheight
- \swapdimens\!!heighta \!!widtha
+ \swapmacros\framedwidth \framedheight
+ \swapmacros\localwidth \localheight
+ \swapdimens\!!framedheight\!!framedwidth
\fi
\setbox\framebox\hbox{\dorotatebox\@@localorientation\hbox{\box\framebox}}}
@@ -1473,139 +1445,72 @@
%D or free widths and heights. Each combination gets its own
%D macro.
-% \def\dopresetformatbox
-% {\forgetall
-% \oninterlineskip}
-
-% \def\doformatboxSomeFormat
-% {\vbox to \!!heighta
-% \bgroup
-% \dopresetformatbox
-% \hsize\!!widtha
-% \vsize\!!heighta
-% \raggedcommand
-% \dobeforeframedbox
-% \bgroup
-% \localbegstrut
-% \aftergroup\localendstrut
-% \aftergroup\doafterframedbox
-% \aftergroup\egroup
-% \let\next=}
-
-% \def\doformatboxNoFormat
-% {\vbox to \!!heighta
-% \bgroup
-% \dopresetformatbox
-% \hsize\!!widtha
-% \vsize\!!heighta
-% \raggedcenter
-% \vss
-% \bgroup
-% \localbegstrut
-% \aftergroup\localendstrut
-% \aftergroup\vss
-% \aftergroup\egroup
-% \let\next=}
-
-% \def\doformatboxHeight
-% {\vbox to \!!heighta
-% \bgroup
-% \dopresetformatbox
-% \raggedcommand
-% \vss
-% \bgroup
-% \aftergroup\localendstrut
-% \aftergroup\vss
-% \aftergroup\egroup
-% \localbegstrut
-% \let\next=}
-
-% \def\doformatboxWidth
-% {\vbox
-% \bgroup
-% \dopresetformatbox
-% \hsize\!!widtha
-% \raggedcommand
-% \dobeforeframedbox
-% \bgroup
-% \localbegstrut
-% \aftergroup\localendstrut
-% \aftergroup\doafterframedbox
-% \aftergroup\egroup
-% \let\next=}
-
-% \def\doformatboxVSize
-% {\vbox to \!!heighta
-% \bgroup
-% \forgetall
-% \vsize\!!heighta
-% \vss
-% \bgroup
-% \aftergroup\vss
-% \aftergroup\egroup
-% \hbox
-% \bgroup
-% \aftergroup\egroup
-% \localstrut
-% \let\next=}
-
-% \def\doformatboxHSize
-% {\hbox to \!!widtha
-% \bgroup
-% \forgetall
-% \hss
-% \localstrut
-% \bgroup
-% \aftergroup\hss
-% \aftergroup\egroup
-% \let\next=}
-
-% \def\doformatboxNoSize
-% {\hbox
-% \bgroup
-% \localstrut
-% \let\next=}
+%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\doformatboxSomeFormat
- {\vbox to \!!heighta
+ {\vbox to \!!framedheight
\bgroup
- \let\postprocessframebox\relax
+ \let\postprocessframebox\relax
\forgetall
\oninterlineskip
- \hsize\!!widtha
- \vsize\!!heighta
+ \hsize\!!framedwidth
+ \vsize\!!framedheight
\doframedsetups
\raggedcommand
\dobeforeframedbox
\bgroup
\localbegstrut
- \@@handleoneliner
\aftergroup\localendstrut
\aftergroup\doafterframedbox
\aftergroup\egroup
- \let\next=}
+ \doformatonelinerbox}
\def\doformatboxNoFormat
- {\vbox to \!!heighta
+ {\vbox to \!!framedheight
\bgroup
- \let\postprocessframebox\relax
+ \let\postprocessframebox\relax
\forgetall
\oninterlineskip
- \hsize\!!widtha
- \vsize\!!heighta
+ \hsize\!!framedwidth
+ \vsize\!!framedheight
\doframedsetups
\raggedcenter
\vss
\bgroup
\localbegstrut
- \@@handleoneliner
\aftergroup\localendstrut
\aftergroup\vss
\aftergroup\egroup
- \let\next=}
+ \doformatonelinerbox}
\def\doformatboxHeight
- {\vbox to \!!heighta
+ {\vbox to \!!framedheight
\bgroup
\let\postprocessframebox\relax
\forgetall
@@ -1618,8 +1523,7 @@
\aftergroup\vss
\aftergroup\egroup
\localbegstrut
- \@@handleoneliner
- \let\next=}
+ \doformatonelinerbox}
\def\doformatboxWidth
{\vbox
@@ -1627,24 +1531,23 @@
\let\postprocessframebox\relax
\forgetall
\oninterlineskip
- \hsize\!!widtha
+ \hsize\!!framedwidth
\doframedsetups
\raggedcommand
\dobeforeframedbox
\bgroup
\localbegstrut
- \@@handleoneliner
\aftergroup\localendstrut
\aftergroup\doafterframedbox
\aftergroup\egroup
- \let\next=}
+ \doformatonelinerbox}
\def\doformatboxVSize
- {\vbox to \!!heighta
+ {\vbox to \!!framedheight
\bgroup
\let\postprocessframebox\relax
\forgetall
- \vsize\!!heighta
+ \vsize\!!framedheight
\doframedsetups
\vss
\bgroup
@@ -1654,22 +1557,20 @@
\bgroup
\aftergroup\egroup
\localstrut
- \@@handleoneliner
- \let\next=}
+ \doformatonelinerbox}
\def\doformatboxHSize
- {\hbox to \!!widtha
+ {\hbox to \!!framedwidth
\bgroup
\let\postprocessframebox\relax
\forgetall
\doframedsetups
\hss
\localstrut
- \@@handleoneliner
\bgroup
\aftergroup\hss
\aftergroup\egroup
- \let\next=}
+ \doformatonelinerbox}
\def\doformatboxNoSize
{\hbox
@@ -1677,8 +1578,7 @@
\let\postprocessframebox\relax
\doframedsetups
\localstrut
- \@@handleoneliner
- \let\next=}
+ \doformatonelinerbox}
\let\doframedsetups\relax
@@ -2596,6 +2496,7 @@
\c!depthcorrection=\v!on,
\c!margin=\v!standard,
\c!orientation=,
+ \c!indenting=,
#2]%
\setvalue{\e!start#1}{\dostartframedtext[#1]}%
\setvalue{\e!stop #1}{\dostopframedtext }%
@@ -2647,8 +2548,12 @@
\localhsize\hsize
\fi\fi}
-\def\dododostartframedtext[#1][#2][#3]%
- {\doifsomething{#2}{\setvalue{\??kd#1\c!location}{#2}}%
+\setfalse\framedtextlocationnone
+
+
+\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
@@ -2658,7 +2563,8 @@
\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
+ \letvalue{\??kd#1\c!right}\relax % new
+ \settrue\framedtextlocationnone]%
\letvalue{\??kd#1\c!location}\empty
% removed 06/2001
% \forgetparindent
@@ -2671,7 +2577,7 @@
% \insidefloattrue % ? better
\expanded{\switchtobodyfont[\framedtextparameter{#1}\c!bodyfont]}%
\startcolor[\framedtextparameter{#1}\c!color]%
- \localframed[\??kd#1][\c!strut=\v!no,#3]%
+ \localframed[\??kd#1][\c!strut=\v!no,#3]% todo: use delayedstrut
\bgroup
\let\\=\endgraf
\framedtextparameter{#1}\c!inner % oud spul
@@ -2684,6 +2590,7 @@
\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}}}
@@ -2707,15 +2614,33 @@
\verticalstrut}
\stopboxedcontent
\stopcolor
- \egroup
- \doif{#2}\v!none\insidefloattrue % new
- \ifinsidefloat
+ \ifconditional\framedtextlocationnone
+ \egroup
+ \box\framebox
+ \else\ifinsidefloat
+ \egroup
\box\framebox
\else
+ \egroup
\doplacement[\??kd#1][\c!depthcorrection=\v!off]{\box\framebox}%
- \fi
+ \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.
@@ -3114,7 +3039,9 @@
%D Although we could have used a scratch one, we first
%D declare a boolean.
-\newif\ifbackgroundsplit
+% 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
@@ -3126,70 +3053,83 @@
\setbox0\vbox\bgroup
\vbox to \lineheight{}\vskip\zeropoint
\blank[\v!disable]
- \advance\hsize -\@@agleftoffset
- \advance\hsize -\@@agrightoffset}
+ % \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)
+\def\dostopbackground % improved version (i hope)
{\endgraf
\removelastskip
\egroup
+ \dimen2\leftskip % new **
\forgetall
- \splitmaxdepth\boxmaxdepth
- \splittopskip\topskip
- \setbox2\vsplit0 to \lineheight % get rid of fake line
- \loop
- \ifdim\pagetotal=\zeropoint % empty page
- \scratchdimen\textheight
- \chardef\backgroundsplit1 % split to max height
- \else
- \scratchdimen\pagegoal
- \setbox\scratchbox\vbox{\@@agbefore}%
- \advance\scratchdimen -\ht\scratchbox
- \advance\scratchdimen -\pagetotal
- \chardef\backgroundsplit2 % split to partial height
- \fi
- \advance\scratchdimen -\@@agtopoffset
- \advance\scratchdimen -\@@agbottomoffset \relax
- \ifdim\scratchdimen>2\lineheight\relax % reasonable, will be configurable
- \ifdim\ht0>\scratchdimen % larger than page
- \setbox2\vsplit0 to \scratchdimen
+ \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
- \setbox2\box0
- \chardef\backgroundsplit0 % no split
+ \scratchdimen\pagegoal
+ \setbox\scratchbox\vbox{\@@agbefore}%
+ \advance\scratchdimen -\ht\scratchbox
+ \advance\scratchdimen -\pagetotal
+ \chardef\backgroundsplit\plustwo % split to partial height
\fi
- \setbox2\vbox \ifcase\backgroundsplit\or to \textheight \fi % max split
- {\vskip\@@agtopoffset
- \popsplitproperties
- \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}%
- \stoplinecorrection
- \ifcase\backgroundsplit % no split
- \@@agafter
- \else % some split
- \vfill\eject % geen \page !
+ \advance\scratchdimen -\@@agtopoffset
+ \advance\scratchdimen -\@@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
+ \popsplitproperties
+ \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
- \else
- \page
- \fi
- \ifdim\ht0>\zeropoint \repeat
+ \ifdim\ht0>\zeropoint \repeat
+ \fi
\egroup
\endgraf}
@@ -3385,8 +3325,10 @@
\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
diff --git a/Master/texmf-dist/tex/context/base/core-sec.tex b/Master/texmf-dist/tex/context/base/core-sec.tex
index 1d91e66e01d..c5fc5db8ac5 100644
--- a/Master/texmf-dist/tex/context/base/core-sec.tex
+++ b/Master/texmf-dist/tex/context/base/core-sec.tex
@@ -67,31 +67,37 @@
2: sfarsit de bloc sectiune --
\stopmessages
+\startmessages french library: structures
+ title: structure
+ 1: début de blocsection --
+ 2: fin de blocsection --
+\stopmessages
+
\unprotect
% from now on, internaly numbers are separated by a period
% and postprocessed on demand
\def\numberseparator {.} % reasonable default
-\def\sectionseparator{:} % was : but is now -
+\def\sectionseparator{-} % was : but is now -
-\def\@@filterfirstpart [#1::#2]{#1}
-\def\@@filtersecondpart [#1::#2]{#2}
+\def\@@filterfirstpart [#1--#2]{#1}
+\def\@@filtersecondpart [#1--#2]{#2}
-\def\@@filterblockpart [#1::#2::#3]{#1}
-\def\@@filternumberpart [#1::#2::#3]{#2}
-\def\@@filterpagepart [#1::#2::#3]{#3}
-\def\@@filterblocknumberpart[#1::#2::#3]{#1::#2}
+\def\@@filterblockpart [#1--#2--#3]{#1}
+\def\@@filternumberpart [#1--#2--#3]{#2}
+\def\@@filterpagepart [#1--#2--#3]{#3}
+\def\@@filterblocknumberpart[#1--#2--#3]{#1--#2}
-\def\@@filterheadpart[#1]{\@EA\@@dofilterheadpart\@EA[#1:0]}
-\def\@@filtertailpart[#1]{\@EA\@@dofiltertailpart\@EA[#1:0]}
+\def\@@filterheadpart[#1]{\@EA\@@dofilterheadpart\@EA[#1-0]}
+\def\@@filtertailpart[#1]{\@EA\@@dofiltertailpart\@EA[#1-0]}
-\def\@@dofilterheadpart[#1:#2]{#1}
-\def\@@dofiltertailpart[#1:#2]{#2}
+\def\@@dofilterheadpart[#1-#2]{#1}
+\def\@@dofiltertailpart[#1-#2]{#2}
-\def\@@filterlevelpart[#1::#2::#3]{\@@dofilterlevelpart[#2:0:0:0:0]}
+\def\@@filterlevelpart[#1--#2--#3]{\@@dofilterlevelpart[#2-0-0-0-0]}
-\def\@@dofilterlevelpart[#1:0:0:0:#2]{#1}
+\def\@@dofilterlevelpart[#1-0-0-0-#2]{#1}
\def\gobbleuntilrelax#1\relax{}
@@ -129,42 +135,47 @@
\def\dohandleheadnumber#1%
{\expanded{\separatednumber{#1}}}
-\def\dodochecknummer#1#2#3% will become ugly after speed up
+\def\dodochecknumber#1#2#3% will become ugly after speed up
{\bgroup
\doifinstringelse{.0}{.#2}
{\doifnot{#3}\v!by
{%\debuggerinfo\m!systems{number #1 #3 becomes \getnumbervariable{#1\c!way}}%
\setevalue{\@@thenumber{#1}\c!way}{#3}% geen \xdef, gaat mis met \subpage
- \dochecknummer{#1}}} % tricky and ugly
+ \dochecknumber{#1}}} % tricky and ugly
{\doifnotvalue{\@@thenumber{#1}\s!check}{#2}
- {\setcounter{\@@thenumber{#1}}{0\getvalue{\@@thenumber{#1}\c!start}}%
- \setxvalue{\@@thenumber{#1}\c!way\c!local}%
- {\getvalue{\@@thenumber{#1}\c!way}}%
- \setxvalue{\@@thenumber{#1}\s!check}%
- {#2}}}%
+ {% new, calculate accumulated number
+ \scratchcounter\getvalue{\@@thenumber{#1}\c!n}\relax
+ \advance\scratchcounter\countervalue{\@@thenumber{#1}}\relax
+ \setxvalue{\@@thenumber{#1}\c!n}{\the\scratchcounter}%
+ %
+ \setcounter{\@@thenumber{#1}}{0\getvalue{\@@thenumber{#1}\c!start}}%
+ \setxvalue{\@@thenumber{#1}\c!way\c!local}{\getvalue{\@@thenumber{#1}\c!way}}%
+ \setxvalue{\@@thenumber{#1}\s!check}{#2}}}%
\egroup}
-\def\dochecknummer#1%
+\def\dochecknumber#1%
{\edef\currentsection{\csname\??by\csname\@@thenumber{#1}\c!way\endcsname\endcsname}%
\ifx\currentsection\empty\else
- \dodochecknummer
+ \dodochecknumber
{#1}%
{\csname\currentsection\c!number\endcsname}%
{\v!by\previoussection\currentsection}%
\fi}
-\def\checknummer#1%
+\def\checknumber[#1]%
{\bgroup
%\ifcase\blocklevel\else
\ifdoingblocks
\doifnotvalue{\@@thenumber{#1}\c!blockway}\v!no\setblockcounters
\fi
- \dochecknummer{#1}%
+ \dochecknumber{#1}%
\egroup}
\def\rawsectionnumber#1%
{\countervalue{\??se#1}}
+\def\precedingseparator{\@@koseparator} % brrr
+
\def\domakeprecedingsectionnumber[#1]% will become ugly after speed up
{\bgroup % added
\globallet\precedingsectionnumber\empty
@@ -180,7 +191,8 @@
\doifnot\currentsection\zerosection
{\doifnot{\@@sectionvalue\currentsection}{0}
{\xdef\precedingsectionnumber%
- {\getvalue{\currentsection\c!number}.}}}%
+ {\getvalue{\currentsection\c!number}%
+ \spr{\precedingseparator}}}}%
\fi}%
\fi
\egroup}
@@ -197,7 +209,7 @@
% \def\makesectionnumber[#1]%
% {\makeprecedingsectionnumber[#1]%
-% \xdef\hetnummer%
+% \xdef\composedsectionnumber%
% {\precedingsectionnumber\convertednumber[#1]}}%
%
% hack needed for chinese and oldstyle in normal tex, will change
@@ -206,29 +218,82 @@
{\bgroup
\forceunexpanded % i don't like this hack
\makeprecedingsectionnumber[#1]%
- \xdef\hetnummer% was \xdef maar dat gaat fout met font switches
+ \xdef\composedsectionnumber% was \xdef maar dat gaat fout met font switches
{\precedingsectionnumber\convertednumber[#1]}%
\egroup}
-\def\preparethenumber#1#2#3% {\??id#1} \number \result
- {\doifelsevaluenothing{#1\c!separator}
- {\let\numberseparator\empty
- \let#3#2}
- {% was \unexpanded \edef, but we need it unexpanded !
- \edef\numberseparator{\getvalue{#1\c!separator}}%
- \edef#3{\@EA\separatednumber\@EA{#2}}}} % hm, etex
+% \def\preparethenumber#1#2#3% {\??id#1} \number \result
+% {\doifelsevaluenothing{#1\c!separator}
+% {\let\numberseparator\empty
+% \let#3#2}
+% {% was \unexpanded \edef, but we need it unexpanded !
+% \edef\numberseparator{\spr{\getvalue{#1\c!separator}}}%
+% \doifelsenothing{\executeifdefined{#1\c!suffix}\empty}
+% {\edef#3%
+% {\@EA\separatednumber\@EA{#2}%
+% }}%\stp{\getvalue{#1\c!stopper}}}}
+% {\edef#3%
+% {\@EA\separatednumber\@EA{#2}%
+% \spr{\getvalue{#1\c!separator}}%
+% \getvalue{#1\c!suffix}%
+% \stp{\getvalue{#1\c!stopper}}}}}}
+%
+% some day we do a real cleanup
+
+\def\analyzenumber#1#2#3% {\??id#1} \(precedingsection)number \result
+ {% was \unexpanded \edef, but we need it unexpanded !
+ \doifelsenothing{\executeifdefined{#1\c!suffix}\empty}
+ {\let \numbersuffix \empty}
+ {\edef\numbersuffix{\spr{\getvalue{#1\c!suffix}}}}%
+ \doifelsenothing{\executeifdefined{#1\c!stopper}\empty}
+ {\let \numberstopper \empty}
+ {\edef\numberstopper{\spr{\getvalue{#1\c!stopper}}}}%
+ \doifelsenothing{\executeifdefined{#1\c!separator}\empty}
+ {\let \numberseparator \empty}
+ {\edef\numberseparator{\spr{\getvalue{#1\c!separator}}}}%
+ \let\numberprefix\empty}
+
+\def\preparefullnumber#1#2#3% {\??id#1} \(precedingsection)number \result
+ {\analyzenumber{#1}#2#3%
+ \ifx\numberseparator\empty
+ \edef\numberprefix{#2}%
+ \else
+ \edef\numberprefix{\@EA\separatednumber\@EA{#2}}%
+ \fi
+ \ifx\numbersuffix\empty
+ \ifx\numberprefix\empty
+ \let #3\empty
+ \else
+ \edef#3{\numberprefix\numberstopper}%
+ \fi
+ \else
+ \ifx\numberprefix\empty
+ \edef#3{\numbersuffix\numberstopper}%
+ \else
+ \edef#3{\numberprefix\numberseparator\numbersuffix\numberstopper}%
+ \fi
+ \fi}
+
+\def\prepareprefixnumber#1#2#3% {\??id#1} \number \result
+ {\analyzenumber{#1}#2#3%
+ \ifx\numberseparator\empty
+ \edef\numberprefix{#2}%
+ \else
+ \edef\numberprefix{\@EA\separatednumber\@EA{#2}}%
+ \fi
+ \let#3\numberprefix}
-\def\lossenummer[#1]%
+\def\sectionnumberonly[#1]%
{\makesectionnumber[#1]%
- \hetnummer}
+ \composedsectionnumber}
\def\currentnumber[#1]% kan tekst hier weg ?
- {\dotextprefix{\getvalue{\@@thenumber{#1}\c!text}}\lossenummer[#1]}
+ {\dotextprefix{\getvalue{\@@thenumber{#1}\c!text}}\sectionnumberonly[#1]}
\def\nextnumber[#1][#2][#3]%
{\incrementnumber[#1]%
\currentnumber[#1]%
- \rawreference{#2}{#3}{\hetnummer}}
+ \rawreference{#2}{#3}{\composedsectionnumber}}
% sectioning
@@ -243,49 +308,42 @@
\makecounter{\??se\v!text}
\letvalueempty{\??se\v!text\c!before}
-\letvalueempty{\??se\v!text\c!after }
+\letvalueempty{\??se\v!text\c!after }
\setvalue {\v!text\c!number}{0}
\letvalueempty{\v!text\s!format}
\letvalueempty{\??sk\v!text}
-\letvalueempty{\??sk }
+\letvalueempty{\??sk }
-\letvalue{\??by }\v!text
-\letvalue{\??by\v!text }\v!text
-\letvalue{\??by\v!all }\v!text
-\letvalue{\??by\v!by }\v!text
-\letvalue{\??by\v!by\v!text }\v!text
+\letvalue{\??by }\v!text
+\letvalue{\??by\v!text }\v!text
+\letvalue{\??by\v!all }\v!text
+\letvalue{\??by\v!by }\v!text
+\letvalue{\??by\v!by\v!text}\v!text
\letvalue{\??by\v!by\v!all }\v!text
\letvalue{\??by\v!by\v!page}\v!text % see footnotes
-%%%%%%%%% old
-
-\def\dosetupsection[#1][#2]%
- {\getparameters[\??se#1][#2]%
- \doifelsevalue{\??se#1\c!previousnumber}\v!yes
- {\setvalue{#1\c!number}{\@@longsectionnumber{#1}}}
- {\setvalue{#1\c!number}{\@@shortsectionnumber{#1}}}}
+\def\sectionofhead#1{\executeifdefined{\??ko#1\c!section}\s!unknown}
\def\setupsection
- {\dodoubleargument\dosetupsection}
-
-%%%%%%%%% new, multilingual
-
-\def\dosetupsection[#1][#2][#3]%
- {\ifthirdargument
- \getparameters[\??se#1#2][#3]%
- \else
- \getparameters[\??se#1][#2]%
- \fi
- \doifelsevalue{\??se#1\c!previousnumber}\v!yes
- {\setvalue{#1\c!number}{\@@longsectionnumber {#1}}}
- {\setvalue{#1\c!number}{\@@shortsectionnumber{#1}}}}
-
-\def\setupsection%
{\dotripleempty\dosetupsection}
-%%%%%%%%%
+\def\dosetupsection[#1]%
+ {\doifdefinedelse{\??se#1}
+ {\dodosetupsection[#1]}%
+ {\dodosetupsection[\sectionofhead{#1}]}}
+
+\def\dodosetupsection[#1][#2][#3]%
+ {\doifdefined{\??se#1}
+ {\ifthirdargument
+ \getparameters[\??se#1#2][#3]%
+ \else
+ \getparameters[\??se#1][#2]%
+ \fi
+ \doifelsevalue{\??se#1\c!previousnumber}\v!yes
+ {\setvalue{#1\c!number}{\@@longsectionnumber {#1}}}
+ {\setvalue{#1\c!number}{\@@shortsectionnumber{#1}}}}}
\def\docouplemarking[#1][#2]%
{\doifdefinedelse{\??ko#2\c!section}
@@ -323,6 +381,7 @@
\setevalue{\??by#1}{#1}%
\setevalue{\??by\v!by#1}{#1}%
\makecounter{\??se#1}%
+ \makecounter{\??se\v!last#1}% GB
\edef\lastsection{#1}%
\setvalue{\??sk#1}{#1}%
\letvalue{\??se#1\c!marking}\empty
@@ -331,39 +390,41 @@
\def\previoussection#1{\csname\??se#1\c!before\endcsname}
\def\nextsection #1{\csname\??se#1\c!after \endcsname}
+\let\preservedsection\v!unknown % \def\preservedsection{\firstsection}
+
+\def\checkpreservevalueafter#1% GB
+ {\ifnum\getvalue{\??se#1\c!level}<\nofsections
+ \edef\preservedsection{\getvalue{\??se#1\c!after}}%
+ \ifconditional\@@resetsubheadnumbers
+ \setcounter{\??se\v!last\preservedsection}\zerocount % {0}%
+ \else
+ \setcounter{\??se\v!last\preservedsection}{\countervalue{\??se\preservedsection}}%
+ \fi
+ \fi}
+
\def\@@setsectionnumber#1#2%
{\letgvalueempty{\??se#1\s!start}% signal i.p.v. boolean
\setcounter{\??se#1}{#2}%
- \ifconditional\@@resetsubheadnumbers\resetsectioncounters{#1}\fi
+ \checkpreservevalueafter{#1}% GB
+ \resetsectioncounters{#1}%
\checkpagecounter}
-\def\@@nextsectionnumber#1%
+\def\@@nextsectionnumber#1% patched by GB
{\letgvalueempty{\??se#1\s!start}% signal i.p.v. boolean
+ \ifnum\countervalue{\??se\v!last#1}>\zerocount
+ \setcounter{\??se#1}{\countervalue{\??se\v!last#1}}%
+ \setcounter{\??se\v!last#1}\zerocount % {0}%
+ \fi
\pluscounter{\??se#1}%
- \ifconditional\@@resetsubheadnumbers\resetsectioncounters{#1}\fi
+ \checkpreservevalueafter{#1}%
+ \resetsectioncounters{#1}%
\checkpagecounter}
\def\@@sectionvalue#1% % nog niet overal doorgevoerd
{\countervalue{\??se#1}} % zoeken op \??se
-% \def\@@sectionconversion#1%
-% {\getvalue{\??cv\getvalue{\??se#1\@@sectionblock\c!conversion}}}
-
% suited for chinese too:
-% \def\@@sectionconversion#1#2% a doublure with \@@shortsectionnumber
-% {\ifnum#2=0 0\else % else troubles with \uchar
-% \@EA\ifx\csname\??se#1\@@sectionblock\c!conversion\endcsname\relax
-% \@EA\ifx\csname\??se#1\c!conversion\endcsname\relax
-% #2%
-% \else
-% \getvalue{\??cv\getvalue{\??se#1\c!conversion}}{#2}%
-% \fi
-% \else
-% \getvalue{\??cv\getvalue{\??se#1\@@sectionblock\c!conversion}}{#2}%
-% \fi
-% \fi}
-
\def\@@sectionconversion#1#2% a doublure with \@@shortsectionnumber
{\ifnum#2=0 0\else % else troubles with \uchar
\@EA\ifx\csname\??se#1\@@sectionblock\c!conversion\endcsname\relax
@@ -377,13 +438,16 @@
\fi
\fi}
+% \def\@@sectionlevel#1%
+% {\ifundefined{\??se#1\c!level}0\else\getvalue{\??se#1\c!level}\fi}
+
\def\@@sectionlevel#1%
- {\ifundefined{\??se#1\c!level}0\else\getvalue{\??se#1\c!level}\fi}
+ {\executeifdefined{\??se#1\c!level}0}
% Omdat een markering kan worden herdefinieerd moeten we
% eerst testen of er wel een keten||afhankelijkheid is.
-\def\resetsectionmarks#1%
+\def\resetsectionmarks#1% can invoke a break
{\ifundefined{\??se#1}%
\fastresetmarker[\mainmarking{#1}]% % redundant \mainmarking
\else
@@ -505,8 +569,13 @@
\fi}%
\dobacktrackcommando\lastsection}}
+% \def\ignoresectionconversion % brrr
+% {\let\@@sectionconversion\secondoftwoarguments}
+
\def\dosetfilterlevel#1#2% beware: this one is \let
{\bgroup
+ \let\@@shortsectionnumber\@@sectionvalue
+% \ignoresectionconversion
\edef\askedlevel{#1}%
\edef\askedfilter{#2}%
\ifx\askedlevel\v!current
@@ -868,7 +937,7 @@
\def\dosetlocalsectionblock#1#2#3% new \edef's
{\edef\@@sectiontype {#1}%
- \edef\@@sectionblock {#2}%
+ \edef\@@sectionblock {#2}%
\edef\@@sectionblocks{#3}}
% beware, the \resetsectionmarks generates some nodes that
@@ -1018,10 +1087,14 @@
\global\paginageblokkeerdtrue
\fi}
+% \setuphead[section][aligntitle=float] % permits title next to sidefloat
+%
+% \placefigure[left]{}{} \section{\dorecurse{10}{bagger }} \input tufte
+
\def\dohandlepagebreakAB#1% will be replaced by a more clever (signaling) mechanism (in beta)
- {\flushsidefloats
+ {\doifnotvalue{\??ko#1\c!aligntitle}\v!float\flushsidefloats
\getvalue{\??ko#1\c!before}%
- %\whitespace vervangen door \noindent elders
+ % \whitespace vervangen door \noindent elders
\relax
\ifpaginageblokkeerd
\global\paginageblokkeerdfalse
@@ -1036,12 +1109,15 @@
\dosomebreak\allowbreak
\fi
\fi
+ \doifvalue{\??ko#1\c!aligntitle}\v!float\indent
\xdef\@@kolevel{\getvalue{\??se\@@sectie\c!level}}}
\def\dohandlepagebreakBB#1#2#3%
- {\doifinset{\getvalue{\??tk#2\c!state}}{\v!normal,\v!start}
+ {%\doifinsetelse{\getvalue{\??tk#2\c!state}}{\v!normal,\v!start}
+ \doifelselayouttextline{#2}
{\doifvaluesomething{\??ko#1#3}
- {\setuplayouttext[#2][\c!state=\getvalue{\??ko#1#3}]}}}
+ {\setuplayouttext[#2][\c!state=\getvalue{\??ko#1#3}]}}
+ \donothing}
\def\dohandlepagebreakB#1%
{\doifvaluesomething{\??ko#1\c!page}
@@ -1089,6 +1165,8 @@
{\expanded{\setupalign[\getvalue{\??ko#1\c!align}]}}%
\doifvaluesomething{\??ko#1\c!tolerance} % wordt al expanded in spa
{\expanded{\setuptolerance[\getvalue{\??ko#1\c!tolerance}]}}%
+ \doifvalue{\??ko#1\c!strut}\v!no % wordt al expanded in spa
+ {\setnostrut}% new
\def\\{\crlf\strut\ignorespaces}}
\def\localkopsetup{\localheadsetup} % kan tzt weg
@@ -1103,7 +1181,7 @@
\newif\ifemptyhead
\newif\ifwritetolist
\newif\ifheadnumber
-\newif\ifcontinuoushead
+\newif\ifzushead
\newif\ifheadnumbercontent % niet meer wijzigen / wordt mode
\newif\ifheadprefix
\newif\ifsomeheadconversion
@@ -1179,33 +1257,6 @@
\setupheadnumber[#1][\foundsectionnumber]%
\setupheadnumber[#1][-1]}
-% \def\setsomeheadconversion#1#2%
-% {\someheadconversionfalse
-% \doifelsevalue{\??ko#1\c!eigennummer}\v!ja
-% {\def\someheadconversion{#2}}
-% {\bepaalkopnummer[#1]%
-% \@EA\ifx\csname\??se\@@sectie\@@sectionblock\c!kopconversie\endcsname\relax
-% \@EA\ifx\csname\??se\@@sectie\c!kopconversie\endcsname\relax
-% \def\someheadconversion{#2}%
-% \else
-% \@EA\ifx\csname\??se\@@sectie\c!kopconversie\endcsname\empty
-% \def\someheadconversion{#2}%
-% \else
-% \someheadconversiontrue
-% \def\someheadconversion%
-% {\fullsectionnumber{#1}{\getvalue{\??se\@@sectie\c!kopconversie}}{#2}}%
-% \fi
-% \fi
-% \else
-% \@EA\ifx\csname\??se\@@sectie\@@sectionblock\c!kopconversie\endcsname\empty
-% \def\someheadconversion{#2}%
-% \else
-% \someheadconversiontrue
-% \def\someheadconversion%
-% {\fullsectionnumber{#1}{\getvalue{\??se\@@sectie\@@sectionblock\c!kopconversie}}{#2}}%
-% \fi
-% \fi}}
-%
% deal with eigennummer
\def\setsomeheadconversion#1#2%
@@ -1266,23 +1317,23 @@
\let\fullsectionnumber\limitedfullsectionnumber
-% \dodododosomekop IS NON GROUPED, SO WE NEED TO RESTORE !!!!
+% \dodododoconstructhead IS NON GROUPED, SO WE NEED TO RESTORE !!!!
%
% dit kan dus beter \everyaroundhead zijn
\let\currentheadnumber\empty
\let\currentheadtext \empty
-\def\dodosomekop#1[#2]#3% [ref] {title}
+\def\dodoconstructhead#1[#2]#3% [ref] {title}
{\doifelsevalue{\??ko#1\c!ownnumber}\v!yes
- {\doquadruplegroupempty\dododosomekop{#1}{#2}{#3}}
- {\fourthargumentfalse \dododosomekop{#1}{#2}{#3}{}}}
+ {\doquadruplegroupempty\dododoconstructhead{#1}{#2}{#3}}
+ {\fourthargumentfalse \dododoconstructhead{#1}{#2}{#3}{}}}
-\def\dododosomekop#1#2#3#4% [ref] {own} {title}
+\def\dododoconstructhead#1#2#3#4% [ref] {own} {title}
{\iffourthargument
- \def\next{\dodododosomekop{#1}[#2]{#3}{#4}}%
+ \def\next{\dodododoconstructhead{#1}[#2]{#3}{#4}}%
\else
- \def\next{\dodododosomekop{#1}[#2]{\finalsectionnumber}{#3}}%
+ \def\next{\dodododoconstructhead{#1}[#2]{\finalsectionnumber}{#3}}%
\fi
\next}
@@ -1304,14 +1355,14 @@
\let\localkopprefix\empty
-% \def\headparameter#1% to do: everywhere in core-sec
-% {\csname\??ko\currenthead#1\endcsname}
+\def\headparameter#1% to do: everywhere in core-sec
+ {\csname\??ko\currenthead#1\endcsname}
-\def\dodododosomekop#1[#2]#3#4% [ref] {number} {title}
+\def\dodododoconstructhead#1[#2]#3#4% [ref] {number} {title}
{\def\currenthead{#1}% dus #1 overal vervangen
\let\finalsectionnumber\dofinalsectionnumber % overloaded ungrouped -)
\unexpanded\def\\{\space}%
- \def\numberseparator{\getvalue{\??ko\currenthead\c!separator}}%
+ \edef\numberseparator{\spr{\getvalue{\??ko\currenthead\c!separator}}}%
\flushingcolumnfloatsfalse % {number} can be \finalsectionnumber
\someheadconversionfalse
\let\fullsectionnumber\limitedfullsectionnumber
@@ -1428,16 +1479,16 @@
\rawreference\s!sec{#2}{{#3}{\asciititle}}%
\resetsectionmarks\@@sectie
\setlistparameter\@@koppeling\c!expansion{\getvalue{\??ko#1\c!expansion}}%
-\doifelsevalue{\??ko#1\c!ownnumber}\v!yes % brrr, new per 18/1/2005, sometimes we need
- {\dowritetolist\@@koppeling{#3}{#4}\v!head} % entries in the list (special purpose) but
- {\dowritetolist\@@koppeling {}{#4}\v!head}% not in the header, ok we could pop in a command
-}% \dowritetolist\@@koppeling{}{#4}\v!head}
+ \doifelsevalue{\??ko#1\c!ownnumber}\v!yes % brrr, new per 18/1/2005, sometimes we need
+ {\dowritetolist\@@koppeling{#3}{#4}\v!head} % entries in the list (special purpose) but
+ {\dowritetolist\@@koppeling {}{#4}\v!head}% not in the header, ok we could pop in a command
+ }% \dowritetolist\@@koppeling{}{#4}\v!head}
{#4}
{\marking[#1]{#4}%
\doifelsevalue{\??ko#1\c!ownnumber}\v!yes % brrr
{\edef\finalsectionnumber{#3}}
{\determineheadnumber[#1]}%
-% todo : geen markering (leeg maken)
+ % todo : geen markering (leeg maken)
\expanded{\marking[#1\v!number]{\finalsectionnumber}}}%
\writesection{#1}{-}{#4}%
\fi
@@ -1530,7 +1581,8 @@
\flushingcolumnfloatstrue
\someheadconversionfalse
\let\fullsectionnumber\limitedfullsectionnumber
- \ifdisplaysectionhead\else\expandafter\GotoPar\fi}
+ % ignorespaces prevents spaces creeping in when after=\dontleavehmode
+ \ifdisplaysectionhead\ignorespaces\else\expandafter\GotoPar\fi}
\def\forcesectiontolist#1#2%
{\ifwritetolist
@@ -1629,7 +1681,7 @@
\chardef\headtimingmode=0
-% \chardef\headtimingmode=1
+% \chardef\headtimingmode=1 % 0 also works ok now too
%
% Martin Kolarik's problem:
%
@@ -1665,7 +1717,7 @@
% outerside font determines distance
\dosetfontattribute{\??ko#1}\c!style
% but we don't want color to influence user commands
-% todo: get the if-else out of it
+ % todo: get the if-else out of it
\getvalue{\??ko#1\c!command}
{} % no number
{\dostartattributes{\??ko#1}\c!style\c!color\empty
@@ -1676,19 +1728,24 @@
\else
\setupspacing
\fi
-% overwegen \dontleavehmode, else unwanted cr due to #2
- \ifcase\headtimingmode#2\fi
+ % \ifcase\headtimingmode#2\fi % can introduce cr
\getvalue{\??ko#1\c!commandbefore}%
\placeheadmargintexts{#1}% binnen #3?
\ifdisplaysectionhead
- \getvalue{\??ko#1\c!textcommand}%
- {\setstrut\begstrut#3\endstrut}% can be nilled with \setnostrut
+ \getvalue{\??ko#1\c!textcommand}% struts can be nilled with \setnostrut
+ {\setstrut
+ \begstrut
+ \ifcase\headtimingmode\hbox{#2}\fi
+ \executeifdefined{\??ko#1\c!deeptextcommand}\firstofoneargument{#3}
+ \endstrut}% \hbox prevents break
\xdef\localheadheight {\the\strutht}%
\xdef\localheaddepth {\the\strutdp}%
\xdef\localheadlineheight{\the\lineheight}%
- % == \globallet\localheaddepth\strutdepth
+ % == \globallet\localheaddepth\strutdepth
\else
- \getvalue{\??ko#1\c!textcommand}{#3}%
+ \ifcase\headtimingmode#2\fi
+ \getvalue{\??ko#1\c!textcommand}%
+ {\executeifdefined{\??ko#1\c!deeptextcommand}\firstofoneargument{#3}}%
\fi
\getvalue{\??ko#1\c!commandafter}%
\ifdisplaysectionhead\endgraf\fi
@@ -1719,13 +1776,18 @@
\getvalue{\??ko#1\c!command}%
{\dostartattributes{\??ko#1}\c!style\c!color\empty
\dostartattributes{\??ko#1}\c!numberstyle\c!numbercolor\empty
- \getvalue{\??ko#1\c!commandbefore}%
+ % \getvalue{\??ko#1\c!commandbefore}% strange, why here? moved 21/11/2005
\placeheadmargintexts{#1}% binnen #3?
\ifdisplaysectionhead
+ % can be nilled with \setnostrut
\getvalue{\??ko#1\c!numbercommand}%
- {\setstrut\begstrut#3\endstrut}% can be nilled with \setnostrut
+ {\setstrut
+ \begstrut
+ \executeifdefined{\??ko#1\c!deepnumbercommand}\firstofoneargument{#3}%
+ \endstrut}%
\else
- \getvalue{\??ko#1\c!numbercommand}{#3}%
+ \getvalue{\??ko#1\c!numbercommand}%
+ {\executeifdefined{\??ko#1\c!deepnumbercommand}\firstofoneargument{#3}}%
\fi
\dostopattributes
\dostopattributes}
@@ -1737,18 +1799,24 @@
\else
\setupspacing
\fi
-% overwegen \dontleavehmode, else unwanted cr due to #2
- \ifcase\headtimingmode#2\fi
+ % \ifcase\headtimingmode#2\fi % can introduce cr
+ \getvalue{\??ko#1\c!commandbefore}% makes more sense here
\placeheadmargintexts{#1}% binnen #3?
\ifdisplaysectionhead
- \getvalue{\??ko#1\c!textcommand}%
- {\setstrut\begstrut#4\endstrut}% can be nilled with \setnostrut
+ \getvalue{\??ko#1\c!textcommand}% struts can be nilled with \setnostrut
+ {\setstrut
+ \begstrut
+ \ifcase\headtimingmode\hbox{#2}\fi
+ \executeifdefined{\??ko#1\c!deeptextcommand}\firstofoneargument{#4}%
+ \endstrut}% \hbox prevents break
\xdef\localheadheight {\the\strutht}%
\xdef\localheaddepth {\the\strutdp}%
\xdef\localheadlineheight{\the\lineheight}%
% == \globallet\localheaddepth\strutdepth
\else
- \getvalue{\??ko#1\c!textcommand}{#4}%
+ \ifcase\headtimingmode#2\fi % inside textcommand ?
+ \getvalue{\??ko#1\c!textcommand}%
+ {\executeifdefined{\??ko#1\c!deeptextcommand}\firstofoneargument{#4}}%
\fi
\getvalue{\??ko#1\c!commandafter}%
\ifdisplaysectionhead\endgraf\fi
@@ -1757,6 +1825,18 @@
\fi
\endheadplacement{#1}{#5}}
+%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]
+%D \setuphead [MySubject][deeptextcommand=\StretchedBox]
+%D
+%D \MySubject{feeling stretched feeling stretched feeling stretched feeling stretched}
+%D \stoptyping
+
\newsignal\headsignal
\let\headlastlinewidth\!!zeropoint
@@ -1764,14 +1844,14 @@
{\bgroup
\setsystemmode{#1}% to be documented
\ifgridsnapping\iftracegridsnapping\showstruts\fi\fi
- \xdef\localheadheight {\the\strutht}%
- \xdef\localheaddepth {\the\strutdp}%
+ \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
- \doifelsevalue{\??ko#1\c!aligntitle}\v!yes % new
+ \doifinsetelse{\getvalue{\??ko#1\c!aligntitle}}{\v!yes,\v!float}% new
{\skip0 1\leftskip
\skip2 1\rightskip
\xdef\localheadskip{\the\skip0}%
@@ -1792,72 +1872,6 @@
\def\localheadsetup{\dolocalheadsetup{#1}}%
\startsynchronization}
-% \def\endheadplacement#1#2%
-% {\doifelsevalue{\??rf#1\c!state}\v!start
-% {\doifvaluenothing{\??ko#1\c!file}{\autocrossdocumentfalse}}
-% {\autocrossdocumentfalse}%
-% % no message needed here, should be a proper switch
-% % \let\unknownreference\gobbleoneargument
-% \ifdisplaysectionhead
-% \let\headlastlinewidth\!!zeropoint
-% \snaptogrid[\getvalue{\??ko#1\c!grid}]\hbox
-% {\hskip\localheadskip
-% \hskip\getvalue{\??ko#1\c!margin}\relax
-% \iflocation
-% \ifautocrossdocument
-% \doifreferencefoundelse{\getvalue{\??ko#1\c!file}::#1}
-% {\edef\currentinnerreference{\s!aut:\currenttextreference}% stored in
-% \gotoouterlocation{}{\box0}} % text slot
-% {\hbox{\box0}}%
-% \else
-% \hbox{\box0}%
-% \fi
-% \else
-% \hbox{\box0}%
-% \fi}%
-% \doflushnotes % new, not really needed
-% \endgraf
-% \nointerlineskip
-% \dosomebreak\nobreak
-% #2%
-% \else
-% \strut
-% \doflushnotes % new, here since we're in par mode
-% \iflocation
-% \ifautocrossdocument
-% \hhboxindent=\ifcontinuoushead\headlastlinewidth\else\zeropoint\fi
-% \unhhbox0\with{\gotobox{\box\hhbox}[\getvalue{\??ko#1\c!file}::#1]}%
-% \advance\lasthhboxwidth by \numberheaddistance
-% \xdef\headlastlinewidth{\the\lasthhboxwidth}%
-% \else
-% \unhbox0
-% \globallet\headlastlinewidth\!!zeropoint
-% \fi
-% \else
-% \unhbox0
-% \globallet\headlastlinewidth\!!zeropoint
-% \fi
-% #2%
-% \dimen0=\numberheaddistance
-% \hskip\dimen0 \!!plus \dimen0 \!!minus .25\dimen0
-% \hskip\headsignal\ignorespaces
-% \fi
-% \ifdisplaysectionhead \ifvmode
-% \ifgridsnapping % important, font related depth, see comment
-% \prevdepth\strutdp
-% \else
-% \prevdepth\localheaddepth
-% \fi
-% \fi \fi
-% \stopsynchronization
-% \egroup
-% \egroup
-% \ifdisplaysectionhead
-% \dochecknextindentation{\??ko#1}%
-% \else
-% \nonoindentation % recently added, was a bug
-% \fi}
-
% \setuphead[chapter] [style=\bfd,after=,hang=line] % fit broad 2
% \setuphead[section] [style=\bfc,after=,hang=line]
% \setuphead[subsection] [style=\bfb,after=,hang=line]
@@ -1894,23 +1908,25 @@
\dp0 \strutdp
\edef\localheaddepth{\the\strutdp}}
+\newconditional\continuoussectionhead % oeps, \newif\ifcontinuoushead got lost
+
\def\endheadplacement#1#2%
{\doifelsevalue{\??rf#1\c!state}\v!start
{\doifvaluenothing{\??ko#1\c!file}{\autocrossdocumentfalse}}
{\autocrossdocumentfalse}%
% no message needed here, should be a proper switch
-\noflines\zerocount
+ \noflines\zerocount
\ifdisplaysectionhead
-% new
-\processaction
- [\getvalue{\??ko#1\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\noflines0\commalistelement\advance\noflines\minusone]%
-% so far
+ % new
+ \processaction
+ [\getvalue{\??ko#1\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\noflines0\commalistelement\advance\noflines\minusone]%
+ % so far
\let\headlastlinewidth\!!zeropoint
\snaptogrid[\getvalue{\??ko#1\c!grid}]\hbox
{\hskip\localheadskip
@@ -1929,18 +1945,20 @@
\fi}%
\doflushnotes % new, not really needed
\endgraf
-\ifnum\noflines>\zerocount
- \dorecurse\noflines{\nointerlineskip\dosomebreak\nobreak\strut\endgraf}%
-\fi
- \nointerlineskip
- \dosomebreak\nobreak
+ \ifvmode
+ \ifnum\noflines>\zerocount
+ \dorecurse\noflines{\nointerlineskip\dosomebreak\nobreak\strut\endgraf}%
+ \fi
+ \nointerlineskip
+ \dosomebreak\nobreak
+ \fi
#2%
\else
\strut
\doflushnotes % new, here since we're in par mode
\iflocation
\ifautocrossdocument
- \hhboxindent=\ifcontinuoushead\headlastlinewidth\else\zeropoint\fi
+ \hhboxindent=\ifconditional\continuoussectionhead\headlastlinewidth\else\zeropoint\fi
\unhhbox0\with{\gotobox{\box\hhbox}[\getvalue{\??ko#1\c!file}::#1]}%
\advance\lasthhboxwidth by \numberheaddistance
\xdef\headlastlinewidth{\the\lasthhboxwidth}%
@@ -1978,14 +1996,14 @@
\scratchcounter=\lastpenalty\unpenalty % no beauty in this
\ifdim\lastskip=\headsignal
\handlepagebreakC{#1}%
- \global\continuousheadtrue
+ \global\settrue\continuoussectionhead
\else
\penalty\scratchcounter
- \global\continuousheadfalse
+ \global\setfalse\continuoussectionhead
#1{#2}%
\fi
\else
- \global\continuousheadfalse
+ \global\setfalse\continuoussectionhead
#1{#2}%
\fi}
@@ -2055,7 +2073,7 @@
{\setvalue{\??ko:#1}{#2}%
\setvalue{\??ko::#1}}
-\def\@@placehead
+\def\normalplacehead
{\executeifdefined
{\??ko::\numberheadalternative}
{\getvalue{\??ko::\v!normal}}}
@@ -2084,9 +2102,11 @@
{\vbox
{\localheadsetup
\begstrut % use one \strut here!
+ \dontleavehmode % in case there is no strut, else side effects with llap
\ifheadnumbercontent
- \llap{\hbox to 5em{\hfill{#1}%
- \hskip\localheadskip\hskip\leftmargindistance}}%
+ \llap{\hbox to 5em{\hfill{#1}\hskip\localheadskip\hskip\leftmargindistance}}% introduces whitespace
+ % maybe better:
+ % \inleftmargin{\hbox{\hss{#1}\hskip\localheadskip}}%
\fi
{#2}}}
@@ -2110,7 +2130,7 @@
\def\placeheadlohi#1#2#3%
{\ifheadnumbercontent
\setbox0\hbox{#2}
- \setbox2#1{\localheadsetup\advance\hsize-\wd0\relax#3}%
+ \setbox2=#1{\localheadsetup\advance\hsize-\wd0\relax#3}%
\hbox{\box0\hskip\numberheaddistance\box2}%
\else
#1{\localheadsetup\noindent#3}%
@@ -2136,6 +2156,7 @@
\c!textstyle=\getvalue{\??ko#1\c!style},
\c!numbercolor=\getvalue{\??ko#1\c!color},
\c!textcolor=\getvalue{\??ko#1\c!color}]%
+ % deeptextcommand and deepnumbercommand are left undefined !
\doifassignmentelse{#2}
{\getparameters
[\??ko#1]
@@ -2161,12 +2182,14 @@
\c!resetnumber=\v!yes,
\c!incrementnumber=\v!yes,
\c!alternative=\@@koalternative,
- \c!command=\@@placehead,
+ \c!command=\normalplacehead,
\c!separator=\@@koseparator,
+ \c!stopper=\@@kostopper,
\c!align=\@@koalign,
\c!aligntitle=\@@koaligntitle,
\c!tolerance=\@@kotolerance,
\c!indentnext=\@@koindentnext,
+ \c!strut=\@@kostrut,
\c!hang=\@@kohang,
\c!file=,
\c!expansion=,
@@ -2179,13 +2202,13 @@
{\copyparameters
[\??ko#1][\??ko\getvalue{\??ko#1\c!default}]
[\c!before,\c!after,\c!command,\c!file,\c!page,\c!continue,
- \c!header,\c!text,\c!footer,\c!separator,\c!resetnumber,
+ \c!header,\c!text,\c!footer,\c!separator,\c!stopper,\c!resetnumber,
\c!number,\c!ownnumber,\c!placehead,\c!incrementnumber,
\c!style,\c!color,\c!distance,\c!alternative,\c!indentnext,
% new per 20/03/3002 (o-pbu-l) / was too confusing
% \c!numberstyle,\c!textstyle,\c!expansion,
% again too confusing
- \c!align,\c!aligntitle,\c!tolerance,\c!grid,\c!hang,
+ \c!align,\c!aligntitle,\c!tolerance,\c!grid,\c!hang,\c!strut,
\c!numbercommand,\c!textcommand,\c!margintext,\c!margin]}}%
\getparameters[\??ko#1][#2]%
\doifsomething{\getvalue{\??ko#1\c!section}}
@@ -2194,9 +2217,7 @@
{\definemarking[#1]%
\couplemarking[#1][\getvalue{\??ko#1\c!section}]%
\definemarking[#1\v!number]%
-% klopt dit wel ?
\couplemarking[#1\v!number][\getvalue{\??ko#1\c!section}]}}%
-% \couplemarking[#1\v!nummer][\getvalue{\??ko#1\c!sectie}\v!nummer]}}%
\doifundefined{\??li#1}{\definelist[#1]}}
{\ConvertToConstant\doifelse{#1}{#2}
{\doifundefined{\??li#1}{\definelist[#1]}}
@@ -2204,16 +2225,16 @@
[\??ko#1][\??ko#2]
[\c!level,\c!section,\c!coupling,\c!prefix,
\c!before,\c!after,\c!command,\c!file,\c!page,\c!continue,
- \c!separator,
+ \c!separator,\c!stopper,
\c!header,\c!text,\c!footer,\c!resetnumber,
\c!number,\c!ownnumber,\c!placehead,\c!incrementnumber,
\c!style,\c!color,\c!distance,\c!alternative,\c!indentnext,
% new per 20/03/3002 (o-pbu-l) / was too confusing
% \c!numberstyle,\c!textstyle,\c!expansion,
% again too confusing
- \c!align,\c!aligntitle,\c!tolerance,\c!grid,\c!hang,
+ \c!align,\c!aligntitle,\c!tolerance,\c!grid,\c!hang,\c!strut,
\c!numbercommand,\c!textcommand,\c!margintext,\c!margin]%
-\getparameters[\??ko#1][\c!expansion=]% iig een value, rather fuzzy
+ \getparameters[\??ko#1][\c!expansion=]% iig een value, rather fuzzy
\definemarking[#1][#2]%
\definemarking[#1\v!number][#2\v!number]%
\doifundefined{\??li#1}{\definelist[#1][#2]}}}%
@@ -2221,13 +2242,13 @@
\setevalue{\??sk#1}{\getvalue{\??ko#1\c!coupling}}%
\setevalue{\??by#1}{\getvalue{\??ko#1\c!section}}%
\setevalue{\??by\v!by#1}{\getvalue{\??ko#1\c!section}}%
- \setvalue{#1}{\dodoubleempty\dosomekop[#1]}}
+ \setvalue{#1}{\dodoubleempty\doconstructhead[#1]}}
\def\definehead
{\dodoubleemptywithset\dodefinehead}
-\def\dosomekop[#1][#2]%
- {\dowithpargument{\dodosomekop{#1}[#2]}}
+\def\doconstructhead[#1][#2]%
+ {\dowithpargument{\dodoconstructhead{#1}[#2]}}
\def\dosetuphead[#1][#2]%
{\getparameters[\??ko#1][#2]%
@@ -2235,7 +2256,7 @@
% set \c!command to nothing and (quite natural) got the
% wrong references etc. The whole bunch should be boxed!
\expandafter\convertcommand\csname\??ko#1\c!command\endcsname\to\ascii
- \doifnothing\ascii{\setvalue{\??ko#1\c!command}{\@@placehead}}}
+ \doifnothing\ascii{\setvalue{\??ko#1\c!command}{\normalplacehead}}}
\def\setuphead
{\dodoubleargumentwithset\dosetuphead}
@@ -2267,10 +2288,12 @@
[\c!alternative=\v!normal,
\c!sectionnumber=\v!yes,
\c!separator=.,
+ \c!stopper=,
\c!limittext=\v!yes,
\c!align=,
\c!aligntitle=,
\c!tolerance=,
+ \c!strut=,
\c!indentnext=\v!no,
\c!margin=\zeropoint,
\c!hang=\v!none,
@@ -2281,50 +2304,47 @@
\definesectionblock [\v!appendix] [\v!appendices] [\c!number=\v!yes]
\definesectionblock [\v!backpart] [\v!backmatter] [\c!number=\v!no]
-\definesection[\v!sectionlevel-1] % part
-\definesection[\v!sectionlevel-2] % chapter
-\definesection[\v!sectionlevel-3] % section
-\definesection[\v!sectionlevel-4] % subsection
-\definesection[\v!sectionlevel-5] % subsubsection
-\definesection[\v!sectionlevel-6] % subsubsubsection
-\definesection[\v!sectionlevel-7] % subsubsubsubsection
+\definesection[\s!section-1] % part
+\definesection[\s!section-2] % chapter
+\definesection[\s!section-3] % section
+\definesection[\s!section-4] % subsection
+\definesection[\s!section-5] % subsubsection
+\definesection[\s!section-6] % subsubsubsection
+\definesection[\s!section-7] % subsubsubsubsection
% \c!eigennummer ook hier?
\definehead
[\v!part]
- [\c!section=\v!sectionlevel-1]
+ [\c!section=\s!section-1]
\definehead
[\v!chapter]
- [\c!section=\v!sectionlevel-2]
+ [\c!section=\s!section-2]
\definehead
[\v!section]
- [\c!section=\v!sectionlevel-3]
+ [\c!section=\s!section-3]
\definehead
[\v!subsection]
- [\c!section=\v!sectionlevel-4,
+ [\c!section=\s!section-4,
\c!default=\v!section]
\definehead
[\v!subsubsection]
- [\c!section=\v!sectionlevel-5,
- %\c!default=\v!section]
- \c!default=\v!subsection] % nieuw
+ [\c!section=\s!section-5,
+ \c!default=\v!subsection]
\definehead
[\v!subsubsubsection]
- [\c!section=\v!sectionlevel-6,
- %\c!default=\v!section]
- \c!default=\v!subsubsection] % nieuw
+ [\c!section=\s!section-6,
+ \c!default=\v!subsubsection]
\definehead
[\v!subsubsubsubsection]
- [\c!section=\v!sectionlevel-7,
- %\c!default=\v!section]
- \c!default=\v!subsubsubsection] % nieuw
+ [\c!section=\s!section-7,
+ \c!default=\v!subsubsubsection]
\definehead
[\v!title]
@@ -2363,7 +2383,7 @@
\c!incrementnumber=\v!no]
\setupsection
- [\v!sectionlevel-2]
+ [\s!section-2]
[\v!appendix\c!conversion=\v!Character,
\c!previousnumber=\v!no]
diff --git a/Master/texmf-dist/tex/context/base/core-snc.tex b/Master/texmf-dist/tex/context/base/core-snc.tex
index 55c6e15df51..ac6960f4d06 100644
--- a/Master/texmf-dist/tex/context/base/core-snc.tex
+++ b/Master/texmf-dist/tex/context/base/core-snc.tex
@@ -116,8 +116,21 @@
\def\dopresyncposition[#1][#2]{\setxvalue{\s!preset:\s!syncpos:#1}{\noexpand\dodopresyncposition{#1}{#2}}}
\def\flushsyncpositions % this order !
- {\the\presetsyncpositions
- \the\resetsyncpositions}
+ {\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
@@ -126,16 +139,6 @@
%
% \appendtoks \flushsyncpositions \to \neverypar
-\def\flushsyncxxsets#1#2%
- {\setbox\scratchbox\hbox{\the#1}%
- \ifvoid\scratchbox\else
- \smashbox\scratchbox
- #2\box\scratchbox
- \fi}
-
-\def\flushsyncresets {\flushsyncxxsets\resetsyncpositions \relax}
-\def\flushsyncpresets{\flushsyncxxsets\presetsyncpositions\prewordbreak} % check prewordbreak
-
\protect \endinput
\starttext
diff --git a/Master/texmf-dist/tex/context/base/core-spa.tex b/Master/texmf-dist/tex/context/base/core-spa.tex
index cb3363f8c09..189d98396fb 100644
--- a/Master/texmf-dist/tex/context/base/core-spa.tex
+++ b/Master/texmf-dist/tex/context/base/core-spa.tex
@@ -13,7 +13,7 @@
\writestatus{loading}{Context Spacing Macros}
-% to be sorted out: dependencies, orderof initialization
+% to be sorted out: dependencies, order of initialization
\unprotect
@@ -35,6 +35,8 @@
\appendtoks \simplesetupspacing \to \everybodyfont % nieuw
\appendtoks \setdisplayskips \to \everybodyfont % nieuw
+\appendtoks \setrelativeinterlinespace \to \everybodyfont
+
\appendtoks \updateraggedskips \to \everyfontswitch % under test
\prependtoks \let\par\endgraf \to \everypagebody % see \fillinline
@@ -171,14 +173,43 @@
\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 % \regelwit = dummy !
+ {\processallactionsinset
[#1]
[ \v!on=>\oninterlineskip,
\v!off=>\offinterlineskip,
- \v!reset=>\setfontparameters,% just \setstrut, test first
- \s!unknown=>\assignvalue{#1}\regelwit{1.00}{1.25}{1.50}%
- \spacing\regelwit]}
+ \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]}
@@ -468,9 +499,21 @@
\defineblankmethod [\v!joinedup] {\ifvmode\nointerlineskip\fi}
% 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+{2\openlineheight}{2\openlineheight}}
-\defineblankmethod [2*\v!big] {\addblankskip+{2\bigskipamount }{2\openlineheight}}
+\defineblankmethod
+ [2*line]
+ {\addblankskip+\openlineheight\openlineheight
+ \addblankskip+\openlineheight\openlineheight}
+
+\defineblankmethod
+ [2*big]
+ {\addblankskip+\bigskipamount\openlineheight
+ \addblankskip+\bigskipamount\openlineheight}
% ETEX ! ! !
@@ -760,11 +803,14 @@
\def\noblankpsignal{1010101}
\def\inhibitgridblank % was doinhibitblank
- {\ifnum\lastpenalty<10000
- \kern-\noblanksignal % new
- \kern \noblanksignal
- \else
- \penalty\noblankpsignal
+ {\ifvmode\else\endgraf\fi
+ \ifvmode
+ \ifnum\lastpenalty<10000
+ \kern-\noblanksignal % new
+ \kern \noblanksignal
+ \else
+ \penalty\noblankpsignal
+ \fi
\fi}
\def\inhibittextblank % was inhibitblank
@@ -1206,29 +1252,58 @@
\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}%
- \indentfirstparagraphtrue
- \parindent\ctxparindent
- \chardef\indentingtoggle\zerocount
- \processcommalist[#1]\docomplexsetupindenting
- \ifindentfirstparagraph\else\noindentation\fi % added
- \toggleindentation}
-
-% \def\docomplexsetupindenting#1%
-% {\edef\!!stringa{#1}% catch #1=\somedimen
-% \convertcommand\!!stringa\to\!!stringa
-% \executeifdefined{\??in:\!!stringa}{\edef\currentindentation{#1}\simplesetupindenting}}
-
-\def\docomplexsetupindenting#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%
{\edef\!!stringa{#1}% catch #1=\somedimen
\convertcommand\!!stringa\to\!!stringa
- \executeifdefined{\??in:\!!stringa}
+ \doifundefined{\??in:\!!stringa}%
{\edef\currentindentation{#1}%
\let\normalindentation\currentindentation
\simplesetupindenting}}
-\def\simplesetupindenting % empty case
+\def\docomplexsetupindentingB#1%
+ {\edef\!!stringa{#1}% catch #1=\somedimen
+ \convertcommand\!!stringa\to\!!stringa
+ \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
@@ -1248,7 +1323,8 @@
\defineindentingmethod [\v!yes] {\parindent\ctxparindent\relax} % no \indent !
\defineindentingmethod [\v!always] {\parindent\ctxparindent\relax} % no \indent !
-\defineindentingmethod [\v!never] {\parindent\zeropoint\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}
@@ -1258,6 +1334,10 @@
\simplesetupindenting
\fi}
+\defineindentingmethod [\v!reset] {\indentfirstparagraphtrue
+ \parindent\zerocount
+ \chardef\indentingtoggle\zerocount}
+
\def\noindenting{\indenting[\v!no, \v!next ]}
\def\doindenting{\indenting[\v!yes,\v!first]}
@@ -1331,6 +1411,101 @@
\def\notoggleindentation
{\gdef\checkindentation{\global\indentationtrue\dotoggleindentation}}
+% 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.
@@ -1431,7 +1606,7 @@
\def\godown[#1]%
{\relax
\ifhmode\endgraf\fi
- \ifvmode\nointerlineskip\vskip#1\relax}
+ \ifvmode\nointerlineskip\vskip#1\relax\fi}
%D A couple of plain macros:
@@ -1463,9 +1638,9 @@
\ifx\allowbreak\undefined
- \def\break {\penalty-\@M}
- \def\nobreak {\penalty \@M}
- \def\allowbreak{\penalty \z@}
+ \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 }
@@ -1503,7 +1678,7 @@
\ifx\supereject\undefined
- \def\supereject{\par\penalty-\@MM}
+ \def\supereject{\par\penalty\superpenalty}
\fi
@@ -1796,8 +1971,8 @@
\stopbaselinecorrection}%
\vbox}
-\def\verticalstrut {\normalvbox{\hsize\zeropoint\strut}}
-\def\horizontalstrut{\normalhbox {\strut}}
+\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
@@ -2112,30 +2287,33 @@
% \edef\strutdepth{\the\strutdimen}%
% \dosetstrut}
+% interesting, strudepth 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
+ \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
+ \ifdim\minimumstrutdepth>\zeropoint
+ \strutdimen\minimumstrutdepth
+ \else
+ \advance\strutdimen-\strutheight
+ \fi
\else
-\ifdim\minimumstrutdepth>\zeropoint
- \strutdimen\minimumstrutdepth
-\else
- \strutdimen\strutdepthfactor\strutdimen
-\fi
+ \ifdim\minimumstrutdepth>\zeropoint
+ \strutdimen\minimumstrutdepth
+ \else
+ \strutdimen\strutdepthfactor\strutdimen
+ \fi
\strutdimen\spacingfactor\strutdimen
\fi
\edef\strutdepth{\the\strutdimen}%
@@ -2159,6 +2337,20 @@
\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
@@ -2226,7 +2418,7 @@
% \def\begstrut
% {\relax\ifcase\strutht\else
% \strut
-% \normalpenalty\@M % \!!tenthousand
+% \normalpenalty\plustenthousand
% \normalhskip\zeropoint
% \ignorespaces
% \fi}
@@ -2234,7 +2426,7 @@
% \def\endstrut
% {\relax\ifhmode\ifcase\strutht\else
% \removeunwantedspaces
-% \normalpenalty\@M % \!!tenthousand
+% \normalpenalty\plustenthousand
% \normalhskip\zeropoint
% \strut
% \fi\fi}
@@ -2248,15 +2440,15 @@
{\relax\ifcase\strutht\else
\ifconditional\sigstruts
\noindent\horizontalstrut
- \normalpenalty\@M % \!!tenthousand
+ \normalpenalty\plustenthousand
\normalhskip-\strutsignal
\normalhskip\strutsignal
\else
\strut
- \normalpenalty\@M % \!!tenthousand
+ \normalpenalty\plustenthousand
\normalhskip\zeropoint
\fi
- \ignorespaces
+ \expandafter \ignorespaces
\fi}
\def\endstrut
@@ -2265,13 +2457,13 @@
\ifdim\lastskip=\strutsignal
\unskip\unskip\unpenalty\setbox\scratchbox\lastbox
\else
- \normalpenalty\@M % \!!tenthousand
+ \normalpenalty\plustenthousand
\normalhskip\zeropoint
\strut
\fi
\else
\removeunwantedspaces
- \normalpenalty\@M % \!!tenthousand
+ \normalpenalty\plustenthousand
\normalhskip\zeropoint
\strut
\fi
@@ -2283,7 +2475,8 @@
{\setbox\strutbox\copy\nostrutbox
\let\strut\empty
\let\endstrut\empty
- \let\begstrut\empty}
+ \let\begstrut\empty
+ \let\crlfplaceholder\empty}
% unsave:
%
@@ -2420,7 +2613,7 @@
\def\keeplinestogether#1%
{\xdef\restoreinterlinepenalty{\global\resetpenalties\interlinepenalties}%
- \global\setpenalties\interlinepenalties{#1}\!!tenthousand}
+ \global\setpenalties\interlinepenalties{#1}\plustenthousand}
\endETEX
@@ -2430,17 +2623,21 @@
{\xdef\restoreinterlinepenalty
{\global\let\restoreinterlinepenalty\relax
\global\interlinepenalty=\the\interlinepenalty}% keep = here
- \global\interlinepenalty\!!tenthousand}
+ \global\interlinepenalty\plustenthousand}
\endTEX
\newif\ifgridsnapping % to be sure
-\def\defaultwidowpenalty {2000} % was: 1000
-\def\defaultclubpenalty {2000} % was: 800
+\def\defaultwidowpenalty {2000} % was: 1000
+\def\defaultclubpenalty {2000} % was: 800
+\def\defaultdisplaywidowpenalty {50}
+\def\defaultbrokenpenalty {100}
-\def\defaultgridwidowpenalty {0}
-\def\defaultgridclubpenalty {0}
+\def\defaultgridwidowpenalty {0}
+\def\defaultgridclubpenalty {0}
+\def\defaultgriddisplaywidowpenalty {0}
+\def\defaultgridbrokenpenalty {0}
% The original approach:
%
@@ -2466,29 +2663,35 @@
\adjdemerits \zerocount}
\def\setdefaultpenalties
- {\setups[\systemsetupsprefix\s!default]}
+ {\directsetup{\systemsetupsprefix\s!default}}
-\startsetups [\systemsetupsprefix\v!reset]
+\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]
- \setups[\systemsetupsprefix\s!reset]
+ \directsetup{\systemsetupsprefix\s!reset}
- \widowpenalty\defaultwidowpenalty
- \clubpenalty \defaultclubpenalty
+ \widowpenalty \defaultwidowpenalty
+ \clubpenalty \defaultclubpenalty
+ \displaywidowpenalty\defaultdisplaywidowpenalty
+ \brokenpenalty \defaultbrokenpenalty
\stopsetups
\startsetups [\v!grid] [\systemsetupsprefix\s!default]
- \setups[\systemsetupsprefix\v!reset]
+ \directsetup{\systemsetupsprefix\s!reset}
- \widowpenalty\defaultgridwidowpenalty
- \clubpenalty \defaultgridclubpenalty
+ \widowpenalty \defaultgridwidowpenalty
+ \clubpenalty \defaultgridclubpenalty
+ \displaywidowpenalty\defaultgriddisplaywidowpenalty
+ \brokenpenalty \defaultgridbrokenpenalty
\stopsetups
@@ -2496,7 +2699,7 @@
\startsetups [\systemsetupsprefix\v!strict]
- \setups[\v!reset]
+ \directsetup{\systemsetupsprefix\s!reset}
\setpenalties\widowpenalties2\maxdimen
\setpenalties\clubpenalties 2\maxdimen
@@ -2639,8 +2842,21 @@
\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!
- {\let\raggedcommand \relax
+ {\everyraggedcommand \emptytoks
\let\raggedtopcommand \empty
\let\raggedbottomcommand\empty
\chardef\raggedoneliner\zerocount
@@ -2655,23 +2871,38 @@
\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 \def\raggedcommand{\veryraggedleft}%
- \else \def\raggedcommand{\raggedleft}%
+ {\if!!donea \appendtoks\veryraggedleft\to\everyraggedcommand
+ \else \appendtoks\raggedleft \to\everyraggedcommand
\fi
\!!donecfalse}
\setvalue{\@@ragged@@command\v!right}%
- {\if!!donea \def\raggedcommand{\veryraggedright}%
- \else \def\raggedcommand{\raggedright}%
+ {\if!!donea \appendtoks\veryraggedright\to\everyraggedcommand
+ \else \appendtoks\raggedright \to\everyraggedcommand
\fi
\!!donecfalse}
\setvalue{\@@ragged@@command\v!middle}%
{\if!!donec
- \if!!doneb \def\raggedcommand{\raggedwidecenter}%
- \else\if!!donea \def\raggedcommand{\veryraggedcenter}%
- \else \def\raggedcommand{\raggedcenter}%
+ \if!!doneb \appendtoks\raggedwidecenter\to\everyraggedcommand
+ \else\if!!donea \appendtoks\veryraggedcenter\to\everyraggedcommand
+ \else \appendtoks\raggedcenter \to\everyraggedcommand
\fi\fi
\!!donecfalse
\else
@@ -2694,13 +2925,13 @@
\let\raggedtopcommand\vfilll} % ugly laho (lohi)
\setvalue{\@@ragged@@command\v!no}%
- {\def\raggedcommand{\raggedright}}
+ {\appendtoks\raggedright\to\everyraggedcommand}
\setvalue{\@@ragged@@command\v!yes}%
- {\let\raggedcommand\notragged}
+ {\appendtoks\notragged\to\everyraggedcommand}
\setvalue{\@@ragged@@command\v!normal}%
- {\let\raggedcommand\notragged}
+ {\appendtoks\notragged\to\everyraggedcommand}
\setvalue{\@@ragged@@command\v!inner}% not yet perfect
{\signalrightpage % may interfere
@@ -2714,33 +2945,44 @@
{\getvalue{\@@ragged@@command\v!left}}
{\getvalue{\@@ragged@@command\v!right}}}
+% 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}
-\def\@@startraggedoneliner
- {\ifcase\raggedoneliner\else
- \dontleavehmode\hbox\bgroup
- \ifcase\raggedstatus\or\hss\or\hss\fi
- \ignorespaces
- \bgroup
- \aftergroup\removeunwantedspaces
- \fi}
+%D Unofficial, may disappear. Now handled directly in the
+%D core-rul module.
-\def\@@stopraggedoneliner
- {\ifcase\raggedoneliner\else
- \egroup
- \ifcase\raggedstatus\or\hss\or\or\hss\fi
- \egroup
- \ignorespaces
- \fi}
+% \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\@@handleoneliner
- {\ifcase\raggedoneliner\else
- \@@startraggedoneliner
- \aftergroup\@@stopraggedoneliner
- \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
@@ -2922,12 +3164,26 @@
\endETEX
+\newconditional \parbasedattributes
+
+\def\finishparbasedattributes
+ {\ifconditional\parbasedattributes
+ \setfalse\parbasedattributes
+ \par
+ \fi}
+
+\def\dostopparbasedattributes
+ {\settrue\parbasedattributes
+ \dostopattributes}
+
\unexpanded\def\@@dostopattributes
{\stopcolor
+ \finishparbasedattributes
\endgroup}
\unexpanded\def\@@nostopattributes
- {\endgroup}
+ {\finishparbasedattributes
+ \endgroup}
\unexpanded\def\doattributes#1#2#3#4%
{\dostartattributes{#1}{#2}{#3}{#4}\dostopattributes}
@@ -2950,10 +3206,12 @@
%
% \unexpanded\def\@@dostopattributes%
% {\stopcolor
+% \finishparbasedattributes
% \endgroup}
%
% \unexpanded\def\@@nostopattributes%
-% {\endgroup}
+% {\finishparbasedattributes
+% \endgroup}
\unexpanded\def\dostartattributes#1#2#3%
{\begingroup % geen \bgroup, anders in mathmode lege \hbox
@@ -2974,10 +3232,12 @@
\unexpanded\def\@@dostopattributes
{\doglobalstopcolor
+ \finishparbasedattributes
\endgroup}
\unexpanded\def\@@nostopattributes
- {\endgroup}
+ {\finishparbasedattributes
+ \endgroup}
\endETEX
@@ -3127,13 +3387,13 @@
%
% \def\setraggedparagraphmode#1#2% combineren met \ifrightpage
% {\ifinpagebody
-% \ifdubbelzijdig
+% \ifdoublesided
% \ifodd\realpageno\relax#1\else#2\fi
% \else
% #2\relax
% \fi
% \else\ifinner
-% \ifdubbelzijdig
+% \ifdoublesided
% \gettwopassdata\s!paragraph
% \iftwopassdatafound
% \ifodd\twopassdata\relax#1\else#2\fi
@@ -3151,7 +3411,7 @@
% \def\doifrightpageelse % watch out: other default ! ! !
% {\ifinpagebody
% % optimalisation ?
-% \ifdubbelzijdig
+% \ifdoublesided
% \ifodd\realpageno\relax
% \twopassdatafoundtrue \else \twopassdatafoundfalse
% \fi
@@ -3159,7 +3419,7 @@
% \twopassdatafoundtrue
% \fi
% \else
-% \ifdubbelzijdig
+% \ifdoublesided
% \gettwopassdata\s!paragraph
% \iftwopassdatafound
% \ifodd\twopassdata\relax
@@ -3181,7 +3441,7 @@
% \fi}
%
% \def\signalrightpage
-% {\ifdubbelzijdig \ifinpagebody \else
+% {\ifdoublesided \ifinpagebody \else
% \doparagraphreference
% \fi \fi}
@@ -3193,7 +3453,7 @@
\chardef \frozenpagestate \zerocount
\def\dotrackpagestate#1#2%
- {\ifdubbelzijdig \ifinpagebody \else
+ {\ifdoublesided \ifinpagebody \else
\doforcedtrackpagestate{#1}{#2}%
\fi \fi}
@@ -3213,14 +3473,14 @@
\pagestatemismatchfalse
\let\realpagestateno\realfolio
\ifinpagebody
- \ifdubbelzijdig
+ \ifdoublesided
\ifodd\realpageno\relax
\twopassdatafoundtrue \else \twopassdatafoundfalse
\fi
\else
\twopassdatafoundtrue
\fi
- \else\ifdubbelzijdig
+ \else\ifdoublesided
\findtwopassdata{#1}{#2:}%
\iftwopassdatafound
\let\realpagestateno\twopassdata
@@ -3435,7 +3695,7 @@
% \hyphenpenalty = ( 2.5 * \hsize ) / \raggedness
% \tolerance >= 1500 % was 200
-% \raggedness = 2 .. 6\korpsgrootte
+% \raggedness = 2 .. 6\bodyfontsize
\chardef\raggedstatus=0 % normal left center right
@@ -3443,6 +3703,8 @@
\def\rightraggedness {2\bodyfontsize}
\def\middleraggedness {6\bodyfontsize}
+\def\middleraggedness {.5\hsize} % was: 6\bodyfontsize, fails on: \placefigure{x $x=x$ x}{}
+
%D More hyphenation control, will be combined with align
%D setup.
@@ -3452,8 +3714,8 @@
{\hyphenpenalty\the\hyphenpenalty
\exhyphenpenalty\the\exhyphenpenalty\relax}%
\fi
- \hyphenpenalty\@M
- \exhyphenpenalty\@M}
+ \hyphenpenalty\plustenthousand
+ \exhyphenpenalty\plustenthousand}
\let\dohyphens\relax
@@ -3663,13 +3925,17 @@
\setvalue{@@align@@\v!nothanging }{\disableprotruding}
\setvalue{@@align@@\v!hz }{\enableadjusting}
\setvalue{@@align@@\v!nohz }{\disableadjusting}
-\setvalue{@@align@@\v!spacing }{\enablespacehandling}
-\setvalue{@@align@@\v!nospacing }{\disablespacehandling}
+\setvalue{@@align@@\v!spacing }{\enablespacehandling \enablekernhandling}
+\setvalue{@@align@@\v!nospacing }{\disablespacehandling\disablekernhandling}
\setvalue{@@align@@\v!hyphenated }{\dohyphens}
\setvalue{@@align@@\v!nothyphenated}{\nohyphens}
\setvalue{@@align@@\v!new }{\@@asraggedfalse} % so new will give you consistency
\setvalue{@@align@@\v!reset }{\notragged\normalbottom}
+\setvalue{@@align@@\v!tolerant }{\tolerance3000 \relax}
+\setvalue{@@align@@\v!verytolerant}{\tolerance4500 \relax}
+\setvalue{@@align@@\v!stretch }{\emergencystretch\bodyfontsize}
+
\setvalue{@@ngila@@\v!broad }{\!!doneatrue}
\setvalue{@@ngila@@\v!wide }{\!!donebtrue}
@@ -3707,14 +3973,14 @@
% see later for the real definition, which in the simple case is:
\def\doalignline#1#2% \\ == newline
- {\bgroup
+ {\begingroup
\setlocalhsize % new
\def\\{\egroup\par\doalignline{#1}{#2}\bgroup}%
\dowithnextbox
- {\noindent
+ {\noindentation % was \ noindent
\hbox to \localhsize
{\ifcase\alignstrutmode\or\strut\fi
- #1\unhbox\nextbox#2}\egroup}
+ #1\unhbox\nextbox#2}\endgroup}
\hbox}
% directe commando's
@@ -4248,6 +4514,22 @@
\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
@@ -4383,9 +4665,39 @@
\def\fixedspaceamount#1%
{#1\fontdimen2\font}
+%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}
+
\setupwhitespace
[\v!none]
+% still old-fachioned
+
\indenting
[\v!never]
diff --git a/Master/texmf-dist/tex/context/base/core-syn.tex b/Master/texmf-dist/tex/context/base/core-syn.tex
index 0b6685a30ef..7e7974d3b29 100644
--- a/Master/texmf-dist/tex/context/base/core-syn.tex
+++ b/Master/texmf-dist/tex/context/base/core-syn.tex
@@ -55,6 +55,8 @@
{\setvalue{#1\s!entry}{\getvalue{\??sm#1\c!command}}} % 3 argumenten
{\setvalue{#1\s!entry}{\dohandlesynonymentry{#1}}}}
+\def\synonymparameter#1{\csname\??sm\currentsynonym#1\endcsname}
+
\def\doplacelistofsynonyms#1#2%
{\whitespace
\begingroup
@@ -110,15 +112,30 @@
\immediatewriteutility{s e {#1} {#2} {\asciisynonym} {\asciimeaning}}%
\endgroup}
+% \def\preexecutesynonym#1#2#3#4%
+% {\ifdoinpututilities \else
+% \dowritesynonym{#1}{#2}{#3}{#4}%
+% \unexpanded\setgvalue{#2}{\processsynonym{#1}{#3}{#4}}%
+% \fi}
+%
+% \def\executesynonym#1#2#3#4%
+% {\preexecutesynonym{#1}{#2}{#3}{#4}%
+% \processsynonym{#1}{#3}{#4}}
+
+\def\reprocesssynonym#1#2#3%
+ {\processsynonym{#1}{#2}{#3}%
+ \getvalue{\??sm#1\c!next}} % not formally documented
+
\def\preexecutesynonym#1#2#3#4%
{\ifdoinpututilities \else
\dowritesynonym{#1}{#2}{#3}{#4}%
- \unexpanded\setgvalue{#2}{\processsynonym{#1}{#3}{#4}}%
+ \unexpanded\setgvalue{#2}{\reprocesssynonym{#1}{#3}{#4}}%
\fi}
\def\executesynonym#1#2#3#4%
{\preexecutesynonym{#1}{#2}{#3}{#4}%
- \processsynonym{#1}{#3}{#4}}
+ \processsynonym{#1}{#3}{#4}%
+ \getvalue{\??sm#1\c!next}} % not formally documented
\def\expandsynonym#1#2#3#4%
{{\synonymmeaningtrue
@@ -161,6 +178,10 @@
\dodocomplexsynonym[#2][#1#4]{#4}{#5}%
\fi}
+\def\doregistersynonymlanguage#1%
+ {\savesortlanguage{\getvalue{\??sm#1\s!language}}%
+ \immediatewriteutility{s l {#1} {\getvalue{\??sm#1\s!language}}}}
+
\def\dodefinesynonyms[#1][#2][#3][#4]%
{\iffourthargument
\unexpanded\def#4##1{\getsynonymmeaning{#1}{\??sm:#1:}{##1}}%
@@ -182,7 +203,11 @@
\c!sample=,\c!hang=,\c!align=,
\c!before=,\c!inbetween=,\c!after=,
\c!indentnext=\v!no,
- \c!expansion=]%
+ \c!expansion=,
+ \s!language=\currentmainlanguage]%
+ \doglobal\appendtoksonce
+ \doregistersynonymlanguage{#1}%
+ \to \everysavesortkeys
\presetheadtext[#2=\Word{#2}]% changes the \if...argument
\addutilityreset{#1}%
\setvalue{\e!setup #2\e!endsetup}{\dodoubleargument\getparameters[\??sm#1]}% to be obsolete
@@ -234,16 +259,28 @@
\endgroup
\ifutilitydone\else\nowhitespace\fi}
+% to be tested
+%
+% \def\doplacelistofsorts#1% NOG EEN RUWE VERSIE MAKEN
+% {\startpacked
+% \doutilities{#1}\jobname{#1}\relax\par
+% \stoppacked}
+
\def\docompletelistofsorts#1#2%
{\expanded{\systemsuppliedchapter[#1]{\noexpand\headtext{#2}}}%
\doplacelistofsorts{#1}%
\page[\v!yes]}
+% todo:
+%
+% \def\placelistofsorts[#1]%
+% {\doplacelistofsorts{#1}}
+
\def\processsort#1#2#3%
{\explicithmode
- \bgroup
+ \begingroup % was \bgroup
\doattributes{\??so#1}\c!style\c!color{#2}%
- \egroup}
+ \endgroup} % was \egroup
\def\dowritesort#1#2#3%
{\bgroup
@@ -254,18 +291,36 @@
\def\synonymentry#1%
{\executeifdefined{#1\s!entry}\gobblethreearguments}
+% \def\preexecutesort#1#2#3%
+% {\ifdoinpututilities \else
+% \dowritesort{#1}{#2}{#3}%
+% \unexpanded\setgvalue{#2}{\processsort{#1}{#3}{#2}}%
+% \fi}
+%
+% \def\executesort#1#2#3%
+% {\begingroup
+% \let\executesort\thirdofthreearguments % Trick needed for nested logo's.
+% \preexecutesort{#1}{#2}{#3}%
+% \processsort{#1}{#3}{#2}%
+% \endgroup}
+
+\def\reprocesssort#1#2#3%
+ {\processsort{#1}{#2}{#3}%
+ \getvalue{\??so#1\c!next}}
+
\def\preexecutesort#1#2#3%
{\ifdoinpututilities \else
\dowritesort{#1}{#2}{#3}%
- \unexpanded\setgvalue{#2}{\processsort{#1}{#3}{#2}}%
+ \unexpanded\setgvalue{#2}{\reprocesssort{#1}{#3}{#2}}%
\fi}
\def\executesort#1#2#3%
- {\bgroup
- \def\executesort##1##2##3{##3}% Trick needed for nested logo's.
+ {\begingroup
+ \let\executesort\thirdofthreearguments % Trick needed for nested logo's.
\preexecutesort{#1}{#2}{#3}%
\processsort{#1}{#3}{#2}%
- \egroup}
+ \endgroup
+ \getvalue{\??so#1\c!next}} % not formally documented
\def\doloadsort#1%
{\setvalue{#1\s!entry}##1##2##3%
@@ -299,6 +354,10 @@
% if #3=\relax or \v!none, then no command but still protected
+\def\doregistersortinglanguage#1%
+ {\savesortlanguage{\getvalue{\??so#1\s!language}}%
+ \immediatewriteutility{s l {#1} {\getvalue{\??so#1\s!language}}}}
+
\def\dodefinesorting[#1][#2][#3]%
{\getparameters[\??so#1]
[%\c!command=, % we test for defined !
@@ -307,7 +366,11 @@
\c!style=,
\c!before=,
\c!after=\endgraf,
- \c!expansion=]%
+ \c!expansion=,
+ \s!language=\currentmainlanguage]%
+ \doglobal\appendtoksonce
+ \doregistersortinglanguage{#1}%
+ \to \everysavesortkeys
\ifthirdargument
\ConvertConstantAfter\doifnot{#3}\v!none
{\ifx#3\relax \else
@@ -330,6 +393,33 @@
\def\definesorting
{\dotripleempty\dodefinesorting}
+%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\processlistofsorts[#1]%
+ {\doutilities{#1}\jobname{#1}\donothing\donothing}
+
+\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
+
\definesynonyms
[\v!abbreviation]
[\v!abbreviations]
diff --git a/Master/texmf-dist/tex/context/base/core-sys.tex b/Master/texmf-dist/tex/context/base/core-sys.tex
index b90f2305b26..1bbe97d01a0 100644
--- a/Master/texmf-dist/tex/context/base/core-sys.tex
+++ b/Master/texmf-dist/tex/context/base/core-sys.tex
@@ -15,8 +15,24 @@
\unprotect
-\def\outputfilename{\@@svfile}
-\def\inputfilename {\@@svinputfile}
+%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}%
+ \writestatus{Files Version}{#1}%
+ \batchmode
+ \normalend}}
+
+%D Job names.
+
+\def\outputfilename {\@@svfile}
+\def\inputfilename {\@@svinputfile}
+\def\operatingsystem{\@@svtype}
\let\jobfilesuffix\c!tex
@@ -60,13 +76,25 @@
\or
\setsystemmode\v!first % 3 : first and only run
\or
- \setsystemmode\v!last % 4 : extra last run
+ \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
+
+\def\systemendofline{\@@svline}
+
\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
@@ -80,20 +108,36 @@
%D \stoptext
%D \stoptyping
+% \def\setuprandomize[#1]%
+% {\doifsomething{#1}
+% {\bgroup
+% \setrandomseed\minusone % signals thrd-ran to reseed
+% % tex's time is in minutes
+% \processaction
+% [#1]
+% [ \v!small=>\divide\normaltime 15, % 900,
+% \v!medium=>\divide\normaltime 30, % 1800,
+% \v!big=>\divide\normaltime 60, % 3600,
+% \v!normal=>,
+% \s!default=>,
+% \s!unknown=>\normaltime=#1]%
+% \nextrandom
+% \egroup}}
+
\def\setuprandomize[#1]%
{\doifsomething{#1}
{\bgroup
- \setrandomseed\minusone % signals thrd-ran to reseed
% tex's time is in minutes
+ \scratchcounter\normaltime
\processaction
[#1]
- [ \v!small=>\divide\normaltime 15, % 900,
- \v!medium=>\divide\normaltime 30, % 1800,
- \v!big=>\divide\normaltime 60, % 3600,
- \v!normal=>,
- \s!default=>,
- \s!unknown=>\normaltime=#1]%
- \nextrandom
+ [ \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
@@ -103,8 +147,13 @@
\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.
+
%D
\def\dostartglobaldefs#1#2%
@@ -273,11 +322,13 @@
\installexpander\v!yes {\convertmeaning }
\installexpander\v!yes {\convertmeaning } % something lost ?
\installexpander\v!strict {\reduceargument }
+\installexpander {utf} {\reducetoutf}
+%installexpander {xml} {see xtag-ext}
\def\convertmeaning#1\to % watch the double expansion !
{\bgroup
\honorunexpanded
- \dontexpandencoding % new
+ \convertencodedtokens % can be overloaded
\xdef\@@globalexpanded{#1}%
\xdef\@@globalexpanded{\@@globalexpanded}%
\egroup
@@ -288,6 +339,16 @@
\reducetocoding[raw]%
\edef\ascii{#1}%
\expandafter\endgroup\expandafter\edef\expandafter#2\expandafter{\ascii}}
+
+% \setupindex[expansion=utf]\index{\eacute}
+
+\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}
diff --git a/Master/texmf-dist/tex/context/base/core-tab.tex b/Master/texmf-dist/tex/context/base/core-tab.tex
index 51404e6897b..0bdc95814d2 100644
--- a/Master/texmf-dist/tex/context/base/core-tab.tex
+++ b/Master/texmf-dist/tex/context/base/core-tab.tex
@@ -305,16 +305,6 @@
\newif \ifTABLEgraydone % gray line executed
\newtoks \TABLEgraytoks % gray line specification
-%D A third major extension, besides spacing and color support,
-%D concerns splitting tables over pages. We don't give
-%D examples here, because its a waste of space.
-
-\newdimen\TABLEheight % These can be \newskimens
-\newdimen\TABLEmaxheight % given a few \relax's when
-\newdimen\TABLEheadheight % testing them with \ifdim.
-\newdimen\TABLEtailheight
-\newdimen\TABLEcaptionheight
-
\newif\ifTABLEinbreak
%D Nog vervangen:
@@ -371,39 +361,6 @@
\newif\ifForgetTableBarAndQuote \ForgetTableBarAndQuotetrue
-% Old crappy code (live has changed):
-%
-% \bgroup
-%
-% \catcode`\|=\@@active
-% \catcode`\"=\@@active
-%
-% \gdef\pushouterbarandquote
-% {\ifForgetTableBarAndQuote
-% \ifnum\catcode`\|=\@@active \else
-% \catcode`\|=\@@active
-% \def|{\ifmmode\vert\else\char`\|\fi}%
-% \fi
-% \let\outertablebar=|%
-% \ifnum\catcode`\"=\@@active \else
-% \catcode`\"=\@@active
-% \def"{\char`\"}%
-% \fi
-% \let\outertablequote="%
-% \fi}
-%
-% \gdef\popouterbarandquote
-% {\ifForgetTableBarAndQuote
-% \let|\outertablebar
-% \let"\outertablequote
-% \else
-% \redefinetablebarandquote
-% \fi}
-%
-% \egroup
-%
-% probably better (untested):
-
\bgroup
\catcode`\|=\@@active
@@ -500,7 +457,7 @@
%D \ReadFormatKeys}
%D \stoptyping
-\newdimen\TABLEparheight
+% \newdimen\TABLEparheight
\def\BeginTableParBox#1%
{\setbox\scratchbox\vtop\bgroup % \setbox added
@@ -526,10 +483,10 @@
\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
+% \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:
@@ -852,26 +809,6 @@
\let\TABLEbeforebar\empty
\let\TABLEafterbar \empty
-% \def\!ttInsertVrule
-% {\hfil
-% \TABLEbeforebar % added
-% \startglobalTABLEcolor % added
-% \vrule \!thWidth
-% \ifnum\!tgCode=\plusone
-% \ifx\!tgValue\empty
-% \LineThicknessFactor
-% \else
-% \!tgValue
-% \fi
-% \LineThicknessUnit
-% \else
-% \!tgValue
-% \fi
-% \stopglobalTABLEcolor % added
-% \TABLEafterbar % added
-% \hfil
-% &}
-
\def\@VLn{1}
\def\@VLd{.125em}
@@ -957,7 +894,7 @@
\def\!ttuse#1%
{\ifnum#1>\plusone
\omit
-\global\TABLEdivisionfalse
+ \global\TABLEdivisionfalse
\scratchcounter\currentTABLEcolumn % added
\advance\scratchcounter #1% % added
\advance\scratchcounter \minusone % added
@@ -1025,18 +962,34 @@
%D
%D \showsetup{starttable}
+\newconditional\tablerepeathead
+\newconditional\tablerepeattail
+
\def\starttable
{\bgroup
- \doifelsenothing\@@tiframe
- {\ifinsidefloat\else\startbaselinecorrection\fi}
- {\startframedcontent[\@@tiframe]}%
- \postponefootnotes
- \firststagestartTABLE}
+ \doif\@@tisplit\v!auto
+ {\ifinsidesplitfloat\let\@@tisplit\v!yes\fi}%
+ \doifelse\@@tisplit\v!yes
+ {\def\stoptable{\stoptables}%
+ \setfalse\tablerepeathead
+ \setfalse\tablerepeattail
+ \starttables}
+ {\doifelse\@@tisplit\v!repeat
+ {\def\stoptable{\stoptables}%
+ \settrue\tablerepeathead
+ \settrue\tablerepeattail
+ \starttables}
+ {\doifelsenothing\@@tiframe
+ {\ifinsidefloat\else\startbaselinecorrection\fi}
+ {\startframedcontent[\@@tiframe]}%
+ \postponefootnotes
+ \firststagestartTABLE}}}
\def\stoptable
- {\TABLEtail
- \globalletempty\@@TABLEhead
- \globalletempty\@@TABLEtail
+ {\chuckTABLEautorow % before the tail, else noalign problem
+ \insertTABLEtail
+ \TABLEnoalign{\globalletempty\@@TABLEhead}%
+ \TABLEnoalign{\globalletempty\@@TABLEtail}%
\finishTABLE
\doifelsenothing\@@tiframe
{\ifinsidefloat\else
@@ -1078,18 +1031,6 @@
%D The implementation of the definition macro is not that
%D complicated:
-%\def\dodefinetabletemplate[#1][#2]%
-% {\setgvalue{\c!Table#1}{\complexsecondstagestartTABLE[#2]}%
-% \egroup}
-%
-%\def\definetabletemplate%
-% {\bgroup
-% \catcode`\|=\@@other
-% \dodoubleargument\dodefinetabletemplate}
-
-
-% \TABLEnoalign{\page}\TABLEhead is valid
-
\def\douseTABLEtemplate#1#2#3%
{\gdef\TABLEhead{\getvalue{@@TABLEhead#2}}%
\gdef\TABLEtail{\getvalue{@@TABLEtail#3}}%
@@ -1130,35 +1071,36 @@
%D The second half of the next macro prepares table
%D splitting.
-% \def\complexsecondstagestartTABLE#1[#2]%
-% {\convertargument|\to\asciiA
-% \convertargument#2\to\asciiB
-% \doifinstringelse{\asciiA}{\asciiB}
-% {\gdef\restartTABLE{\thirdstagestartTABLE{#2}}}
-% {\doifdefinedelse{\c!Table#2}
-% {\gdef\restartTABLE{\getvalue{\c!Table#2}}}
-% {\gdef\restartTABLE{\getvalue{#2}}}}%
-% \prepareTABLEsplitting
-% \restartTABLE
-% \TABLEhead}
+\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\complexsecondstagestartTABLE#1[#2]%
{\convertargument|\to\asciiA
\convertargument#2\to\asciiB
+ \global\setfalse\someTABLEhead
+ \global\setfalse\someTABLEtail
\doifinstringelse\asciiA\asciiB
- {\gdef\restartTABLE
- {\gdef\restartTABLE{\thirdstagestartTABLE{#2}}%
- \prepareTABLEsplitting
- \restartTABLE
- \TABLEhead}}
+ {\gdef\restartTABLE{\dorestartTABLE{\thirdstagestartTABLE{#2}}}}
{\doifdefinedelse{\c!Table#2}
- {\gdef\restartTABLE
- {\getvalue{\c!Table#2}}}
- {\gdef\restartTABLE
- {\gdef\restartTABLE{\getvalue{#2}}%
- \prepareTABLEsplitting
- \restartTABLE
- \TABLEhead}}}%
+ {\gdef\restartTABLE{\getvalue{\c!Table#2}}}
+ {\gdef\restartTABLE{\dorestartTABLE{\getvalue{#2}}}}}%
\restartTABLE}
%D The third stage involves a lot of (re)sets, which we will
@@ -1171,7 +1113,10 @@
%D We immediately use this register:
-\appendtoks \fixedspaces \to \everytable
+\appendtoks
+ \fixedspaces
+ \let\_\normalunderscore
+\to \everytable
%D Now we can start the table.
@@ -1210,45 +1155,6 @@
\global\intablefalse
\egroup}
-%D The preparation for split columns concerns some
-%D calculations. Although not explicitly needed, one can
-%D predefine a tablehead as well as a tail. Each table fragment
-%D is preceded by such a head and ends with a tail. This means
-%D that, in order to determine the available height, we have to
-%D take the head and tail into account. Because we want to
-%D support captions too, we will also reserve some space for
-%D those later on.
-
-\def\prepareTABLEsplitting
- {\global\TABLEheight\zeropoint
- \ifsplittables
- \ifx\TABLEhead\empty
- \global\TABLEheadheight\zeropoint
- \else
- \setbox0\vbox
- \bgroup
- \def\doEndOfTableLine##1##2##3{\normalTABLElineformat##2##3}%
- \restartTABLE\TABLEhead
- \finishTABLE
- \global\TABLEheadheight\ht0
- \fi
- \ifx\TABLEtail\empty
- \global\TABLEtailheight\zeropoint
- \else
- \setbox0\vbox
- \bgroup
- \def\doEndOfTableLine##1##2##3{\normalTABLElineformat##2##3}%
- \restartTABLE\TABLEtail
- \finishTABLE
- \global\TABLEtailheight\ht0
- \fi
- \else
- \global\TABLEheadheight\zeropoint
- \global\TABLEtailheight\zeropoint
- \fi
- \global\TABLEheight\zeropoint
- \calculatemaxTABLEheight\docalculatemaxTABLEheight}
-
%D \macros
%D {starttables}
%D
@@ -1270,27 +1176,45 @@
%D \stoptables
%D \stoptyping
+\newbox\tablecontentbox
+
\def\starttables
{\bgroup
- \ifinsidefloat\else
- \baselinecorrection
- \flushnotes
- \topbaselinecorrection
- \fi
- \forgetall
- \globallet\absmaxTABLEheight\zeropoint
\splittablestrue
+ \flushnotes
+ \setbox\tablecontentbox\vbox\bgroup
+ \forgetall
\global\TABLEinbreakfalse
\firststagestartTABLE}
\def\stoptables
- {\TABLEtail
+ {\ifconditional\tablerepeattail\else\insertTABLEtail\fi
\finishTABLE
+ \egroup
+ \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
- \flushnotes
- \botbaselinecorrection
+ \def\tsplitbeforeresult{\startbaselinecorrection}%
+ \def\tsplitafterresult {\stopbaselinecorrection}%
\fi
- \egroup}
+ \handletsplit}
%D When the table in the previous example is split across
%D pages, only the first gets a head. We could have said
@@ -1342,90 +1266,21 @@
\def\setTABLEhead{\dodoubleempty\dosetTABLEhead}
\def\setTABLEtail{\dodoubleempty\dosetTABLEtail}
-\def\dosetTABLEhead[#1][#2]#3\end{\setvalue{@@TABLEhead#1}{#3}}
-\def\dosetTABLEtail[#1][#2]#3\end{\setvalue{@@TABLEtail#1}{#3}}
+\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 When calculating the available height of a split table, we
-%D try to handle multi||column mode as good as possible. This
-%D algoritm evolved during the development of the split option
-%D and will probably be improved bit by bit.
-
-\def\docalculatemaxTABLEheight
- {\ifinsidecolumns
- \getcolumnstatus\column\scratchcounter\total\dimen0\goal\dimen2\\%
- \else
- \ifdim\pagegoal<\maxdimen
- \dimen0\pagetotal
- \dimen2\pagegoal
- \else
- \dimen0\zeropoint
- \dimen2\textheight
- \fi
- \fi
- \advance\dimen2 -\dimen0
- \global\TABLEmaxheight\dimen2
- \global\advance\TABLEmaxheight -\strutdp
- \ifdim\prevdepth<\maxdimen\ifdim\prevdepth>\zeropoint
- \global\advance\TABLEmaxheight -\strutdp
- \global\advance\TABLEmaxheight -\parskip
- \fi\fi}
-
-\def\nocalculatemaxTABLEheight
- {\ifinsidecolumns
- \getcolumnstatus\column\scratchcounter\total\dimen0\goal\dimen2\\%
- \else
- \dimen0\zeropoint
- \dimen2\textheight
- \fi
- \advance\dimen2 -\dimen0
- \global\TABLEmaxheight\dimen2
- \global\advance\TABLEmaxheight -\strutdp}
-
-\def\calculatemaxTABLEheight#1%
- {\ifsplittables
- #1\relax
- \ifdim\TABLEmaxheight<3\baselineskip \relax % instelbaar maken
- \ifinsidecolumns
- \nobreak
- \kern\dimen2
- \goodbreak
- \else
- \goodbreak % \page
- \fi
- \removeTABLEtopskip
- \nocalculatemaxTABLEheight
- \fi
- \ifdim\TABLEmaxheight<\absmaxTABLEheight % forces equal columns
- \global\TABLEmaxheight\absmaxTABLEheight
- \else
- \xdef\absmaxTABLEheight{\the\TABLEmaxheight}%
- \fi
- \global\TABLEheight\zeropoint
- \else
- \global\TABLEmaxheight\maxdimen
- \fi}
-
-%D When splitting tables, we have to remove the top skip when
-%D we're in the main vertical list, else we remove whatever
-%D skip \TEX\ adds.
-
-\def\removeTABLEtopskip
- {\ifinsidefloat
- \verticalstrut\kern-\struttotal
- \else
- \hbox{}\kern-\topskip
- \fi}
-
%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%
-% {\getvalue{\if[\noexpand#2\s!complex\else\s!simple\fi\c!Table#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
@@ -1700,57 +1555,8 @@
%D we repeat the table head.
\def\handleTABLEbreak#1#2%
- {\ifsplittables
- \setbox0\hbox{\AugmentedTableStrut{#1}{#2}}%
- \getboxheight\dimen0\of\box0\relax
- \ifdim\TABLEparheight>\dimen0 % new
- \advance\dimen0-\lineheight % newer
- \ifdim\dimen0<\zeropoint % newer
- \dimen2\zeropoint % newer
- \fi % newer
- \advance\dimen0 \TABLEparheight % new
- \global\TABLEparheight\zeropoint % new
- \fi % new
- \ifTABLEgrayline \else
- \global\advance\TABLEheight\dimen0
- \fi
- \ifTABLEinbreak
- \globalletempty\beforeTABLEline
- \gdef\afterTABLEline{\TABLEnoalign{\nobreak}}%
- \else
- \dimen2=\TABLEheight
- \advance\dimen2 \strutdp
- \advance\dimen2 \TABLEtailheight
- \advance\dimen2 \TABLEcaptionheight
- \advance\dimen2 \lineheight % we're ahead
- \ifdim\dimen2>\TABLEmaxheight
- \gdef\beforeTABLEline
- {\setTABLEforce\TABLEforcelastrow}%
- \gdef\afterTABLEline
- {\TABLEnoalign
- {\nobreak
- \global\TABLEinbreaktrue}%
- \TABLEtail
- \TABLEnoalign
- {\goodbreak
- \calculatemaxTABLEheight\nocalculatemaxTABLEheight
- \removeTABLEtopskip
- \setTABLEaction\TABLEunknown
- \setTABLEforce \TABLEunknown}%
- \TABLEhead
- \TABLEnoalign
- {\nobreak
- \global\TABLEinbreakfalse
- \setTABLEforce\TABLEforcefirstrow}}%
- \else
- \globalletempty\beforeTABLEline
- \gdef\afterTABLEline{\TABLEnoalign{\nobreak}}%
- \fi
- \fi
- \else
- \globalletempty\beforeTABLEline
- \gdef\afterTABLEline{\TABLEnoalign{\nobreak}}%
- \fi}
+ {\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.
@@ -1768,7 +1574,6 @@
->%
\fi
\color[#1]{\string#3}%
- \ifsplittables\space\the\TABLEmaxheight/\the\TABLEheight\fi
\ifx\TABLEgraylineerror\empty
\space\TABLEgraylinestatus
\else
@@ -2025,7 +1830,6 @@
{\TABLEnoalign
{\nobreak
\setbox0\vbox{\blank[\@@tiNL]}%
- \global\advance\TABLEheight \ht0
\vskip\ht0
\nobreak}}
@@ -2165,8 +1969,7 @@
\setTABLEaction\TABLErule}}
\def\accountTABLElinewidth
- {\scratchdimen\LineThicknessUnit
- \global\advance\TABLEheight \@@tiHLheight\scratchdimen}
+ {\scratchdimen\LineThicknessUnit}
%D \startitemize[3*ruim]
%D \sym{\type{\BC}}
@@ -2647,7 +2450,8 @@
\c!commands=,
\c!background=\v!screen,
\c!backgroundscreen=\@@rsscreen,
- \c!backgroundcolor=]
+ \c!backgroundcolor=,
+ \c!split=\v!auto]
\def\ifintabel{\ifintable} % upward compatible
diff --git a/Master/texmf-dist/tex/context/base/core-tbl.tex b/Master/texmf-dist/tex/context/base/core-tbl.tex
index b33302da4bd..edead8e07c0 100644
--- a/Master/texmf-dist/tex/context/base/core-tbl.tex
+++ b/Master/texmf-dist/tex/context/base/core-tbl.tex
@@ -748,33 +748,40 @@
% An example of its usage:
-\appendtoks \optimizeverbatimfalse \to \everytabulate
+\appendtoks \optimizeverbatimfalse \to \everytabulate
+\appendtoks \chardef\recodeverbatimmode\plustwo \to \everytabulate
% A status variable:
\chardef\tabulatepass=0
+\def\tabulateparameter#1{\csname\??tt\currenttabulate#1\endcsname}
+
\def\dofinalstarttabulate[#1][#2][#3]% identifier sub preamble
{\edef\currenttabulate{#1::#2}%
\ifinsidefloat \else
\whitespace
- \getvalue{\??tt\currenttabulate\c!before}%
+ \tabulateparameter\c!before
\fi
\bgroup
\resetcharacteralign
% todo: spacing around tabulate when bodyfont is set
% expansion en test needed ?
- \doifelsevalue{\??tt\currenttabulate\c!split}\v!yes
- \splittabulatetrue\splittabulatefalse
+ \splittabulatefalse
+ \processaction
+ [\tabulateparameter\c!split]
+ [ \v!yes=>\splittabulatetrue,
+ % \v!repeat=>\splittabulatetrue, % todo, default yes
+ \v!auto=>\ifinsidesplitfloat\splittabulatetrue\fi]%
\doifvaluesomething{\??tt\currenttabulate\c!bodyfont}
{\expanded{\switchtobodyfont
- [\getvalue{\??tt\currenttabulate\c!bodyfont}]}}%
+ [\tabulateparameter\c!bodyfont]}}%
\postponefootnotes % new, to be tested / will be configurable
\chardef\tabulatepass\plusone
\widowpenalty\zerocount % otherwise lines are not broken
\clubpenalty \zerocount % but overlap in funny ways
\the\everytabulate
- \getvalue{\??tt\currenttabulate\c!inner}%
+ \tabulateparameter\c!inner
\scratchdimen\leftskip
\advance\scratchdimen \hangindent
\doifvalue{\??tt\currenttabulate\c!indenting}\v!yes
@@ -816,7 +823,7 @@
\newif\iftabulatefirstflushed
\def\tabulateEQ
- {\iftabulatefirstflushed\else\getvalue{\??tt\currenttabulate EQ}\fi
+ {\iftabulatefirstflushed\else\tabulateparameter{EQ}\fi
\global\tabulateequalfalse}
% \def\tabulatenormalcolumn#1%
@@ -855,7 +862,7 @@
\let\factor\!!plusone
\scratchskip\strutdp
\ExpandFirstAfter\processallactionsinset
- [\getvalue{\??tt\currenttabulate\c!distance}]
+ [\tabulateparameter\c!distance]
[ \v!blank=>\scratchskip\bigskipamount,
\v!depth=>\scratchskip\strutdp,
\v!small=>\def\factor{.25},
@@ -868,18 +875,10 @@
\ifconditional\tabulatesomeamble\kern\else\vskip\fi\scratchdimen % new
\egroup}
-% \def\dotabulaterule
-% {\color
-% [\getvalue{\??tt\currenttabulate\c!lijnkleur}]
-% {\scratchdimen\getvalue{\??tt\currenttabulate\c!lijndikte}%
-% \hrule\!!height.5\scratchdimen\!!depth.5\scratchdimen\relax
-% \doifvalue{\??tt\currenttabulate\c!afstand}\v!grid
-% {\kern-\scratchdimen}}} % experimental tm-prikkels
-
\def\dodotabulaterule#1%
{\color
- [\getvalue{\??tt\currenttabulate\c!rulecolor}]
- {\scratchdimen\getvalue{\??tt\currenttabulate\c!rulethickness}#1}}
+ [\tabulateparameter\c!rulecolor]
+ {\scratchdimen\tabulateparameter\c!rulethickness#1}}
\def\dotabulaterule
{\dodotabulaterule
@@ -890,7 +889,7 @@
\def\dotabulatelinerule
{\multispan\totaltabulatecolumns % \multispan is a plain macro
% for the moment this one
- \strut\hskip\getvalue{\??tt\currenttabulate\c!margin}%
+ \strut\hskip\tabulateparameter\c!margin
% neg values are ok !
\hskip\tabulateindent % new august 2003
\dodotabulaterule
@@ -954,15 +953,15 @@
\chardef\tabulaterepeathead\zerocount
\def\processtabulate[|#1|]% in the process of optimizing
- {\tabulateunit\getvalue{\??tt\currenttabulate\c!unit}%
+ {\tabulateunit\tabulateparameter\c!unit
\checkfulltabulatecontent
\globallet\tabulateruledepth \!!zeropoint
\globallet\tabulateruleheight\!!zeropoint
\ExpandFirstAfter\processaction % use \setalignmentswitch instead
- [\getvalue{\??tt\currenttabulate\c!align}]
- [\v!normal=>\def\@@tabulatealign{0},% = default value
- \v!right=>\def\@@tabulatealign{1},% chardefs gebruiken
- \v!left=>\def\@@tabulatealign{2},%
+ [\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}]%
@@ -976,9 +975,16 @@
\global\tabulatepwidth\zeropoint
\global\tabulateequalfalse
\resettabulatepheight
- \ifinsidefloat \else
+ \ifinsidesplitfloat
+ \donetrue
+ \else\ifinsidefloat
+ \donefalse
+ \else
+ \donetrue
+ \fi\fi
+ \ifdone
\processaction
- [\getvalue{\??tt\currenttabulate\c!header}]
+ [\tabulateparameter\c!header]
[\v!repeat=>\chardef\tabulaterepeathead\plusone,
\v!text=>\chardef\tabulaterepeathead\plustwo]%
\fi
@@ -1032,9 +1038,9 @@
\global\let\flushtabulated\empty
\let\savedbar|\let|\nexttabulate
\tabskip\zeropoint
- \ifdim\getvalue{\??tt\currenttabulate\c!margin}>\zeropoint
+ \ifdim\tabulateparameter\c!margin>\zeropoint
\!!toksa{&\flushtabulateindent\strut##%
- \tabskip\getvalue{\??tt\currenttabulate\c!margin}\strut
+ \tabskip\tabulateparameter\c!margin\strut
&##\tabskip\zeropoint}%
\else
\!!toksa{&\flushtabulateindent\strut##%
@@ -1247,7 +1253,7 @@
\ifnum\noftabulatelines>\plusone
\ifnum\noftabulatelines<\minusnoftabulatelines
\vskip\topskip\allowbreak\vskip-\topskip
- \vskip-\getvalue{\??tt\currenttabulate\c!rulethickness}%
+ \vskip-\tabulateparameter\c!rulethickness
\dotabulaterule
\fi
\fi
@@ -1266,7 +1272,11 @@
\chardef\tabulatepass\plustwo
%
\ifcase\tabulaterepeathead
- \startframedcontent[\getvalue{\??tt\currenttabulate\c!frame}]%
+ \ifinsidesplitfloat
+ \setbox\tabulatebox\vbox \bgroup
+ \else
+ \startframedcontent[\tabulateparameter\c!frame]%
+ \fi
\else
\setbox\tabulatebox\vbox \bgroup
\fi
@@ -1277,14 +1287,18 @@
{\vskip-\strutdp}% experimental tm-prikkels
%
\ifcase\tabulaterepeathead
- \stopframedcontent
+ \ifinsidesplitfloat
+ \egroup \splittabulatebox\tabulatebox
+ \else
+ \stopframedcontent
+ \fi
\else
\egroup \splittabulatebox\tabulatebox
\fi
%
\egroup
\ifinsidefloat \else
- \getvalue{\??tt\currenttabulate\c!after}%
+ \tabulateparameter\c!after
\fi
\egroup}
@@ -1303,47 +1317,69 @@
% \NC test \NC \input tufte \relax \NC \NR
% \stoptabulate
+% \def\splittabulatebox#1% #1 <> 0/2 / derived from the one in core-ntb.tex
+% {\ifinsidefloat
+% \unvbox#1%
+% \else
+% \ifcase\tabulaterepeathead\or
+% \setbox2\copy#1%
+% \setbox2\vsplit2 to \lineheight
+% \setbox2\vbox{\unvbox2}%
+% \fi
+% \doloop
+% {\setbox0\vsplit#1 to \onepoint % \lineheight
+% \ifdim\pagegoal<\maxdimen
+% \donetrue
+% \else\ifdim\pagetotal=\zeropoint
+% \donetrue
+% \else
+% \donefalse
+% \fi\fi
+% \ifdone
+% \setbox0\vbox{\unvbox0}%
+% \dimen0\pagetotal
+% \advance\dimen0\dp0
+% \advance\dimen0\ht0
+% \ifdim\dimen0>\pagegoal
+% \bgroup \page \egroup % make sure that local vars are kept
+% \ifcase\tabulaterepeathead\or
+% \unvcopy2
+% \or
+% \hbox{\strut\tabulateparameter\c!title}%
+% \fi
+% \fi
+% \fi
+% % test this on icare checklists / quite hacky ! ! !
+% \ifdim\ht0>\tabulateparameter\c!rulethickness\else
+% \kern-2\ht0 % brrrr
+% \fi
+% %
+% \unvbox0
+% \allowbreak
+% \ifvoid#1 \exitloop \fi}%
+% \fi}
+
\def\splittabulatebox#1% #1 <> 0/2 / derived from the one in core-ntb.tex
- {\ifinsidefloat
+ {\ifinsidesplitfloat
+ \dosplittabulatebox#1%
+ \else\ifinsidefloat
\unvbox#1%
\else
- \ifcase\tabulaterepeathead\or
- \setbox2\copy#1%
- \setbox2\vsplit2 to \lineheight
- \setbox2\vbox{\unvbox2}%
- \fi
- \doloop
- {\setbox0\vsplit#1 to \onepoint % \lineheight
- \ifdim\pagegoal<\maxdimen
- \donetrue
- \else\ifdim\pagetotal=\zeropoint
- \donetrue
- \else
- \donefalse
- \fi\fi
- \ifdone
- \setbox0\vbox{\unvbox0}%
- \dimen0\pagetotal
- \advance\dimen0\dp0
- \advance\dimen0\ht0
- \ifdim\dimen0>\pagegoal
- \bgroup \page \egroup % make sure that local vars are kept
- \ifcase\tabulaterepeathead\or
- \unvcopy2
- \or
- \hbox{\strut\getvalue{\??tt\currenttabulate\c!title}}%
- \fi
- \fi
- \fi
- % test this on icare checklists / quite hacky ! ! !
- \ifdim\ht0>\getvalue{\??tt\currenttabulate\c!rulethickness}\else
- \kern-2\ht0 % brrrr
- \fi
- %
- \unvbox0
- \allowbreak
- \ifvoid#1 \exitloop \fi}%
- \fi}
+ \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]
@@ -1424,7 +1460,7 @@
\c!distance={\v!depth,\v!medium},
\c!align=\v!normal,
\c!margin=\!!zeropoint,
- \c!split=\v!yes,
+ \c!split=\v!auto,
\c!header=\v!yes,
\c!title=,
\c!indenting=\v!no]
diff --git a/Master/texmf-dist/tex/context/base/core-tsp.tex b/Master/texmf-dist/tex/context/base/core-tsp.tex
new file mode 100644
index 00000000000..dd2b42f61e6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/core-tsp.tex
@@ -0,0 +1,463 @@
+%D \module
+%D [ file=core-tsp,
+%D version=2000.10.20,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Splitting 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.
+
+\writestatus{loading}{Context OTR Macros / Floating Bodies}
+
+\beginTEX
+ \expandafter \endinput
+\endTEX
+
+%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}
+
+% \def\dosplitfloat[#1]#2% nog dubbele refs
+% {\ifinsidecolumns % tzt ook nog figuren splitten
+% % not yet supported
+% \else
+% \bgroup
+% \insidefloattrue
+% \insidesplitfloattrue
+% \getparameters[\??si][#1]%
+% \resetnumber[\??si]%
+% \def\floatcaptionsuffix{\convertednumber[\??si]}%
+% % \TABLEcaptionheight\@@silines\lineheight% brrr
+% % todo: auto == \getnoflines\captionheight
+% \let\extrasplitfloatlines\@@silines
+% \the\everysplitfloatsetup
+% \simplifypagebreak % \page becomes \goodbreak, no fails misserably
+% % todo: a preceding float does not count yet
+% % so we need a better predictor
+% \dowithnextbox
+% {\forgetall
+% \dontcomplain
+% \chardef\nodelocationmode\zerocount
+% \doloop
+% {\setbox2\vsplit\nextbox to \lineheight
+% \setbox2\vbox{\unvbox2}
+% \ifdim\ht2>\lineheight
+% \incrementnumber[\??si]%
+% \ifcase\rawnumber[\??si]\or \ifdim\nextboxht=\zeropoint
+% \let\floatcaptionsuffix\empty
+% \fi \fi
+% \bgroup
+% #2{\unvbox2}
+% \egroup
+% \ifdim\nextboxht>\zeropoint
+% \page
+% \decrementnumber[\floatcaptionnumber]%
+% \fi
+% \fi
+% \ifdim\nextboxht>\zeropoint
+% \page
+% \else
+% \expandafter\exitloop
+% \fi}%
+% \egroup}
+% \vbox
+% \fi}
+
+\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
+ \else
+ \setfalse\retainfloatnumber
+ \fi
+ \splitfloatcommand{\box\nextbox}%
+ \egroup
+ \ifconditional\somenextplitofffloat
+ \doifelsenothing\@@siinbetween
+ {\ifconditional\tsplitfirstdone\else\page\fi}
+ \@@siinbetween
+ \else
+ \@@siafter
+ \dopopsavedfloats
+ \doflushsavedfloats
+ \fi
+ \global\settrue\tsplitfirstdone}%
+ \vbox}
+
+\def\nodowithsplitofffloat
+ {\dowithnextbox
+ {\forgetall
+ \dontcomplain
+ \box\nextbox % maybe an option to unvbox
+ \global\settrue\tsplitfirstdone}%
+ \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% depend son 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
+ {\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\tsplitfirstdone
+
+\def\handletsplit
+ {\analyzesplitfloatcaption\tsplitcontent
+ \global\setfalse\tsplitfirstdone
+ \testpage
+ [\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\tsplitfirstdone
+ \scratchdimen\textheight
+ \!!donectrue
+ \else
+ \ifconditional\tsplitfirstdone
+ \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
+ \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\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\unvbox\scratchbox}%
+ \exitloop
+ \else
+ \setbox\tsplitcontent\vbox
+ {\unvbox\scratchbox
+ \ifvoid\tsplitcontent\else\unvbox\tsplitcontent\fi}%
+ \exitloop
+ \fi\fi\fi
+ \!!donedfalse
+ \!!donecfalse}%
+ \postprocesstsplit
+ \dochecksplitofffloat\tsplitcontent
+ \ifvoid\tsplitcontent
+ \setbox\tsplitresult\vbox{\unvbox\tsplitresult\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\unvcopy\tsplittail}%
+ \dowithsplitofffloat{\tsplitbeforeresult\box\tsplitresult\tsplitafterresult}%
+ \doifnotinsidesplitfloat\tsplitafter
+ \endgraf
+ \fi
+ \ifinsidecolumns
+ \doifnotinsidesplitfloat\goodbreak
+ \else
+ \doifnotinsidesplitfloat\page
+ \fi
+ \fi}}
+
+\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/core-uti.tex b/Master/texmf-dist/tex/context/base/core-uti.tex
index a8dd993f6ca..f1f499a75be 100644
--- a/Master/texmf-dist/tex/context/base/core-uti.tex
+++ b/Master/texmf-dist/tex/context/base/core-uti.tex
@@ -31,6 +31,7 @@
\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 :
% Bepaalde commando's worden als string weggeschreven. Deze
% zijn aan het eind van deze file gedefinieerd.
@@ -56,10 +57,10 @@
{\checksectionseparator}
{\@@utilityerrormessage\resetutilities\endinput}}
-\def\checksectionseparator % catches backward compatibility conflict
- {\doifnot\sectionseparator:\endinput} % this dependency may go in a few years
+\def\checksectionseparator % catches backward compatibility conflict
+ {}% \doifnot\sectionseparator:\endinput} % this dependency may go in a few years
-\def\dosplitofffoliopart[#1::#2::#3]{#3}
+\def\dosplitofffoliopart[#1--#2--#3]{#3}
\def\thisissectionseparator#1%
{\bgroup
@@ -98,12 +99,6 @@
\def\cwriteutilitycommand#1%
{\write\uti{\noexpand\checkedutility{\number\nofshipouts}{c \string#1}}}
-% \def\cimmediatewriteutility
-% {\immediate\write\uti}
-%
-% \def\cimmediatewriteutilitycommand#1%
-% {\immediate\write\uti{c \string#1}}
-
\let\checkedutility\secondoftwoarguments
\def\docheckedutility#1#2{\ifnum#1=\nofshipouts#2\else\letterpercent\fi}
@@ -112,7 +107,11 @@
\let\checkedutility\docheckedutility
\to \everybeforeshipout
-\edef\testbytesequence{\rawcharacter{7}\rawcharacter{27}\rawcharacter{227}}
+\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
@@ -124,6 +123,10 @@
\fi
\global\let\thisisbytesequence\gobbleoneargument}
+\beginXETEX
+ \let\testbytesequence\empty
+\endXETEX
+
% Better use marks.
\def\checkutilities
@@ -242,7 +245,7 @@
% {\doiflocfileelse{\jobname.\f!inputextension}
% {\bgroup
% \showmessage\m!systems{11}{}%
-% \openout\scratchwrite=\jobname.\f!outputextension
+% \openout\scratchwrite\jobname.\f!outputextension
% \openlocin\scratchread{\jobname.\f!inputextension}%
% \def\doprocessline%
% {\ifeof\scratchread
diff --git a/Master/texmf-dist/tex/context/base/core-var.tex b/Master/texmf-dist/tex/context/base/core-var.tex
index 1fe89af0e39..54c9c52df5d 100644
--- a/Master/texmf-dist/tex/context/base/core-var.tex
+++ b/Master/texmf-dist/tex/context/base/core-var.tex
@@ -15,6 +15,233 @@
\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%
+ {\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}
+
+% 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\rawprocesscommalist[#3]\dodocheckformode
+% \ifcheckedmode\@EA#1\else\@EA#2\fi}
+%
+% better:
+
+\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
+% {\protect\checkedmodetrue\rawprocesscommalist[#3]\dodocheckforallmodes
+% \ifcheckedmode\@EA#1\else\@EA#2\fi}
+%
+% better:
+
+\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\doifallmodeselse
+ {\docheckforallmodes\firstoftwoarguments\secondoftwoarguments}
+
+\def\doifallmodes
+ {\docheckforallmodes\firstofoneargument\gobbleoneargument}
+
+\def\doifnotallmodes
+ {\docheckforallmodes\gobbleoneargument\firstofoneargument}
+
+\long\def\dostartallmodes[#1]%
+ {\docheckforallmodes\donothing\dostopallmodes{#1}}
+
+\long\def\dostartnotallmodes[#1]%
+ {\docheckforallmodes\dostopallmodes\donothing{#1}}
+
+\let\stopallmodes \donothing
+\let\stopnotallmodes\donothing
+
+\long\def\dostopallmodes #1\stopallmodes {}
+\long\def\dostopnotallmodes#1\stopnotallmodes{}
+
%D \macros
%D {every...}
%D
@@ -44,6 +271,8 @@
\newevery \everybeginofpar \relax
\newevery \everyendofpar \relax
\newevery \everylistentry \relax
+\newevery \everymarking \relax
+\newevery \everysavesortkeys \relax
%D For shared \type {\everymath} and \type {\everydisplay}:
@@ -268,6 +497,35 @@
{\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.
diff --git a/Master/texmf-dist/tex/context/base/core-ver.tex b/Master/texmf-dist/tex/context/base/core-ver.tex
index eb8363cf098..5713e0cb36d 100644
--- a/Master/texmf-dist/tex/context/base/core-ver.tex
+++ b/Master/texmf-dist/tex/context/base/core-ver.tex
@@ -48,6 +48,11 @@
1: fisierul -- nu exista
\stopmessages
+\startmessages french library: verbatims
+ title: verbatim
+ 1: le fichier -- n'existe pas
+\stopmessages
+
\unprotect
% \type{ <crlf> char} geeft bagger
@@ -130,55 +135,60 @@
\installnewpretty I {\setupprettiesintype{EIF}\setupprettytype} % E taken
\installnewpretty X {\setupprettiesintype{XML}\setupprettytype}
-\def\setupcommonverbatim#1%
+\def\setupcommonverbatim
{\eightbitcharactersfalse % obey regime / encoding
%
\def\prettyidentifier{TEX}%
%
- \doifelsevalue{#1\c!text}\v!yes
+ \doifelse{\typingparameter\c!text}\v!yes
\naturaltextexttrue
\naturaltextextfalse
- \def\prettyidentifierfont{\getvalue{#1\c!icommand}}%
- \def\prettyvariablefont {\getvalue{#1\c!vcommand}}%
- \def\prettynaturalfont {\getvalue{#1\c!ccommand}}%
+ \def\prettyidentifierfont{\typingparameter\c!icommand}%
+ \def\prettyvariablefont {\typingparameter\c!vcommand}%
+ \def\prettynaturalfont {\typingparameter\c!ccommand}%
%
- \doifvalue{#1\c!space}\v!on
+ \doif{\typingparameter\c!space}\v!on
{\def\obeyspaces{\setcontrolspaces}}%
- \doifvalue{#1\c!page }\v!no
+ \doif{\typingparameter\c!page }\v!no
{\def\obeypages {\ignorepages}}%
%
- \doifelsevalue{#1\c!tab}\v!yes
+ \doifelse{\typingparameter\c!tab}\v!yes
{\def\obeytabs{\settabskips}}%
- {\doifvalue{#1\c!tab}\s!ascii
+ {\doif{\typingparameter\c!tab}\s!ascii
{\chardef\tabskipmode\plustwo % quit on >127
- \def\obeytabs{\settabskips}}%
- {}}%
+ \def\obeytabs{\settabskips}}}%
%
\ignorehyphens % default
\ExpandFirstAfter\processaction
- [\getvalue{#1\c!lines}]
+ [\typingparameter\c!lines]
[ \v!yes=>\obeybreakpoints,
\v!hyphenated=>\obeyhyphens]%
+ \processaction
+ [\typingparameter\c!empty]
+ [\v!yes=>\obeyemptylines,
+ \v!all=>\obeyallemptylines]%
%
\ExpandFirstAfter\processaction
- [\getvalue{#1\c!option}]
+ [\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{#1}}%
+ \v!commands=>\def\obeycharacters{\setupcommandsintype}% \let
\let\obeytabs\ignoretabs,
\v!slanted=>\let\obeycharacters\setupslantedtype
\let\obeytabs\ignoretabs,
- \s!unknown=>\setupprettiesintype{\getvalue{#1\c!option}}%
+ \s!unknown=>\setupprettiesintype{\typingparameter\c!option}%
\let\obeycharacters\setupprettytype
\let\obeytabs\ignoretabs]%
- \doifnumberelse{\getvalue{#1\c!tab}}
- {\def\obeytabs{\setfixedtabskips{\getvalue{#1\c!tab}}}}%
+ \doifnumberelse{\typingparameter\c!tab}
+ {\def\obeytabs{\setfixedtabskips{\typingparameter\c!tab}}}%
\donothing
- \def\verbatimfont{\getvalue{#1\c!style}\normalnoligatures\font}%
- \setupverbatimcolor{#1}}
+ %\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}
\ifx\normalnoligatures\undefined \let\normalnoligatures\gobbleoneargument \fi
@@ -242,7 +252,8 @@
\def\dotype#1%
{\bgroup
\strut % new, enables leading space in \type { abc } at par start
- \edef\@@currenttype{#1}%
+ \let\currenttypingclass\??ty
+ \edef\currenttyping{#1}%
\catcode`\<=\@@other
\catcode`\>=\@@other
\futurelet\next\dodotype}
@@ -280,29 +291,79 @@
{\ifx\next\bgroup
\@EA\dodotypeA
\else\if\next<%
- \doifelsevalue{\??ty\@@currenttype\c!option}\v!none
+ \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
+ \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\convertargument\the\globalscratchtoks\to\ascii
+ \ifx\scantokens\undefined\ascii\else\everyeof{\hskip-\spaceskip}\scantokens\expandafter{\ascii}\fi
+ \egroup}
+
\bgroup
\catcode`\[=\@@begingroup
\catcode`\]=\@@endgroup
\catcode`\{=\@@active
\catcode`\}=\@@active
-\gdef\initializetypegrouping%
- [\catcode`\{=\@@active
- \catcode`\}=\@@endgroup % otherwise things go wrong ...
- \def\activerightargument%
- [\rightargument
- \egroup]%
- \def\activeleftargument%
+\gdef\initializetypegrouping
+ [\ifnum\catcode`\{=\@@active
+ \let\normalactivebgroup{%
+ \let\normalactiveegroup}%
+ \else
+ \catcode`\{=\@@active
+ \catcode`\}=\@@active
+ \let\normalactivebgroup\leftargument
+ \let\normalactiveegroup\rightargument
+ \fi
+ \def\activeleftargument
[\bgroup
- \leftargument %% this way TeXEdit can check: {
- \catcode`\}=\@@active % ... in alignments (tables)
- \let}=\activerightargument]%
- \let{=\activeleftargument]% %% this way TeXEdit can check: }
+ \catcode`\}=\@@active
+ \let}\activerightargument
+ \normalactivebgroup]%
+ \def\activerightargument
+ [\normalactiveegroup
+ \egroup]%
+ \let{=\activeleftargument
+ % not \let}=\egroup, otherwise things go wrong in alignments (???)
+ \catcode`\}=\@@endgroup]
\egroup
\bgroup
@@ -433,9 +494,9 @@
\fi
\fi}
-\def\setupcommandsintype#1% can also be \string\
+\def\setupcommandsintype% can also be \string\
{\setupgroupedtype
- \edef\\{\getvalue{#1\c!escape}}%
+ \edef\\{\typingparameter\c!escape}%
\letvalue{\\}=\\% for instance \/=/
\@EA\catcode\@EA`\\=\@@escape
\def\BTEX##1\ETEX##2% ##2 gobbles active space
@@ -463,41 +524,62 @@
{\setupgroupedtype
\slantedtypepermittedtrue}
-% the next one was \string, but this prevents coloring, one can make
-% it \string again if needed
-
-\let\protectedfirsttype\relax
+\let\protectedfirsttype\string % \relax for special cases
+
+% \bgroup
+% \catcode`\<=\active
+% \catcode`\>=\active
+% \gdef\doprotectfirsttype
+% {\ifx\next<%
+% \let\next\relax
+% \else\ifx\next\bgroup
+% \let\next\relax
+% \else\ifx\next\egroup % takes care of \type{}
+% \let\next\relax
+% \else\ifx\next\activeleftargument
+% \let\next\relax
+% \else
+% \let\next\protectedfirsttype
+% \fi\fi\fi\fi
+% \next}
+% \egroup
+%
+% \def\protectfirsttype
+% {\futurelet\next\doprotectfirsttype}
+%
+% The next one is safe for:
+%
+% \def\xx#1{\type{#1}} \xx{\ifx}
\bgroup
\catcode`\<=\active
\catcode`\>=\active
\gdef\doprotectfirsttype
- {\ifx\next<%
- \let\next\relax
- \else\ifx\next\bgroup
- \let\next\relax
- \else\ifx\next\egroup % takes care of \type{}
- \let\next\relax
- \else\ifx\next\activeleftargument
- \let\next\relax
- \else
- \let\next\protectedfirsttype
- \fi\fi\fi\fi
+ {\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
- {\futurelet\next\doprotectfirsttype}
+ {\beginrobusttest
+ \futurelet\next\doprotectfirsttype}
%D The neccessary initializations are done by calling
%D \type{\initializetype} which in return calls for the support
%D macro \type{\setupinlineverbatim}.
-\let\@@currenttype\empty
-
\def\initializetype
{\let\obeylines\ignorelines
- \setupcommonverbatim{\??ty\@@currenttype}%
+ \setupcommonverbatim
\setupinlineverbatim}
%D \macros
@@ -505,9 +587,6 @@
%D
%D Some characteristics of \type{\type} can be set up by:
-%\def\setuptype%
-% {\dodoubleargument\getparameters[\??ty]}
-
\def\setuptype
{\dodoubleempty\dosetuptype}
@@ -646,7 +725,8 @@
%D however
\def\setgroupedtype
- {\initializetype
+ {\let\currenttypingclass\??ty
+ \initializetype
\catcode`\{=\@@begingroup
\catcode`\}=\@@endgroup}
@@ -664,36 +744,49 @@
%D support of linenumbering, which can best be studied in the
%D documented support module.
-\def\initializetyping#1%
+\let\currenttyping \empty
+\let\currenttypingclass\??ty % saveguard
+
+\def\typingparameter#1%
+ {\executeifdefined
+ {\currenttypingclass\currenttyping#1}%
+ {\executeifdefined{\currenttypingclass#1}\empty}}
+
+\def\settypingparameter#1#2%
+ {\setvalue{\currenttypingclass\currenttyping#1}{#2}}
+\def\setxtypingparameter#1#2%
+ {\setxvalue{\currenttypingclass\currenttyping#1}{#2}}
+
+\def\initializetyping
{%\donefalse
- \switchtobodyfont[\getvalue{\??tp#1\c!bodyfont}]%
+ \switchtobodyfont[\typingparameter\c!bodyfont]%
\donefalse
- \scratchskip\getvalue{\??tp#1\c!oddmargin}\relax
+ \scratchskip\typingparameter\c!oddmargin\relax
\ifzeropt\scratchskip\else\donetrue\fi
- \scratchskip\getvalue{\??tp#1\c!evenmargin}\relax
+ \scratchskip\typingparameter\c!evenmargin\relax
\ifzeropt\scratchskip\else\donetrue\fi
\ifdone
\def\doopenupverbatimline
{\getpagestatus
\ifrightpage
- \hskip\getvalue{\??tp#1\c!oddmargin}\relax
+ \hskip\typingparameter\c!oddmargin\relax
\else
- \hskip\getvalue{\??tp#1\c!evenmargin}\relax
+ \hskip\typingparameter\c!evenmargin\relax
\fi}%
\else
- \doadaptleftskip{\getvalue{\??tp#1\c!margin}}%
+ \doadaptleftskip{\typingparameter\c!margin}%
\fi
- \doifdefinedelse{\??bo\getvalue{\??tp#1\c!blank}}
- {\edef\!!stringa{\csname\??bo\csname\??tp#1\c!blank\endcsname\endcsname}}
- {\edef\!!stringa{\csname\??tp#1\c!blank\endcsname}}%
+ \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!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!big=>\scratchskip\blankogrootmaat,
+ \v!halfline=>\scratchskip.5\baselineskip,
+ \v!line=>\scratchskip\baselineskip,
\v!none=>\scratchskip\zeropoint,
\s!unknown=>\scratchskip\commalistelement]%
\ifgridsnapping
@@ -705,24 +798,83 @@
\else
\edef\verbatimbaselineskip{\the\scratchskip}%
\fi
- \setupcommonverbatim{\??tp#1}}
+ \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.
-\def\dostarttyping#1%
- {\getvalue{\??tp#1\c!before}%
+% formal version
+%
+% \def\dostarttyping#1%
+% {\let\currenttypingclass\??tp
+% \edef\currenttyping{#1}%
+% \typingparameter\c!before
+% \startpacked % includes \bgroup
+% \dosetuptypelinenumbering{}%
+% \initializetyping
+% \startverbatimcolor
+% \expandafter\processdisplayverbatim\expandafter{\s!stop#1}}
+
+% 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\dododostarttyping[#1]%
+ {\typingparameter\c!before
\startpacked % includes \bgroup
- \initializetyping{#1}%
+ \dosetuptypelinenumbering{#1}%
+ \initializetyping
\startverbatimcolor
- \expandafter\processdisplayverbatim\expandafter{\s!stop#1}}
+ \expanded{\processdisplayverbatim{\s!stop\currenttyping}}}
\def\dostoptyping#1%
{\stopverbatimcolor
\stoppacked % includes \egroup
- \getvalue{\??tp#1\c!after}%
- \dochecknextindentation{\??tp#1}}
+ \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}
@@ -783,7 +935,8 @@
\c!blank=\v!line,
\c!escape=/, % beware \string\ , should also be accepted
\c!numbering=\v!no,
- \c!lines=]
+ \c!lines=,
+ \c!empty=]
%D \macros
%D {definetype}
@@ -796,9 +949,9 @@
\def\dodefinetype[#1][#2]%
{\unexpanded\setvalue{#1}{\dotype{#1}}%
- \copyparameters
- [\??ty#1][\??ty]
- [\c!space,\c!palet,\c!color,\c!style,\c!page,\c!tab,\c!option]%
+% \copyparameters % maybe no longer needed, implicit inheritance now
+% [\??ty#1][\??ty]
+% [\c!space,\c!palet,\c!color,\c!style,\c!page,\c!tab,\c!option]%
\getparameters[\??ty#1][#2]}
%D \macros
@@ -821,10 +974,7 @@
\def\presettyping[#1][#2]%
{\copyparameters
[\??tp#1][\??tp]
- [\c!before,\c!after,\c!space,\c!page,\c!tab,\c!color,\c!style,
- \c!text,\c!icommand,\c!vcommand,\c!ccommand,\c!bodyfont,
- \c!option,\c!palet,\c!margin,\c!evenmargin,\c!oddmargin,
- \c!indentnext,\c!blank,\c!escape,\c!lines,\c!numbering]%
+ [\c!color,\c!style]%
\getparameters
[\??tp#1]
[#2]}
@@ -912,8 +1062,8 @@
%D line basis.
%D
%D \starttyping
-%D \def\setupverbatimcolor#1%
-%D {\edef\prettypalet{\prettyidentifier\getvalue{#1\c!palet}}%
+%D \def\setupverbatimcolor%
+%D {\edef\prettypalet{\prettyidentifier\typingparameter\c!palet}%
%D \def\beginofpretty[##1]{\startcolormode{\prettypalet:##1}}%
%D \def\endofpretty {\stopcolormode}}
%D \stoptyping
@@ -921,8 +1071,8 @@
%D Since we support a global color too, the folowing
%D definition is better:
-\def\setupverbatimcolor#1% fast and local versus slow and global
- {\doifelsevaluenothing{#1\c!color}
+\def\setupverbatimcolor% fast and local versus slow and global
+ {\doifelsenothing{\typingparameter\c!color}
{\def\beginofpretty[##1]{\startcolormode{\prettypalet:##1}}%
\let\endofpretty \restorecolormode % \stopcolormode
\let\startverbatimcolor \relax
@@ -930,14 +1080,14 @@
\let\verbatimcolor \relax}
{\def\beginofpretty[##1]{\startcolor[\prettypalet:##1]}%
\let\endofpretty \stopcolor
- \def\startverbatimcolor{\startcolor[\getvalue{#1\c!color}]}%
+ \def\startverbatimcolor{\startcolor[\typingparameter\c!color]}%
\let\stopverbatimcolor \stopcolor
- \def\verbatimcolor {\getvalue{\getvalue{#1\c!color}}}}%
- \doifelsevaluenothing{#1\c!palet}
+ \def\verbatimcolor {\getvalue{\typingparameter\c!color}}}% command !
+ \doifelsenothing{\typingparameter\c!palet}
{\let\prettypalet\empty
\let\endofpretty\relax
\def\beginofpretty[##1]{}}
- {\edef\prettypalet{\prettyidentifier\getvalue{#1\c!palet}}}}
+ {\edef\prettypalet{\prettyidentifier\typingparameter\c!palet}}}
\let\prettypalet \empty
\let\startverbatimcolor\relax
@@ -1080,79 +1230,132 @@
\dodotypefile[\v!file][]{#3}%
\fi\fi}
-\unprotected \def\dosetuptypelinenumbering#1#2%
- {\doifundefined{\??tp#1\c!start}{\setuptyping[#1][\c!start=1,\c!stop=,\c!step=1,\c!nlines=,#2]}%
- \doifelsevalue{\??tp#1\c!numbering}\v!file
- {\setuplinenumbering[\c!method=\v!file]%
+% \def\dosetuptypelinenumbering#1% fuzzy
+% {\doifundefined{\currenttypingclass\currenttyping\c!start}
+% {\setuptyping[\currenttyping][\c!start=1,\c!stop=,\c!step=1,\c!nlines=,#1]}%
+% \doifelse{\typingparameter\c!numbering}\v!file
+% {\setuplinenumbering[\c!method=\v!file]%
+% \donetrue}
+% {\doifelse{\typingparameter\c!numbering}\v!line
+% {% \setuplinenumbering defaults start/step to 1/1, so we need
+% \doifnothing{\typingparameter\c!start }{\settypingparameter\c!start {1}}%
+% \doifnothing{\typingparameter\c!step }{\settypingparameter\c!step {1}}%
+% \doifnothing{\typingparameter\c!continue}{\settypingparameter\c!continue{}}%
+% \setuplinenumbering
+% [\c!method=\v!type,
+% \c!continue=\typingparameter\c!continue,
+% \c!start=\typingparameter\c!start,
+% \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 }%
+% \fi}
+
+\def\dosetuptypelinenumbering#1% fuzzy
+ {\doifundefined{\currenttypingclass\currenttyping\c!start}
+ {\setuptyping[\currenttyping][\c!start=1,\c!stop=,\c!step=1,\c!nlines=]}%
+ \setuptyping[\currenttyping][#1]%
+ \doifelse{\typingparameter\c!numbering}\v!file
+ {% kind of special: filters lines !
+ \setuplinenumbering[\c!method=\v!file]%
\donetrue}
- {\doifelsevalue{\??tp#1\c!numbering}\v!line
+ {\doifelse{\typingparameter\c!numbering}\v!line
{% \setuplinenumbering defaults start/step to 1/1, so we need
- \doifvaluenothing{\??tp#1\c!start}{\setvalue{\??tp#1\c!start}{1}}%
- \doifvaluenothing{\??tp#1\c!step }{\setvalue{\??tp#1\c!step }{1}}%
+ \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=\getvalue{\??tp#1\c!start},
- \c!step=\getvalue{\??tp#1\c!step}]%
+ \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 }%
+ \def\endofverbatimlines {\stoplinenumbering\setxtypingparameter\c!n{\number\linenumber}}%
\fi}
+% \setuptyping % not needed
+% [\v!file]
+% [\c!start=1,
+% \c!stop=,
+% \c!step=1,
+% \c!continue=,
+% \c!nlines=]
+
\setuptyping
- [\v!file]
[\c!start=1,
\c!stop=,
\c!step=1,
+ \c!continue=,
\c!nlines=]
\def\dodotypefile[#1][#2]#3%
- {\getvalue{\??tp#1\c!before}%
+ {\bgroup
+ \let\currenttypingclass\??tp
+ \edef\currenttyping{#1}%
+ \typingparameter\c!before
\doiflocfileelse{#3}
- {\startpacked % includes \bgroup
- \dosetuptypelinenumbering{#1}{#2}%
- \doifinset{\getvalue{\??tp#1\c!option}}{\v!commands,\v!slanted,\v!normal}
+ \donetrue % sets \readfilename
+ {\doifinputfileelse{#3}
+ {\donetrue
+ \def\readfilename{\pathplusfile\filepath{#3}}}
+ \donefalse}%
+ \ifdone
+ \startpacked % includes \bgroup
+ \dosetuptypelinenumbering{#2}%
+ \doifinset{\typingparameter\c!option}{\v!commands,\v!slanted,\v!normal}
{\setuptyping[#1][\c!option=\v!none]}%
- \doifvalue{\??tp#1\c!option}\v!color
+ \doif{\typingparameter\c!option}\v!color
{\expandafter\aftersplitstring#3\at.\to\prettyidentifier
- \letvalue{\??tp#1\c!option}\prettyidentifier}%
- \initializetyping{#1}%
+ \settypingparameter\c!option{\prettyidentifier}}%
+ \initializetyping
\startverbatimcolor
- \makelocreadfilename{#3}%
- \doifundefinedelse{\??tp#3\v!global\c!start}
+ \doifundefinedelse{\currenttypingclass#3\v!global\c!start}
{\scratchcounter\zerocount}
- {\scratchcounter\getvalue{\??tp#3\v!global\c!start}}%
+ {\scratchcounter\getvalue{\currenttypingclass#3\v!global\c!start}}%
\advance\scratchcounter\plusone
- \setxvalue{\??tp#3\v!global\c!start}{\the\scratchcounter}%
- \doifelsevaluenothing{\??tp#1\c!start}
+ \setxvalue{\currenttypingclass#3\v!global\c!start}{\the\scratchcounter}%
+ \doifelsenothing{\typingparameter\c!start}
{\processfileverbatim\readfilename}
- {\doifvalue{\??tp#1\c!start}\v!continue
- {\setevalue{\??tp#1\c!start}%
- {\getvalue{\??tp#3\v!global\c!start}}}%
- \doifelsevaluenothing{\??tp#1\c!stop}
- {\doifelsevaluenothing{\??tp#1\c!nlines}
+ {\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}
{\processfileverbatim\readfilename}
- {\scratchcounter\getvalue{\??tp#1\c!start}%
- \advance\scratchcounter\getvalue{\??tp#1\c!nlines}%
+ {\scratchcounter\typingparameter\c!start
+ \advance\scratchcounter\typingparameter\c!nlines
\advance\scratchcounter\minusone
- \setxvalue{\??tp#3\v!global\c!start}%
+ \setxvalue{\currenttypingclass#3\v!global\c!start}%
{\the\scratchcounter}%
\processfilelinesverbatim\readfilename
- {\getvalue{\??tp#1\c!start}}
- {\getvalue{\??tp#3\v!global\c!start}}}}%
+ {\typingparameter\c!start}
+ {\getvalue{\currenttypingclass#3\v!global\c!start}}}}%
{\processfilelinesverbatim\readfilename
- {\getvalue{\??tp#1\c!start}}
- {\getvalue{\??tp#1\c!stop }}}}%
+ {\typingparameter\c!start}
+ {\typingparameter\c!stop }}}%
\stopverbatimcolor
- \stoppacked} % includes \egroup
- {\ifmmode\hbox\fi\bgroup
+ \stoppacked % includes \egroup
+ \else
+ \ifmmode\hbox\fi\bgroup
\expanded{\convertargument#3}\to\ascii
\tttf[\makemessage\m!verbatims1\ascii]%
\showmessage\m!verbatims1\ascii
- \egroup}%
- \getvalue{\??tp#1\c!after}}
-
+ \egroup
+ \fi
+ \typingparameter\c!after
+ \egroup}
+
%D \macros
%D {filename}
%D
diff --git a/Master/texmf-dist/tex/context/base/enco-032.tex b/Master/texmf-dist/tex/context/base/enco-032.tex
new file mode 100644
index 00000000000..5c8f5fe68ee
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/enco-032.tex
@@ -0,0 +1,82 @@
+%D \module
+%D [ file=enco-032,
+%D version=2006.03.30,
+%D title=\CONTEXT\ Encoding Macros,
+%D subtitle=Unicode Goodies,
+%D author={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.
+
+\unprotect
+
+% unicode table 32 (= hex 20)
+
+\startencoding [default]
+
+ \definecommand unic@threeperemspace {\hskip .33333em }
+ \definecommand unic@fourperemspace {\hskip .25em }
+ \definecommand unic@sixperemspace {\hskip .16667em }
+ \definecommand unic@figurespace {\hphantom{0}}
+ \definecommand unic@punctuationspace {\hphantom{,}}
+ \definecommand unic@hairspace {\hskip .08333em }
+ \definecommand unic@zerowidthspace {\hskip 0em plus 1sp }
+ \definecommand unic@zerowidthjoiner {\kern 0em }
+ \definecommand unic@zerowidthnonjoiner {\hskip 0em }
+
+ \definecommand unic@quotedblleftreversed {\mirror{\quotedblright}}
+ \definecommand unic@quoteleftreversed {\mirror{\quoteright}}
+
+ \definecommand unic@onedotleader {{\periods[1]}}
+ \definecommand unic@twodotleader {{\periods[2]}}
+ \definecommand unic@hyphenationpoint {.\allowbreak }
+
+ \definecommand unic@doubleexclamationmark {!!}
+ \definecommand unic@exclamationquestionmark {!?}
+ \definecommand unic@questionexclamationmark {?!}
+ \definecommand unic@doublequestionmark {??}
+
+ \definecommand unic@reversedpilcrowsign {\mirror{\P}}
+ \definecommand unic@reversedsemicolon {\mirror{;}}
+
+ \definecommand unic@superscriptzero {\high{0}}
+ \definecommand unic@superscripti {\high{i}}
+ \definecommand unic@superscriptfour {\high{4}}
+ \definecommand unic@superscriptfive {\high{5}}
+ \definecommand unic@superscriptsix {\high{6}}
+ \definecommand unic@superscriptseven {\high{7}}
+ \definecommand unic@superscripteight {\high{8}}
+ \definecommand unic@superscriptnine {\high{9}}
+ \definecommand unic@superscriptplus {\high{+}}
+ \definecommand unic@superscriptminus {\high{\textminus}}
+ \definecommand unic@superscriptequals {\high{=}}
+ \definecommand unic@superscriptleft {\high{(}}
+ \definecommand unic@superscriptright {\high{)}}
+ \definecommand unic@superscriptn {\high{n}}
+ \definecommand unic@subscriptzero {\low{0}}
+ \definecommand unic@subscriptone {\low{1}}
+ \definecommand unic@subscripttwo {\low{2}}
+ \definecommand unic@subscriptthree {\low{3}}
+ \definecommand unic@subscriptfour {\low{4}}
+ \definecommand unic@subscriptfive {\low{5}}
+ \definecommand unic@subscriptsix {\low{6}}
+ \definecommand unic@subscriptseven {\low{7}}
+ \definecommand unic@subscripteight {\low{8}}
+ \definecommand unic@subscriptnine {\low{9}}
+ \definecommand unic@subscriptplus {\low{+}}
+ \definecommand unic@subscriptminus {\low{\textminus}}
+ \definecommand unic@subscriptequals {\low{=}}
+ \definecommand unic@subscriptleft {\low{(}}
+ \definecommand unic@subscriptright {\low{)}}
+ \definecommand unic@subscripta {\low{a}}
+ \definecommand unic@subscripte {\low{e}}
+ \definecommand unic@subscripto {\low{o}}
+ \definecommand unic@subscriptx {\low{x}}
+ \definecommand unic@subscriptschwa {\low{\schwa}}
+
+\stopencoding
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/enco-037.tex b/Master/texmf-dist/tex/context/base/enco-037.tex
new file mode 100644
index 00000000000..d9fc653b2c5
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/enco-037.tex
@@ -0,0 +1,276 @@
+%D \module
+%D [ file=enco-037,
+%D version=2006.02.13,
+%D title=\CONTEXT\ \UNICODE\ Macros,
+%D subtitle=Encoding for vector 37,
+%D author=Luigi Scarso,
+%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.
+
+\startencoding[default]
+
+\definecharacter UnicodeLightHorizontal {\uchar{37}{000}} %%BOX DRAWINGS LIGHT HORIZONTAL
+\definecharacter UnicodeHeavyHorizontal {\uchar{37}{001}} %%BOX DRAWINGS HEAVY HORIZONTAL
+\definecharacter UnicodeLightVertical {\uchar{37}{002}} %%BOX DRAWINGS LIGHT VERTICAL
+\definecharacter UnicodeHeavyVertical {\uchar{37}{003}} %%BOX DRAWINGS HEAVY VERTICAL
+\definecharacter UnicodeLightTripleDashHorizontal {\uchar{37}{004}} %%BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL
+\definecharacter UnicodeHeavyTripleDashHorizontal {\uchar{37}{005}} %%BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL
+\definecharacter UnicodeLightTripleDashVertical {\uchar{37}{006}} %%BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL
+\definecharacter UnicodeHeavyTripleDashVertical {\uchar{37}{007}} %%BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL
+\definecharacter UnicodeLightQuadrupleDashHorizontal {\uchar{37}{008}} %%BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL
+\definecharacter UnicodeHeavyQuadrupleDashHorizontal {\uchar{37}{009}} %%BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL
+\definecharacter UnicodeLightQuadrupleDashVertical {\uchar{37}{010}} %%BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL
+\definecharacter UnicodeHeavyQuadrupleDashVertical {\uchar{37}{011}} %%BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL
+\definecharacter UnicodeLightDownAndRight {\uchar{37}{012}} %%BOX DRAWINGS LIGHT DOWN AND RIGHT
+\definecharacter UnicodeDownLightAndRightHeavy {\uchar{37}{013}} %%BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY
+\definecharacter UnicodeDownHeavyAndRightLight {\uchar{37}{014}} %%BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT
+\definecharacter UnicodeHeavyDownAndRight {\uchar{37}{015}} %%BOX DRAWINGS HEAVY DOWN AND RIGHT
+\definecharacter UnicodeLightDownAndLeft {\uchar{37}{016}} %%BOX DRAWINGS LIGHT DOWN AND LEFT
+\definecharacter UnicodeDownLightAndLeftHeavy {\uchar{37}{017}} %%BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY
+\definecharacter UnicodeDownHeavyAndLeftLight {\uchar{37}{018}} %%BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT
+\definecharacter UnicodeHeavyDownAndLeft {\uchar{37}{019}} %%BOX DRAWINGS HEAVY DOWN AND LEFT
+\definecharacter UnicodeLightUpAndRight {\uchar{37}{020}} %%BOX DRAWINGS LIGHT UP AND RIGHT
+\definecharacter UnicodeUpLightAndRightHeavy {\uchar{37}{021}} %%BOX DRAWINGS UP LIGHT AND RIGHT HEAVY
+\definecharacter UnicodeUpHeavyAndRightLight {\uchar{37}{022}} %%BOX DRAWINGS UP HEAVY AND RIGHT LIGHT
+\definecharacter UnicodeHeavyUpAndRight {\uchar{37}{023}} %%BOX DRAWINGS HEAVY UP AND RIGHT
+\definecharacter UnicodeLightUpAndLeft {\uchar{37}{024}} %%BOX DRAWINGS LIGHT UP AND LEFT
+\definecharacter UnicodeUpLightAndLeftHeavy {\uchar{37}{025}} %%BOX DRAWINGS UP LIGHT AND LEFT HEAVY
+\definecharacter UnicodeUpHeavyAndLeftLight {\uchar{37}{026}} %%BOX DRAWINGS UP HEAVY AND LEFT LIGHT
+\definecharacter UnicodeHeavyUpAndLeft {\uchar{37}{027}} %%BOX DRAWINGS HEAVY UP AND LEFT
+\definecharacter UnicodeLightVerticalAndRight {\uchar{37}{028}} %%BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+\definecharacter UnicodeVerticalLightAndRightHeavy {\uchar{37}{029}} %%BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY
+\definecharacter UnicodeUpHeavyAndRightDownLight {\uchar{37}{030}} %%BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT
+\definecharacter UnicodeDownHeavyAndRightUpLight {\uchar{37}{031}} %%BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT
+\definecharacter UnicodeVerticalHeavyAndRightLight {\uchar{37}{032}} %%BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT
+\definecharacter UnicodeDownLightAndRightUpHeavy {\uchar{37}{033}} %%BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY
+\definecharacter UnicodeUpLightAndRightDownHeavy {\uchar{37}{034}} %%BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY
+\definecharacter UnicodeHeavyVerticalAndRight {\uchar{37}{035}} %%BOX DRAWINGS HEAVY VERTICAL AND RIGHT
+\definecharacter UnicodeLightVerticalAndLeft {\uchar{37}{036}} %%BOX DRAWINGS LIGHT VERTICAL AND LEFT
+\definecharacter UnicodeVerticalLightAndLeftHeavy {\uchar{37}{037}} %%BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY
+\definecharacter UnicodeUpHeavyAndLeftDownLight {\uchar{37}{038}} %%BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT
+\definecharacter UnicodeDownHeavyAndLeftUpLight {\uchar{37}{039}} %%BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT
+\definecharacter UnicodeVerticalHeavyAndLeftLight {\uchar{37}{040}} %%BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT
+\definecharacter UnicodeDownLightAndLeftUpHeavy {\uchar{37}{041}} %%BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY
+\definecharacter UnicodeUpLightAndLeftDownHeavy {\uchar{37}{042}} %%BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY
+\definecharacter UnicodeHeavyVerticalAndLeft {\uchar{37}{043}} %%BOX DRAWINGS HEAVY VERTICAL AND LEFT
+\definecharacter UnicodeLightDownAndHorizontal {\uchar{37}{044}} %%BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+\definecharacter UnicodeLeftHeavyAndRightDownLight {\uchar{37}{045}} %%BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT
+\definecharacter UnicodeRightHeavyAndLeftDownLight {\uchar{37}{046}} %%BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT
+\definecharacter UnicodeDownLightAndHorizontalHeavy {\uchar{37}{047}} %%BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY
+\definecharacter UnicodeDownHeavyAndHorizontalLight {\uchar{37}{048}} %%BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT
+\definecharacter UnicodeRightLightAndLeftDownHeavy {\uchar{37}{049}} %%BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY
+\definecharacter UnicodeLeftLightAndRightDownHeavy {\uchar{37}{050}} %%BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY
+\definecharacter UnicodeHeavyDownAndHorizontal {\uchar{37}{051}} %%BOX DRAWINGS HEAVY DOWN AND HORIZONTAL
+\definecharacter UnicodeLightUpAndHorizontal {\uchar{37}{052}} %%BOX DRAWINGS LIGHT UP AND HORIZONTAL
+\definecharacter UnicodeLeftHeavyAndRightUpLight {\uchar{37}{053}} %%BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT
+\definecharacter UnicodeRightHeavyAndLeftUpLight {\uchar{37}{054}} %%BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT
+\definecharacter UnicodeUpLightAndHorizontalHeavy {\uchar{37}{055}} %%BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY
+\definecharacter UnicodeUpHeavyAndHorizontalLight {\uchar{37}{056}} %%BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT
+\definecharacter UnicodeRightLightAndLeftUpHeavy {\uchar{37}{057}} %%BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY
+\definecharacter UnicodeLeftLightAndRightUpHeavy {\uchar{37}{058}} %%BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY
+\definecharacter UnicodeHeavyUpAndHorizontal {\uchar{37}{059}} %%BOX DRAWINGS HEAVY UP AND HORIZONTAL
+\definecharacter UnicodeLightVerticalAndHorizontal {\uchar{37}{060}} %%BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+\definecharacter UnicodeLeftHeavyAndRightVerticalLight {\uchar{37}{061}} %%BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT
+\definecharacter UnicodeRightHeavyAndLeftVerticalLight {\uchar{37}{062}} %%BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT
+\definecharacter UnicodeVerticalLightAndHorizontalHeavy {\uchar{37}{063}} %%BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY
+\definecharacter UnicodeUpHeavyAndDownHorizontalLight {\uchar{37}{064}} %%BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT
+\definecharacter UnicodeDownHeavyAndUpHorizontalLight {\uchar{37}{065}} %%BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT
+\definecharacter UnicodeVerticalHeavyAndHorizontalLight {\uchar{37}{066}} %%BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT
+\definecharacter UnicodeLeftUpHeavyAndRightDownLight {\uchar{37}{067}} %%BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT
+\definecharacter UnicodeRightUpHeavyAndLeftDownLight {\uchar{37}{068}} %%BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT
+\definecharacter UnicodeLeftDownHeavyAndRightUpLight {\uchar{37}{069}} %%BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT
+\definecharacter UnicodeRightDownHeavyAndLeftUpLight {\uchar{37}{070}} %%BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT
+\definecharacter UnicodeDownLightAndUpHorizontalHeavy {\uchar{37}{071}} %%BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY
+\definecharacter UnicodeUpLightAndDownHorizontalHeavy {\uchar{37}{072}} %%BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY
+\definecharacter UnicodeRightLightAndLeftVerticalHeavy {\uchar{37}{073}} %%BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY
+\definecharacter UnicodeLeftLightAndRightVerticalHeavy {\uchar{37}{074}} %%BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY
+\definecharacter UnicodeHeavyVerticalAndHorizontal {\uchar{37}{075}} %%BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
+\definecharacter UnicodeLightDoubleDashHorizontal {\uchar{37}{076}} %%BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL
+\definecharacter UnicodeHeavyDoubleDashHorizontal {\uchar{37}{077}} %%BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL
+\definecharacter UnicodeLightDoubleDashVertical {\uchar{37}{078}} %%BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL
+\definecharacter UnicodeHeavyDoubleDashVertical {\uchar{37}{079}} %%BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
+\definecharacter UnicodeDoubleHorizontal {\uchar{37}{080}} %%BOX DRAWINGS DOUBLE HORIZONTAL
+\definecharacter UnicodeDoubleVertical {\uchar{37}{081}} %%BOX DRAWINGS DOUBLE VERTICAL
+\definecharacter UnicodeDownSingleAndRightDouble {\uchar{37}{082}} %%BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+\definecharacter UnicodeDownDoubleAndRightSingle {\uchar{37}{083}} %%BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+\definecharacter UnicodeDoubleDownAndRight {\uchar{37}{084}} %%BOX DRAWINGS DOUBLE DOWN AND RIGHT
+\definecharacter UnicodeDownSingleAndLeftDouble {\uchar{37}{085}} %%BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+\definecharacter UnicodeDownDoubleAndLeftSingle {\uchar{37}{086}} %%BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+\definecharacter UnicodeDoubleDownAndLeft {\uchar{37}{087}} %%BOX DRAWINGS DOUBLE DOWN AND LEFT
+\definecharacter UnicodeUpSingleAndRightDouble {\uchar{37}{088}} %%BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+\definecharacter UnicodeUpDoubleAndRightSingle {\uchar{37}{089}} %%BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+\definecharacter UnicodeDoubleUpAndRight {\uchar{37}{090}} %%BOX DRAWINGS DOUBLE UP AND RIGHT
+\definecharacter UnicodeUpSingleAndLeftDouble {\uchar{37}{091}} %%BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+\definecharacter UnicodeUpDoubleAndLeftSingle {\uchar{37}{092}} %%BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+\definecharacter UnicodeDoubleUpAndLeft {\uchar{37}{093}} %%BOX DRAWINGS DOUBLE UP AND LEFT
+\definecharacter UnicodeVerticalSingleAndRightDouble {\uchar{37}{094}} %%BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+\definecharacter UnicodeVerticalDoubleAndRightSingle {\uchar{37}{095}} %%BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+\definecharacter UnicodeDoubleVerticalAndRight {\uchar{37}{096}} %%BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+\definecharacter UnicodeVerticalSingleAndLeftDouble {\uchar{37}{097}} %%BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+\definecharacter UnicodeVerticalDoubleAndLeftSingle {\uchar{37}{098}} %%BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+\definecharacter UnicodeDoubleVerticalAndLeft {\uchar{37}{099}} %%BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+\definecharacter UnicodeDownSingleAndHorizontalDouble {\uchar{37}{100}} %%BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+\definecharacter UnicodeDownDoubleAndHorizontalSingle {\uchar{37}{101}} %%BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+\definecharacter UnicodeDoubleDownAndHorizontal {\uchar{37}{102}} %%BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+\definecharacter UnicodeUpSingleAndHorizontalDouble {\uchar{37}{103}} %%BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+\definecharacter UnicodeUpDoubleAndHorizontalSingle {\uchar{37}{104}} %%BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+\definecharacter UnicodeDoubleUpAndHorizontal {\uchar{37}{105}} %%BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+\definecharacter UnicodeVerticalSingleAndHorizontalDouble {\uchar{37}{106}} %%BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+\definecharacter UnicodeVerticalDoubleAndHorizontalSingle {\uchar{37}{107}} %%BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+\definecharacter UnicodeDoubleVerticalAndHorizontal {\uchar{37}{108}} %%BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+\definecharacter UnicodeLightArcDownAndRight {\uchar{37}{109}} %%BOX DRAWINGS LIGHT ARC DOWN AND RIGHT
+\definecharacter UnicodeLightArcDownAndLeft {\uchar{37}{110}} %%BOX DRAWINGS LIGHT ARC DOWN AND LEFT
+\definecharacter UnicodeLightArcUpAndLeft {\uchar{37}{111}} %%BOX DRAWINGS LIGHT ARC UP AND LEFT
+\definecharacter UnicodeLightArcUpAndRight {\uchar{37}{112}} %%BOX DRAWINGS LIGHT ARC UP AND RIGHT
+\definecharacter UnicodeLightDiagonalUpperRightToLowerLeft {\uchar{37}{113}} %%BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
+\definecharacter UnicodeLightDiagonalUpperLeftToLowerRight {\uchar{37}{114}} %%BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
+\definecharacter UnicodeLightDiagonalCross {\uchar{37}{115}} %%BOX DRAWINGS LIGHT DIAGONAL CROSS
+\definecharacter UnicodeLightLeft {\uchar{37}{116}} %%BOX DRAWINGS LIGHT LEFT
+\definecharacter UnicodeLightUp {\uchar{37}{117}} %%BOX DRAWINGS LIGHT UP
+\definecharacter UnicodeLightRight {\uchar{37}{118}} %%BOX DRAWINGS LIGHT RIGHT
+\definecharacter UnicodeLightDown {\uchar{37}{119}} %%BOX DRAWINGS LIGHT DOWN
+\definecharacter UnicodeHeavyLeft {\uchar{37}{120}} %%BOX DRAWINGS HEAVY LEFT
+\definecharacter UnicodeHeavyUp {\uchar{37}{121}} %%BOX DRAWINGS HEAVY UP
+\definecharacter UnicodeHeavyRight {\uchar{37}{122}} %%BOX DRAWINGS HEAVY RIGHT
+\definecharacter UnicodeHeavyDown {\uchar{37}{123}} %%BOX DRAWINGS HEAVY DOWN
+\definecharacter UnicodeLightLeftAndHeavyRight {\uchar{37}{124}} %%BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT
+\definecharacter UnicodeLightUpAndHeavyDown {\uchar{37}{125}} %%BOX DRAWINGS LIGHT UP AND HEAVY DOWN
+\definecharacter UnicodeHeavyLeftAndLightRight {\uchar{37}{126}} %%BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT
+\definecharacter UnicodeHeavyUpAndLightDown {\uchar{37}{127}} %%BOX DRAWINGS HEAVY UP AND LIGHT DOWN
+\definecharacter UnicodeUpperHalfBlock {\uchar{37}{128}} %%UPPER HALF BLOCK
+\definecharacter UnicodeLowerOneEighthBlock {\uchar{37}{129}} %%LOWER ONE EIGHTH BLOCK
+\definecharacter UnicodeLowerOneQuarterBlock {\uchar{37}{130}} %%LOWER ONE QUARTER BLOCK
+\definecharacter UnicodeLowerThreeEighthsBlock {\uchar{37}{131}} %%LOWER THREE EIGHTHS BLOCK
+\definecharacter UnicodeLowerHalfBlock {\uchar{37}{132}} %%LOWER HALF BLOCK
+\definecharacter UnicodeLowerFiveEighthsBlock {\uchar{37}{133}} %%LOWER FIVE EIGHTHS BLOCK
+\definecharacter UnicodeLowerThreeQuartersBlock {\uchar{37}{134}} %%LOWER THREE QUARTERS BLOCK
+\definecharacter UnicodeLowerSevenEighthsBlock {\uchar{37}{135}} %%LOWER SEVEN EIGHTHS BLOCK
+\definecharacter UnicodeFullBlock {\uchar{37}{136}} %%FULL BLOCK
+\definecharacter UnicodeLeftSevenEighthsBlock {\uchar{37}{137}} %%LEFT SEVEN EIGHTHS BLOCK
+\definecharacter UnicodeLeftThreeQuartersBlock {\uchar{37}{138}} %%LEFT THREE QUARTERS BLOCK
+\definecharacter UnicodeLeftFiveEighthsBlock {\uchar{37}{139}} %%LEFT FIVE EIGHTHS BLOCK
+\definecharacter UnicodeLeftHalfBlock {\uchar{37}{140}} %%LEFT HALF BLOCK
+\definecharacter UnicodeLeftThreeEighthsBlock {\uchar{37}{141}} %%LEFT THREE EIGHTHS BLOCK
+\definecharacter UnicodeLeftOneQuarterBlock {\uchar{37}{142}} %%LEFT ONE QUARTER BLOCK
+\definecharacter UnicodeLeftOneEighthBlock {\uchar{37}{143}} %%LEFT ONE EIGHTH BLOCK
+\definecharacter UnicodeRightHalfBlock {\uchar{37}{144}} %%RIGHT HALF BLOCK
+\definecharacter UnicodeLightShade {\uchar{37}{145}} %%LIGHT SHADE
+\definecharacter UnicodeMediumShade {\uchar{37}{146}} %%MEDIUM SHADE
+\definecharacter UnicodeDarkShade {\uchar{37}{147}} %%DARK SHADE
+\definecharacter UnicodeUpperOneEighthBlock {\uchar{37}{148}} %%UPPER ONE EIGHTH BLOCK
+\definecharacter UnicodeRightOneEighthBlock {\uchar{37}{149}} %%RIGHT ONE EIGHTH BLOCK
+\definecharacter UnicodeQuadrantLowerLeft {\uchar{37}{150}} %%[Unassigned U+2596]
+\definecharacter UnicodeQuadrantLowerRight {\uchar{37}{151}} %%[Unassigned U+2597]
+\definecharacter UnicodeQuadrantUpperLeft {\uchar{37}{152}} %%[Unassigned U+2598]
+\definecharacter UnicodeQuadrantUpperLeftAndLowerLeftAndLowerRight {\uchar{37}{153}} %%[Unassigned U+2599]
+\definecharacter UnicodeQuadrantUpperLeftAndLowerRight {\uchar{37}{154}} %%[Unassigned U+259A]
+\definecharacter UnicodeQuadrantUpperLeftAndUpperRightandLowerLeft {\uchar{37}{155}} %%[Unassigned U+259B]
+\definecharacter UnicodeQuadrantUpperLeftAndUpperRightAndLowerRight {\uchar{37}{156}} %%[Unassigned U+259C]
+\definecharacter UnicodeQuadrantUpperRight {\uchar{37}{157}} %%[Unassigned U+259D]
+\definecharacter UnicodeQuadrantUpperRightAndLowerLeft {\uchar{37}{158}} %%[Unassigned U+259E]
+\definecharacter UnicodeQuadrantUpperRightAndLowerLeftAndLowerRight {\uchar{37}{159}} %%[Unassigned U+259F]
+\definecharacter UnicodeBlackSquare {\uchar{37}{160}} %%BLACK SQUARE
+\definecharacter UnicodeWhiteSquare {\uchar{37}{161}} %%WHITE SQUARE
+\definecharacter UnicodeWhiteSquareWithRoundedCorners {\uchar{37}{162}} %%WHITE SQUARE WITH ROUNDED CORNERS
+\definecharacter UnicodeWhiteSquareContainingBlackSmallSquare {\uchar{37}{163}} %%WHITE SQUARE CONTAINING BLACK SMALL SQUARE
+\definecharacter UnicodeSquareWithHorizontalFill {\uchar{37}{164}} %%SQUARE WITH HORIZONTAL FILL
+\definecharacter UnicodeSquareWithVerticalFill {\uchar{37}{165}} %%SQUARE WITH VERTICAL FILL
+\definecharacter UnicodeSquareWithOrthogonalCrosshatchFill {\uchar{37}{166}} %%SQUARE WITH ORTHOGONAL CROSSHATCH FILL
+\definecharacter UnicodeSquareWithUpperLeftToLowerRightFill {\uchar{37}{167}} %%SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL
+\definecharacter UnicodeSquareWithUpperRightToLowerLeftFill {\uchar{37}{168}} %%SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL
+\definecharacter UnicodeSquareWithDiagonalCrosshatchFill {\uchar{37}{169}} %%SQUARE WITH DIAGONAL CROSSHATCH FILL
+\definecharacter UnicodeBlackSmallSquare {\uchar{37}{170}} %%BLACK SMALL SQUARE
+\definecharacter UnicodeWhiteSmallSquare {\uchar{37}{171}} %%WHITE SMALL SQUARE
+\definecharacter UnicodeBlackRectangle {\uchar{37}{172}} %%BLACK RECTANGLE
+\definecharacter UnicodeWhiteRectangle {\uchar{37}{173}} %%WHITE RECTANGLE
+\definecharacter UnicodeBlackVerticalRectangle {\uchar{37}{174}} %%BLACK VERTICAL RECTANGLE
+\definecharacter UnicodeWhiteVerticalRectangle {\uchar{37}{175}} %%WHITE VERTICAL RECTANGLE
+\definecharacter UnicodeBlackParallelogram {\uchar{37}{176}} %%BLACK PARALLELOGRAM
+\definecharacter UnicodeWhiteParallelogram {\uchar{37}{177}} %%WHITE PARALLELOGRAM
+\definecharacter UnicodeBlackUpPointingTriangle {\uchar{37}{178}} %%BLACK UP-POINTING TRIANGLE
+\definecharacter UnicodeWhiteUpPointingTriangle {\uchar{37}{179}} %%WHITE UP-POINTING TRIANGLE
+\definecharacter UnicodeBlackUpPointingSmallTriangle {\uchar{37}{180}} %%BLACK UP-POINTING SMALL TRIANGLE
+\definecharacter UnicodeWhiteUpPointingSmallTriangle {\uchar{37}{181}} %%WHITE UP-POINTING SMALL TRIANGLE
+\definecharacter UnicodeBlackRightPointingTriangle {\uchar{37}{182}} %%BLACK RIGHT-POINTING TRIANGLE
+\definecharacter UnicodeWhiteRightPointingTriangle {\uchar{37}{183}} %%WHITE RIGHT-POINTING TRIANGLE
+\definecharacter UnicodeBlackRightPointingSmallTriangle {\uchar{37}{184}} %%BLACK RIGHT-POINTING SMALL TRIANGLE
+\definecharacter UnicodeWhiteRightPointingSmallTriangle {\uchar{37}{185}} %%WHITE RIGHT-POINTING SMALL TRIANGLE
+\definecharacter UnicodeBlackRightPointingPointer {\uchar{37}{186}} %%BLACK RIGHT-POINTING POINTER
+\definecharacter UnicodeWhiteRightPointingPointer {\uchar{37}{187}} %%WHITE RIGHT-POINTING POINTER
+\definecharacter UnicodeBlackDownPointingTriangle {\uchar{37}{188}} %%BLACK DOWN-POINTING TRIANGLE
+\definecharacter UnicodeWhiteDownPointingTriangle {\uchar{37}{189}} %%WHITE DOWN-POINTING TRIANGLE
+\definecharacter UnicodeBlackDownPointingSmallTriangle {\uchar{37}{190}} %%BLACK DOWN-POINTING SMALL TRIANGLE
+\definecharacter UnicodeWhiteDownPointingSmallTriangle {\uchar{37}{191}} %%WHITE DOWN-POINTING SMALL TRIANGLE
+\definecharacter UnicodeBlackLeftPointingTriangle {\uchar{37}{192}} %%BLACK LEFT-POINTING TRIANGLE
+\definecharacter UnicodeWhiteLeftPointingTriangle {\uchar{37}{193}} %%WHITE LEFT-POINTING TRIANGLE
+\definecharacter UnicodeBlackLeftPointingSmallTriangle {\uchar{37}{194}} %%BLACK LEFT-POINTING SMALL TRIANGLE
+\definecharacter UnicodeWhiteLeftPointingSmallTriangle {\uchar{37}{195}} %%WHITE LEFT-POINTING SMALL TRIANGLE
+\definecharacter UnicodeBlackLeftPointingPointer {\uchar{37}{196}} %%BLACK LEFT-POINTING POINTER
+\definecharacter UnicodeWhiteLeftPointingPointer {\uchar{37}{197}} %%WHITE LEFT-POINTING POINTER
+\definecharacter UnicodeBlackDiamond {\uchar{37}{198}} %%BLACK DIAMOND
+\definecharacter UnicodeWhiteDiamond {\uchar{37}{199}} %%WHITE DIAMOND
+\definecharacter UnicodeWhiteDiamondContainingBlackSmallDiamond {\uchar{37}{200}} %%WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
+\definecharacter UnicodeFisheye {\uchar{37}{201}} %%FISHEYE
+\definecharacter UnicodeLozenge {\uchar{37}{202}} %%LOZENGE
+\definecharacter UnicodeWhiteCircle {\uchar{37}{203}} %%WHITE CIRCLE
+\definecharacter UnicodeDottedCircle {\uchar{37}{204}} %%DOTTED CIRCLE
+\definecharacter UnicodeCircleWithVerticalFill {\uchar{37}{205}} %%CIRCLE WITH VERTICAL FILL
+\definecharacter UnicodeBullseye {\uchar{37}{206}} %%BULLSEYE
+\definecharacter UnicodeBlackCircle {\uchar{37}{207}} %%BLACK CIRCLE
+\definecharacter UnicodeCircleWithLeftHalfBlack {\uchar{37}{208}} %%CIRCLE WITH LEFT HALF BLACK
+\definecharacter UnicodeCircleWithRightHalfBlack {\uchar{37}{209}} %%CIRCLE WITH RIGHT HALF BLACK
+\definecharacter UnicodeCircleWithLowerHalfBlack {\uchar{37}{210}} %%CIRCLE WITH LOWER HALF BLACK
+\definecharacter UnicodeCircleWithUpperHalfBlack {\uchar{37}{211}} %%CIRCLE WITH UPPER HALF BLACK
+\definecharacter UnicodeCircleWithUpperRightQuadrantBlack {\uchar{37}{212}} %%CIRCLE WITH UPPER RIGHT QUADRANT BLACK
+\definecharacter UnicodeCircleWithAllButUpperLeftQuadrantBlack {\uchar{37}{213}} %%CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK
+\definecharacter UnicodeLeftHalfBlackCircle {\uchar{37}{214}} %%LEFT HALF BLACK CIRCLE
+\definecharacter UnicodeRightHalfBlackCircle {\uchar{37}{215}} %%RIGHT HALF BLACK CIRCLE
+\definecharacter UnicodeInverseBullet {\uchar{37}{216}} %%INVERSE BULLET
+\definecharacter UnicodeInverseWhiteCircle {\uchar{37}{217}} %%INVERSE WHITE CIRCLE
+\definecharacter UnicodeUpperHalfInverseWhiteCircle {\uchar{37}{218}} %%UPPER HALF INVERSE WHITE CIRCLE
+\definecharacter UnicodeLowerHalfInverseWhiteCircle {\uchar{37}{219}} %%LOWER HALF INVERSE WHITE CIRCLE
+\definecharacter UnicodeUpperLeftQuadrantCircularArc {\uchar{37}{220}} %%UPPER LEFT QUADRANT CIRCULAR ARC
+\definecharacter UnicodeUpperRightQuadrantCircularArc {\uchar{37}{221}} %%UPPER RIGHT QUADRANT CIRCULAR ARC
+\definecharacter UnicodeLowerRightQuadrantCircularArc {\uchar{37}{222}} %%LOWER RIGHT QUADRANT CIRCULAR ARC
+\definecharacter UnicodeLowerLeftQuadrantCircularArc {\uchar{37}{223}} %%LOWER LEFT QUADRANT CIRCULAR ARC
+\definecharacter UnicodeUpperHalfCircle {\uchar{37}{224}} %%UPPER HALF CIRCLE
+\definecharacter UnicodeLowerHalfCircle {\uchar{37}{225}} %%LOWER HALF CIRCLE
+\definecharacter UnicodeBlackLowerRightTriangle {\uchar{37}{226}} %%BLACK LOWER RIGHT TRIANGLE
+\definecharacter UnicodeBlackLowerLeftTriangle {\uchar{37}{227}} %%BLACK LOWER LEFT TRIANGLE
+\definecharacter UnicodeBlackUpperLeftTriangle {\uchar{37}{228}} %%BLACK UPPER LEFT TRIANGLE
+\definecharacter UnicodeBlackUpperRightTriangle {\uchar{37}{229}} %%BLACK UPPER RIGHT TRIANGLE
+\definecharacter UnicodeWhiteBullet {\uchar{37}{230}} %%WHITE BULLET
+\definecharacter UnicodeSquareWithLeftHalfBlack {\uchar{37}{231}} %%SQUARE WITH LEFT HALF BLACK
+\definecharacter UnicodeSquareWithRightHalfBlack {\uchar{37}{232}} %%SQUARE WITH RIGHT HALF BLACK
+\definecharacter UnicodeSquareWithUpperLeftDiagonalHalfBlack {\uchar{37}{233}} %%SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK
+\definecharacter UnicodeSquareWithLowerRightDiagonalHalfBlack {\uchar{37}{234}} %%SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK
+\definecharacter UnicodeWhiteSquareWithVerticalBisectingLine {\uchar{37}{235}} %%WHITE SQUARE WITH VERTICAL BISECTING LINE
+\definecharacter UnicodeWhiteUpPointingTriangleWithDot {\uchar{37}{236}} %%WHITE UP-POINTING TRIANGLE WITH DOT
+\definecharacter UnicodeUpPointingTriangleWithLeftHalfBlack {\uchar{37}{237}} %%UP-POINTING TRIANGLE WITH LEFT HALF BLACK
+\definecharacter UnicodeUpPointingTriangleWithRightHalfBlack {\uchar{37}{238}} %%UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
+\definecharacter UnicodeLargeCircle {\uchar{37}{239}} %%LARGE CIRCLE
+\definecharacter UnicodeWhiteSquareWithUpperLeftQuadrant {\uchar{37}{240}} %%WHITE SQUARE WITH UPPER LEFT QUADRANT
+\definecharacter UnicodeWhiteSquareWithLowerLeftQuadrant {\uchar{37}{241}} %%WHITE SQUARE WITH LOWER LEFT QUADRANT
+\definecharacter UnicodeWhiteSquareWithLowerRightQuadrant {\uchar{37}{242}} %%WHITE SQUARE WITH LOWER RIGHT QUADRANT
+\definecharacter UnicodeWhiteSquareWithUpperRightQuadrant {\uchar{37}{243}} %%WHITE SQUARE WITH UPPER RIGHT QUADRANT
+\definecharacter UnicodeWhiteCircleWithUpperLeftQuadrant {\uchar{37}{244}} %%WHITE CIRCLE WITH UPPER LEFT QUADRANT
+\definecharacter UnicodeWhiteCircleWithLowerLeftQuadrant {\uchar{37}{245}} %%WHITE CIRCLE WITH LOWER LEFT QUADRANT
+\definecharacter UnicodeWhiteCircleWithLowerRightQuadrant {\uchar{37}{246}} %%WHITE CIRCLE WITH LOWER RIGHT QUADRANT
+\definecharacter UnicodeWhiteCircleWithUpperRightQuadrant {\uchar{37}{247}} %%WHITE CIRCLE WITH UPPER RIGHT QUADRANT
+\definecharacter UnicodeUpperLeftTriangle {\uchar{37}{248}} %%[Unassigned U+25F8]
+\definecharacter UnicodeUpperRightTriangle {\uchar{37}{249}} %%[Unassigned U+25F9]
+\definecharacter UnicodeLowerLeftTriangle {\uchar{37}{250}} %%[Unassigned U+25FA]
+\definecharacter UnicodeWhiteMediumSquare {\uchar{37}{251}} %%[Unassigned U+25FB]
+\definecharacter UnicodeBlackMediumSquare {\uchar{37}{252}} %%[Unassigned U+25FC]
+\definecharacter UnicodeWhiteMediumSmallSquare {\uchar{37}{253}} %%[Unassigned U+25FD]
+\definecharacter UnicodeBlackMediumSmallSquare {\uchar{37}{254}} %%[Unassigned U+25FE]
+\definecharacter UnicodeLowerRightTriangle {\uchar{37}{255}} %%[Unassigned U+25FF]
+
+\stopencoding
+
+\endinput
+
diff --git a/Master/texmf-dist/tex/context/base/enco-agr.tex b/Master/texmf-dist/tex/context/base/enco-agr.tex
index ff53e02ded1..c50f97e518a 100644
--- a/Master/texmf-dist/tex/context/base/enco-agr.tex
+++ b/Master/texmf-dist/tex/context/base/enco-agr.tex
@@ -6,12 +6,26 @@
%D author=Thomas A. Schmitz,
%D date=\currentdate]
+\startmapping[agr]
+
+ \definecasemaps 13 to 64 lc 0 uc 0
+ \definecasemaps 65 to 66 lc +32 uc 0
+ \definecasemaps 67 to 67 lc 0 uc 0
+ \definecasemaps 68 to 85 lc +32 uc 0
+ \definecasemaps 86 to 86 lc 0 uc 0
+ \definecasemaps 87 to 90 lc +32 uc 0
+ \definecasemaps 91 to 255 lc 0 uc 0
+
+\stopmapping
+
\startencoding[agr]
\definecharacter greeksigmalunate 1
\definecharacter endash 2
\definecharacter emdash 3
\definecharacter apostrophe 4
+\definecharacter greekaltbeta 5
+\definecharacter epih 6
\definecharacter textbraceleft 8
\definecharacter textbraceright 9
diff --git a/Master/texmf-dist/tex/context/base/enco-cas.tex b/Master/texmf-dist/tex/context/base/enco-cas.tex
index 61155ee5c3d..38d12f9fa83 100644
--- a/Master/texmf-dist/tex/context/base/enco-cas.tex
+++ b/Master/texmf-dist/tex/context/base/enco-cas.tex
@@ -67,7 +67,7 @@
\defineULcharacter Dstroke dstroke
\defineULcharacter Hstroke hstroke
\defineULcharacter Lstroke lstroke
-\defineULcharacter Lslash lslash % = lstroke
+\defineULcharacter Lslash lslash
\defineULcharacter Ostroke ostroke
\defineULcharacter Tstroke tstroke
@@ -84,11 +84,11 @@
\defineULcharacter Umacron umacron
\defineULcharacter Ccedilla ccedilla
-\defineULcharacter Gcedilla gcedilla % = gcommaaccent
-\defineULcharacter Kcedilla kcedilla % = kcommaaccent
-\defineULcharacter Lcedilla lcedilla % = lcommaaccent
-\defineULcharacter Ncedilla ncedilla % = ncommaaccent
-\defineULcharacter Rcedilla rcedilla % = rcommaaccent
+\defineULcharacter Gcedilla gcedilla
+\defineULcharacter Kcedilla kcedilla
+\defineULcharacter Lcedilla lcedilla
+\defineULcharacter Ncedilla ncedilla
+\defineULcharacter Rcedilla rcedilla
\defineULcharacter Scedilla scedilla
\defineULcharacter Tcedilla tcedilla
diff --git a/Master/texmf-dist/tex/context/base/enco-chi.tex b/Master/texmf-dist/tex/context/base/enco-chi.tex
index 5addd57e93c..9d77893a01a 100644
--- a/Master/texmf-dist/tex/context/base/enco-chi.tex
+++ b/Master/texmf-dist/tex/context/base/enco-chi.tex
@@ -13,13 +13,123 @@
% actually this is also a filter -> enco-fcn.tex
-%D This is an experimental definition. Since we are dealing
-%D with unicode's, the registered values are not saved, so
-%D actually we're dealing with an pseudo encoding. The digits
-%D on the other hand are encoding specific.
+%D This is an experimental definition. Since we are dealing
+%D with unicode's, the registered values are not saved, so
+%D actually we're dealing with an pseudo encoding. The digits
+%D on the other hand are encoding specific.
% chinese classes: left=1|right=2|center=3
-
+
+% untested, probably wrong
+
+\startencoding[cjk-uni]
+
+\defineuclass 1 32 24
+\defineuclass 1 32 28
+\defineuclass 1 48 20
+\defineuclass 1 48 8
+\defineuclass 1 48 10
+\defineuclass 1 48 12
+\defineuclass 1 48 14
+\defineuclass 1 48 22
+\defineuclass 1 48 16
+\defineuclass 1 255 8
+\defineuclass 1 255 59
+\defineuclass 1 255 64
+\defineuclass 1 255 91
+
+\defineuclass 3 0 183
+\defineuclass 3 0 168
+\defineuclass 3 32 38
+\defineuclass 3 255 30
+
+\defineuclass 2 48 1
+\defineuclass 2 48 2
+\defineuclass 2 32 20
+\defineuclass 2 255 94
+\defineuclass 2 32 25
+\defineuclass 2 32 29
+\defineuclass 2 48 21
+\defineuclass 2 48 9
+\defineuclass 2 48 11
+\defineuclass 2 48 13
+\defineuclass 2 48 15
+\defineuclass 2 48 23
+\defineuclass 2 48 17
+\defineuclass 2 34 55
+\defineuclass 2 0 176
+\defineuclass 2 32 50
+\defineuclass 2 32 51
+\defineuclass 2 255 1
+\defineuclass 2 255 2
+\defineuclass 2 255 7
+\defineuclass 2 255 9
+\defineuclass 2 255 12
+\defineuclass 2 255 14
+\defineuclass 2 255 26
+\defineuclass 2 255 27
+\defineuclass 2 255 31
+\defineuclass 2 255 61
+\defineuclass 2 255 93
+
+\defineudigit 0 37 203
+\defineudigit 1 78 0
+\defineudigit 2 78 140
+\defineudigit 3 78 9
+\defineudigit 4 86 219
+\defineudigit 5 78 148
+\defineudigit 6 81 109
+\defineudigit 7 78 3
+\defineudigit 8 81 107
+\defineudigit 9 78 93
+\defineudigit 10 83 65
+\defineudigit 100 118 126
+\defineudigit 1000 83 67
+\defineudigit 10000 78 7
+\defineudigit 100000000 78 191
+
+\defineudigit 0* 150 246
+\defineudigit 1* 88 249
+\defineudigit 2* 141 48
+\defineudigit 3* 83 193
+\defineudigit 4* 128 134
+\defineudigit 5* 79 13
+\defineudigit 6* 150 70
+\defineudigit 7* 103 210
+\defineudigit 8* 99 76
+\defineudigit 9* 115 150
+\defineudigit 10* 98 254
+\defineudigit 100* 79 112
+\defineudigit 1000* 78 223
+\defineudigit 10000* 132 44
+\defineudigit 100000000* 78 191
+
+\defineudigit 20 94 255
+\defineudigit 21 78 0
+\defineudigit 22 78 140
+\defineudigit 23 78 9
+\defineudigit 24 86 219
+\defineudigit 25 78 148
+\defineudigit 26 81 109
+\defineudigit 27 78 3
+\defineudigit 28 81 107
+\defineudigit 29 78 93
+
+\defineudigit 30 83 69
+\defineudigit 31 78 0
+\defineudigit 32 78 140
+\defineudigit 33 78 9
+\defineudigit 34 86 219
+\defineudigit 35 78 148
+\defineudigit 36 81 109
+\defineudigit 37 78 3
+\defineudigit 38 81 107
+\defineudigit 39 78 93
+
+\stopencoding
+
+% \doif \currentregime {utf} \endinput
+
\startencoding[big5]
\defineuclass 1 161 93
@@ -138,7 +248,7 @@
\defineudigit 27 164 67
\defineudigit 28 164 75
\defineudigit 29 164 69
-
+
\defineudigit 30 164 202
\defineudigit 31 164 64
\defineudigit 32 164 71
@@ -258,4 +368,4 @@
\stopencoding
-\endinput
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/enco-def.tex b/Master/texmf-dist/tex/context/base/enco-def.tex
index af59a799c05..c111b6c441a 100644
--- a/Master/texmf-dist/tex/context/base/enco-def.tex
+++ b/Master/texmf-dist/tex/context/base/enco-def.tex
@@ -41,6 +41,8 @@
\definecharacter textring 23
\definecharacter texttilde 126
+\definecharacter textbottomcomma {\hbox{\lower.35ex\hbox{\tx,}}} % for mojca
+
\definecharacter dotlessi {\char"10 }
\definecharacter dotlessj {\char"11 }
\definecharacter dotlessI {I}
@@ -62,8 +64,9 @@
\definecharacter thorn {\unknownchar}
\definecharacter Thorn {\unknownchar}
-\definecharacter eth {\dstroke} % wrong but better that nothing
-\definecharacter Eth {\Dstroke} % wrong but better that nothing
+\definecharacter eth {\unknownchar} % mojca prefers this (was \dstroke)
+%definecharacter Eth {\unknownchar}
+\definecharacter Eth {\Dstroke} % mojca prefers this too
\definecharacter exclamdown 60
\definecharacter questiondown 62
@@ -347,10 +350,12 @@
\definecharacter Oumlaut {\smashaccent\Odiaeresis}
\definecharacter Uumlaut {\smashaccent\Udiaeresis}
-\definecharacter scommaaccent {s\quoteright}
-\definecharacter Scommaaccent {S\quoteright}
-\definecharacter tcommaaccent {t\quoteright}
-\definecharacter Tcommaaccent {T\quoteright}
+\definecharacter scommaaccent {\buildtextbottomcomma s}
+\definecharacter Scommaaccent {\buildtextbottomcomma S}
+\definecharacter tcommaaccent {\buildtextbottomcomma t}
+\definecharacter Tcommaaccent {\buildtextbottomcomma T}
+\definecharacter lcommaaccent {\buildtextbottomcomma l}
+\definecharacter Lcommaaccent {\buildtextbottomcomma L}
\definecharacter Etilde {\buildtextaccent\texttilde E}
\definecharacter etilde {\buildtextaccent\texttilde e}
@@ -414,10 +419,11 @@
\definecharacter udotbelow {\buildtextbottomdot u}
\definecharacter Ydotbelow {\buildtextbottomdot Y}
\definecharacter ydotbelow {\buildtextbottomdot y}
-\definecharacter Ohorndotbelow {\buildtextbottomdot O}
-\definecharacter ohorndotbelow {\buildtextbottomdot o}
-\definecharacter Uhorndotbelow {\buildtextbottomdot U}
-\definecharacter uhorndotbelow {\buildtextbottomdot u}
+
+\definecharacter Ohorndotbelow {\buildtextbottomdot\Ohorn}
+\definecharacter ohorndotbelow {\buildtextbottomdot\ohorn}
+\definecharacter Uhorndotbelow {\buildtextbottomdot\Uhorn}
+\definecharacter uhorndotbelow {\buildtextbottomdot\uhorn}
\definecharacter Acircumflexdotbelow {\buildtextbottomdot\Acircumflex}
\definecharacter acircumflexdotbelow {\buildtextbottomdot\acircumflex}
@@ -451,6 +457,17 @@
\stopencoding
+%D Needed for transliterated chinese (provided by Tobias Burnus).
+
+\startencoding[default]
+
+\definecharacter acaron {\buildtextaccent\textcaron a} % U+01CE
+\definecharacter icaron {\buildtextaccent\textcaron \dotlessi} % U+01D0
+\definecharacter ocaron {\buildtextaccent\textcaron o} % U+01D2
+\definecharacter ucaron {\buildtextaccent\textcaron u} % U+01D4
+
+\stopencoding
+
%D Greek (moved to here):
\startencoding[default]
@@ -682,30 +699,70 @@
\definecharacter cyrillicq {q}
\definecharacter cyrillicw {w}
+\definecharacter cyrillicGJE {\'\cyrillicG}
+\definecharacter cyrillicgje {\'\cyrillicg}
+\definecharacter cyrillicKJE {\'\cyrillicK}
+\definecharacter cyrillickje {\'\cyrillick}
+
\stopencoding
%D Hebrew:
\startencoding[default]
-\definecharacter hebrewAlef {'} \definecharacter hebrewBet {b} \definecharacter hebrewGimel {g} \definecharacter hebrewDalet {d} \definecharacter hebrewHe {h} \definecharacter hebrewVav {w} \definecharacter hebrewZayin {z} \definecharacter hebrewHet {\hstroke} \definecharacter hebrewTet {\tcedilla} \definecharacter hebrewYod {y} \definecharacter hebrewKaffinal {k} \definecharacter hebrewKaf {k} \definecharacter hebrewLamed {l} \definecharacter hebrewMemfinal {m} \definecharacter hebrewMem {m} \definecharacter hebrewNunfinal {n} \definecharacter hebrewNun {n} \definecharacter hebrewSamekh {s} \definecharacter hebrewAyin {\gdotaccent} \definecharacter hebrewPefinal {p} \definecharacter hebrewPe {p} \definecharacter hebrewTsadifinal {\scedilla} \definecharacter hebrewTsadi {\scedilla} \definecharacter hebrewQof {q} \definecharacter hebrewResh {r} \definecharacter hebrewShin {\scaron} \definecharacter hebrewTav {th}
+\definecharacter hebrewAlef {'}
+\definecharacter hebrewBet {b}
+\definecharacter hebrewGimel {g}
+\definecharacter hebrewDalet {d}
+\definecharacter hebrewHe {h}
+\definecharacter hebrewVav {w}
+\definecharacter hebrewZayin {z}
+\definecharacter hebrewHet {\hstroke}
+\definecharacter hebrewTet {\tcedilla}
+\definecharacter hebrewYod {y}
+\definecharacter hebrewKaffinal {k}
+\definecharacter hebrewKaf {k}
+\definecharacter hebrewLamed {l}
+\definecharacter hebrewMemfinal {m}
+\definecharacter hebrewMem {m}
+\definecharacter hebrewNunfinal {n}
+\definecharacter hebrewNun {n}
+\definecharacter hebrewSamekh {s}
+\definecharacter hebrewAyin {\gdotaccent}
+\definecharacter hebrewPefinal {p}
+\definecharacter hebrewPe {p}
+\definecharacter hebrewTsadifinal {\scedilla}
+\definecharacter hebrewTsadi {\scedilla}
+\definecharacter hebrewQof {q}
+\definecharacter hebrewResh {r}
+\definecharacter hebrewShin {\scaron}
+\definecharacter hebrewTav {th}
\stopencoding
%D A few goodies:
-\def\eszett {\ssharp}
-\def\Eszett {\Ssharp}
+\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\lslash{\lstroke}
+\def\Lslash{\Lstroke}
+\def\dslash{\dstroke}
+\def\Dslash{\Dstroke}
+\def\oslash{\ostroke}
+\def\Oslash{\Ostroke}
-\def\dcroat {\dstroke}
-\def\Dcroat {\Dstroke}
+\def\dcroat{\dstroke}
+\def\Dcroat{\Dstroke}
+
+% \startencoding [default]
+%
+% \definecharacter scommaaccent {\scedilla}
+% \definecharacter Scommaaccent {\Scedilla}
+% \definecharacter tcommaaccent {\tcedilla}
+% \definecharacter Tcommaaccent {\Tcedilla}
+%
+% \stopencoding
% for plain tex's sake
@@ -829,4 +886,13 @@
\stopencoding
+%D Also new, from Taco, for Mojca, who wanted another 8~regimes.
+
+\startencoding[\s!default]
+
+\definecharacter texthorizontalbar {{--\kern\zeropoint--}}
+\definecharacter textdong {\underbar{\dstroke}}
+
+\stopencoding
+
\endinput
diff --git a/Master/texmf-dist/tex/context/base/enco-ec.tex b/Master/texmf-dist/tex/context/base/enco-ec.tex
index aa8319e007f..4f1dfed1b8d 100644
--- a/Master/texmf-dist/tex/context/base/enco-ec.tex
+++ b/Master/texmf-dist/tex/context/base/enco-ec.tex
@@ -3,7 +3,7 @@
%D version=2000.05.07, % 1999.16.07,
%D title=\CONTEXT\ Encoding Macros,
%D subtitle=\LATEX\ EC Encoding,
-%D author={Patrick Gundlach, Hans Hagen, Taco Hoekwater},
+%D author={Patrick Gundlach, Hans Hagen, Taco Hoekwater, Mojca Miklavec},
%D date=\currentdate,
%D copyright=PRAGMA-ADE]
%C
@@ -17,30 +17,34 @@
%D
%D Annoyingly, most \POSTSCRIPT\ fonts do not have \type
%D {\dotlessj}, and T1 encoding does not make the various
-%D prebuilts with \type {j} available.
+%D prebuilts with \type {j} available. When this is the case:
%D
+%D \starttyping
+%D \startencoding[ec]
+%D \definecharacter dotlessj {j}
+%D \stopencoding
+%D \stoptyping
+%D
+%D is a way out.
+
%D There is hardly a point in supporting TS1 encoding.
\startmapping[ec]
-\resetcaserange 141 to 141
-\resetcaserange 149 to 149
-\definecasemap 159 to 159
-\resetcaserange 173 to 173
-\resetcaserange 180 to 181
-\resetcaserange 184 to 184
-\resetcaserange 189 to 191
-
-\definecasemap 157 `i 157
-\definecasemap 158 158 `D
+% a problem is that the uppercase of dstroke (158) and eth (240)
+% is the same glyph (208) so we cannot do lowercase mapping there
\definecasemaps 128 to 156 lc +32 uc 0
-\definecasemaps 160 to 188 lc 0 uc -32
-
-\definecasemaps 192 to 222 lc +32 uc 0
+\definecasemap 157 `i 157 % Idotaccent i
+\definecasemap 158 158 208 % dstroke Eth
+\definecasemap 159 159 159 % sectionmark
+\definecasemaps 160 to 187 lc 0 uc -32
+\resetcaserange 189 to 191 % exclamdown, questiondown, textsterling
+\definecasemaps 192 to 223 lc +32 uc 0
\definecasemaps 224 to 254 lc 0 uc -32
+\definecaseswap 255 223 % ssharp (else patterns fail)
-\definecaseswap 255 223
+% 156 vs. 188 IJligature
%D Some languages need this:
@@ -60,17 +64,13 @@
%D explicitly constructed.
%D
%D \startitemize[columns,two]
-%D \item \type{\dotlessj}
+%D \item \type{\dotlessj} - but then it may not be defined!!!!
%D \item \type{\IJligature}
%D \item \type{\ijligature}
%D \item \type{\Ssharp}
%D \item \type{\perthousand}
%D \item \type{\compoundwordmark}
-% %D \item \type{\textvisiblespace}
-% %D \item \type{\tcaron}
-% %D \item \type{\tcedilla }
-% %D \item \type{\Tcedilla}
-% %D \item \type{\ydiaeresis}
+% \item \type{\textvisiblespace}
%D \stopitemize
%D So, for the moment we nil them; we can always create
@@ -80,204 +80,214 @@
\startencoding[ec][ec] % second arg defines auto regime, needed here ?
+\definecharacter textgrave 0
\definecharacter textacute 1
-\definecharacter textbreve 8
-\definecharacter textcaron 7
-\definecharacter textcedilla 11
\definecharacter textcircumflex 2
+\definecharacter texttilde 3
\definecharacter textdiaeresis 4
-\definecharacter textdotaccent 10
-\definecharacter textgrave 0
\definecharacter texthungarumlaut 5
+\definecharacter textring 6
+\definecharacter textcaron 7
+\definecharacter textbreve 8
\definecharacter textmacron 9
+\definecharacter textdotaccent 10
+\definecharacter textcedilla 11
\definecharacter textogonek 12
-\definecharacter textring 6
-\definecharacter texttilde 3
-
-\definecharacter dotlessi 25
-%definecharacter dotlessj 26
-
+\definecharacter quotesinglebase 13
+\definecharacter guilsingleleft 14
+\definecharacter guilsingleright 15
+\definecharacter quotedblleft 16
+\definecharacter quotedblright 17
+\definecharacter quotedblbase 18
+\definecharacter leftguillemot 19
+\definecharacter rightguillemot 20
\definecharacter endash 21
\definecharacter emdash 22
-
-\definecharacter aeligature 230
-\definecharacter AEligature 198
-%definecharacter ijligature 188
-%definecharacter IJligature 156
-\definecharacter oeligature 247
-\definecharacter OEligature 215
-
-\definecharacter ssharp 255
-%definecharacter Ssharp 223
-
-\definecharacter thorn 254
-\definecharacter Thorn 222
-
-%definecharacter Eth 208 % no !
-\definecharacter Dstroke 208
-\definecharacter eth 240
-
-\definecharacter exclamdown 189 % lig
-\definecharacter questiondown 190 % lig
-
-\definecharacter sectionmark 159
-
-\definecharacter textsterling 191
-
-\definecharacter percent 37
-%definecharacter perthousand 24
-
-\definecharacter softhyphen 127 % ?
%definecharacter compoundwordmark 23
-
-\definecharacter textasciicircum 94
-\definecharacter textasciitilde 126
-\definecharacter textbackslash 92
-\definecharacter textbraceleft 123
-\definecharacter textbraceright 125
-\definecharacter textunderscore 95
+%definecharacter perthousand 24
+\definecharacter dotlessi 25 % or when missing: {j}
+\definecharacter dotlessj 26
+% ff 27
+% fi 28
+% fl 29
+% ffi 30
+% ffl 31
%definecharacter textvisiblespace 32
-
+% exclam ! 33
\definecharacter quotedbl 34
-\definecharacter quotedblbase 18
-\definecharacter quotedblleft 16
-\definecharacter quotedblright 17
-
-\definecharacter quotesingle 39 % fake 'm
-\definecharacter quotesinglebase 13
-
-\definecharacter quoteleft 96
+% numbersign # 35
+% dollar $ 36
+\definecharacter percent 37
+% ampersand & 38
+%definecharacter quotesingle 39 % fake 'm TODO:enco-def!!!!
\definecharacter quoteright 39
-
-\definecharacter guilsingleleft 14
-\definecharacter guilsingleright 15
-\definecharacter leftguillemot 19
-\definecharacter rightguillemot 20
-
-\definecharacter aacute 225
-\definecharacter Aacute 193
-\definecharacter cacute 162
-\definecharacter Cacute 130
-\definecharacter eacute 233
-\definecharacter Eacute 201
-\definecharacter iacute 237
-\definecharacter Iacute 205
-\definecharacter lacute 168
-\definecharacter Lacute 136
-\definecharacter Nacute 139
-\definecharacter Oacute 211
-\definecharacter nacute 171
-\definecharacter oacute 243
-\definecharacter racute 175
-\definecharacter Racute 143
-\definecharacter sacute 177
-\definecharacter Sacute 145
-\definecharacter uacute 250
-\definecharacter Uacute 218
-\definecharacter yacute 253
-\definecharacter Yacute 221
-\definecharacter zacute 185
-\definecharacter Zacute 153
-
-\definecharacter abreve 160
-\definecharacter Abreve 128
-\definecharacter gbreve 167
-\definecharacter Gbreve 135
-
-\definecharacter ccaron 163
-\definecharacter Ccaron 131
-\definecharacter dcaron 164
-\definecharacter Dcaron 132
-\definecharacter ecaron 165
-\definecharacter Ecaron 133
-\definecharacter lcaron 169
-\definecharacter Lcaron 137
-\definecharacter ncaron 172
-\definecharacter Ncaron 140
-\definecharacter rcaron 176
-\definecharacter Rcaron 144
-\definecharacter scaron 178
-\definecharacter Scaron 146
-\definecharacter tcaron 180
-\definecharacter Tcaron 148
-\definecharacter zcaron 186
-\definecharacter Zcaron 154
-
-\definecharacter ccedilla 231
-\definecharacter Ccedilla 199
-\definecharacter scedilla 179
-\definecharacter Scedilla 147
-\definecharacter tcedilla 181
-\definecharacter Tcedilla 149
-
-\definecharacter acircumflex 226
-\definecharacter Acircumflex 194
-\definecharacter ecircumflex 234
-\definecharacter Ecircumflex 202
-\definecharacter icircumflex 238
-\definecharacter Icircumflex 206
-\definecharacter ocircumflex 244
-\definecharacter Ocircumflex 212
-\definecharacter ucircumflex 251
-\definecharacter Ucircumflex 219
-
-\definecharacter adiaeresis 228
-\definecharacter Adiaeresis 196
-\definecharacter ediaeresis 235
-\definecharacter Ediaeresis 203
-\definecharacter idiaeresis 239
-\definecharacter Idiaeresis 207
-\definecharacter odiaeresis 246
-\definecharacter Odiaeresis 214
-\definecharacter udiaeresis 252
-\definecharacter Udiaeresis 220
-\definecharacter ydiaeresis 184
-\definecharacter Ydiaeresis 152
-
+% parenleft ( 40
+% parenright ) 41
+% asterisk * 42
+% plus + 43
+% comma , 44
+\definecharacter softhyphen 45
+% period . 46
+% slash / 47
+% 0-9 48-57
+% colon : 58
+% semicolon ; 59
+% less < 60
+% equal = 61
+% greater > 62
+% question ? 63
+% at @ 64
+% A-Z 65-90
+% bracketleft [ 91
+\definecharacter textbackslash 92
+% bracketright ] 93
+\definecharacter textasciicircum 94
+\definecharacter textunderscore 95
+\definecharacter quoteleft 96
+% a-z 97-122
+\definecharacter textbraceleft 123
+\definecharacter textbraceright 125
+\definecharacter textasciitilde 126
+%definecharacter softhyphen 127 % -> 45 (127 often undefined)
+\definecharacter Abreve 128 % abreve 160
+\definecharacter Aogonek 129 % aogonek 161
+\definecharacter Cacute 130 % cacute 162
+\definecharacter Ccaron 131 % ccaron 163
+\definecharacter Dcaron 132 % dcaron 164
+\definecharacter Ecaron 133 % ecaron 165
+\definecharacter Eogonek 134 % eogonek 166
+\definecharacter Gbreve 135 % gbreve 167
+\definecharacter Lacute 136 % lacute 168
+\definecharacter Lcaron 137 % lcaron 169
+\definecharacter Lstroke 138 % lstroke 170
+\definecharacter Nacute 139 % nacute 171
+\definecharacter Ncaron 140 % ncaron 172
+\definecharacter Eng 141 % eng 173
+\definecharacter Neng 141 % Neng 173
+\definecharacter Ohungarumlaut 142 % ohungarumlaut 174
+\definecharacter Racute 143 % racute 175
+\definecharacter Rcaron 144 % rcaron 176
+\definecharacter Sacute 145 % sacute 177
+\definecharacter Scaron 146 % scaron 178
+\definecharacter Scedilla 147 % scedilla 179
+\definecharacter Tcaron 148 % tcaron 180
+\definecharacter Tcedilla 149 % tcedilla 181
+\definecharacter Uhungarumlaut 150 % uhungarumlaut 182
+\definecharacter Uring 151 % uring 183
+\definecharacter Ydiaeresis 152 % ydiaeresis 184
+\definecharacter Zacute 153 % zacute 185
+\definecharacter Zcaron 154 % zcaron 186
+\definecharacter Zdotaccent 155 % zdotaccent 187
+\definecharacter IJligature 156 % ijligature 188
\definecharacter Idotaccent 157
-\definecharacter zdotaccent 187
-\definecharacter Zdotaccent 155
-
-\definecharacter agrave 224
-\definecharacter Agrave 192
-\definecharacter egrave 232
-\definecharacter Egrave 200
-\definecharacter igrave 236
-\definecharacter Igrave 204
-\definecharacter ograve 242
-\definecharacter Ograve 210
-\definecharacter ugrave 249
-\definecharacter Ugrave 217
-
-\definecharacter ohungarumlaut 174
-\definecharacter Ohungarumlaut 142
-\definecharacter uhungarumlaut 182
-\definecharacter Uhungarumlaut 150
-
-%definecharacter dmacron 158 % no !
-\definecharacter dstroke 158
-
-\definecharacter aogonek 161
-\definecharacter Aogonek 129
-\definecharacter eogonek 166
-\definecharacter Eogonek 134
+\definecharacter dstroke 158 % Dstroke 208
+\definecharacter sectionmark 159
+\definecharacter abreve 160 % Abreve 128
+\definecharacter aogonek 161 % Aogonek 129
+\definecharacter cacute 162 % Cacute 130
+\definecharacter ccaron 163 % Ccaron 131
+\definecharacter dcaron 164 % Dcaron 132
+\definecharacter ecaron 165 % Ecaron 133
+\definecharacter eogonek 166 % Eogonek 134
+\definecharacter gbreve 167 % Gbreve 135
+\definecharacter lacute 168 % Lacute 136
+\definecharacter lcaron 169 % Lcaron 137
+\definecharacter lstroke 170 % Lstroke 138
+\definecharacter nacute 171 % Nacute 139
+\definecharacter ncaron 172 % Ncaron 140
+\definecharacter eng 173 % Eng 141
+\definecharacter ohungarumlaut 174 % Ohungarumlaut 142
+\definecharacter racute 175 % Racute 143
+\definecharacter rcaron 176 % Rcaron 144
+\definecharacter sacute 177 % Sacute 145
+\definecharacter scaron 178 % Scaron 146
+\definecharacter scedilla 179 % Scedilla 147
+\definecharacter tcaron 180 % Tcaron 148
+\definecharacter tcedilla 181 % Tcedilla 149
+\definecharacter uhungarumlaut 182 % Uhungarumlaut 150
+\definecharacter uring 183 % Uring 151
+\definecharacter ydiaeresis 184 % Ydiaeresis 152
+\definecharacter zacute 185 % Zacute 153
+\definecharacter zcaron 186 % Zcaron 154
+\definecharacter zdotaccent 187 % Zdotaccent 155
+\definecharacter ijligature 188 % IJligature 156
+\definecharacter exclamdown 189
+\definecharacter questiondown 190
+\definecharacter textsterling 191
+\definecharacter Agrave 192 % agrave 224
+\definecharacter Aacute 193 % aacute 225
+\definecharacter Acircumflex 194 % acircumflex 226
+\definecharacter Atilde 195 % atilde 227
+\definecharacter Adiaeresis 196 % adiaeresis 228
+\definecharacter Aring 197 % aring 229
+\definecharacter AEligature 198 % aeligature 230
+\definecharacter Ccedilla 199 % ccedilla 231
+\definecharacter Egrave 200 % egrave 232
+\definecharacter Eacute 201 % eacute 233
+\definecharacter Ecircumflex 202 % ecircumflex 234
+\definecharacter Ediaeresis 203 % ediaeresis 235
+\definecharacter Igrave 204 % igrave 236
+\definecharacter Iacute 205 % iacute 237
+\definecharacter Icircumflex 206 % icircumflex 238
+\definecharacter Idiaeresis 207 % idiaeresis 239
+\definecharacter Eth 208 % eth 240
+\definecharacter Dstroke 208 % dstroke 158
+\definecharacter Ntilde 209 % ntilde 241
+\definecharacter Ograve 210 % ograve 242
+\definecharacter Oacute 211 % oacute 243
+\definecharacter Ocircumflex 212 % ocircumflex 244
+\definecharacter Otilde 213 % otilde 245
+\definecharacter Odiaeresis 214 % odiaeresis 246
+\definecharacter OEligature 215 % oeligature 247
+\definecharacter Ostroke 216 % ostroke 248
+\definecharacter Ugrave 217 % ugrave 249
+\definecharacter Uacute 218 % uacute 250
+\definecharacter Ucircumflex 219 % ucircumflex 251
+\definecharacter Udiaeresis 220 % udiaeresis 252
+\definecharacter Yacute 221 % yacute 253
+\definecharacter Thorn 222 % thorn 254
+\definecharacter Ssharp 223 % ssharp 255
+\definecharacter agrave 224 % Agrave 192
+\definecharacter aacute 225 % Aacute 193
+\definecharacter acircumflex 226 % Acircumflex 194
+\definecharacter atilde 227 % Atilde 195
+\definecharacter adiaeresis 228 % Adiaeresis 196
+\definecharacter aring 229 % Aring 197
+\definecharacter aeligature 230 % AEligature 198
+\definecharacter ccedilla 231 % Ccedilla 199
+\definecharacter egrave 232 % Egrave 200
+\definecharacter eacute 233 % Eacute 201
+\definecharacter ecircumflex 234 % Ecircumflex 202
+\definecharacter ediaeresis 235 % Ediaeresis 203
+\definecharacter igrave 236 % Igrave 204
+\definecharacter iacute 237 % Iacute 205
+\definecharacter icircumflex 238 % Icircumflex 206
+\definecharacter idiaeresis 239 % Idiaeresis 207
+\definecharacter eth 240 % Eth 208
+\definecharacter ntilde 241 % Ntilde 209
+\definecharacter ograve 242 % Ograve 210
+\definecharacter oacute 243 % Oacute 211
+\definecharacter ocircumflex 244 % Ocircumflex 212
+\definecharacter otilde 245 % Otilde 213
+\definecharacter odiaeresis 246 % Odiaeresis 214
+\definecharacter oeligature 247 % OEligature 215
+\definecharacter ostroke 248 % Ostroke 216
+\definecharacter ugrave 249 % Ugrave 217
+\definecharacter uacute 250 % Uacute 218
+\definecharacter ucircumflex 251 % Ucircumflex 219
+\definecharacter udiaeresis 252 % Udiaeresis 220
+\definecharacter yacute 253 % Yacute 221
+\definecharacter thorn 254 % Thorn 222
+\definecharacter ssharp 255 % Ssharp 223
-\definecharacter aring 229
-\definecharacter Aring 197
-\definecharacter uring 183
-\definecharacter Uring 151
+\stopencoding
-\definecharacter lstroke 170
-\definecharacter Lstroke 138
-\definecharacter ostroke 248
-\definecharacter Ostroke 216
+\startencoding[ec]
-\definecharacter atilde 227
-\definecharacter Atilde 195
-\definecharacter ntilde 241
-\definecharacter Ntilde 209
-\definecharacter otilde 245
-\definecharacter Otilde 213
+\definecharacter Scommaaccent {\Scedilla}
+\definecharacter scommaaccent {\scedilla}
+\definecharacter Tcommaaccent {\Tcedilla}
+\definecharacter tcommaaccent {\tcedilla}
\stopencoding
diff --git a/Master/texmf-dist/tex/context/base/enco-fde.tex b/Master/texmf-dist/tex/context/base/enco-fde.tex
index 92ce7cc96c2..bbefb51bf07 100644
--- a/Master/texmf-dist/tex/context/base/enco-fde.tex
+++ b/Master/texmf-dist/tex/context/base/enco-fde.tex
@@ -11,8 +11,6 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D These definitions used to be part of lang-ger.tex.
-
\unprotect
\startlanguagespecifics[\s!de]
@@ -61,10 +59,13 @@
\startlanguagespecifics[\s!de]
- \installcompoundcharacter "` {\handlequotation\c!leftquotation}
- \installcompoundcharacter "' {\handlequotation\c!rightquotation}
+ \installcompoundcharacter "` {\startdelimitedtext[\v!quotation]}
+ \installcompoundcharacter "' {\stopdelimitedtext}
\installcompoundcharacter ". {\kern.1em\ignorespaces}
+ %installcompoundcharacter "` {\languageparameter\c!leftquotation }
+ %installcompoundcharacter "' {\languageparameter\c!rightquotation}
+
\def\setupDElanguage
{\setuplanguage
[\s!de]
diff --git a/Master/texmf-dist/tex/context/base/enco-ffr.tex b/Master/texmf-dist/tex/context/base/enco-ffr.tex
index f321b100529..1ddd226eebe 100644
--- a/Master/texmf-dist/tex/context/base/enco-ffr.tex
+++ b/Master/texmf-dist/tex/context/base/enco-ffr.tex
@@ -21,12 +21,17 @@
\unprotect
\startlanguagespecifics[\s!fr]
+ \definetextmodediscretionary : {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentmainlanguage{:}:}
+ \definetextmodediscretionary ; {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentmainlanguage{;};}
+ \definetextmodediscretionary ? {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentmainlanguage{?}?}
+ \definetextmodediscretionary ! {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentmainlanguage{!}!}
+\stoplanguagespecifics
+\startlanguagespecifics[\s!fr]
\defineactivecharacter : {\mathortext{:}{\directdiscretionary{:}}}
\defineactivecharacter ; {\mathortext{;}{\directdiscretionary{;}}}
\defineactivecharacter ! {\mathortext{!}{\directdiscretionary{!}}}
\defineactivecharacter ? {\mathortext{?}{\directdiscretionary{?}}}
-
\stoplanguagespecifics
% maybe tricky due to possible name clashes:
diff --git a/Master/texmf-dist/tex/context/base/enco-fpl.tex b/Master/texmf-dist/tex/context/base/enco-fpl.tex
index ec9c81070cc..2f90ad9c7ad 100644
--- a/Master/texmf-dist/tex/context/base/enco-fpl.tex
+++ b/Master/texmf-dist/tex/context/base/enco-fpl.tex
@@ -21,24 +21,24 @@
\appendtoks \makecharacteractive / \to \everynormalcatcodes
- \installcompoundcharacter /a {\k a}
- \installcompoundcharacter /c {\'c}
- \installcompoundcharacter /e {\k e}
- \installcompoundcharacter /l {\l}
- \installcompoundcharacter /n {\'n}
- \installcompoundcharacter /o {\'o}
- \installcompoundcharacter /s {\'s}
- \installcompoundcharacter /x {\'z}
- \installcompoundcharacter /z {\.z}
- \installcompoundcharacter /A {\k A}
- \installcompoundcharacter /C {\'C}
- \installcompoundcharacter /E {\k E}
- \installcompoundcharacter /L {\L}
- \installcompoundcharacter /N {\'N}
- \installcompoundcharacter /O {\'O}
- \installcompoundcharacter /S {\'S}
- \installcompoundcharacter /X {\'Z}
- \installcompoundcharacter /Z {\.Z}
+ \installcompoundcharacter /a {\aogonek}
+ \installcompoundcharacter /c {\cacute}
+ \installcompoundcharacter /e {\eogonek}
+ \installcompoundcharacter /l {\lstroke}
+ \installcompoundcharacter /n {\nacute}
+ \installcompoundcharacter /o {\oacute}
+ \installcompoundcharacter /s {\sacute}
+ \installcompoundcharacter /x {\zacute}
+ \installcompoundcharacter /z {\zdotaccent}
+ \installcompoundcharacter /A {\Aogonek}
+ \installcompoundcharacter /C {\Cacute}
+ \installcompoundcharacter /E {\Eogonek}
+ \installcompoundcharacter /L {\Lstroke}
+ \installcompoundcharacter /N {\Nacute}
+ \installcompoundcharacter /O {\Oacute}
+ \installcompoundcharacter /S {\Sacute}
+ \installcompoundcharacter /X {\Zacute}
+ \installcompoundcharacter /Z {\Zdotaccent}
\stoplanguagespecifics
@@ -62,28 +62,30 @@
\stoplanguagespecifics
-\startlanguagespecifics[\s!pl]
-
- \definesortkey {/a}{a}{a}{\k a}
- \definesortkey {/A}{a}{a}{\k a}
- \definesortkey {/c}{c}{a}{\'c}
- \definesortkey {/C}{c}{a}{\'c}
- \definesortkey {/e}{e}{a}{\k e}
- \definesortkey {/E}{e}{a}{\k e}
- \definesortkey {/l}{l}{a}{\l }
- \definesortkey {/L}{l}{a}{\l }
- \definesortkey {/n}{n}{a}{\'n}
- \definesortkey {/N}{n}{a}{\'n}
- \definesortkey {/o}{o}{a}{\'o}
- \definesortkey {/O}{o}{a}{\'o}
- \definesortkey {/s}{s}{a}{\'s}
- \definesortkey {/S}{s}{a}{\'s}
- \definesortkey {/x}{z}{a}{\'x}
- \definesortkey {/X}{z}{a}{\'x}
- \definesortkey {/z}{z}{b}{\.z}
- \definesortkey {/Z}{z}{b}{\.z}
-
-\stoplanguagespecifics
+% obsolete
+%
+% \startlanguagespecifics[\s!pl]
+%
+% \definesortkey {/a}{a}{a}{\k a}
+% \definesortkey {/A}{a}{a}{\k a}
+% \definesortkey {/c}{c}{a}{\'c}
+% \definesortkey {/C}{c}{a}{\'c}
+% \definesortkey {/e}{e}{a}{\k e}
+% \definesortkey {/E}{e}{a}{\k e}
+% \definesortkey {/l}{l}{a}{\l }
+% \definesortkey {/L}{l}{a}{\l }
+% \definesortkey {/n}{n}{a}{\'n}
+% \definesortkey {/N}{n}{a}{\'n}
+% \definesortkey {/o}{o}{a}{\'o}
+% \definesortkey {/O}{o}{a}{\'o}
+% \definesortkey {/s}{s}{a}{\'s}
+% \definesortkey {/S}{s}{a}{\'s}
+% \definesortkey {/x}{z}{a}{\'x}
+% \definesortkey {/X}{z}{a}{\'x}
+% \definesortkey {/z}{z}{b}{\.z}
+% \definesortkey {/Z}{z}{b}{\.z}
+%
+% \stoplanguagespecifics
\startencoding[pdfdoc]
\startlanguagespecifics[pl]% hm
diff --git a/Master/texmf-dist/tex/context/base/enco-fro.tex b/Master/texmf-dist/tex/context/base/enco-fro.tex
index b811e207e46..f6644402bdd 100644
--- a/Master/texmf-dist/tex/context/base/enco-fro.tex
+++ b/Master/texmf-dist/tex/context/base/enco-fro.tex
@@ -13,7 +13,7 @@
%D These definitions used to be part of lang-ita.tex.
-\unprotect
+\unprotect
\startlanguagespecifics[\s!ro]
@@ -21,13 +21,13 @@
\installcompoundcharacter "i {\icircumflex}
\installcompoundcharacter "s {\scedilla}
\installcompoundcharacter "t {\tcedilla}
- \installcompoundcharacter "A {\Acircumflex}
+ \installcompoundcharacter "A {\Acircumflex}
\installcompoundcharacter "I {\Icircumflex}
\installcompoundcharacter "S {\Scedilla}
\installcompoundcharacter "T {\Tcedilla}
- \installcompoundcharacter "` {\handlequotation\c!leftquotation}
- \installcompoundcharacter "' {\handlequotation\c!rightquotation}
+ \installcompoundcharacter "` {\startdelimitedtext[\v!quotation]}
+ \installcompoundcharacter "' {\stopdelimitedtext}
\stoplanguagespecifics
-\protect \endinput
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/enco-ini.tex b/Master/texmf-dist/tex/context/base/enco-ini.tex
index 2b7c85fcd04..9b78ae18da0 100644
--- a/Master/texmf-dist/tex/context/base/enco-ini.tex
+++ b/Master/texmf-dist/tex/context/base/enco-ini.tex
@@ -115,6 +115,13 @@
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
@@ -203,9 +210,17 @@
\def\trueregimename#1%
{\executeifdefined{\@reg@::#1}{#1}}
+% \def\enableregime[#1]%
+% {\edef\characterregime{@\trueregimename{#1}@}%
+% \ifx\enabledregime\characterregime \else
+% \the\executeifdefined{\@reg@\characterregime}\emptytoks
+% \fi}
+
\def\enableregime[#1]%
{\edef\characterregime{@\trueregimename{#1}@}%
\ifx\enabledregime\characterregime \else
+ \doifundefined{\@reg@\characterregime}
+ {\expanded{\useregime[\pureencodingname\characterregime]}}% auto load
\the\executeifdefined{\@reg@\characterregime}\emptytoks
\fi}
@@ -377,11 +392,11 @@
\def\douseencoding#1%
{\doifundefined{\c!file\f!encodingprefix#1}%
{\letvalue{\c!file\f!encodingprefix#1}\empty
- \makeshortfilename[\f!encodingprefix#1]%
+ \makeshortfilename[\truefilename{\f!encodingprefix#1}]%
\startreadingfile
- \readsysfile\shortfilename
- {\showmessage\m!encodings2{#1}}
- {\showmessage\m!encodings3{#1}}%
+ \readsysfile\shortfilename
+ {\showmessage\m!encodings2{#1}}
+ {\showmessage\m!encodings3{#1}}%
\stopreadingfile}}
\def\useencoding[#1]%
@@ -432,10 +447,12 @@
\def\stopsavingmappingtoks
{\global\mappingtoks\emptytoks
- \dostepwiserecurse{128}{255}\plusone
+ \dostepwiserecurse{0}{255}\plusone
{\edef\@@expanded
{\the\mappingtoks
- \noexpand\checkregimecode\recurselevel\space
+ \ifnum\recurselevel>127
+ \noexpand\checkregimecode\recurselevel\space
+ \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
@@ -751,7 +768,8 @@
{\edef\charactermapping{@#1@}%
\ifx\enabledmapping\charactermapping \else
\doifdefined{\@map@\charactermapping}
- {\the\csname\@map@\charactermapping\endcsname}%
+ {%\expandafter\showthe\csname\@map@\charactermapping\endcsname\endcsname
+ \the\csname\@map@\charactermapping\endcsname}%
% == \the\executeifdefined{\@map@\charactermapping}\emptytoks
\edef\enabledmapping{\charactermapping}%
\enablelanguagespecifics[\currentlanguage]% new
@@ -929,43 +947,17 @@
\def\startencoding
{\dodoubleempty\dostartencoding}
-% \def\dostartencoding[#1][#2]% encoding regime
-% {\doifelsenothing{#1}
-% {\let\stopencoding\relax}
-% {%\protectfontcharacters % problematic in language loading
-% %\showmessage\m!encodings1{#1}%
-% \pushmacro\dohandleaccent % still needed?
-% \pushmacro\dohandlecommand % still needed?
-% \pushmacro\definesortkey
-% \pushmacro\characterregime
-% \pushmacro\doautosetregime
-% \let\dohandleaccent\donthandleaccent % still needed?
-% \let\dohandlecommand\donthandlecommand % still needed?
-% \let\definesortkey\savesortkey
-% \doifelsenothing{#2}%
-% {\let\doautosetregime\gobbletwoarguments}
-% {\def\characterregime{@#2@}}%
-% \enableencoding[#1]%
-% \def\stopencoding%
-% {\popmacro\doautosetregime
-% \popmacro\characterregime
-% \popmacro\definesortkey
-% \popmacro\dohandlecommand % still needed?
-% \popmacro\dohandleaccent % still needed?
-% \enableencoding[\s!default]%
-% }}}% \unprotectfontcharacters}}} % ??
-
\def\dostartencoding[#1][#2]% encoding regime
{%\showmessage\m!encodings1{#1}%
\pushmacro\characterencoding
\pushmacro\characterregime
\pushmacro\dohandleaccent % still needed?
\pushmacro\dohandlecommand % still needed?
- \pushmacro\definesortkey
+ %pushmacro\definesortkey
\pushmacro\doautosetregime
\let\dohandleaccent\donthandleaccent % still needed?
\let\dohandlecommand\donthandlecommand % still needed?
- \let\definesortkey\savesortkey
+ %let\definesortkey\savesortkey
\edef\characterencoding{@#1@}%
\doifelsenothing{#2}%
{\let\doautosetregime\gobbletwoarguments}
@@ -973,7 +965,7 @@
\def\stopencoding
{\popmacro\doautosetregime
- \popmacro\definesortkey
+ %popmacro\definesortkey
\popmacro\dohandlecommand % still needed?
\popmacro\dohandleaccent % still needed?
\popmacro\characterregime
@@ -1018,27 +1010,34 @@
%D This mechanism is currently being tested and subjected to
%D changes!
-\def\savesortkey#1#2#3#4%
- {\let\flushsortkey\relax % important
- \edef\!!stringa{sort:\characterencoding}%
- \ifundefined\!!stringa
- \let\!!stringb\empty
- \else
- \@EA\def\@EA\!!stringb\@EA{\csname\!!stringa\endcsname}%
- \fi
- \convertargument#1\to\asciiA \convertargument#2\to\asciiB
- \convertargument#3\to\asciiC \convertargument#4\to\asciiD
- \setevalue{\!!stringa}%
- {\!!stringb\flushsortkey{\asciiA}{\asciiB}{\asciiC}{\asciiD}}}
-
-\def\definesortkey#1#2#3#4%
- {}
+%D THS CODE IS OBSOLETE
-\def\flushsortkeys
- {\enablelanguagespecifics[\currentlanguage]%
- \getvalue{sort:\characterencoding}}
+% \def\savesortkey#1#2#3#4%
+% {\let\flushsortkey\relax % important
+% \edef\!!stringa{sort:\characterencoding}%
+% \ifundefined\!!stringa
+% \let\!!stringb\empty
+% \else
+% \@EA\def\@EA\!!stringb\@EA{\csname\!!stringa\endcsname}%
+% \fi
+% \convertargument#1\to\asciiA \convertargument#2\to\asciiB
+% \convertargument#3\to\asciiC \convertargument#4\to\asciiD
+% \setevalue{\!!stringa}%
+% {\!!stringb\flushsortkey{\asciiA}{\asciiB}{\asciiC}{\asciiD}}}
+%
+% \def\definesortkey#1#2#3#4%
+% {}
+%
+% \def\flushsortkeys
+% {\enablelanguagespecifics[\currentlanguage]%
+% \getvalue{sort:\characterencoding}}
+%
+% \let\flushsortkey \relax
-\let\flushsortkey\relax
+\let\definesortkey\gobblefourarguments
+\let\savesortkey \gobblefourarguments
+\let\flushsortkeys\relax
+\let\flushsortkey \relax
%D \macros
%D {defineaccent, definecharacter, definecommand}
@@ -1125,6 +1124,7 @@
\else
\enablepatterntokens
\fi
+ \let\dochar\thechr
\lccode16=16 % brrr, extra quote in ec (turkish)
\lccode17=17 % brrr, extra quote in ec (turkish)
\lccode`\-=`\-
@@ -1172,13 +1172,23 @@
% \doautosetregime{#1}{#2}}
% {\setvalue{\characterprefix\characterencoding\string#1}{#2}}}
-\def\numcharacter#1{\char#1 }
-\let\dochar\numcharacter
+% \def\numcharacter#1{\char#1 }
+% \let\dochar\numcharacter
+
+ \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}
\doifnumberelse{\string#2}
- {\setevalue{\characterprefix\characterencoding\string#1}{\dochar{#2}}%
+ {\setvalue{\characterprefix\characterencoding\string#1}{\dochar{#2}}%
\doautosetregime{#1}{#2}}
{\setvalue{\characterprefix\characterencoding\string#1}{#2}}}
@@ -1458,11 +1468,13 @@
%D When we show 'm, we don't want to see the protection
%D measures.
-\def\currentencoding{\@EA\docurrentencoding\characterencoding}
-\def\currentregime {\@EA\docurrentencoding\characterregime }
-\def\currentmapping {\@EA\docurrentencoding\charactermapping }
+\def\currentencoding{\@EA\dopureencodingname\characterencoding}
+\def\currentregime {\@EA\dopureencodingname\characterregime }
+\def\currentmapping {\@EA\dopureencodingname\charactermapping }
+
+\def\dopureencodingname @#1@{#1}
-\def\docurrentencoding @#1@{#1}
+\def\pureencodingname#1{\@EA\dopureencodingname#1}
%D \macros
%D {showaccents, showcharacters,
@@ -1647,7 +1659,19 @@
%D The next few macros are experimental and needed for unicoded
%D chinese characters.
-\def\defineuclass #1 #2 #3 {\setvalue{uc#2#3}{#1}}
+\beginETEX
+ \def\defineuclass #1 #2 #3 %
+ {\setvalue{uc\the\numexpr#2*256+#3\relax}{#1}}
+\endETEX
+
+\beginTEX
+ \def\defineuclass #1 #2 #3 %
+ {\scratchcounter256\relax
+ \multiply\scratchcounter#2\relax
+ \advance\scratchcounter#3\relax
+ \setvalue{uc\the\scratchcounter}{#1}}
+\endTEX
+
\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
@@ -1848,6 +1872,10 @@
\definecommand d {\buildtextbottomdot}
\definecommand k {\buildtextogonek}
+%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
@@ -1921,15 +1949,27 @@
% new, to be documented (oeps, conflicts with existing code)
+\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\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\keepencodedtokens
{\let\dohandleaccent \keephandleaccent
\let\dohandlecommand \keephandlecommand
@@ -1940,13 +1980,10 @@
% \let\dohandlecommand \keephandlecommand
\let\dohandlecharacter\keephandlecharacter}
-\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\stringifyencodedtokens
+ {% \let\dohandleaccent \stringifyhandleaccent
+ % \let\dohandlecommand \stringifyhandlecommand
+ \let\dohandlecharacter\stringifyhandlecharacter}
\unexpanded\def\uhandleaccent #1{\csname#1\endcsname}
\unexpanded\def\uhandlecommand #1{\csname#1\endcsname}
@@ -1957,17 +1994,19 @@
\def\dohandlecommand {\uhandlecommand}%
\def\dohandlecharacter{\uhandlecharacter}}
+\def\convertencodedtokens{\dontexpandencoding}
+
%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}
-\def\doignoreaccent #1#2{\string#1\string#2}%
-\def\doignorecommand #1{\string#1}
-\def\doignorecharacter#1{\string#1}
-
\appendtoks
\ignoreencoding
\to \everycleanupfeatures
@@ -1985,7 +2024,9 @@
\useencoding[def,acc,raw,com,cas,mis] % mis should come first
-\useencoding[ans,il2,ec,tbo,pdf,uc,pol,qx,t5,cyr]
+\useencoding[ans,il2,ec,tbo,pdf,uc,pol,qx,t5,cyr,agr] % pol and il2 will go away
+
+\useencoding[032,033,037]
\setupencoding[\s!default=ec] % was: [\s!default=\s!default]
diff --git a/Master/texmf-dist/tex/context/base/enco-mis.tex b/Master/texmf-dist/tex/context/base/enco-mis.tex
index b089fe5695a..d3e5b7883cd 100644
--- a/Master/texmf-dist/tex/context/base/enco-mis.tex
+++ b/Master/texmf-dist/tex/context/base/enco-mis.tex
@@ -143,18 +143,18 @@
% perthings
-\def\fakeperthousand
- {\mathematics{^{\scriptscriptstyle0}\kern-.25em/\kern-.2em_{\scriptscriptstyle00}}}
-
\def\fakepercent
{\mathematics{^{\scriptscriptstyle0}\kern-.25em/\kern-.2em_{\scriptscriptstyle0}}}
+\def\fakeperthousand
+ {\mathematics{^{\scriptscriptstyle0}\kern-.25em/\kern-.2em_{\scriptscriptstyle00}}}
+
\def\fakepermine
{\dontleavehmode
\bgroup
- \setbox0\hbox
+ \setbox\scratchbox\hbox
{\mathematics{+}}%
- \hbox to \wd0
+ \hbox to \wd\scratchbox
{\hss
\mathematics{^{\scriptscriptstyle-}\kern-.4em/\kern-.3em_{\scriptscriptstyle-}}%
\hss}%
@@ -214,7 +214,9 @@
\ifx\mathunderscore\undefined \let\mathunderscore\fakeunderscore \fi
\ifx\textunderscore\undefined \let\textunderscore\fakeunderscore \fi
-\def\_{\ifmmode\mathunderscore\else\textunderscore\fi}
+\unexpanded\def\normalunderscore{\ifmmode\mathunderscore\else\textunderscore\fi}
+
+\let\_\normalunderscore
% Handy but obsolete, replaced by \unknownchar:
%
diff --git a/Master/texmf-dist/tex/context/base/enco-pfr.tex b/Master/texmf-dist/tex/context/base/enco-pfr.tex
index 9507d9e4e5b..a74a8c6a72a 100644
--- a/Master/texmf-dist/tex/context/base/enco-pfr.tex
+++ b/Master/texmf-dist/tex/context/base/enco-pfr.tex
@@ -137,6 +137,8 @@
% {\doif{#1}\currentencoding
% {\immediate\pdfobj useobjnum \getvalue{\pdffontresource} stream {#2}}}
+% alternatively we can use object references
+
\long\def\startpdffontresource[#1]#2\stoppdffontresource
{\doif{#1}\currentencoding{\doifdefined\pdffontresource
{\immediate\pdfobj useobjnum \getvalue{\pdffontresource} stream {#2}}}}
@@ -151,20 +153,33 @@
\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
{\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
+ \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}
\def\dododoincludepdffontresource#1% encoding
{\bgroup
- \def\currentencoding{#1}%
+ \edef\currentencoding{#1}%
\doifvaluesomething\pdffontfileresource
{\startreadingfile
\readsysfile{pdfr-\getvalue\pdffontfileresource}\donothing\donothing
@@ -190,9 +205,10 @@
\doifsomething\pdffontfileresource
{\pdfobj reserveobjnum {}%
\setxvalue\pdffontresource{\the\pdflastobj}%
- \doglobal\appendetoks
- \noexpand\dododoincludepdffontresource{\currentencoding}%
- \to \everybeforeshipout}% prevent multiple loading
+ \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}}%
@@ -216,9 +232,10 @@
\doifsomething\pdffontfileresource
{\pdfobj reserveobjnum {}%
\setxvalue\pdffontresource{\the\pdflastobj}%
- \doglobal\appendetoks
- \noexpand\dododoincludepdffontresource{\currentencoding}%
- \to \everybeforeshipout}% prevent multiple loading
+ \flushatshipout{\dododoincludepdffontresource{\currentencoding}}}%
+% \doglobal\appendetoks
+% \noexpand\dododoincludepdffontresource{\currentencoding}%
+% \to \everybeforeshipout}% prevent multiple loading
\fi
\fi
\expandafter\ifx\csname\pdffontresource\endcsname\relax\else
diff --git a/Master/texmf-dist/tex/context/base/enco-pol.tex b/Master/texmf-dist/tex/context/base/enco-pol.tex
index d9f49a2dc6b..a012f03708c 100644
--- a/Master/texmf-dist/tex/context/base/enco-pol.tex
+++ b/Master/texmf-dist/tex/context/base/enco-pol.tex
@@ -98,29 +98,31 @@
\stopencoding
-\startencoding[pl0]
-
-\definesortkey {161} {a}{a}{\k a} \definesortkey {129} {a}{a}{\k a}
-\definesortkey {162} {c}{a}{\'c} \definesortkey {130} {c}{a}{\'c}
-\definesortkey {166} {e}{a}{\k e} \definesortkey {134} {e}{a}{\k e}
-\definesortkey {170} {l}{a}{\l } \definesortkey {138} {l}{a}{\l }
-\definesortkey {171} {n}{a}{\'n} \definesortkey {139} {n}{a}{\'n}
-\definesortkey {177} {s}{a}{\'s} \definesortkey {145} {s}{a}{\'s}
-\definesortkey {185} {z}{a}{\'z} \definesortkey {153} {z}{a}{\'z}
-\definesortkey {187} {z}{b}{\.z} \definesortkey {155} {z}{b}{\.z}
-\definesortkey {243} {o}{a}{\'o} \definesortkey {211} {o}{a}{\'o}
-
-\definesortkey {\'c} {c}{a}{\'c} \definesortkey {\'C} {c}{a}{\'c}
-\definesortkey {\'n} {n}{a}{\'n} \definesortkey {\'N} {n}{a}{\'n}
-\definesortkey {\'o} {o}{a}{\'o} \definesortkey {\'O} {o}{a}{\'o}
-\definesortkey {\'s} {s}{a}{\'s} \definesortkey {\'S} {s}{a}{\'s}
-\definesortkey {\'z} {z}{a}{\'z} \definesortkey {\'Z} {z}{a}{\'z}
-\definesortkey {\.z} {z}{b}{\.z} \definesortkey {\.Z} {z}{b}{\.z}
-\definesortkey {\k a}{a}{a}{\k a} \definesortkey {\k A}{a}{a}{\k a}
-\definesortkey {\k e}{e}{a}{\k e} \definesortkey {\k E}{e}{a}{\k e}
-\definesortkey {\l } {l}{a}{\l} \definesortkey {\L } {l}{a}{\l}
-
-\stopencoding
+% obsolete
+%
+% \startencoding[pl0]
+%
+% \definesortkey {161} {a}{a}{\k a} \definesortkey {129} {a}{a}{\k a}
+% \definesortkey {162} {c}{a}{\'c} \definesortkey {130} {c}{a}{\'c}
+% \definesortkey {166} {e}{a}{\k e} \definesortkey {134} {e}{a}{\k e}
+% \definesortkey {170} {l}{a}{\l } \definesortkey {138} {l}{a}{\l }
+% \definesortkey {171} {n}{a}{\'n} \definesortkey {139} {n}{a}{\'n}
+% \definesortkey {177} {s}{a}{\'s} \definesortkey {145} {s}{a}{\'s}
+% \definesortkey {185} {z}{a}{\'z} \definesortkey {153} {z}{a}{\'z}
+% \definesortkey {187} {z}{b}{\.z} \definesortkey {155} {z}{b}{\.z}
+% \definesortkey {243} {o}{a}{\'o} \definesortkey {211} {o}{a}{\'o}
+%
+% \definesortkey {\'c} {c}{a}{\'c} \definesortkey {\'C} {c}{a}{\'c}
+% \definesortkey {\'n} {n}{a}{\'n} \definesortkey {\'N} {n}{a}{\'n}
+% \definesortkey {\'o} {o}{a}{\'o} \definesortkey {\'O} {o}{a}{\'o}
+% \definesortkey {\'s} {s}{a}{\'s} \definesortkey {\'S} {s}{a}{\'s}
+% \definesortkey {\'z} {z}{a}{\'z} \definesortkey {\'Z} {z}{a}{\'z}
+% \definesortkey {\.z} {z}{b}{\.z} \definesortkey {\.Z} {z}{b}{\.z}
+% \definesortkey {\k a}{a}{a}{\k a} \definesortkey {\k A}{a}{a}{\k a}
+% \definesortkey {\k e}{e}{a}{\k e} \definesortkey {\k E}{e}{a}{\k e}
+% \definesortkey {\l } {l}{a}{\l} \definesortkey {\L } {l}{a}{\l}
+%
+% \stopencoding
%D Polish CP-1250 encoding.
diff --git a/Master/texmf-dist/tex/context/base/enco-run.tex b/Master/texmf-dist/tex/context/base/enco-run.tex
index 8622a238802..f27b6593757 100644
--- a/Master/texmf-dist/tex/context/base/enco-run.tex
+++ b/Master/texmf-dist/tex/context/base/enco-run.tex
@@ -127,11 +127,12 @@
\gdef\showhyphenations#1%
{\starttabulate[|le|l|]
- \NC language \NC \currentlanguage (code:\the\normallanguage) \NC \NR
- \NC font \NC \fontname\font \NC \NR
- \NC encoding \NC \currentencoding \NC \NR
- \NC mapping \NC \currentencoding \NC \NR
- \NC sample \NC \hyphenatedword{#1} \NC \NR
+ \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
diff --git a/Master/texmf-dist/tex/context/base/filt-ini.tex b/Master/texmf-dist/tex/context/base/filt-ini.tex
index ec4fa257b76..d6e03f9684a 100644
--- a/Master/texmf-dist/tex/context/base/filt-ini.tex
+++ b/Master/texmf-dist/tex/context/base/filt-ini.tex
@@ -58,6 +58,12 @@
2: filtro sconosciuto --
\stopmessages
+\startmessages french library: filters
+ title: filtre
+ 1: le filtre -- est chargé
+ 2: filtre -- inconnu
+\stopmessages
+
%D \macros
%D {definefiltersynonym}
@@ -129,11 +135,11 @@
\def\dousefilter#1%
{\doifundefined{\c!file\f!filterprefix#1}%
{\letvalue{\c!file\f!filterprefix#1}\empty
- \makeshortfilename[\f!filterprefix#1]%
+ \makeshortfilename[\truefilename{\f!filterprefix#1}]%
\startreadingfile
- \readsysfile\shortfilename
- {\showmessage\m!filters1{#1}}
- {\showmessage\m!filters2{#1}}%
+ \readsysfile\shortfilename
+ {\showmessage\m!filters1{#1}}
+ {\showmessage\m!filters2{#1}}%
\stopreadingfile}}
\def\usefilter[#1]%
diff --git a/Master/texmf-dist/tex/context/base/font-chi.tex b/Master/texmf-dist/tex/context/base/font-chi.tex
index 7a602d4ab83..cf30470d7e5 100644
--- a/Master/texmf-dist/tex/context/base/font-chi.tex
+++ b/Master/texmf-dist/tex/context/base/font-chi.tex
@@ -12,8 +12,16 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\ifx\handlechineseunicodeglyph\undefined \else \endinput \fi
+
% NOT YET ADAPTED TO THE NEW FONT MACROS
+%D The first implementation (most of which is here) is based on
+%D the specific font layout. This is because not all glyphs are
+%D available in uniciode, which means that we cannot use
+%D unicode codepoints (yet); if it were possible we could use
+%D just one table per input encoding.
+
\writestatus{loading}{Context Font Macros / Chinese}
% much will to typo-chi.tex
@@ -36,7 +44,6 @@
%M \def\WangLei{\purechinese{\uchar{205}{245}\uchar{192}{218}}}
\useencoding[chi]
-\loadmapfile[gbk]
%D When \WangLei\ sent me a mail asking if \CONTEXT\ was able
%D to support Chinese, I wasn't sure if the answer could be
@@ -106,11 +113,13 @@
%D There are a few variables, that can be (re|)|set
%D depending on the current font. They default to:
+% hm, why don't we use the normal unicodestrut mechanism?
+
\def\chineseunicodescale {1.00} % not smaller than .85
\def\chineseunicodeheight {1.00}
\def\chineseunicodedepth {1.00}
-\def\chineseinterglyphskip{0pt plus .05em minus .01em}
-\def\chinesesurroundskip {.25em plus .15em minus .05em}
+\def\chineseinterglyphskip{0pt \!!plus .05em \!!minus .01em}
+\def\chinesesurroundskip {.25em \!!plus .15em \!!minus .05em}
%D We define a few signals. As said, another example of
%D using signals can be found in the module \type {m-units}.
@@ -154,90 +163,30 @@
\horizontalchineseunicodeglyph
\fi\fi}
-% This is a previous, very encoding specific, attempt. The
-% current implementation is more versatile.
-%
-% \starttypen
-% \def\chineseleftglyph {\chardef\chineseSstatus=1 }
-% \def\chineserightglyph {\chardef\chineseSstatus=2 }
-% \def\chinesecenterglyph {\chardef\chineseSstatus=3 }
-%
-% \def\analyzechineseunicodeglyph%
-% {% left
-% \ifnum\unicodeposition=161174 \chineseleftglyph \else
-% \ifnum\unicodeposition=161176 \chineseleftglyph \else
-% \ifnum\unicodeposition=161178 \chineseleftglyph \else
-% \ifnum\unicodeposition=161180 \chineseleftglyph \else
-% \ifnum\unicodeposition=161182 \chineseleftglyph \else
-% \ifnum\unicodeposition=161184 \chineseleftglyph \else
-% \ifnum\unicodeposition=161186 \chineseleftglyph \else
-% \ifnum\unicodeposition=161188 \chineseleftglyph \else
-% \ifnum\unicodeposition=161190 \chineseleftglyph \else
-% \ifnum\unicodeposition=163168 \chineseleftglyph \else
-% \ifnum\unicodeposition=163219 \chineseleftglyph \else
-% \ifnum\unicodeposition=163224 \chineseleftglyph \else
-% \ifnum\unicodeposition=163251 \chineseleftglyph \else
-% % right
-% \ifnum\unicodeposition=161162 \chineserightglyph \else
-% \ifnum\unicodeposition=161163 \chineserightglyph \else
-% \ifnum\unicodeposition=161175 \chineserightglyph \else
-% \ifnum\unicodeposition=161177 \chineserightglyph \else
-% \ifnum\unicodeposition=161179 \chineserightglyph \else
-% \ifnum\unicodeposition=161181 \chineserightglyph \else
-% \ifnum\unicodeposition=161183 \chineserightglyph \else
-% \ifnum\unicodeposition=161185 \chineserightglyph \else
-% \ifnum\unicodeposition=161187 \chineserightglyph \else
-% \ifnum\unicodeposition=161189 \chineserightglyph \else
-% \ifnum\unicodeposition=161191 \chineserightglyph \else
-% \ifnum\unicodeposition=161227 \chineserightglyph \else
-% \ifnum\unicodeposition=161228 \chineserightglyph \else
-% \ifnum\unicodeposition=161229 \chineserightglyph \else
-% \ifnum\unicodeposition=163161 \chineserightglyph \else
-% \ifnum\unicodeposition=163162 \chineserightglyph \else
-% \ifnum\unicodeposition=163167 \chineserightglyph \else
-% \ifnum\unicodeposition=163169 \chineserightglyph \else
-% \ifnum\unicodeposition=163172 \chineserightglyph \else
-% \ifnum\unicodeposition=163174 \chineserightglyph \else
-% \ifnum\unicodeposition=163186 \chineserightglyph \else
-% \ifnum\unicodeposition=163187 \chineserightglyph \else
-% \ifnum\unicodeposition=163191 \chineserightglyph \else
-% \ifnum\unicodeposition=163221 \chineserightglyph \else
-% \ifnum\unicodeposition=163253 \chineserightglyph \else
-% % center
-% \ifnum\unicodeposition=161164 \chinesecenterglyph \else
-% \ifnum\unicodeposition=161167 \chinesecenterglyph \else
-% \ifnum\unicodeposition=161173 \chinesecenterglyph \else
-% \ifnum\unicodeposition=163190 \chinesecenterglyph \else
-% % unknown
-% \chardef\chineseSstatus=0
-% \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\fi \fi\fi\fi\fi\fi \fi\fi\fi\fi\fi \fi\fi\fi\fi\fi \fi}
-% \stoptypen
-%
% chinese classes: left=1|right=2|center=3
\chardef\plusfour=4
\def\analyzechineseunicodeglyph % beware, no zerocount !
- {\chardef\chineseSstatus0\getvalue{uc\the\unicodeposition}\relax}
+ {\chardef\chineseSstatus0\getvalue{uc\number\unicodeposition}\relax}
\def\analyzechineseunicodeenviroment
{% left
- \ifx (\nextglyph \chardef\chineseAstatus\plusone \else
- \ifx [\nextglyph \chardef\chineseAstatus\plusone \else
+ \ifx (\nextutoken \chardef\chineseAstatus\plusone \else
+ \ifx [\nextutoken \chardef\chineseAstatus\plusone \else
% right
- \ifx ,\nextglyph \chardef\chineseAstatus\plustwo \else
- \ifx .\nextglyph \chardef\chineseAstatus\plustwo \else
- \ifx ?\nextglyph \chardef\chineseAstatus\plustwo \else
- \ifx ;\nextglyph \chardef\chineseAstatus\plustwo \else
- \ifx :\nextglyph \chardef\chineseAstatus\plustwo \else
- \ifx !\nextglyph \chardef\chineseAstatus\plustwo \else
- \ifx )\nextglyph \chardef\chineseAstatus\plustwo \else
- \ifx ]\nextglyph \chardef\chineseAstatus\plustwo \else
+ \ifx ,\nextutoken \chardef\chineseAstatus\plustwo \else
+ \ifx .\nextutoken \chardef\chineseAstatus\plustwo \else
+ \ifx ?\nextutoken \chardef\chineseAstatus\plustwo \else
+ \ifx ;\nextutoken \chardef\chineseAstatus\plustwo \else
+ \ifx :\nextutoken \chardef\chineseAstatus\plustwo \else
+ \ifx !\nextutoken \chardef\chineseAstatus\plustwo \else
+ \ifx )\nextutoken \chardef\chineseAstatus\plustwo \else
+ \ifx ]\nextutoken \chardef\chineseAstatus\plustwo \else
% space
- \ifx\nextglyph\blankspace \chardef\chineseAstatus\plusthree \else
- \ifx\nextglyph\space \chardef\chineseAstatus\plusthree \else
- \chardef\chineseAstatus\zerocount
+ \ifx\nextutoken\blankspace \chardef\chineseAstatus\plusthree \else
+ \ifx\nextutoken\space \chardef\chineseAstatus\plusthree \else
+ \chardef\chineseAstatus\zerocount
% unknown
\fi\fi\fi\fi\fi \fi\fi\fi\fi\fi \fi\fi
% maybe save the last skip?
@@ -264,14 +213,16 @@
\def\horizontalchineseunicodeglyph
{\relax
\ifhmode\else\dontleavehmode\fi % added
- \setunicodescale\chineseunicodescale
- \setunicodestrut\chineseunicodeheight\chineseunicodedepth
+ \setunicodescale\chineseunicodescale % redundant
+ \setunicodestrut\chineseunicodeheight\chineseunicodedepth % redundant
\ifprocessingverbatim
\iftracechinese
\ruledhbox{\insertunicodeglyph}%
\else
\insertunicodeglyph
\fi
+ \else\ifx\nextutoken\relax
+ \insertunicodeglyph
\else
\analyzechineseunicodeglyph
\analyzechineseunicodeenviroment
@@ -338,7 +289,7 @@
\insertchineseglyph
\hskip\chineseinterglyphskip
\hskip\chineseRsignal
- \fi
+ \fi\fi
\aftergroup\ignorespaces % watch this
\fi}
@@ -347,32 +298,40 @@
\ifprocessingverbatim % to do
\horizontalchineseunicodeglyph
\else
- \setunicodescale\chineseunicodescale
- \setunicodestrut\chineseunicodeheight\chineseunicodedepth
- \analyzechineseunicodeglyph
- \setbox\scratchbox\hbox to \hsize
- {\hss
- \ifcase\chineseSstatus\relax
- \insertchineseglyph
- \else % left / right
- \setbox\scratchbox\hbox{\insertchineseglyph}%
- \rotate[\c!rotation=270]{\box\scratchbox}%
- \fi
- \hss}%
- \ht\scratchbox\unicodeheight\strutht
- \dp\scratchbox\unicodedepth \strutdp
- \ifvmode % catches \hbox{...}, actually \hbox should be \vbox -)
- \nointerlineskip
- \fi
- \ifcase\prevchineseSstatus\relax
- \ifnum\chineseSstatus=\plustwo \par\nobreak\else\allowbreak\fi
- \or % left
- \par\nobreak
- \or % right
- \ifnum\chineseSstatus=\plustwo \par\nobreak\else\allowbreak\fi
+ \setunicodescale\chineseunicodescale % redundant
+ \setunicodestrut\chineseunicodeheight\chineseunicodedepth % redundant
+ \ifx\nextutoken\relax
+ \insertchineseglyph
+ \ifvmode % catches \hbox{...}, actually \hbox should be \vbox -)
+ \nointerlineskip
+ \fi
+ \allowbreak
+ \else
+ \analyzechineseunicodeglyph
+ \setbox\scratchbox\hbox to \hsize
+ {\hss
+ \ifcase\chineseSstatus\relax
+ \insertchineseglyph
+ \else % left / right
+ \setbox\scratchbox\hbox{\insertchineseglyph}%
+ \rotate[\c!rotation=270]{\box\scratchbox}%
+ \fi
+ \hss}%
+ \ht\scratchbox\unicodeheight\strutht
+ \dp\scratchbox\unicodedepth \strutdp
+ \ifvmode % catches \hbox{...}, actually \hbox should be \vbox -)
+ \nointerlineskip
+ \fi
+ \ifcase\prevchineseSstatus\relax
+ \ifnum\chineseSstatus=\plustwo \par\nobreak\else\allowbreak\fi
+ \or % left
+ \par\nobreak
+ \or % right
+ \ifnum\chineseSstatus=\plustwo \par\nobreak\else\allowbreak\fi
+ \fi
+ \global\chardef\prevchineseSstatus\chineseSstatus % pagebody ...
+ \box\scratchbox\par
\fi
- \global\chardef\prevchineseSstatus\chineseSstatus % pagebody ...
- \box\scratchbox\par
\aftergroup\ignorespaces % watch this
\fi}
@@ -536,7 +495,7 @@
\stopdummy}
\def\tracedchineseglyph
- {\leavevmode
+ {\dontleavehmode
\ruledhbox
{\setbox\scratchbox\hbox{\insertunicodeglyph}%
\hbox to \wd\scratchbox
@@ -893,12 +852,14 @@
\setupunicodefont
[chinese]
- [ \c!scale=\chineseunicodescale,
- \c!height=\chineseunicodeheight,
- \c!depth=\chineseunicodedepth,
- \c!conversion=\chinesenumber,
- \c!commands=\setchineseencoding, % needed for digits
- \c!command=\handlechineseunicodeglyph]
+ [ \c!scale=\chineseunicodescale,
+ \c!height=\chineseunicodeheight,
+ \c!depth=\chineseunicodedepth,
+ \c!strut=\v!yes,
+ \c!interlinespace=\v!yes,
+ \c!conversion=\chinesenumber,
+ \c!commands=\setchineseencoding, % needed for digits
+ \c!command=\handlechineseunicodeglyph]
%D For the moment, this encoding is implemented rather ugly. The
%D trick is to move the encoding value from the current font
@@ -918,12 +879,12 @@
%D \defineunicodefont
%D [SimChi]
%D [SimplifiedChinese]
-%D [ \c!scale=\chineseunicodescale,
-%D \c!height=\chineseunicodeheight,
-%D \c!depth=\chineseunicodedepth,
+%D [\c!scale=\chineseunicodescale,
+%D \c!height=\chineseunicodeheight,
+%D \c!depth=\chineseunicodedepth,
%D \c!conversion=\chinesenumber,
%D \c!commands=\setchineseencoding, % needed for digits
-%D \c!command=\handlechineseunicodeglyph]
+%D \c!command=\handlechineseunicodeglyph]
%D \stoptyping
%D
%D However, the former definitions is more general. Next we
@@ -943,6 +904,42 @@
\definefontsynonym [TraditionalChineseBoldSlanted] [b5heisl] [encoding=big5]
\definefontsynonym [TraditionalChineseBoldItalic] [b5heisl] [encoding=big5]
+% we need to move this to typescripts
+
+\doifelse \currentregime {utf} {
+
+ \definefontsynonym [SimplifiedChineseRegular] [ChineseRegular]
+ \definefontsynonym [SimplifiedChineseSlanted] [ChineseSlanted]
+ \definefontsynonym [SimplifiedChineseItalic] [ChineseItalic]
+ \definefontsynonym [SimplifiedChineseBold] [ChineseBold]
+ \definefontsynonym [SimplifiedChineseBoldSlanted] [ChineseBoldSlanted]
+ \definefontsynonym [SimplifiedChineseBoldItalic] [ChineseBoldItalic]
+
+ \definefontsynonym [TraditionalChineseRegular] [ChineseRegular]
+ \definefontsynonym [TraditionalChineseSlanted] [ChineseSlanted]
+ \definefontsynonym [TraditionalChineseItalic] [ChineseItalic]
+ \definefontsynonym [TraditionalChineseBold] [ChineseBold]
+ \definefontsynonym [TraditionalChineseBoldSlanted][ChineseBoldSlanted]
+ \definefontsynonym [TraditionalChineseBoldItalic] [ChineseBoldItalic]
+
+ \definefontsynonym [ChineseRegular] [uni-htsong-][encoding=cjk-uni]
+ \definefontsynonym [ChineseSlanted] [uni-htsong-][encoding=cjk-uni]
+ \definefontsynonym [ChineseItalic] [uni-htsong-][encoding=cjk-uni]
+ \definefontsynonym [ChineseBold] [uni-hthei-] [encoding=cjk-uni]
+ \definefontsynonym [ChineseBoldSlanted][uni-hthei-] [encoding=cjk-uni]
+ \definefontsynonym [ChineseBoldItalic] [uni-hthei-] [encoding=cjk-uni]
+
+ \loadmapfile[uni-htsong.map]
+ \loadmapfile[uni-htfs.map]
+ \loadmapfile[uni-hthei.map]
+ \loadmapfile[uni-htkai.map]
+
+} {
+
+ \loadmapfile[gbk]
+
+}
+
\defineunicodefont [SimChi] [SimplifiedChinese] [chinese]
\defineunicodefont [TraChi] [TraditionalChinese] [chinese]
@@ -1143,7 +1140,7 @@
%D \stopnarrower
%D This package is written in the city of Hasselt, a pretty
-%D small town in the |<|compare to China real small|>|
+%D small town in the |<|compared to China real small|>|
%D Netherlands. Like most dutch cities, even this small one
%D has a chinese restaurant, run by chinese, speaking chinese,
%D and |<|indeed|>| writing chinese. Eating there will never
diff --git a/Master/texmf-dist/tex/context/base/font-ini.tex b/Master/texmf-dist/tex/context/base/font-ini.tex
index b2007ee3122..8e620309e67 100644
--- a/Master/texmf-dist/tex/context/base/font-ini.tex
+++ b/Master/texmf-dist/tex/context/base/font-ini.tex
@@ -226,6 +226,21 @@
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},
@@ -848,7 +863,7 @@
%D defining it here, we have at least an safeguard for utility
%D file reading.
-\unexpanded\def\uchar#1#2{[#1,#2]}
+\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.
@@ -1033,21 +1048,21 @@
\def\dodosetmathfamily#1#2%
{\@EA\ifx \csname\fontclass\fontbody\c!mm\fontfamily\fontsize\endcsname\relax
- \@EA\ifx \csname\fontclass\fontbody\c!mm\fontfamily\endcsname \relax
- \@EA\ifx \csname\fontclass\fontbody\backfamily\fontsize\endcsname \relax
- \@EA\ifx \csname\fontclass\fontbody\backfamily\endcsname \relax
+ \@EA\ifx \csname\fontclass\fontbody\c!mm\fontfamily \endcsname\relax
+ \@EA\ifx \csname\fontclass\fontbody \backfamily\fontsize\endcsname\relax
+ \@EA\ifx \csname\fontclass\fontbody \backfamily \endcsname\relax
\@EA\ifx \csname \fontbody\c!mm\fontfamily\fontsize\endcsname\relax
- \@EA\ifx \csname \fontbody\c!mm\fontfamily\endcsname \relax
- \@EA\ifx \csname \fontbody\backfamily\fontsize\endcsname \relax
- \@EA\ifx \csname \fontbody\backfamily\endcsname \relax
- \autofontsizetrue \nullfont \else
- \autofontsizetrue \csname \fontbody\backfamily\endcsname \fi \else
- \autofontsizefalse \csname \fontbody\backfamily\fontsize\endcsname \fi \else
- \autofontsizetrue \csname \fontbody\c!mm\fontfamily\endcsname \fi \else
+ \@EA\ifx \csname \fontbody\c!mm\fontfamily \endcsname\relax
+ \@EA\ifx \csname \fontbody \backfamily\fontsize\endcsname\relax
+ \@EA\ifx \csname \fontbody \backfamily \endcsname\relax
+ \autofontsizetrue \nullfont \else
+ \autofontsizetrue \csname \fontbody \backfamily \endcsname\fi \else
+ \autofontsizefalse \csname \fontbody \backfamily\fontsize\endcsname\fi \else
+ \autofontsizetrue \csname \fontbody\c!mm\fontfamily \endcsname\fi \else
\autofontsizefalse \csname \fontbody\c!mm\fontfamily\fontsize\endcsname\fi \else
- \autofontsizetrue \csname\fontclass\fontbody\backfamily\endcsname \fi \else
- \autofontsizefalse \csname\fontclass\fontbody\backfamily\fontsize\endcsname \fi \else
- \autofontsizetrue \csname\fontclass\fontbody\c!mm\fontfamily\endcsname \fi \else
+ \autofontsizetrue \csname\fontclass\fontbody \backfamily \endcsname\fi \else
+ \autofontsizefalse \csname\fontclass\fontbody \backfamily\fontsize\endcsname\fi \else
+ \autofontsizetrue \csname\fontclass\fontbody\c!mm\fontfamily \endcsname\fi \else
\autofontsizefalse \csname\fontclass\fontbody\c!mm\fontfamily\fontsize\endcsname\fi
#1#2\font}
@@ -1088,12 +1103,12 @@
\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
+ \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}
@@ -1101,12 +1116,12 @@
\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
+ \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}
@@ -1260,6 +1275,16 @@
\endETEX
+%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
@@ -1295,6 +1320,81 @@
\def\setforcedfontspec#1 #2\relax]%
{\csname\@fs@#1\endcsname#2\relax}
+%D For \XETEX\ we need to support a bit more:
+%D
+%D \starttyping
+%D \definedfont[{cmr10} at 40pt] test
+%D \definedfont['cmss10' at 40pt] test
+%D \definedfont["cmtt10" at 40pt] test
+%D
+%D \definedfont[{cmr10} at 40pt] test
+%D \definedfont['cmss10' at 40pt] test
+%D \definedfont["cmtt10" at 40pt] test
+%D
+%D \definedfont["Gentium" at 40pt] test
+%D \stoptyping
+
+\beginXETEX \font
+
+ % actually, we can use "" in pdftex> 1.20 as well
+
+ \def\parsefontspec#1%
+ {\xdef\somefontspec{#1\space}%
+ \@EA\doparsefontspec\somefontspec\relax]% =>#1 \empty]
+ \donoparsefontspec}
+
+ \def\doparsefontspec#1%
+ {\ifx"#1%
+ \@EA\dodqparsefontspec
+ \else\ifx'#1%
+ \@EAEAEA\dosqparsefontspec
+ \else
+ \@EAEAEA\dodoparsefontspec
+ \fi\fi#1}
+
+ \def\dqfontquote{"}
+ \def\sqfontquote{'}
+
+ \def\dodqparsefontspec"#1"#2%
+ {\def\somefontname{#1}%
+ \let\somefontquote\dqfontquote
+ \ifx#2\relax\@EA\setnaturalfontspec\else\@EA\setforcedfontspec\fi#2}
+
+ \def\dosqparsefontspec'#1'#2%
+ {\def\somefontname{#1}%
+ \let\somefontquote\sqfontquote
+ \ifx#2\relax\@EA\setnaturalfontspec\else\@EA\setforcedfontspec\fi#2}
+
+ \def\dodoparsefontspec#1 #2%
+ {\def\somefontname{#1}%
+ \let\somefontquote\empty
+ \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\donoparsefontspec % #1 == \cs
+ {\edef\fontfile{\somefontquote\truefontname\somefontname\somefontquote}%
+ \ifx\fontfile\s!unknown \let\fontfile\defaultfontfile \fi
+ \edef\lastfontname{\fontfile\somefontspec}%
+ \ifx\fontclass\empty
+ \expandafter\definefontlocal
+ \else
+ \expandafter\definefontglobal
+ \fi} % #1 == \cs
+
+\endXETEX
+
\def\@fs@scaled
{\afterassignment\do@fs@scaled\scratchcounter}
@@ -1510,6 +1610,9 @@
%
% \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
@@ -1798,6 +1901,14 @@
\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
@@ -2712,30 +2823,13 @@
{\ifloadfontfileonce
\letvalue{\c!file\f!fontprefix#2}\empty
\fi
+ \makeshortfilename[\truefilename{\f!fontprefix#2}]%
\startreadingfile
- \readsysfile{\truefilename{\f!fontprefix#2}}
- {\showmessage\m!fonts2{#2}}
- {\makeshortfilename[\truefilename{\f!fontprefix#2}]%
- \readsysfile\shortfilename
- {\showmessage\m!fonts2{#2}}
- {\showmessage\m!fonts3{#2}}}%
+ \readsysfile\shortfilename
+ {\showmessage\m!fonts2{#2}}
+ {\showmessage\m!fonts3{#2}}%
\stopreadingfile}}
-% \def\doreadfontdefinitionfile#1#2% #1 = set/switch state
-% {\doifundefined{\c!file\f!fontprefix#2}%
-% {\ifloadfontfileonce
-% \letvalue{\c!file\f!fontprefix#2}\empty
-% \fi
-% \startreadingfile
-% \readsysfile{\truefilename{\f!fontprefix#2}}
-% {\showmessage\m!fonts2}
-% {\makeshortfilename[\truefilename{\f!fontprefix#2}]%
-% \readsysfile\shortfilename
-% {\showmessage\m!fonts2}
-% {\showmessage\m!fonts3}}%
-% {#2}% argument to \showmessage
-% \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
@@ -2842,8 +2936,8 @@
\fi}%
\chardef\currentxfontsize\zerocount}
-\def\dodosetfont#1#2% #1 = set/switch state
- {\dododosetfont{#1}{#2}{\showmessage\m!fonts4{#2}}}
+\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}
@@ -2852,7 +2946,8 @@
{\edef\fontstep{\bodyfontcsname\normalizedbodyfontsize\interfaced{#2}\endcsname}%
\expanded{\dodododosetfont{#1}{\fontstep}}{#3}}
{\doifelse{#2}\v!reset
- {\let\fontsize\empty}
+ {\let\fontstyle\empty % new 31/7/2006
+ \let\fontsize \empty}
{\doifdefinedelse{\@style@#2}
{\edef\fontstyle{#2}}
{\doreadfontdefinitionfile{#1}{#2}}}}}}
@@ -2980,12 +3075,23 @@
\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:
+
\def\setcurrentfontstyle#1%
{%\message{[3 #1]}%
+ \checkfontclass{#1}%
\edef\fontstyle{#1}%
\ifmmode\mr\fi % otherwise \rm not downward compatible
\synchronizefont}
+\let\checkfontclass\gobbleoneargument % implemented in type-ini
+
\def\setcurrentfontbodyalternative#1#2%
{%\message{[4 #1 #2]}%
\edef\fontbody{#1}%
@@ -3441,6 +3547,18 @@
\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 \startyping
+%D $\cases{& \ccaron}$ $x=\hbox{\ccaron $x=\hbox{\ccaron}$}$
+%D \stoptyping
+
%D The font specific features are bound to the filename.
\def\updatefontparameters
@@ -3588,8 +3706,7 @@
%D because \PLAIN\ \TEX\ is english anyway.
\def\dodefinebodyfontswitch[#1][#2]%
- {\def\docommando##1%
- {\setvalue{##1}{\switchtobodyfont[#2]}}%
+ {\def\docommando##1{\setvalue{##1}{\switchtobodyfont[#2]}}%
\processcommalist[#1]\docommando}
\def\definebodyfontswitch
@@ -3741,6 +3858,13 @@
\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:
@@ -4208,15 +4332,30 @@
\let\thedefinedfont\relax
-\def\symbolicscaledfont#1#2%
- {\scaledfont\fontbody
- \scaledfont#1\scaledfont
- \font\thedefinedfont\truefontname{\glyphfontfile{#2}} at
+% \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
- {\symbolicscaledfont\plusone}
+ {\symbolicsizedfont\fontbody\plusone}
\unexpanded\def\getglyph#1#2% slow, faster, much faster
%{{\definefont[\s!dummy][\glyphfontfile{#1} sa \currentfontscale]\dummy#2}}
@@ -4570,6 +4709,7 @@
\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] []
@@ -4698,15 +4838,16 @@
\scaledfont\currentfontscale\bodyfontsize
\scaledfont\relativefontsize\scaledfont}
-\def\variant[#1]% slow
+\unexpanded\def\variant[#1]% slow
{\dosetscaledfont
\expanded{\definedfont
[\truefontname{\fontstringA\fontstylesuffix\fontvariant\fontstringA{#1}}
- at \scaledfont]}}
+ at \scaledfont]}%
+ \ignoreimplicitspaces}
\beginXETEX \font
- \def\variant[#1]%
+ \unexpanded\def\variant[#1]%
{\dosetscaledfont
\font\variantfont\truefontname{\fontstringA\fontstylesuffix\fontvariant\fontstringA{#1}}
at \scaledfont
diff --git a/Master/texmf-dist/tex/context/base/font-jap.tex b/Master/texmf-dist/tex/context/base/font-jap.tex
new file mode 100644
index 00000000000..6bb813cccd1
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-jap.tex
@@ -0,0 +1,83 @@
+%D \module
+%D [ file=font-jap,
+%D version=2006.01.13,
+%D title=\CONTEXT\ Font Macros,
+%D subtitle=Japanese,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D suggestions=Wang Lei,
+%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\handlejapaneseunicodeglyph\undefined \else \endinput \fi
+\ifx\handlechineseunicodeglyph \undefined \input font-chi.tex \fi
+
+\writestatus{loading}{Context Font Macros / Japanese}
+
+\unprotect
+
+\newif\iftracejapanese
+
+\let\japaneseencoding\empty
+
+\def\setjapaneseencoding
+ {\getfontfileparameters\unicodestyle
+ \ifx\currentfontfileencoding\undefined \else
+ \let\japaneseencoding\currentfontfileencoding
+ \fi}
+
+\def\japaneseunicodescale {\chineseunicodescale }
+\def\japaneseunicodeheight {\chineseunicodeheight }
+\def\japaneseunicodedepth {\chineseunicodedepth }
+\def\japaneseinterglyphskip{\chineseinterglyphskip}
+\def\japanesesurroundskip {\chinesesurroundskip }
+
+\setupunicodefont
+ [japanese]
+ [ \c!scale=\japaneseunicodescale,
+ \c!height=\japaneseunicodeheight,
+ \c!depth=\japaneseunicodedepth,
+ \c!strut=\v!yes,
+ \c!interlinespace=\v!yes,
+ \c!conversion=\japanesenumber,
+ \c!commands=\setjapaneseencoding, % needed for digits
+ \c!command=\handlejapaneseunicodeglyph]
+
+\def\japanesenumber{\numbers}
+
+\def\handlejapaneseunicodeglyph
+ {\begingroup
+% \let\chineseunicodescale \japaneseunicodescale
+% \let\chineseunicodeheight \japaneseunicodeheight
+% \let\chineseunicodedepth \japaneseunicodedepth
+% \let\chineseinterglyphskip\japaneseinterglyphskip
+% \let\chinesesurroundskip \japanesesurroundskip
+ \iftracejapanese\tracechinesetrue\else\tracechinesefalse\fi
+ \handlechineseunicodeglyph
+ \endgroup}
+
+\doifelse \currentregime {utf} {
+
+ % todo: typescripts
+
+ \definefontsynonym [JapaneseRegular] [uni-cybercjk-][encoding=cjk-uni]
+ \definefontsynonym [JapaneseSlanted] [uni-cybercjk-][encoding=cjk-uni]
+ \definefontsynonym [JapaneseItalic] [uni-cybercjk-][encoding=cjk-uni]
+ \definefontsynonym [JapaneseBold] [uni-cybercjk-][encoding=cjk-uni]
+ \definefontsynonym [JapaneseBoldSlanted][uni-cybercjk-][encoding=cjk-uni]
+ \definefontsynonym [JapaneseBoldItalic] [uni-cybercjk-][encoding=cjk-uni]
+
+ \loadmapfile[uni-cybercjk.map]
+
+ \defineunicodefont [Japanese] [Japanese] [japanese]
+
+} {
+ \writestatus{Japanese}{No fonts defined}
+}
+
+\Japanese
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/font-run.tex b/Master/texmf-dist/tex/context/base/font-run.tex
index 08537e374cf..d657aa40208 100644
--- a/Master/texmf-dist/tex/context/base/font-run.tex
+++ b/Master/texmf-dist/tex/context/base/font-run.tex
@@ -17,6 +17,9 @@
\unprotect
+\gdef\@@onlyenglish#1%
+ {\blank{\tttf \type {#1} is only available in the english interface}\blank}
+
\gdef\dosetshowfonttitle#1%
{\tabskip\zeropoint
\parindent\zeropoint
@@ -28,7 +31,7 @@
{\doifnot{[\fontclass]}\title
{\edef\title{[\fontclass]\space\title}}}}
-\gdef\showbodyfont%
+\gdef\showbodyfont
{\dosingleempty\doshowbodyfont}
\gdef\doshowbodyfont[#1]%
@@ -81,7 +84,7 @@
&&\getvalue{\bodyfontvariable{##1\c!xx}}%
&&\getvalue{\bodyfontvariable{##1\interfaced\v!small}}%
&&\getvalue{\bodyfontvariable{##1\interfaced\v!big}}%
- &&\getvalue{\bodyfontvariable{##1\c!interlinespace}}&\cr
+ &&\edef\next{\getvalue{\bodyfontvariable{##1\c!interlinespace}}}\ifx\next\empty not set\else\next\fi&\cr
\noalign{\hrule}}
\halign to \localhsize
{##&\vrule##\strut
@@ -105,7 +108,7 @@
\beginTEX \iffontchar
-\gdef\iffontchar#1#2{\iftrue}
+ \gdef\iffontchar#1#2{\iftrue}
\endTEX
@@ -178,15 +181,15 @@
\nointerlineskip
\vskip2pt
% the \noexpand before \blank is needed for non etex
- \edef\ascii {name: {\noexpand\black\fontname\font}}
+ \edef\ascii{name: {\noexpand\black\fontname\font}}
\doifelse\v!unknown{#2}
{\edef\theshowfontspecs
- {name: {\noexpand\black\fontname\font}}}
+ {name: {\noexpand\black\fontname\font}}}
{\edef\theshowfontspecs
- {name: {\noexpand\black\fontname\font }\noexpand\quad
+ {name: {\noexpand\black\fontname\font}\noexpand\quad
encoding: {\noexpand\black\currentencoding}\noexpand\quad
- mapping: {\noexpand\black\currentmapping }\noexpand\quad
- handling: {\noexpand\black\fonthandling }}}%
+ mapping: {\noexpand\black\currentmapping }\noexpand\quad
+ handling: {\noexpand\black\fonthandling}}}%
\tf % also sets em
\hbox to 40em{\blue\hfill\tinyfont\setstrut\strut\theshowfontspecs}
\egroup
@@ -227,7 +230,7 @@
\gdef\showligatures[#1]%
{\ifx\starttabulate\undefined
- \blank{\tttf \type {\showligatures} is only available in thr english interface}\blank
+ \@@onlyenglish\showligatures
\else
\bgroup
\setupcolors[\c!state=\v!local]%
@@ -247,7 +250,7 @@
\gdef\doshowfontstrip[#1]%
{\ifx\starttabulate\undefined
- \blank{\tttf \type {\showfontstrip} is only available in thr english interface}\blank
+ \@@onlyenglish\showfontstrip
\else
\bgroup
\def\dofontstripa##1##2%
@@ -303,7 +306,7 @@
\gdef\showminimalbaseline
{\ifx\starttabulate\undefined
- \blank{\tttf \type {\showminimalbaseline} is only available in thr english interface}\blank
+ \@@onlyenglish\showminimalbaseline
\else
\starttabulate[||T|T|T|T|T|T|T|T|T|]
\testminimalbaseline{\hbox to 1em{\hss\showstruts\strut\hss}}%
diff --git a/Master/texmf-dist/tex/context/base/font-uni.tex b/Master/texmf-dist/tex/context/base/font-uni.tex
index 09fcf22ea5f..3dee48ec48f 100644
--- a/Master/texmf-dist/tex/context/base/font-uni.tex
+++ b/Master/texmf-dist/tex/context/base/font-uni.tex
@@ -38,11 +38,15 @@
\stopmessages
\startmessages italian library: fonts
- 21: l'uso di (pdf)eTeX è più sicuro
+ 21: l'uso di (pdf)eTeX è più sicuro
\stopmessages
\startmessages norwegian library: fonts
- 21: å bruke (pdf)eTeX er tryggere
+ 21: å bruke (pdf)eTeX er tryggere
+\stopmessages
+
+\startmessages french library: fonts
+ 21: l'utilisation de (pdf)eTeX est plus économe
\stopmessages
\unprotect
@@ -93,7 +97,7 @@
%D
%D \starttyping
%D \def\handleunicodeglyph
-%D {take actions based on \unicodeone-two-position cq. \nextglyph
+%D {take actions based on \unicodeone-two-position cq. \nextutoken
%D redefine \unicodecharcommand if needed
%D expand \insertunicodeglyph
%D take some final actions}
@@ -101,84 +105,41 @@
\newcount\unicodeposition
-% \def\handleunicodeflowglyph#1#2%
-% {\def\dohandleunicodeflowglyph{\dodohandleunicodeflowglyphA{#1}{#2}}%
-% \futurelet\nextglyph\dohandleunicodeflowglyph}
-%
-% %D The first alternative (A) takes a character as second
-% %D argument and is used in the primary handler introduced
-% %D earlier.
-%
-% \def\dodohandleunicodeflowglyphA#1#2%
-% {\bgroup
-% \def\unicodeone{#1}%
-% \edef\unicodetwo{\number\expandafter`\string#2}% takes also <128 !
-% \unicodeposition=\unicodeone\unicodetwo\relax
-% \handleunicodeglyph
-% \egroup}
-%
-% %D The second alternative (B) takes numbers and is used in
-% %D the \type {\uchar} command. This command takes two
-% %D decimal numbers.
-%
-% \def\dodohandleunicodeflowglyphB#1#2%
-% {\bgroup
-% \def\unicodeone{#1}%
-% \def\unicodetwo{#2}%
-% \unicodeposition=\unicodeone\unicodetwo\relax
-% \handleunicodeglyph
-% \egroup}
-%
-% \unexpanded\def\uchar%
-% {\let\nextglyph\relax
-% \dodohandleunicodeflowglyphB}
-
%D The multistep approach is needed to pick up the second
%D token, since this token can have any value and any
%D catcode.
-%\def\handleunicodeflowglyph#1%
-% {\bgroup
-% \edef\unicodeone{#1}%
-% \@EA\afterassignment\@EA\dohandleunicodeflowglyph
-% \@EA\chardef\@EA\nexttoken\@EA`\string}
-%
-%\def\dohandleunicodeflowglyph
-% {\futurelet\nextglyph\dodohandleunicodeflowglyph}
-%
-%\def\dodohandleunicodeflowglyph%
-% {\edef\unicodetwo{\the\nexttoken}%
-% \unicodeposition\unicodeone\unicodetwo\relax
-% \handleunicodeglyph
-% \egroup}
-
% the \relax trick prevents eating up the space (needed for
% korean
\def\handleunicodeflowglyph#1#2%
- {\bgroup
+ {\begingroup
\edef\unicodeone{#1}%
- \@EA\afterassignment\@EA\dohandleunicodeflowglyph
+ \@EA\afterassignment\@EA\dohandleunicodeflowglyph % two redundant ea's
\@EA\chardef\@EA\nexttoken\@EA`\string#2\relax}
\def\dohandleunicodeflowglyph\relax
- {\futurelet\nextglyph\dodohandleunicodeflowglyph}
+ {\futurelet\nextutoken\dodohandleunicodeflowglyph}
-\def\dodohandleunicodeflowglyph
+\def\dodohandleunicodeflowglyph % todo tex (or maybe no longer)
{\edef\unicodetwo{\the\nexttoken}%
- \unicodeposition\unicodeone\unicodetwo\relax
+ \unicodeposition\numexpr\unicodeone*256+\unicodetwo\relax
\handleunicodeglyph
- \egroup}
+ \endgroup}
\unexpanded\def\uchar#1#2% use as standalone glyph
- {\bgroup
- \let\nextglyph\relax
+ {\begingroup
\edef\unicodeone{#1}%
\edef\unicodetwo{#2}%
-% \unicodeposition=\unicodeone\unicodetwo\relax
- \unicodeposition\unicodeone\unicodetwo\relax
+ \unicodeposition\numexpr\unicodeone*256+\unicodetwo\relax
\handleunicodeglyph
- \egroup}
+ \endgroup}
+
+\let\nextutoken\relax
+
+\unexpanded\def\lookaheaduchar#1#2%
+ {\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.
@@ -194,63 +155,20 @@
\endXETEX
\def\dohandleucflowglyph
-% {\unicodeposition=\unicodeone\unicodetwo\relax
- {\unicodeposition\unicodeone\unicodetwo\relax
+ {\unicodeposition\numexpr\unicodeone*256+\unicodetwo\relax
\handleunicodeglyph
- \egroup}
+ \endgroup}
\unexpanded\def\uc#1#2% used in tricky situations
- {\bgroup
+ {\begingroup
\edef\unicodeone{#1}%
\edef\unicodetwo{#2}%
- \futurelet\nextglyph\dohandleucflowglyph}
-
-% Alternative, handles [char >127]{number} too.
-%
-% \def\handleunicodeflowglyph#1%
-% {\bgroup
-% \edef\unicodeone{#1}%
-% \futurelet\nexttoken\dohandleunicodeflowglyph}
-%
-% \def\dohandleunicodeflowglyph%
-% {\ifx\nexttoken\bgroup
-% \expandafter\dohandleunicodeflowglyphA
-% \else
-% \expandafter\dohandleunicodeflowglyphB
-% \fi}
-%
-% \def\dohandleunicodeflowglyphA#1%
-% {\chardef\nexttoken=#1\relax
-% \dodohandleunicodeflowglyph}
-%
-% \def\dohandleunicodeflowglyphB%
-% {\@EA\afterassignment\@EA\dodohandleunicodeflowglyph
-% \@EA\chardef\@EA\nexttoken\@EA=\@EA`\string}
-%
-% \def\dodohandleunicodeflowglyph%
-% {\futurelet\nextglyph\dododohandleunicodeflowglyph}
-%
-% \def\dododohandleunicodeflowglyph%
-% {\edef\unicodetwo{\the\nexttoken}%
-% \unicodeposition=\unicodeone\unicodetwo\relax
-% \handleunicodeglyph
-% \egroup}
-%
-% Can be used with (the less byte hungry alternative):
-%
-% sub unirecode
-% { my ($a,$b) = @_ ;
-% if ((ord($b)<0x80)&&($b !~ /[a-zA-Z0-9]/))
-% { print "$b" ; ++$recoded ;
-% #return "\\uc\{" . ord($a) . "\}\{". ord($b) . "\}" }
-% return "$a\{". ord($b) . "\}" }
-% else
-% { return "$a$b" } }
+ \futurelet\nextutoken\dohandleucflowglyph}
\def\insertunicodeglyph
{\unicodeglyph\unicodeone\unicodetwo}
-\let\handleunicodeglyph=\insertunicodeglyph
+\let\handleunicodeglyph\insertunicodeglyph
%D One can use the \type {\unicodeposition} in the macros
%D that handle pre and post material.
@@ -303,22 +221,43 @@
\let\unicodecharcommand\firstofoneargument
-% \unexpanded\def\unicodeglyph#1#2% watch the double mapping
-% {\bgroup
-% \bodyfontsize=\unicodescale\bodyfontsize
-% \font\unicodefont=\truefontname{\truefontname\unicodestyle\lchexnumbers{#1}}
-% at \currentfontscale\bodyfontsize
-% \unicodestrut\unicodefont\unicodecharcommand{\char#2\relax}%
-% \egroup}
-
\unexpanded\def\unicodeglyph#1#2% watch the double mapping
- {\bgroup
- \getvalue{@@\currentucharmapping\strippedcsname\uchar}{#1}{#2}%
+ {\begingroup
+ \getvalue{@@\currentucharmapping\strippedcsname\uchar}{#1}{#2}% map to a to hex font range
\bodyfontsize\unicodescale\bodyfontsize
- \font\unicodefont=\truefontname{\truefontname\unicodestyle\unicodeone}
- at \currentfontscale\bodyfontsize
- \unicodestrut\unicodefont\unicodecharcommand{\char\unicodetwo\relax}%
- \egroup}
+ % readable:
+ % \doifelsefontsynonym{\unicodestyle\unicodeone}
+ % {\font\unicodefont=\truefontname{\unicodestyle\unicodeone}
+ % at \currentfontscale\bodyfontsize}
+ % {\font\unicodefont=\truefontname{\truefontname\unicodestyle\unicodeone}
+ % at \currentfontscale\bodyfontsize}%
+ % unreadable but more efficient:
+ \font\unicodefont=\truefontname{\doifelsefontsynonym{\unicodestyle
+ \unicodeone}\empty\truefontname\unicodestyle\unicodeone}
+ at \currentfontscale\bodyfontsize
+ \unicodestrut % off by default
+ \unicodefont\unicodecharcommand{\char\unicodetwo\relax}%
+ \endgroup}
+
+%D This handler is used by default, for instance in:
+%D
+%D \starttyping
+%D \defineunicodefont [MySwitch] [MyFont] % [strut=no,command=\insertunicodeglyph]
+%D
+%D \definefontsynonym [MyFontRegular40] [Sans]
+%D \definefontsynonym [MyFontBold40] [SansBold]
+%D
+%D {\MySwitch \uchar{"40}{`a}}
+%D {\MySwitch \bf \uchar{"40}{`a}}
+%D \stoptyping
+%D
+%D \starttyping
+%D \definefontsynonym [MyFontRegular] [Sans]
+%D \definefontsynonym [MyFontBold] [SansBold]
+%D \stoptyping
+%D
+%D Is also possible, but in that case the number is appended to the raw font
+%D name!
%D \macros
%D {currentucharmapping,defineucharmapping}
@@ -353,15 +292,13 @@
\def\dorepositionunicode
{\dosetdivision\unicodeposition{256}\scratchcounter
- %\DoDiv\unicodeposition by256to\scratchcounter
\advance\scratchcounter \plusone
\edef\unicodeone{\ifnum\scratchcounter<10 0\fi\the\scratchcounter}%
\dosetmodulo\unicodeposition{256}\scratchcounter
- %\DoMod\unicodeposition by256to\scratchcounter
\edef\unicodetwo{\the\scratchcounter}}
%D \macros
-%D {setunicodestrut, setunicodescale, nextglyph,
+%D {setunicodestrut, setunicodescale, nextutoken,
%D handleunicodeglyph, insertunicodeglyph}
%D
%D A careful analysis of the previous macros, learns that the
@@ -401,15 +338,22 @@
\let\unicodestrut\empty
\fi\fi}
+\def\resetunicodestrut
+ {\let\unicodestrut\empty}
+
%D The additional scaling and strut default to:
\setunicodescale{1}
\setunicodestrut{1}{1}
+%D But better is not to have a strut added by default:
+
+\resetunicodestrut
+
%D The actual code for the additional actions as well as
%D specific spacing is handled outside these routines. The
%D character after the two that are under treatment is
-%D available in \type {\nextglyph}.
+%D available in \type {\nextutoken}.
%D \macros
%D {defineunicodefont, setupunicodefont}
@@ -421,12 +365,12 @@
%D \starttyping
%D \defineunicodefont
%D [SimChi] [SimplifiedChinese]
-%D [ \c!scale=0.85,
-%D \c!height=1.25,
-%D \c!depth=1.00,
-%D \c!interlinespaceinterlinie=yes,
+%D [\c!scale=0.85,
+%D \c!height=1.25,
+%D \c!depth=1.00,
+%D \c!interlinespaceinterlinie=yes,
%D \c!conversion=\chinesenumber,
-%D \c!command=\handlechineseunicodeglyph]
+%D \c!command=\handlechineseunicodeglyph]
%D \stoptyping
%D
%D Together with:
@@ -471,7 +415,7 @@
{\setupunicodefont[#1][#3]}
{\copyparameters
[\??uc#1][\??uc#3]
- [\c!height,\c!depth,\c!scale,\c!commands,
+ [\c!height,\c!depth,\c!scale,\c!commands,\c!strut,
\c!interlinespace,\c!command,\c!conversion]}}%
\doifelsenothing{#2}
{\setvalue{#1}{[uc font #1 undefined]}}
@@ -491,7 +435,7 @@
{\doifundefined{\??uc#1\c!command}
{\copyparameters
[\??uc#1][\??uc\s!default]
- [\c!height,\c!depth,\c!scale,\c!commands,
+ [\c!height,\c!depth,\c!scale,\c!commands,\v!strut,
\c!interlinespace,\c!command,\c!conversion]}%
\getparameters[\??uc#1][#2]}
@@ -502,8 +446,13 @@
\def\unicodedepth {\getvalue{\??uc#1\c!depth}}%
\def\unicodedigits {\getvalue{\??uc#1\c!conversion}}%
\def\handleunicodeglyph {\getvalue{\??uc#1\c!command}}%
- \enableregime[unicode]% the following \relax's are realy needed
- \doifvalue{\??uc#1\c!interlinespace}\v!yes\setupinterlinespace\relax
+ \doifnot\currentregime{utf}{\enableregime[unicode]}%
+ % the following \relax's are realy needed
+ \doifvalue{\??uc#1\c!interlinespace}\v!yes
+ \setupinterlinespace\relax
+ \doifvalue{\??uc#1\c!strut}\v!yes
+ {\setunicodestrut\unicodeheight\unicodedepth}
+ {\resetunicodestrut}%
\getvalue{\??uc#1\c!commands}\relax}
%D \macros
@@ -528,7 +477,8 @@
[\c!height=1,
\c!depth=1,
\c!scale=1,
- \c!interlinespace=\v!yes,
+ \c!strut=\v!no,
+ \c!interlinespace=\v!no,
\c!command=\insertunicodeglyph,
\c!conversion=\number]
diff --git a/Master/texmf-dist/tex/context/base/hand-def.tex b/Master/texmf-dist/tex/context/base/hand-def.tex
index 591370cda85..0a19ce270d1 100644
--- a/Master/texmf-dist/tex/context/base/hand-def.tex
+++ b/Master/texmf-dist/tex/context/base/hand-def.tex
@@ -476,7 +476,7 @@
% \stopfonthandling
% \definefonthandling [noligs] [noligs] [type=tag]
-% \setupfontsynonym[Serif][handling=noligs]
+ % \setupfontsynonym[Serif][handling=noligs]
% \definefont[test][Serif at 12.34pt]
%
% {``fi--ffl---ffi'' \test ``fi--ffl---ffi''}
diff --git a/Master/texmf-dist/tex/context/base/hand-ini.tex b/Master/texmf-dist/tex/context/base/hand-ini.tex
index 588d635a969..cef84d0e6bd 100644
--- a/Master/texmf-dist/tex/context/base/hand-ini.tex
+++ b/Master/texmf-dist/tex/context/base/hand-ini.tex
@@ -69,6 +69,13 @@
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
@@ -201,15 +208,15 @@
\def\dosetfontadjusting#1%
{\iftracefonthandling\showfontadjusting{#1}\fi
\pdffontexpand\handledfont
- \csname\@fha@\@fha@#1\c!min \endcsname\space
\csname\@fha@\@fha@#1\c!max \endcsname\space
+ \csname\@fha@\@fha@#1\c!min \endcsname\space
\csname\@fha@\@fha@#1\c!step\endcsname\space
\@@pdfexpandbonus\relax}
\def\showfontadjusting#1%
{\writestatus\m!handlings{[adjust]\space#1\space
- \csname\@fha@\@fha@#1\c!min \endcsname/%
\csname\@fha@\@fha@#1\c!max \endcsname/%
+ \csname\@fha@\@fha@#1\c!min \endcsname/%
\csname\@fha@\@fha@#1\c!step\endcsname\space
\fontname\handledfont}}
\fi
@@ -394,6 +401,8 @@
\let\enablespacehandling \relax
\let\disablespacehandling \relax
+ \let\enablekernhandling \relax
+ \let\disablekernhandling \relax
\let\setspacehandling \gobbleoneargument
@@ -404,6 +413,8 @@
\def\enablespacehandling {\pdfadjustinterwordglue\plusone }
\def\disablespacehandling{\pdfadjustinterwordglue\minusone}
+ \def\enablekernhandling {\pdfprependkern \plusone }
+ \def\disablekernhandling {\pdfprependkern \minusone}
\appendtoks \disablespacehandling \to \everyforgetall % Here or not here?
@@ -574,15 +585,19 @@
\endETEX
\def\redofastenablehandling
- {\edef\fonthandling{\csname\@fha@\@fha@\@fha@\askedfonthandling\endcsname}%
- \rawprocesscommacommand[\fonthandling]\xfastenablehandling}
+ {\startdirectcharacters
+ \edef\fonthandling{\csname\@fha@\@fha@\@fha@\askedfonthandling\endcsname}%
+ \rawprocesscommacommand[\fonthandling]\xfastenablehandling
+ \stopdirectcharacters}
\def\dofastenablehandling
- {\the\everyenablefonthandling
+ {\startdirectcharacters
+ \the\everyenablefonthandling
\edef\fonthandling{\csname\@fha@\@fha@\askedfonthandling\endcsname}%
\checkfonthandling\filoffonthandling
\rawprocesscommacommand[\fonthandling]\dodoenablehandling
- \registerfonthandling\filoffonthandling}
+ \registerfonthandling\filoffonthandling
+ \stopdirectcharacters}
\def\nofastenablehandling
{\the\everyenablefonthandling
@@ -638,11 +653,11 @@
\def\dousehandling#1% is the same as encoding
{\doifundefined{\c!file\f!handlingprefix#1}%
{\letvalueempty{\c!file\f!handlingprefix#1}%
- \makeshortfilename[\f!handlingprefix#1]%
+ \makeshortfilename[\truefilename{\f!handlingprefix#1}]%
\startreadingfile
- \readsysfile\shortfilename
- {\showmessage\m!handlings2{#1}}
- {\showmessage\m!handlings3{#1}}%
+ \readsysfile\shortfilename
+ {\showmessage\m!handlings2{#1}}
+ {\showmessage\m!handlings3{#1}}%
\stopreadingfile}}
\def\usehandling[#1]%
diff --git a/Master/texmf-dist/tex/context/base/java-ini.tex b/Master/texmf-dist/tex/context/base/java-ini.tex
index 7ee080238db..d2821162e2d 100644
--- a/Master/texmf-dist/tex/context/base/java-ini.tex
+++ b/Master/texmf-dist/tex/context/base/java-ini.tex
@@ -75,6 +75,13 @@
2: preambul necunoscut --
\stopmessages
+\startmessages french library: javascript
+ title: javascript
+ 1: chargement du jeu de script --
+ 2: préambule -- inconnu
+\stopmessages
+
+
%D \TEX\ is not the right tool to check the \JAVA\ code; the
%D most we can do is reporting some passed variables:
@@ -754,9 +761,8 @@
{\startnointerference
\letgvalueempty{\c!file\f!javascriptprefix#1}%
\makeshortfilename[\f!javascriptprefix#1]%
- \showmessage\m!javascript1{#1}%
\startreadingfile
- \readsysfile\shortfilename\donothing\donothing
+ \readsysfile\shortfilename{\showmessage\m!javascript1{#1}}\donothing
\stopreadingfile
\stopnointerference}}}
diff --git a/Master/texmf-dist/tex/context/base/lang-all.xml b/Master/texmf-dist/tex/context/base/lang-all.xml
index c0dfc67653e..486ef5d0885 100644
--- a/Master/texmf-dist/tex/context/base/lang-all.xml
+++ b/Master/texmf-dist/tex/context/base/lang-all.xml
@@ -11,7 +11,7 @@
<year>1991</year>
<owner>Julio Sanchez (jsanchez@gmv.es)</owner>
<comment>These patterns have been derived from "On Word Division in Spanish"
- Jos'e A. Ma~nas</comment>
+ Jos'e A. Ma~nas</comment>
</copyright>
<copyright>
<year>1997</year>
@@ -337,4 +337,16 @@
<comment>Vietnamese needs no patterns.</comment>
</description>
+<description language='agr'>
+ <sourcefile>grahyph4.tex</sourcefile>
+ <title>TeX hyphenation patterns for the ancient Greek language</title>
+ <copyright>
+ <year>2004</year>
+ <owner>Dimitrios Filippou</owner>
+ <comment>These hyphenation patterns are explained in "ancient.pdf".
+ Hyphenation examples are given in the file "anc-test.pdf".
+ Some doubtful patterns are marked by three question marks "???".</comment>
+ </copyright>
+</description>
+
</descriptions>
diff --git a/Master/texmf-dist/tex/context/base/lang-chi.tex b/Master/texmf-dist/tex/context/base/lang-chi.tex
index b6c3ba20af1..7458268f7e8 100644
--- a/Master/texmf-dist/tex/context/base/lang-chi.tex
+++ b/Master/texmf-dist/tex/context/base/lang-chi.tex
@@ -31,14 +31,15 @@
\c!rightquote=\cnencoding\cnupperrightsinglequote,
\c!leftquotation=\cnencoding\cnupperleftdoublequote,
\c!rightquotation=\cnencoding\cnupperrightdoublequote,
- \c!date={\v!month,\ ,\v!day,{,\ },\v!year},
+ \c!date={\v!year,\cnyear,\ ,\v!month,\v!day,\cnday},
\c!state=\v!stop]
+
\setupheadtext [\s!cn] [\v!content={\cnencoding\cnencodedcontents}]
\setupheadtext [\s!cn] [\v!tables={\cnencoding\cnencodedtables}]
\setupheadtext [\s!cn] [\v!figures={\cnencoding\cnencodedfigures}]
-\setupheadtext [\s!cn] [\v!graphics=Graphics]
-\setupheadtext [\s!cn] [\v!intermezzi=Intermezzos]
+\setupheadtext [\s!cn] [\v!graphics={\cnencoding\cnencodedgraphics}]% RG & XJF
+\setupheadtext [\s!cn] [\v!intermezzi={\cnencoding\cnencodedintermezzo}]% RG & XJF
\setupheadtext [\s!cn] [\v!index={\cnencoding\cnencodedindex}]
\setupheadtext [\s!cn] [\v!abbreviations={\cnencoding\cnencodedabbreviations}]
\setupheadtext [\s!cn] [\v!logos={\cnencoding\cnencodedlogos}]
@@ -46,14 +47,14 @@
\setuplabeltext [\s!cn] [\v!table={\cnencoding\cnencodedtable}]
\setuplabeltext [\s!cn] [\v!figure={\cnencoding\cnencodedfigure}]
-\setuplabeltext [\s!cn] [\v!intermezzo=Intermezzo ]
-\setuplabeltext [\s!cn] [\v!graphic=Illustration ]
-\setuplabeltext [\s!cn] [\v!appendix=]
+\setuplabeltext [\s!cn] [\v!intermezzo={\cnencoding\cnencodedintermezzo}]% RG & XJF
+\setuplabeltext [\s!cn] [\v!graphic={\cnencoding\cnencodedillustration}]% RG & XJF
+\setuplabeltext [\s!cn] [\v!appendix={\cnencoding\cnencodedappendix}]% RG
\setuplabeltext [\s!cn] [\v!part={\cnencoding\cnencodedintro,\cnencoding\cnencodedpart}]
\setuplabeltext [\s!cn] [\v!chapter={\cnencoding\cnencodedintro,\cnencoding\cnencodedchapter}]
\setuplabeltext [\s!cn] [\v!section={\cnencoding\cnencodedintro,\cnencoding\cnencodedsection}]
-\setuplabeltext [\s!cn] [\v!line=line ]
-\setuplabeltext [\s!cn] [\v!lines=lines ]
+\setuplabeltext [\s!cn] [\v!line={\cnencoding\cnencodedline}]% RG & XJF
+\setuplabeltext [\s!cn] [\v!lines={\cnencoding\cnencodedline}]% RG & XJF
\setuplabeltext [\s!cn] [\v!subsection=]
\setuplabeltext [\s!cn] [\v!subsubsection=]
@@ -93,7 +94,64 @@
%D the glyphs of both part depend on the encoding. Therefore,
%D we have an encoding section here.
-\def\cnencoding{\enableencoding[\chineseencoding]} % ugly and temporary
+\unexpanded\def\cnencoding{\enableencoding[\chineseencoding]} % ugly and temporary
+
+\startencoding[cjk-uni]
+ \definecommand cnleftsentence {\uchar{32}{20}\uchar{32}{20}}
+ \definecommand cnrightsentence {\uchar{32}{20}\uchar{32}{20}}
+ \definecommand cnleftsubsentence {\uchar{32}{20}\uchar{32}{20}}
+ \definecommand cnrightsubsentence {\uchar{32}{20}\uchar{32}{20}}
+ \definecommand cnupperleftsinglequote {\uchar{32}{24}}
+ \definecommand cnupperrightsinglequote {\uchar{32}{25}}
+ \definecommand cnupperleftdoublequote {\uchar{32}{28}}
+ \definecommand cnupperrightdoublequote {\uchar{32}{29}}
+ \definecommand cnupperleftsinglequote-v {\uchar{48}{12}}
+ \definecommand cnupperrightsinglequote-v {\uchar{48}{13}}
+ \definecommand cnupperleftdoublequote-v {\uchar{48}{14}}
+ \definecommand cnupperrightdoublequote-v {\uchar{48}{15}}
+ \definecommand cnencodedcontents {\uchar{118}{238}\uchar{95}{85}}
+ \definecommand cnencodedtables {\uchar{136}{104}\uchar{104}{60}}
+ \definecommand cnencodedfigures {\uchar{86}{254}\uchar{95}{98}}
+ \definecommand cnencodedindex {\uchar{125}{34}\uchar{95}{21}}
+ \definecommand cnencodedabbreviations {\uchar{127}{41}\uchar{117}{101}\uchar{139}{237}}
+ \definecommand cnencodedlogos {\uchar{95}{189}\uchar{141}{44}}
+ \definecommand cnencodedunits {\uchar{139}{161}\uchar{145}{207}\uchar{83}{85}\uchar{79}{77}}
+ \definecommand cnencodedtable {\uchar{136}{104}}
+ \definecommand cnencodedfigure {\uchar{86}{254}}
+ \definecommand cnencodedintro {\uchar{123}{44}}
+ \definecommand cnencodedpart {\uchar{144}{232}\uchar{82}{6}}
+ \definecommand cnencodedchapter {\uchar{122}{224}}
+ \definecommand cnencodedsection {\uchar{130}{130}}
+ \definecommand cnencodedjanuary {\uchar{78}{0}\uchar{103}{8}}
+ \definecommand cnencodedfebrary {\uchar{78}{140}\uchar{103}{8}}
+ \definecommand cnencodedmarch {\uchar{78}{9}\uchar{103}{8}}
+ \definecommand cnencodedapril {\uchar{86}{219}\uchar{103}{8}}
+ \definecommand cnencodedmay {\uchar{78}{148}\uchar{103}{8}}
+ \definecommand cnencodedjune {\uchar{81}{109}\uchar{103}{8}}
+ \definecommand cnencodedjuly {\uchar{78}{3}\uchar{103}{8}}
+ \definecommand cnencodedaugust {\uchar{81}{107}\uchar{103}{8}}
+ \definecommand cnencodedseptember {\uchar{78}{93}\uchar{103}{8}}
+ \definecommand cnencodedoctober {\uchar{83}{65}\uchar{103}{8}}
+ \definecommand cnencodednovember {\uchar{83}{65}\uchar{78}{0}\uchar{103}{8}}
+ \definecommand cnencodeddecember {\uchar{83}{65}\uchar{78}{140}\uchar{103}{8}}
+ \definecommand cnencodedsunday {\uchar{102}{31}\uchar{103}{31}\uchar{101}{229}}
+ \definecommand cnencodedmonday {\uchar{102}{31}\uchar{103}{31}\uchar{78}{0}}
+ \definecommand cnencodedtuesday {\uchar{102}{31}\uchar{103}{31}\uchar{78}{140}}
+ \definecommand cnencodedwednesday {\uchar{102}{31}\uchar{103}{31}\uchar{78}{9}}
+ \definecommand cnencodedthursday {\uchar{102}{31}\uchar{103}{31}\uchar{86}{219}}
+ \definecommand cnencodedfriday {\uchar{102}{31}\uchar{103}{31}\uchar{78}{148}}
+ \definecommand cnencodedsaturday {\uchar{102}{31}\uchar{103}{31}\uchar{81}{109}}
+ % RG & XJF
+ \definecommand cnencodedgraphics {\uchar{86}{254}}
+ \definecommand cnencodedintermezzo {\uchar{210}{99}\uchar{242}{102}}
+ \definecommand cnencodedillustration {\uchar{99}{210}\uchar{86}{254}}
+ \definecommand cnencodedappendix {\uchar{150}{68}\uchar{95}{85}}
+ \definecommand cnencodedline {\uchar{136}{76}}
+ % Tobias Burnus & XJF
+ \definecommand cnyear {\uchar{94}{116}}
+ \definecommand cnmonth {\uchar{103}{8}}
+ \definecommand cnday {\uchar{101}{229}}
+\stopencoding
\startencoding[gbk]
\definecommand cnleftsentence {\uchar{161}{170}\uchar{161}{170}}
@@ -140,6 +198,16 @@
\definecommand cnencodedthursday {\uchar{208}{199}\uchar{198}{218}\uchar{203}{196}}
\definecommand cnencodedfriday {\uchar{208}{199}\uchar{198}{218}\uchar{206}{229}}
\definecommand cnencodedsaturday {\uchar{208}{199}\uchar{198}{218}\uchar{193}{249}}
+ % RG & XJF
+ \definecommand cnencodedgraphics {\uchar{205}{188}}
+ \definecommand cnencodedintermezzo {\uchar{178}{229}\uchar{199}{250}}
+ \definecommand cnencodedillustration {\uchar{178}{229}\uchar{205}{188}}
+ \definecommand cnencodedappendix {\uchar{184}{189}\uchar{194}{188}}
+ \definecommand cnencodedline {\uchar{208}{208}}
+ % Tobias Burnus & XJF
+ \definecommand cnyear {\uchar{196}{234}}
+ \definecommand cnmonth {\uchar{212}{194}}
+ \definecommand cnday {\uchar{200}{213}}
\stopencoding
\startencoding[big5]
@@ -187,6 +255,53 @@
\definecommand cnencodedthursday {\uchar{172} {80}\uchar{180}{193}\uchar{165}{124}}
\definecommand cnencodedfriday {\uchar{172} {80}\uchar{180}{193}\uchar{164}{173}}
\definecommand cnencodedsaturday {\uchar{172} {80}\uchar{180}{193}\uchar{164}{187}}
+ % Tobias Burnus &\XJF
+ \definecommand cnyear {\uchar{166}{126}}
+ \definecommand cnmonth {\uchar{164}{235}}
+ \definecommand cnday {\uchar{164}{233}}
+
+% Traditional Chinese characters (only where they differ to the
+% simplified ones) for lang-chi.tex and font-chi.tex.
+
+% \startencoding[cjk-uni]
+% \defineudigit 10000 132 44
+% \defineudigit 100000000 81 4
+
+% \definecommand cnencodedsection {\uchar{123}{192}}
+% \definecommand cnencodedfigure {\uchar{87}{22}}
+% \definecommand cnencodedunits {\uchar{138}{8}\uchar{145}{207}\uchar{85}{174}\uchar{79}{77}}
+% \definecommand cnencodedlogos {\uchar{95}{189}\uchar{140}{182}}
+% \definecommand cnencodedabbreviations {\uchar{126}{46}\uchar{117}{101}\uchar{138}{158}}
+% \definecommand cnencodedfigures {\uchar{87}{22}\uchar{95}{98}}
+% \definecommand cnencodedcontents {\uchar{118}{238}\uchar{147}{4}}
+% \stopencoding
+
+% \startencoding[gbk]
+% \defineudigit 10000 200 102
+% \defineudigit 100000000 131 124
+
+% \definecommand cnencodedsection {\uchar{185}{157}}
+% \definecommand cnencodedfigure {\uchar{136}{68}}
+% \definecommand cnencodedunits {\uchar{211}{139}\uchar{193}{191}\uchar{134}{206}\uchar{206}{187}}
+% \definecommand cnencodedlogos {\uchar{187}{213}\uchar{217}{72}
+% \definecommand cnencodedabbreviations {\uchar{191}{115}\uchar{194}{212}\uchar{213}{90}}
+% \definecommand cnencodedfigures {\uchar{136}{68}\uchar{208}{206}}
+% \definecommand cnencodedcontents {\uchar{196}{191}\uchar{228}{155}}
+% \stopencoding
+
+% \startencoding[big5]
+% \defineudigit 10000 184 85
+% \defineudigit 100000000 187 245
+
+% \definecommand cnencodedsection {\uchar{184}{96}}
+% \definecommand cnencodedfigure {\uchar{185}{207}}
+% \definecommand cnencodedunits {\uchar{173}{112}\uchar{182}{113}\uchar{179}{230}\uchar{166}{236}}
+% \definecommand cnencodedlogos {\uchar{192}{178}\uchar{182}{83}}
+% \definecommand cnencodedabbreviations {\uchar{193}{89}\uchar{178}{164}\uchar{187}{121}}
+% \definecommand cnencodedfigures {\uchar{185}{207}\uchar{167}{206}}
+% \definecommand cnencodedcontents {\uchar{165}{216}\uchar{191}{253}}
+% \stopencoding
+
\stopencoding
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/lang-ctx.tex b/Master/texmf-dist/tex/context/base/lang-ctx.tex
index b3a2e020fd5..2f3c2dfd7ef 100644
--- a/Master/texmf-dist/tex/context/base/lang-ctx.tex
+++ b/Master/texmf-dist/tex/context/base/lang-ctx.tex
@@ -40,8 +40,20 @@
\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={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-ger.tex b/Master/texmf-dist/tex/context/base/lang-ger.tex
index 919748c691f..4434b7dbaa1 100644
--- a/Master/texmf-dist/tex/context/base/lang-ger.tex
+++ b/Master/texmf-dist/tex/context/base/lang-ger.tex
@@ -126,7 +126,7 @@
\c!leftquotation=\upperleftdoublesixquote,
\c!rightquotation=\upperrightdoubleninequote,
\c!date={\v!day,{.},\ ,\v!month,\ ,\v!year},
- \c!default=\s!nl, % patterns
+ \c!default=\s!no,
\c!state=\v!stop]
%D Extra:
@@ -165,111 +165,6 @@
\installlanguage [norwegian] [\s!no]
\installlanguage [norsk] [\s!no] % bonus switch
-% GERMAN
-%
-% %D The next section is dedicated to Tobias Burnus.
-%
-% \startlanguagespecifics[\s!de]
-%
-% \installcompoundcharacter "a {\moveaccent{-.1ex}\"a\midworddiscretionary}
-% \installcompoundcharacter "e {\moveaccent{-.1ex}\"e\midworddiscretionary}
-% \installcompoundcharacter "i {\moveaccent{-.1ex}\"\i\midworddiscretionary}
-% \installcompoundcharacter "o {\moveaccent{-.1ex}\"o\midworddiscretionary}
-% \installcompoundcharacter "u {\moveaccent{-.1ex}\"u\midworddiscretionary}
-% \installcompoundcharacter "s {\SS}
-% \installcompoundcharacter "z {\SS}
-%
-% \installcompoundcharacter "A {\smashaccent\"A}
-% \installcompoundcharacter "E {\smashaccent\"E}
-% \installcompoundcharacter "I {\smashaccent\"I}
-% \installcompoundcharacter "O {\smashaccent\"O}
-% \installcompoundcharacter "U {\smashaccent\"U}
-% \installcompoundcharacter "Z {SZ}
-% \installcompoundcharacter "S {SS}
-%
-% \stoplanguagespecifics
-%
-% \startlanguagespecifics[\s!de]
-%
-% \installcompoundcharacter "ck {\discretionary {k-}{k}{ck}}
-% \installcompoundcharacter "ff {\discretionary{ff-}{f}{ff}}
-% \installcompoundcharacter "ll {\discretionary{ll-}{l}{ll}}
-% \installcompoundcharacter "mm {\discretionary{mm-}{m}{mm}}
-% \installcompoundcharacter "nn {\discretionary{nn-}{n}{nn}}
-% \installcompoundcharacter "pp {\discretionary{pp-}{p}{pp}}
-% \installcompoundcharacter "rr {\discretionary{rr-}{r}{rr}}
-% \installcompoundcharacter "tt {\discretionary{tt-}{t}{tt}}
-%
-% \installcompoundcharacter "CK {\discretionary {K-}{K}{CK}}
-% \installcompoundcharacter "FF {\discretionary{FF-}{F}{FF}}
-% \installcompoundcharacter "LL {\discretionary{LL-}{L}{LL}}
-% \installcompoundcharacter "MM {\discretionary{MM-}{M}{MM}}
-% \installcompoundcharacter "NN {\discretionary{NN-}{N}{NN}}
-% \installcompoundcharacter "PP {\discretionary{PP-}{P}{PP}}
-% \installcompoundcharacter "RR {\discretionary{RR-}{R}{RR}}
-% \installcompoundcharacter "TT {\discretionary{TT-}{T}{TT}}
-%
-% \stoplanguagespecifics
-%
-% \startlanguagespecifics[\s!de]
-%
-% \installcompoundcharacter "` {\handlequotation\c!leftquotation}
-% \installcompoundcharacter "' {\handlequotation\c!rightquotation}
-% \installcompoundcharacter ". {\kern.1em\ignorespaces}
-%
-% \def\setupDElanguage%
-% {\setuplanguage
-% [\s!de]
-% [\c!leftsentence=\leftguillemot,
-% \c!rightsentence=\rightguillemot,
-% \c!leftsubsentence=\leftsubguillemot,
-% \c!rightsubsentence=\rightsubguillemot]}
-%
-% \installcompoundcharacter "< {{\setupDElanguage|<|}}
-% \installcompoundcharacter "> {{\setupDElanguage|>|}}
-%
-% \stoplanguagespecifics
-%
-% %D An experimental hack:
-%
-% \startencoding[pdfdoc]
-% \startlanguagespecifics[\s!de]% hm, a % is needed
-% \defineactivecharacter " {\"} % no {\simplifiedcompoundcharacter"}
-% \stoplanguagespecifics
-% \stopencoding
-%
-% \startencoding[ec]
-% \startlanguagespecifics[\s!de]%
-% \installcompoundcharacter "a {\"a}
-% \installcompoundcharacter "e {\"e}
-% \installcompoundcharacter "i {\"\i}
-% \installcompoundcharacter "o {\"o}
-% \installcompoundcharacter "u {\"u}
-% \installcompoundcharacter "A {\"A}
-% \installcompoundcharacter "E {\"E}
-% \installcompoundcharacter "I {\"I}
-% \installcompoundcharacter "O {\"O}
-% \installcompoundcharacter "U {\"U}
-% \stoplanguagespecifics
-% \stopencoding
-%
-% \startencoding[texnansi]
-% \startlanguagespecifics[\s!de]%
-% \installcompoundcharacter "a {\"a}
-% \installcompoundcharacter "e {\"e}
-% \installcompoundcharacter "i {\"\i}
-% \installcompoundcharacter "o {\"o}
-% \installcompoundcharacter "u {\"u}
-% \installcompoundcharacter "A {\"A}
-% \installcompoundcharacter "E {\"E}
-% \installcompoundcharacter "I {\"I}
-% \installcompoundcharacter "O {\"O}
-% \installcompoundcharacter "U {\"U}
-% \stoplanguagespecifics
-% \stopencoding
-%
-% %D This hack should be perfected.
-
%% NORWEGIAN
%
% These three letters (in this order) are the
@@ -406,12 +301,14 @@
\setuplabeltext [\s!af] [\v!graphic=Grafiek ]
\setuplabeltext [\s!no] [\v!graphic=Grafikk ]
-\setuplabeltext [\s!en] [\v!chapter=]
+%D We don't set these here. One can do that in a style.
+
+\setuplabeltext [\s!en] [\v!chapter=] % Chapter
\setuplabeltext [\s!nl] [\v!chapter=]
-\setuplabeltext [\s!de] [\v!chapter=]
+\setuplabeltext [\s!de] [\v!chapter=] % Kapitel
\setuplabeltext [\s!da] [\v!chapter=]
\setuplabeltext [\s!sv] [\v!chapter=]
-\setuplabeltext [\s!af] [\v!chapter=] % [\v!chapter=hoofstuk]
+\setuplabeltext [\s!af] [\v!chapter=] % Hoofstuk
\setuplabeltext [\s!no] [\v!chapter=]
\setuplabeltext [\s!en] [\v!section=]
@@ -419,7 +316,7 @@
\setuplabeltext [\s!de] [\v!section=]
\setuplabeltext [\s!da] [\v!section=]
\setuplabeltext [\s!sv] [\v!section=]
-\setuplabeltext [\s!af] [\v!section=] % [\v!section=paragraaf]
+\setuplabeltext [\s!af] [\v!section=] % Paragraaf
\setuplabeltext [\s!no] [\v!section=]
\setuplabeltext [\s!en] [\v!subsection=]
@@ -446,12 +343,12 @@
\setuplabeltext [\s!af] [\v!subsubsubsection=]
\setuplabeltext [\s!no] [\v!subsubsubsection=]
-\setuplabeltext [\s!en] [\v!appendix=]
+\setuplabeltext [\s!en] [\v!appendix=] % Appendix
\setuplabeltext [\s!nl] [\v!appendix=]
-\setuplabeltext [\s!de] [\v!appendix=]
-\setuplabeltext [\s!da] [\v!appendix=] % [\v!appendix=bilag]
+\setuplabeltext [\s!de] [\v!appendix=] % Anhang
+\setuplabeltext [\s!da] [\v!appendix=] % Bilag
\setuplabeltext [\s!sv] [\v!appendix=]
-\setuplabeltext [\s!af] [\v!appendix=] % [\v!appendix=bylae]
+\setuplabeltext [\s!af] [\v!appendix=] % Bylae
\setuplabeltext [\s!no] [\v!appendix=]
\setuplabeltext [\s!en] [\v!part=Part ]
@@ -669,18 +566,22 @@
\def\enordinaldaynumber#1%
{#1\ifnum\lasttwodigits{#1}=11
- \ordinalstr{th}%
+ \highordinalstr{th}%
+ \else\ifnum\lasttwodigits{#1}=12
+ \highordinalstr{th}%
+ \else\ifnum\lasttwodigits{#1}=13
+ \highordinalstr{th}%
\else\ifcase\lastdigit{#1}%
- \ordinalstr{th}%
+ \highordinalstr{th}%
\or % 1
- \ordinalstr{st}%
+ \highordinalstr{st}%
\or % 2
- \ordinalstr{nd}%
+ \highordinalstr{nd}%
\or % 3
- \ordinalstr{rd}%
+ \highordinalstr{rd}%
\else
- \ordinalstr{th}%
- \fi\fi}
+ \highordinalstr{th}%
+ \fi\fi\fi\fi}
% \def\enordinaldaynumber#1%
% {#1\ordinalstr{\ifnum\lasttwodigits{#1}=11 th\else\ifcase\lastdigit{#1}
@@ -697,4 +598,19 @@
%D \ShowAllLanguageValues [\s!af] [afrikaans] {Afrikaaner} {boer} % afrikaanse gasvryheid
%D \ShowAllLanguageValues [\s!no] [norwegian] {Norwegian} {wood}
+%D Extra month names:
+
+\setuplabeltext [\s!en] [\v!january :\s!mnem=jan]
+\setuplabeltext [\s!en] [\v!february :\s!mnem=feb]
+\setuplabeltext [\s!en] [\v!march :\s!mnem=mar]
+\setuplabeltext [\s!en] [\v!april :\s!mnem=apr]
+\setuplabeltext [\s!en] [\v!may :\s!mnem=may]
+\setuplabeltext [\s!en] [\v!june :\s!mnem=jun]
+\setuplabeltext [\s!en] [\v!july :\s!mnem=jul]
+\setuplabeltext [\s!en] [\v!august :\s!mnem=aug]
+\setuplabeltext [\s!en] [\v!september:\s!mnem=sep]
+\setuplabeltext [\s!en] [\v!october :\s!mnem=oct]
+\setuplabeltext [\s!en] [\v!november :\s!mnem=nov]
+\setuplabeltext [\s!en] [\v!december :\s!mnem=dec]
+
\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 cd83daddbd3..13cebb20746 100644
--- a/Master/texmf-dist/tex/context/base/lang-grk.tex
+++ b/Master/texmf-dist/tex/context/base/lang-grk.tex
@@ -83,4 +83,11 @@
%D % \ShowAllLanguageValues [\s!gr] [\greekEpsilon\greeklambda\greeklambda\greeketa\greeknu\greekiota\greekkappa\greekalphatonos] {Greek} {love}
+\installlanguage
+ [\s!agr]
+ [\s!default=\s!gr,
+ \c!state=\v!stop]
+
+\installlanguage [ancientgreek] [\s!agr]
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/lang-ini.tex b/Master/texmf-dist/tex/context/base/lang-ini.tex
index e435c2420cf..f47a4e9147f 100644
--- a/Master/texmf-dist/tex/context/base/lang-ini.tex
+++ b/Master/texmf-dist/tex/context/base/lang-ini.tex
@@ -95,17 +95,17 @@
\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=--) (--,--)
+ 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
+ 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
@@ -122,6 +122,20 @@
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
+
%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
@@ -165,11 +179,31 @@
%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]{\def\currentlanguage{#1}}
+\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.
@@ -249,6 +283,8 @@
\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}%
@@ -303,22 +339,23 @@
\dodoloadpatterns{#1}{#2}{}{}%
\fi}
+\def\setuphyppatencoding
+ {\pathypsettings
+ \enableregime[utf]}
+
+\beginXETEX
+ \def\setuphyppatencoding
+ {\pathypsettings}
+\endXETEX
+
\def\dodoloadpatterns#1#2#3#4% beware, loaded language also incr
{\normallanguage\loadedlanguage % when not really needed
\bgroup
- % \startencoding[#3]%
- % \enablemapping[#4]% hm, does a sync patterns
- % \doifnothing\currentencoding{\let\currentencoding\s!default}%
- % \doifnothing\currentmapping {\let\currentmapping \s!default}%
- % better:
\let\synchronizepatterns\relax % needed?
\let\enabledmapping \empty % needed?
- % old (original) patterns
\doifelsenothing{#3}{\enableencoding[\s!default]}{\enableencoding[#3]}%
\doifelsenothing{#4}{\enablemapping [\s!default]}{\enablemapping [#4]}%
- % new patterns
- % \enableregime[utf]%
- %
+ \setuphyppatencoding
\ifundefined{\??la\??la:\currentencoding:\currentmapping:#2}%
\let\doshowpatterns\relax
\edef\alreadyloadedlanguage
@@ -373,13 +410,8 @@
%D Quick and dirty, but useful:
%D
%D \showsetup{setuplanguage}
-
-% \def\setuplanguage
-% {\dodoubleargument\dosetuplanguage}
-
-% \def\dosetuplanguage[#1][#2]%
-% {\getparameters[\??la#1][#2]%
-% \doif{#1}\currentlanguage\docomplexlanguage}
+%D
+%D Beware, this command can only be used when a language is installed.
\unprotected \def\setuplanguage
{\dodoubleempty\dosetuplanguage}
@@ -593,7 +625,7 @@
\ifcsname\l!prefix!\askedlanguage\endcsname
\edef\askedlanguage{\csname\l!prefix!\askedlanguage\endcsname}%
\ifx\currentlanguage\askedlanguage \else
- \let\currentlanguage\askedlanguage
+ \setcurrentlanguage\currentmainlanguage\askedlanguage
\docomplexlanguage
\fi
\else
@@ -613,7 +645,7 @@
\else
\edef\askedlanguage{\csname\l!prefix!\askedlanguage\endcsname}%
\ifx\currentlanguage\askedlanguage \else
- \let\currentlanguage\askedlanguage
+ \setcurrentlanguage\currentmainlanguage\askedlanguage
\docomplexlanguage
\fi
\fi
@@ -633,8 +665,7 @@
\ifcsname\l!prefix!\askedlanguage\endcsname
\edef\askedlanguage{\csname\l!prefix!\askedlanguage\endcsname}%
\ifx\currentmainlanguage\askedlanguage \else
- \let\currentmainlanguage\askedlanguage
- \let\currentlanguage\askedlanguage
+ \setcurrentlanguage\askedlanguage\askedlanguage
\docomplexlanguage
\fi
\fi
@@ -650,8 +681,7 @@
\@EA\ifx\csname\l!prefix!\askedlanguage\endcsname\relax\else
\edef\askedlanguage{\csname\l!prefix!\askedlanguage\endcsname}%
\ifx\currentmainlanguage\askedlanguage \else
- \let\currentmainlanguage\askedlanguage
- \let\currentlanguage\askedlanguage
+ \setcurrentlanguage\askedlanguage\askedlanguage
\docomplexlanguage
\fi
\fi
@@ -680,12 +710,18 @@
% \def\languageparameter#1%
% {\csname\??la\defaultlanguage\currentlanguage#1\endcsname}
-\def\languageparameter
+\def\languageparameter % @EA = speedup
{\@EA\dolanguageparameter\@EA{\defaultlanguage\currentlanguage}}
-\def\xxlanguageparameter#1%
+\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}
+
\beginETEX
\def\dolanguageparameter#1#2%
@@ -699,6 +735,17 @@
\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}
+
\endETEX
\beginTEX
@@ -716,6 +763,19 @@
\fi
#2\endcsname}
+ \def\dospecificlanguageparameter#1#2#3%
+ {\csname\??la
+ \@EA\ifx\csname\??la#2#3\endcsname\relax
+ \@EA\ifx\csname\??la#1#3\endcsname\relax
+ \s!default
+ \else
+ \@EA\ifx\csname\??la#1#3\endcsname\empty\s!default\else#1\fi
+ \fi
+ \else
+ \@EA\ifx\csname\??la#2#3\endcsname\empty\s!default\else#2\fi
+ \fi
+ #3\endcsname}
+
\endTEX
% moved
diff --git a/Master/texmf-dist/tex/context/base/lang-ita.tex b/Master/texmf-dist/tex/context/base/lang-ita.tex
index f2640379ab3..950f87344f3 100644
--- a/Master/texmf-dist/tex/context/base/lang-ita.tex
+++ b/Master/texmf-dist/tex/context/base/lang-ita.tex
@@ -23,7 +23,7 @@
%D
%D \starttabulate[|lB|l|]
%D \NC Italian \NC Giuseppe Bilotta \NC \NR
-%D \NC Rumanian \NC Dan Seracu \NC \NR
+%D \NC Romanian \NC Dan Seracu \NC \NR
%D \NC Portuguese \NC Pedro F. M. Mendon\c a \NC \NR
%D \stoptabulate
@@ -162,7 +162,7 @@
\setupheadtext [\s!pt] [\v!content=Conte\'udo]
\setupheadtext [\s!ro] [\v!content=Cuprins]
-\setupheadtext [\s!fr] [\v!tables=Tables]
+\setupheadtext [\s!fr] [\v!tables=Tableaux]
\setupheadtext [\s!es] [\v!tables=Tablas]
\setupheadtext [\s!ca] [\v!tables=Taules]
\setupheadtext [\s!it] [\v!tables=Tabelle]
@@ -226,7 +226,7 @@
\setupheadtext [\s!pt] [\v!units=Unidades]
\setupheadtext [\s!ro] [\v!units=Unit\u{a}\c{t}i]
-\setuplabeltext [\s!fr] [\v!table=Table ]
+\setuplabeltext [\s!fr] [\v!table=Tableau ]
\setuplabeltext [\s!es] [\v!table=Tablas ]
\setuplabeltext [\s!ca] [\v!table=Taules ]
\setuplabeltext [\s!it] [\v!table=Tabella ]
@@ -477,21 +477,6 @@
\setuplabeltext [\s!ro] [\v!friday=vineri]
\setuplabeltext [\s!ro] [\v!saturday=s\^{a}mb\u{a}t\u{a}]
-% \startlanguagespecifics[\s!ro]
-%
-% \installcompoundcharacter "a {\u{a}}
-% \installcompoundcharacter "i {\^{\i}}
-% \installcompoundcharacter "s {\c{s}}
-% \installcompoundcharacter "t {\c{t}}
-% \installcompoundcharacter "A {\^{a}}
-% \installcompoundcharacter "I {\^{I}}
-% \installcompoundcharacter "S {\c{S}}
-% \installcompoundcharacter "T {\c{T}}
-% \installcompoundcharacter "` {\handlequotation\c!leftquotation}
-% \installcompoundcharacter "' {\handlequotation\c!rightquotation}
-%
-% \stoplanguagespecifics
-
%D Rather new \unknown
\setuplabeltext [\s!it] [\v!page=pagina ]
diff --git a/Master/texmf-dist/tex/context/base/lang-jap.tex b/Master/texmf-dist/tex/context/base/lang-jap.tex
new file mode 100644
index 00000000000..ffb53ea7035
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/lang-jap.tex
@@ -0,0 +1,235 @@
+%D \module
+%D [ file=lang-jap,
+%D version=2006.01.13,
+%D title=\CONTEXT\ Language Macros,
+%D subtitle=Japanese,
+%D author={Richard Gabriel},
+%D date=\currentdate,
+%D copyright={PRAGMA / RG}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% rgabriel@kerio.com
+
+\writestatus{loading}{Context Language Macros / Japanese}
+
+\unprotect
+
+\definesystemconstant {japanese} \definesystemconstant {ja}
+
+\installlanguage
+ [\s!ja]
+ [\c!leftsentence=\jaencoding\jaleftsentence,
+ \c!rightsentence=\jaencoding\jarightsentence,
+ \c!leftsubsentence=\jaencoding\jaleftsubsentence,
+ \c!rightsubsentence=\jaencoding\jarightsubsentence,
+ \c!leftquote=\jaencoding\jaencodedsinglestartquote,
+ \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]
+
+\setupheadtext [\s!ja] [\v!content={\jaencoding\jaencodedtableofcontents}]
+\setupheadtext [\s!ja] [\v!tables={\jaencoding\jaencodedtables}]
+\setupheadtext [\s!ja] [\v!figures={\jaencoding\jaencodedfigures}]
+\setupheadtext [\s!ja] [\v!graphics={\jaencoding\jaencodedgraphics}]
+\setupheadtext [\s!ja] [\v!intermezzi={\jaencoding\jaencodedintermezzos}]
+\setupheadtext [\s!ja] [\v!index={\jaencoding\jaencodedindex}]
+\setupheadtext [\s!ja] [\v!abbreviations={\jaencoding\jaencodedabbreviations}]
+\setupheadtext [\s!ja] [\v!logos={\jaencoding\jaencodedlogos}]
+\setupheadtext [\s!ja] [\v!units={\jaencoding\jaencodedunits}]
+
+\setuplabeltext [\s!ja] [\v!table={\jaencoding\jaencodedtable}]
+\setuplabeltext [\s!ja] [\v!figure={\jaencoding\jaencodedfigure}]
+\setuplabeltext [\s!ja] [\v!intermezzo={\jaencoding\jaencodedintermezzo}]
+\setuplabeltext [\s!ja] [\v!graphic={\jaencoding\jaencodedillustration}]
+\setuplabeltext [\s!ja] [\v!appendix={\jaencoding\jaencodedappendix}]
+\setuplabeltext [\s!ja] [\v!part={\jaencoding\jaencodedintro,\jaencoding\jaencodedpart}]
+\setuplabeltext [\s!ja] [\v!chapter={\jaencoding\jaencodedintro,\jaencoding\jaencodedchapter}]
+\setuplabeltext [\s!ja] [\v!section={\jaencoding\jaencodedintro,\jaencoding\jaencodedsection}]
+\setuplabeltext [\s!ja] [\v!line={\jaencoding\jaencodedline}]
+\setuplabeltext [\s!ja] [\v!lines={\jaencoding\jaencodedline}]
+
+\setuplabeltext [\s!ja] [\v!subsection=]
+\setuplabeltext [\s!ja] [\v!subsubsection=]
+\setuplabeltext [\s!ja] [\v!subsubsubsection=]
+
+%D Why are these languagespecifics ?
+
+\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=\jaencoding\jaencodedsunday ]
+\setuplabeltext [\s!ja] [\v!monday=\jaencoding\jaencodedmonday ]
+\setuplabeltext [\s!ja] [\v!tuesday=\jaencoding\jaencodedtuesday ]
+\setuplabeltext [\s!ja] [\v!wednesday=\jaencoding\jaencodedwednesday]
+\setuplabeltext [\s!ja] [\v!thursday=\jaencoding\jaencodedthursday ]
+\setuplabeltext [\s!ja] [\v!friday=\jaencoding\jaencodedfriday ]
+\setuplabeltext [\s!ja] [\v!saturday=\jaencoding\jaencodedsaturday ]
+
+% Hardcoded - \japaneseencoding should be defined similarly to \chineseencoding
+
+\unexpanded\def\jaencoding{\enableencoding[cjk-uni]}
+
+%D This list is taken from DocBook XSL stylesheets (http://docbook.sourceforge.net/).
+
+\startencoding[cjk-uni]
+
+ \definecommand jaencodedabstract {\uchar{105}{130}\uchar{137}{129}}
+ \definecommand jaencodedand {\uchar{48}{1}}
+ \definecommand jaencodedanswer {\uchar{123}{84}\uchar{255}{26}}
+ \definecommand jaencodedappendix {\uchar{78}{216}\uchar{147}{50}}
+ \definecommand jaencodedarticle {\uchar{152}{5}\uchar{118}{238}}
+ \definecommand jaencodedbibliography {\uchar{83}{194}\uchar{128}{3}\uchar{101}{135}\uchar{115}{46}}
+ \definecommand jaencodedbook {\uchar{48}{214}\uchar{48}{195}\uchar{48}{175}}
+ \definecommand jaencodedbridgehead {\uchar{152}{5}}
+ \definecommand jaencodedbullet {\uchar{37}{207}}
+ \definecommand jaencodedby {\uchar{255}{26}}
+ \definecommand jaencodedcaution {\uchar{108}{232}\uchar{97}{15}}
+ \definecommand jaencodedcolophon {\uchar{89}{101}\uchar{78}{216}}
+ \definecommand jaencodedcopyright {\uchar{136}{253}\uchar{79}{92}\uchar{132}{87}\uchar{79}{92}}
+ \definecommand jaencodeddedication {\uchar{139}{29}\uchar{143}{158}}
+ \definecommand jaencodededited {\uchar{125}{232}\uchar{128}{5}}
+ \definecommand jaencodededitedby {\uchar{125}{232}\uchar{128}{5}\uchar{255}{26}}
+ \definecommand jaencodededition {\uchar{125}{232}\uchar{150}{198}}
+ \definecommand jaencodedendquote {\uchar{48}{13}}
+ \definecommand jaencodedequation {\uchar{95}{15}}
+ \definecommand jaencodedexample {\uchar{79}{139}}
+ \definecommand jaencodedfigure {\uchar{86}{243}}
+ \definecommand jaencodedglossary {\uchar{117}{40}\uchar{138}{158}\uchar{150}{198}}
+ \definecommand jaencodedglosssee {\uchar{83}{194}\uchar{113}{103}}
+ \definecommand jaencodedglossseealso {\uchar{83}{194}\uchar{113}{103}}
+ \definecommand jaencodedchapter {\uchar{122}{224}}
+ \definecommand jaencodedimportant {\uchar{145}{205}\uchar{137}{129}\uchar{152}{5}\uchar{118}{238}}
+ \definecommand jaencodedindex {\uchar{118}{238}\uchar{107}{33}}
+ \definecommand jaencodedindexsymbols {\uchar{48}{183}\uchar{48}{243}\uchar{48}{220}\uchar{48}{235}}
+ \definecommand jaencodedintro {\uchar{123}{44}}
+ \definecommand jaencodedlistofequations {\uchar{95}{15}\uchar{118}{238}\uchar{107}{33}}
+ \definecommand jaencodedlistofexamples {\uchar{79}{139}\uchar{118}{238}\uchar{107}{33}}
+ \definecommand jaencodedlistoffigures {\uchar{86}{243}\uchar{118}{238}\uchar{107}{33}}
+ \definecommand jaencodedlistoftables {\uchar{136}{104}\uchar{118}{238}\uchar{107}{33}}
+ \definecommand jaencodedlistofunknown {\uchar{78}{13}\uchar{102}{14}\uchar{118}{238}\uchar{107}{33}}
+ \definecommand jaencodedmsgaud {\uchar{91}{254}\uchar{140}{97}\uchar{128}{5}}
+ \definecommand jaencodedmsglevel {\uchar{48}{236}\uchar{48}{217}\uchar{48}{235}}
+ \definecommand jaencodedmsgorig {\uchar{118}{122}\uchar{79}{225}\uchar{81}{67}}
+ \definecommand jaencodednavhome {\uchar{48}{219}\uchar{48}{252}\uchar{48}{224}}
+ \definecommand jaencodednavnext {\uchar{107}{33}\uchar{48}{110}\uchar{48}{218}\uchar{48}{252}\uchar{48}{184}}
+ \definecommand jaencodednavnextsibling {\uchar{101}{233}\uchar{144}{1}\uchar{48}{138}}
+ \definecommand jaencodednavprev {\uchar{82}{77}\uchar{48}{110}\uchar{48}{218}\uchar{48}{252}\uchar{48}{184}}
+ \definecommand jaencodednavprevsibling {\uchar{93}{251}\uchar{98}{59}\uchar{48}{87}}
+ \definecommand jaencodednavup {\uchar{78}{10}\uchar{48}{107}\uchar{98}{59}\uchar{48}{139}}
+ \definecommand jaencodednestedendquote {\uchar{48}{15}}
+ \definecommand jaencodednestedstartquote {\uchar{48}{14}}
+ \definecommand jaencodednonexistantelement {\uchar{137}{129}\uchar{125}{32}\uchar{48}{76}\uchar{91}{88}\uchar{87}{40}\uchar{48}{87}\uchar{48}{126}\uchar{48}{91}\uchar{48}{147}}
+ \definecommand jaencodednote {\uchar{108}{232}\uchar{97}{15}}
+ \definecommand jaencodednotes {\uchar{108}{232}\uchar{97}{15}}
+ \definecommand jaencodedpages {\uchar{80}{103}\uchar{115}{46}}
+ \definecommand jaencodedpart {\uchar{48}{209}\uchar{48}{252}\uchar{48}{200}}
+ \definecommand jaencodedpreface {\uchar{94}{143}\uchar{101}{135}}
+ \definecommand jaencodedprocedure {\uchar{98}{75}\uchar{152}{6}}
+ \definecommand jaencodedprocedureformal {\uchar{98}{75}\uchar{152}{6}}
+ \definecommand jaencodedproductionset {\uchar{48}{215}\uchar{48}{237}\uchar{48}{192}\uchar{48}{175}\uchar{48}{183}\uchar{48}{231}\uchar{48}{243}}
+ \definecommand jaencodedproductionsetformal {\uchar{48}{215}\uchar{48}{237}\uchar{48}{192}\uchar{48}{175}\uchar{48}{183}\uchar{48}{231}\uchar{48}{243}}
+ \definecommand jaencodedpublished {\uchar{118}{122}\uchar{136}{76}}
+ \definecommand jaencodedqandadiv {\uchar{85}{79}\uchar{255}{26}\uchar{48}{1}\uchar{123}{84}\uchar{255}{26}}
+ \definecommand jaencodedqandaentry {\uchar{85}{79}\uchar{255}{26}}
+ \definecommand jaencodedquestion {\uchar{85}{79}\uchar{255}{26}}
+ \definecommand jaencodedreference {\uchar{83}{194}\uchar{113}{103}}
+ \definecommand jaencodedrefname {\uchar{84}{13}\uchar{82}{77}}
+ \definecommand jaencodedrefsection {\uchar{152}{5}}
+ \definecommand jaencodedrefsynopsisdiv {\uchar{105}{130}\uchar{137}{129}}
+ \definecommand jaencodedrevhistory {\uchar{101}{57}\uchar{138}{2}\uchar{92}{101}\uchar{107}{116}}
+ \definecommand jaencodedrevision {\uchar{101}{57}\uchar{138}{2}}
+ \definecommand jaencodedsection {\uchar{152}{5}}
+ \definecommand jaencodedsee {\uchar{83}{194}\uchar{113}{103}}
+ \definecommand jaencodedseealso {\uchar{83}{194}\uchar{113}{103}}
+ \definecommand jaencodedseparator {\uchar{48}{1}}
+ \definecommand jaencodedset {\uchar{138}{45}\uchar{91}{154}}
+ \definecommand jaencodedsetindex {\uchar{118}{238}\uchar{107}{33}\uchar{138}{45}\uchar{91}{154}}
+ \definecommand jaencodedsidebar {\uchar{48}{181}\uchar{48}{164}\uchar{48}{201}\uchar{48}{208}\uchar{48}{252}}
+ \definecommand jaencodedsimplesect {\uchar{152}{5}}
+ \definecommand jaencodedsingleendquote {\uchar{32}{25}}
+ \definecommand jaencodedsinglestartquote {\uchar{32}{24}}
+ \definecommand jaencodedstartquote {\uchar{48}{12}}
+ \definecommand jaencodedstep {\uchar{48}{185}\uchar{48}{198}\uchar{48}{195}\uchar{48}{215}}
+ \definecommand jaencodedtable {\uchar{136}{104}}
+ \definecommand jaencodedtablenotes {\uchar{108}{232}\uchar{97}{15}}
+ \definecommand jaencodedtableofcontents {\uchar{118}{238}\uchar{107}{33}}
+ \definecommand jaencodedtip {\uchar{48}{198}\uchar{48}{163}\uchar{48}{195}\uchar{48}{215}}
+ \definecommand jaencodedunexpectedelementname {\uchar{78}{13}\uchar{102}{14}\uchar{48}{106}\uchar{137}{129}\uchar{125}{32}\uchar{84}{13}}
+ \definecommand jaencodedunsupported {\uchar{48}{181}\uchar{48}{221}\uchar{48}{252}\uchar{48}{200}\uchar{48}{87}\uchar{48}{126}\uchar{48}{91}\uchar{48}{147}}
+ \definecommand jaencodedwarning {\uchar{139}{102}\uchar{84}{74}}
+
+ \definecommand jaencodedyear {\uchar{94}{116}}
+ \definecommand jaencodedmonth {\uchar{103}{8}}
+ \definecommand jaencodedday {\uchar{101}{229}}
+
+\stopencoding
+
+%D Taken from Chinese (will be investigated yet...)
+
+\startencoding[cjk-uni]
+
+ \definecommand jaencodedleftsentence {\uchar{32}{20}\uchar{32}{20}}
+ \definecommand jaencodedrightsentence {\uchar{32}{20}\uchar{32}{20}}
+ \definecommand jaencodedleftsubsentence {\uchar{32}{20}\uchar{32}{20}}
+ \definecommand jaencodedrightsubsentence {\uchar{32}{20}\uchar{32}{20}}
+
+\stopencoding
+
+%D Special thanxx to Eizo Tsuchihashi (eizo@arcbrain.jp) for the following stuff
+
+\startencoding[cjk-uni]
+
+ \definecommand jaencodedchristiandate {\uchar{137}{127}\uchar{102}{166}}
+
+ \definecommand jaencodedtables {\uchar{103}{58}}
+ \definecommand jaencodedfigures {\uchar{86}{243}}
+ \definecommand jaencodedabbreviations {\uchar{117}{101}\uchar{138}{158}}
+ \definecommand jaencodedlogos {\uchar{116}{6}\uchar{96}{39}}
+ \definecommand jaencodedunits {\uchar{48}{230}\uchar{48}{203}\uchar{48}{195}\uchar{48}{196}}
+
+ \definecommand jaencodedgraphics {\uchar{48}{176}\uchar{48}{233}\uchar{48}{213}}
+ \definecommand jaencodedintermezzo {\uchar{149}{147}\uchar{89}{79}\uchar{102}{242}}
+ \definecommand jaencodedintermezzos {\uchar{149}{147}\uchar{89}{79}\uchar{102}{242}}
+ \definecommand jaencodedillustration {\uchar{48}{164}\uchar{48}{233}\uchar{48}{185}\uchar{48}{200}}
+ \definecommand jaencodedline {\uchar{125}{218}}
+ \definecommand jaencodedlines {\uchar{125}{218}}
+
+ \definecommand jaencodedjanuary {\uchar{78}{0}\uchar{103}{8}}
+ \definecommand jaencodedfebruary {\uchar{78}{140}\uchar{103}{8}}
+ \definecommand jaencodedmarch {\uchar{78}{9}\uchar{103}{8}}
+ \definecommand jaencodedapril {\uchar{86}{219}\uchar{103}{8}}
+ \definecommand jaencodedmay {\uchar{78}{148}\uchar{103}{8}}
+ \definecommand jaencodedjune {\uchar{81}{109}\uchar{103}{8}}
+ \definecommand jaencodedjuly {\uchar{78}{3}\uchar{103}{8}}
+ \definecommand jaencodedaugust {\uchar{81}{107}\uchar{103}{8}}
+ \definecommand jaencodedseptember {\uchar{78}{93}\uchar{103}{8}}
+ \definecommand jaencodedoctober {\uchar{83}{65}\uchar{103}{8}}
+ \definecommand jaencodednovember {\uchar{83}{65}\uchar{78}{0}\uchar{103}{8}}
+ \definecommand jaencodeddecember {\uchar{83}{65}\uchar{78}{140}\uchar{103}{8}}
+
+ \definecommand jaencodedsunday {\uchar{103}{8}\uchar{102}{220}\uchar{101}{229}}
+ \definecommand jaencodedmonday {\uchar{112}{107}\uchar{102}{220}\uchar{101}{229}}
+ \definecommand jaencodedtuesday {\uchar{108}{52}\uchar{102}{220}\uchar{101}{229}}
+ \definecommand jaencodedwednesday {\uchar{103}{40}\uchar{102}{220}\uchar{101}{229}}
+ \definecommand jaencodedthursday {\uchar{145}{209}\uchar{102}{220}\uchar{101}{229}}
+ \definecommand jaencodedfriday {\uchar{87}{31}\uchar{102}{220}\uchar{101}{229}}
+ \definecommand jaencodedsaturday {\uchar{101}{229}\uchar{102}{220}\uchar{101}{229}}
+
+\stopencoding
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/lang-run.tex b/Master/texmf-dist/tex/context/base/lang-run.tex
index 76e38e4c553..4b332cfb975 100644
--- a/Master/texmf-dist/tex/context/base/lang-run.tex
+++ b/Master/texmf-dist/tex/context/base/lang-run.tex
@@ -20,11 +20,13 @@
{\bgroup
\def\doshowpatterns##1##2##3##4% language number encoding mapping
{\NC##1\NC##3\NC##4\NC##2\NC
- \xxlanguageparameter{##1}\s!lefthyphenmin\NC\xxlanguageparameter{##1}\s!righthyphenmin\NC\NR}%
+ \specificlanguageparameter{##1}\s!lefthyphenmin \NC
+ \specificlanguageparameter{##1}\s!righthyphenmin\NC\NR}%
\starttabulate[|c|c|c|c|c|c|]
\HL
\NC \bf language \NC \bf encoding \NC \bf mapping \NC \bf number \NC
- \bf left\low{min} \NC \bf right\low{min} \NC \NR
+ \bf left\low{min} \NC
+ \bf right\low{min} \NC \NR
\HL
\preloadedpmessage
\HL
diff --git a/Master/texmf-dist/tex/context/base/lang-sla.tex b/Master/texmf-dist/tex/context/base/lang-sla.tex
index 428796e8a4d..f517fe7ff96 100644
--- a/Master/texmf-dist/tex/context/base/lang-sla.tex
+++ b/Master/texmf-dist/tex/context/base/lang-sla.tex
@@ -24,6 +24,7 @@
%D \NC Polish \NC Grzegorz Sapijaszko \NC \NR
%D \NC Croatian \NC \Zcaron eljko Vrba \NC \NR
%D \NC Slovenian \NC Mojca Miklavec \NC \NR
+%D \NC Cz and Sk \NC Richard Gabriel \NC \NR
%D \stoptabulate
% Belarussian, Russian, Ukrainian, Bulgarian, Macedonian,
@@ -141,81 +142,7 @@
\installlanguage [slovenian] [\s!sl]
\installlanguage [slovene] [\s!sl] % both possible
-% specifics
-%
-% \startlanguagespecifics[\s!pl]
-%
-% \installcompoundcharacter /a {\k a}
-% \installcompoundcharacter /c {\'c}
-% \installcompoundcharacter /e {\k e}
-% \installcompoundcharacter /l {\l}
-% \installcompoundcharacter /n {\'n}
-% \installcompoundcharacter /o {\'o}
-% \installcompoundcharacter /s {\'s}
-% \installcompoundcharacter /x {\'z}
-% \installcompoundcharacter /z {\.z}
-% \installcompoundcharacter /A {\k A}
-% \installcompoundcharacter /C {\'C}
-% \installcompoundcharacter /E {\k E}
-% \installcompoundcharacter /L {\L}
-% \installcompoundcharacter /N {\'N}
-% \installcompoundcharacter /O {\'O}
-% \installcompoundcharacter /S {\'S}
-% \installcompoundcharacter /X {\'Z}
-% \installcompoundcharacter /Z {\.Z}
-%
-% \stoplanguagespecifics
-%
-% \startlanguagespecifics[\s!pl]
-%
-% \installcompoundcharacter /, {\handlequotation\c!leftquotation}
-% \installcompoundcharacter /' {\handlequotation\c!rightquotation}
-%
-% \def\setupPLlanguage%
-% {\setuplanguage
-% [\s!pl]
-% [\c!leftsentence=\leftguillemot,
-% \c!rightsentence=\rightguillemot,
-% \c!leftsubsentence=\leftsubguillemot,
-% \c!rightsubsentence=\rightsubguillemot]}
-%
-% \installcompoundcharacter /< {{\setupPLlanguage|<|}}
-% \installcompoundcharacter /> {{\setupPLlanguage|>|}}
-%
-% \installcompoundcharacter /- {|-|}
-%
-% \stoplanguagespecifics
-%
-% \startlanguagespecifics[\s!pl]
-%
-% \definesortkey {/a}{a}{a}{\k a}
-% \definesortkey {/A}{a}{a}{\k a}
-% \definesortkey {/c}{c}{a}{\'c}
-% \definesortkey {/C}{c}{a}{\'c}
-% \definesortkey {/e}{e}{a}{\k e}
-% \definesortkey {/E}{e}{a}{\k e}
-% \definesortkey {/l}{l}{a}{\l }
-% \definesortkey {/L}{l}{a}{\l }
-% \definesortkey {/n}{n}{a}{\'n}
-% \definesortkey {/N}{n}{a}{\'n}
-% \definesortkey {/o}{o}{a}{\'o}
-% \definesortkey {/O}{o}{a}{\'o}
-% \definesortkey {/s}{s}{a}{\'s}
-% \definesortkey {/S}{s}{a}{\'s}
-% \definesortkey {/x}{z}{a}{\'x}
-% \definesortkey {/X}{z}{a}{\'x}
-% \definesortkey {/z}{z}{b}{\.z}
-% \definesortkey {/Z}{z}{b}{\.z}
-%
-% \stoplanguagespecifics
-%
-% \startencoding[pdfdoc]
-% \startlanguagespecifics[pl]% hm
-% \defineactivecharacter / {\simplifiedcompoundcharacter/}
-% \stoplanguagespecifics
-% \stopencoding
-%
-% this can best be handled by \quotation and ||
+% If this is really needed we should make an enco-fhr.
%
% \startlanguagespecifics[\s!hr]
%
@@ -258,14 +185,14 @@
\setupheadtext [\s!sl] [\v!figures=Slike]
\setupheadtext [\s!pl] [\v!graphics=Grafika]
-\setupheadtext [\s!cz] [\v!graphics=Grafika] % new
-\setupheadtext [\s!sk] [\v!graphics=...]
+\setupheadtext [\s!cz] [\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!sk] [\v!intermezzi=...]
+\setupheadtext [\s!sk] [\v!intermezzi=Intermezz\aacute]
\setupheadtext [\s!hr] [\v!intermezzi=Intermezza]
\setupheadtext [\s!sl] [\v!intermezzi=Intermezzi]
@@ -276,20 +203,20 @@
\setupheadtext [\s!sl] [\v!index=Kazalo]
\setupheadtext [\s!pl] [\v!abbreviations=Skr\oacute cenie]
-\setupheadtext [\s!cz] [\v!abbreviations=Zkratky] % new
-\setupheadtext [\s!sk] [\v!abbreviations=...]
+\setupheadtext [\s!cz] [\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] % new
-\setupheadtext [\s!sk] [\v!logos=...]
+\setupheadtext [\s!cz] [\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] % new
-\setupheadtext [\s!sk] [\v!units=...]
+\setupheadtext [\s!cz] [\v!units=Jednotky]
+\setupheadtext [\s!sk] [\v!units=Jednotky]
\setupheadtext [\s!hr] [\v!units=Jednostki]
\setupheadtext [\s!sl] [\v!units=Enote]
@@ -301,19 +228,19 @@
\setuplabeltext [\s!pl] [\v!figure=Ilustracja ]
\setuplabeltext [\s!cz] [\v!figure=Obr\aacute zek ]
-\setuplabeltext [\s!sk] [\v!figure=... ]
+\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!sk] [\v!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=... ]
-\setuplabeltext [\s!sk] [\v!graphic=... ]
+\setuplabeltext [\s!cz] [\v!graphic=Graf ]
+\setuplabeltext [\s!sk] [\v!graphic=Graf ]
\setuplabeltext [\s!hr] [\v!graphic=Slika ]
\setuplabeltext [\s!sl] [\v!graphic=Slika ]
@@ -324,32 +251,32 @@
\setuplabeltext [\s!sl] [\v!chapter=] % Poglavje
\setuplabeltext [\s!pl] [\v!section=] % Podrozdzia\l
-\setuplabeltext [\s!cz] [\v!section=] % Sekce % new
-\setuplabeltext [\s!sk] [\v!section=]
+\setuplabeltext [\s!cz] [\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 % new
-\setuplabeltext [\s!sk] [\v!subsection=]
+\setuplabeltext [\s!cz] [\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 % new
-\setuplabeltext [\s!sk] [\v!subsubsection=]
+\setuplabeltext [\s!cz] [\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 % new
-\setuplabeltext [\s!sk] [\v!subsubsubsection=]
+\setuplabeltext [\s!cz] [\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] % new
-\setuplabeltext [\s!sk] [\v!appendix=]
+\setuplabeltext [\s!cz] [\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 ]
@@ -360,14 +287,14 @@
\setuplabeltext [\s!sl] [\v!part=Del ]
\setuplabeltext [\s!pl] [\v!line=wiersz ]
-\setuplabeltext [\s!cz] [\v!line=\rcaron\aacute dek] % new
-\setuplabeltext [\s!sk] [\v!line=... ]
+\setuplabeltext [\s!cz] [\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] % new
-\setuplabeltext [\s!sk] [\v!lines=... ]
+\setuplabeltext [\s!cz] [\v!lines=\rcaron\aacute dky]
+\setuplabeltext [\s!sk] [\v!lines=riadky ]
\setuplabeltext [\s!hr] [\v!lines=redovi ]
\setuplabeltext [\s!sl] [\v!lines=vrstice ]
@@ -492,7 +419,7 @@
\setuplabeltext [\s!sl] [\v!see=glej ]
% new
-\setuplabeltext [\s!cz] [\v!page=strna ]
+\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 ]
diff --git a/Master/texmf-dist/tex/context/base/lang-spe.tex b/Master/texmf-dist/tex/context/base/lang-spe.tex
index c030c8045e3..ed6becb6002 100644
--- a/Master/texmf-dist/tex/context/base/lang-spe.tex
+++ b/Master/texmf-dist/tex/context/base/lang-spe.tex
@@ -145,6 +145,8 @@
\long\def\dosetlanguagespecifics#1#2%
{%ifundefined{\??la\languageencoding#2\??la}\letvalue{\??la\languageencoding#2\??la}\empty\fi
\ifundefined{\??la\languageencoding#2\??la}\forgetlanguagespecifics[#2]\fi
+ % the next line catches the case that specifics are enabled *before* they are defined
+ \expandafter\ifx\csname\??la\languageencoding#2\??la\endcsname\relax\forgetlanguagespecifics[#2]\fi
\appendvalue{\??la\languageencoding#2\??la}{#1}%
\bgroup
\setbox\scratchbox\hbox{\enablelanguagespecifics[#2]}%
diff --git a/Master/texmf-dist/tex/context/base/m-cweb.tex b/Master/texmf-dist/tex/context/base/m-cweb.tex
index 65184ddae8a..1d3455acf9e 100644
--- a/Master/texmf-dist/tex/context/base/m-cweb.tex
+++ b/Master/texmf-dist/tex/context/base/m-cweb.tex
@@ -224,9 +224,9 @@
%D The original macros are based on a 10~point bodyfont size. We
%D therefore have to specify dimension in points a bit
%D different. Specifications like .6pt are changed to
-%D \type{.06} times \type{\korpsgrootte}.
+%D \type{.06} times \type{\bodyfontsize}.
-\defCWEBmacro\CWEBpt {\korpsgrootte} % still dutch
+\defCWEBmacro\CWEBpt {\bodyfontsize} % still dutch
%D \macros{CEE,UNIX,TEX,CPLUSPLUS}{}
%D
diff --git a/Master/texmf-dist/tex/context/base/m-database.tex b/Master/texmf-dist/tex/context/base/m-database.tex
new file mode 100644
index 00000000000..b707a8ecc3a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/m-database.tex
@@ -0,0 +1,407 @@
+%D \module
+%D [ file=m-database,
+%D version=2006.04.23,
+%D title=\CONTEXT\ Modules,
+%D subtitle=Database Thingies,
+%D author=Hans Hagen\& Taco Hoekwater,
+%D date=\currentdate,
+%D copyright=PRAGMA
+%D ]
+
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\unprotect
+
+% % % to be added to mult-* files
+%
+% % % todo: \dontcollectseparatedlist via k/v
+
+\definesystemvariable{ls}
+
+\def\c!first {first}
+\def\c!last {last}
+\def\c!quotechar {quotechar}
+
+\let\@NX\noexpand
+
+%D {processquotedlist}
+%D
+%D An even more general list processing macro is the
+%D following one:
+%D
+%D \starttyping
+%D \processquotedlist{beginsym}{endsym}{separator}\docommando list
+%D \stoptyping
+%D
+%D This one supports arbitrary open and close symbols as well
+%D as user defined separators.
+%D
+%D \starttyping
+%D \processquotedlist(){,}{"}\docommando(a=>b=>c=>d)
+%D \stoptyping
+
+\def\processquotedlist#1#2#3#4#5%
+ {\def\csvquotechar{#4}%
+ \edef\doconvertcsvquoteditem#4##1#4##2%
+ {\@NX\ifx##2#3%
+ \let\@NX\next\@NX\doconvertcsvlist
+ \def\@NX\arg{#3}%
+ \edef\@NX\temp{##1}%
+ \@NX\expanded{\@NX#5{\@NX\temp}}%
+ \@NX\else
+ \let\@NX\next\@NX\redoconvertcsvquoteditem
+ \def\@NX\arg{##1\@NX\csvquotechar}%
+ \@NX\fi
+ \@NX\expandafter\@NX\next\@NX\arg}%
+ \edef\redoconvertcsvquoteditem##1#4##2%
+ {\@NX\ifx##2#3%
+ \let\@NX\next\@NX\doconvertcsvlist
+ \def\@NX\arg{#3}%
+ \edef\@NX\temp{##1}%
+ \@NX\expanded{\@NX#5{\@NX\temp}}%
+ \@NX\else
+ \let\@NX\next\@NX\redoconvertcsvquoteditem
+ \def\@NX\arg{##1\@NX\csvquotechar}%
+ \@NX\fi
+ \@NX\expandafter\@NX\next\@NX\arg}%
+ \edef\doconvertcsvitem##1#3%
+ {\edef\@NX\temp{##1}%
+ \@NX\expanded{\@NX#5{\@NX\temp}}%
+ \@NX\doconvertcsvlist#3}%
+ \edef\doconvertcsvlist#3##1%
+ {\@NX\ifx##1\@NX#2%
+ \let\@NX\next \@NX\gobbleoneargument
+ \@NX\else\@NX\ifx##1#4%
+ \let\@NX\next \@NX\doconvertcsvquoteditem
+ \@NX\else
+ \let\@NX\next \@NX\doconvertcsvitem
+ \@NX\fi\@NX\fi \@NX\next##1}%
+ \doconvertcsvitem}
+
+\gdef\doprocessseparatedquoteditem#1%
+ {\appendseparatedlistparameter\c!left%
+ \appendseparatedlistcontent{#1}%
+ \appendseparatedlistparameter\c!right}
+
+
+% % % so far
+
+% \def\dodefineprocessseplist#1#2% separator \docommand
+% {\def\dodoprocessseplist##1##2#1%
+% {\ifx\relax##1%
+% \expandafter\nodoprocessseplist
+% \else\ifx##1#1%
+% #2{}%
+% #2{##2}%
+% \expandafter\expandafter\expandafter\dodoprocessseplist
+% \else
+% #2{##1##2}%
+% \expandafter\expandafter\expandafter\dodoprocessseplist
+% \fi\fi}%
+% \def\doprocessseplist##1\relax
+% {\dodoprocessseplist##1#1\relax#1\relax\relax\end}}
+%
+% a version more robust with regard to {a a} b c d situations
+
+\def\edef@relax{\relax}
+
+\def\dodefineprocessseplist#1#2% separator \docommand
+ {\def\dodoprocessseplist##1##2#1%
+ {\edef\!!stringa{##1}%
+ \ifx\edef@relax\!!stringa
+ \expandafter\nodoprocessseplist
+ \else\ifx\!!stringa#1%
+ #2{}%
+ #2{##2}%
+ \expandafter\expandafter\expandafter\dodoprocessseplist
+ \else
+ #2{##1##2}%
+ \expandafter\expandafter\expandafter\dodoprocessseplist
+ \fi\fi}%
+ \def\doprocessseplist##1\relax
+ {\dodoprocessseplist##1#1\relax#1\relax\relax\end}}
+
+\def\nodoprocessseplist#1\end
+ {}
+
+\long\def\processseplist#1#2#3\relax raw version
+ {\dodefineprocessseplist{#1}{#2}%
+ \dodoprocessseplist#3#1\relax#1\relax\relax\end}
+
+% \dodefineprocessseplist{,}\test
+% \dodoprocessseplist{,}a,b,c\relax,\relax\relax\end
+% \doprocessseplista,b,c\relax
+
+% \def\test#1{[#1]}
+% \startlines
+% \processseplist{,}\test ,2,,\relax
+% \processseplist{,}\test ,,,44\relax
+% \processseplist{,}\test ,,33,44\relax
+% \processseplist{,}\test 11,,33,44\relax
+% \processseplist{,}\test 1,2,3,4\relax
+% \stoplines
+
+\newtoks\separatedlistdata
+
+\def\appendseparatedlistparameter#1%
+ {\@EAEAEA\appendtoks\csname\??ls\currentseparatedlist#1\endcsname\to\separatedlistdata}
+
+\def\appendseparatedlistcontent#1%
+ {\appendtoks#1\to\separatedlistdata}
+
+\def\flushseparatedlistdata
+ {\the\separatedlistdata
+ \separatedlistdata\emptytoks}
+
+\def\initializeseparatedlistdata
+ {\separatedlistdata{\egroup}}
+
+\def\dontcollectseparatedlist
+ {\def\dodoprocessseparatedfileline
+ {\the\separatedlistdata
+ \separatedlistdata\emptytoks
+ \doprocessseparatedfileline}%
+ \def\dodoprocessseparatedline
+ {\the\separatedlistdata
+ \separatedlistdata\emptytoks
+ \doprocessseparatedline}%
+ \let\flushseparatedlistdata\egroup
+ \let\initializeseparatedlistdata\donothing}
+
+\chardef\separatedlistmode\zerocount
+
+\def\setcurrentlistseparator
+ {\edef\currentlistseparator
+ {\executeifdefined
+ {\??ls::\csname\??ls\currentseparatedlist\c!separator\endcsname}%
+ {\csname\??ls\currentseparatedlist\c!separator\endcsname}}%
+ \doifvalue{\??ls\currentseparatedlist\c!separator}{tab}
+ {\catcode`\^^I=12\relax}%
+ \ifx\currentlistseparator\empty\def\currentlistseparator{,}\fi}
+
+\bgroup \catcode`\^^I=12
+ \setgvalue{\??ls::tab}{ }
+ \setgvalue{\??ls::space}{ }
+ \setgvalue{\??ls::comma}{,}
+\egroup
+
+\def\doprocessseparatedfileline
+ {\ifeof\scratchread
+ \ifcase\separatedlistmode\appendseparatedlistparameter\c!after\fi
+ \immediate\closein\scratchread
+ \expandafter\flushseparatedlistdata
+ \else\ifx\line\empty
+ % skip, can be comment
+ \read\scratchread to\line
+ \@EA\dodoprocessseparatedfileline
+ \else
+ \appendseparatedlistparameter{\ifcase\separatedlistmode\c!first\else\c!command\fi}%
+ \ifx\currentlistquotechar\empty%
+ \expandafter\doprocessseplist\line\relax
+ \else
+ \expanded{\processquotedlist{}{\noexpand\end}%
+ {\currentlistseparator}{\currentlistquotechar}%
+ \noexpand\doprocessseparatedquoteditem \line\currentlistseparator\noexpand\end}%
+ \fi
+ \ifcase\separatedlistmode\appendseparatedlistparameter\c!last\fi
+ \read\scratchread to\line
+ \@EAEAEA\dodoprocessseparatedfileline
+ \fi\fi}
+
+\def\dodoprocessseparatedfileline
+ {\doprocessseparatedfileline}
+
+\def\doprocessseparatedfile[#1][#2]%
+ {\bgroup
+ \edef\currentseparatedlist{#1}%
+ \doifdefined{\??ls\currentseparatedlist\c!command}{\chardef\separatedlistmode\plusone}%
+ \setcurrentlistseparator
+ \edef\currentlistquotechar{\csname\??ls\currentseparatedlist\c!quotechar\endcsname}%
+ \expandafter\dodefineprocessseplist\expandafter{\currentlistseparator}\doprocessseparateditem
+ \initializeseparatedlistdata
+ \directsetup{\currentseparatedlist:\executeifdefined{\??ls\currentseparatedlist\c!setups}\s!default}%
+ \ifcase\separatedlistmode\appendseparatedlistparameter\c!before\fi
+ \endlinechar\minusone
+ \ignorelines
+ \catcode`\#\@@comment
+ \immediate\openin\scratchread=#2\relax % todo: \doopenin
+ \read\scratchread to\line
+ \doprocessseparatedfileline}
+
+\def\dostartseparatedlist#1[#2]%
+ {\bgroup
+ \edef\currentseparatedlist{#2}%
+ \doifdefined{\??ls\currentseparatedlist\c!command}{\chardef\separatedlistmode\plusone}%
+ \obeylines
+ \let#1\relax
+ \def\separateslistend{#1}%
+ \setcurrentlistseparator
+ \edef\currentlistquotechar{\csname\??ls\currentseparatedlist\c!quotechar\endcsname}%
+ \expandafter\dodefineprocessseplist\expandafter{\currentlistseparator}\doprocessseparateditem
+ \directsetup{\currentseparatedlist:\executeifdefined{\??ls\currentseparatedlist\c!setups}\s!default}%
+ \initializeseparatedlistdata
+ \ifcase\separatedlistmode\appendseparatedlistparameter\c!before\fi
+ \dodostartseparatedlist}
+
+\def\redoprocessseparatedline#1%
+ {\def\!!stringa{#1}%
+ \ifx\!!stringa\separateslistend
+ \ifcase\separatedlistmode\appendseparatedlistparameter\c!after\fi
+ \expandafter\flushseparatedlistdata
+ \else%
+ \appendseparatedlistparameter{\ifcase\separatedlistmode\c!first\else\c!command\fi}%
+ \ifx\currentlistquotechar\empty%
+ \doprocessseplist#1\relax
+ \else%
+ \convertargument#1\to\csvdata%
+ \expanded{\processquotedlist{}{\noexpand\end}%
+ {\currentlistseparator}{\currentlistquotechar}%
+ \noexpand\doprocessseparatedquoteditem \csvdata\currentlistseparator\noexpand\end}%
+ \fi
+ \ifcase\separatedlistmode\appendseparatedlistparameter\c!last\fi
+ \expandafter\dodoprocessseparatedline
+ \fi}
+
+\def\doprocessseparatedline
+ {\doifnextcharelse\bgroup\xdoprocessseparatedline\ydoprocessseparatedline}
+
+\def\dodoprocessseparatedline
+ {\doprocessseparatedline}
+
+\def\doprocessseparateditem#1%
+ {\ifcase\separatedlistmode
+ \appendseparatedlistparameter\c!left
+ \appendseparatedlistcontent{#1}%
+ \appendseparatedlistparameter\c!right
+ \else
+ \appendseparatedlistcontent{{#1}}%
+ \fi}
+
+
+\bgroup \obeylines
+
+ \gdef\dodostartseparatedlist#1
+ {\doprocessseparatedline}
+
+ \gdef\xdoprocessseparatedline#1#2
+ {\redoprocessseparatedline{{{#1}}#2}}
+
+ \gdef\ydoprocessseparatedline#1
+ {\redoprocessseparatedline{#1}}
+
+\egroup
+
+\startsetups CSV:unix
+ \catcode`\#=\@@comment
+\stopsetups
+
+\def\defineseparatedlist
+ {\dodoubleempty\dodefineseparatedlist}
+
+\def\dodefineseparatedlist[#1][#2]%
+ {\setvalue{\e!start#1}{\expandafter\dostartseparatedlist\csname\e!stop#1\endcsname[#1]}%
+ \getparameters
+ [\??ls#1]
+ [\c!separator=,
+ \c!quotechar=,
+ \c!first=,
+ \c!left=,
+ \c!before=,
+ \c!right=,
+ \c!last=,
+ \c!after=,
+% \c!command=,
+ #2]}
+
+\def\setupseparatedlist
+ {\dodoubleempty\dosetupseparatedlist}
+
+\def\dosetupseparatedlist[#1]% [#2]
+ {\getparameter[\??ls#1]} % [#2]
+
+\def\startseparatedlist[#1]%
+ {\dostartseparatedlist\stopseparatedlist[#1]}
+
+\def\processseparatedfile
+ {\dodoubleargument\doprocessseparatedfile}
+
+\protect \doifnotmode{demo}{\endinput}
+
+\defineseparatedlist
+ [CSV]
+ [separator={,},
+ first=\bTR,last=\eTR,
+ left=\bTD,right=\eTD,
+ before=\bTABLE,after=\eTABLE]
+
+\startseparatedlist[CSV]
+a,b,c
+d,e,f
+\stopseparatedlist
+
+\startCSV
+a,b,c
+d,e,f
+\stopCSV
+
+\defineseparatedlist
+ [CSV]
+ [separator={,},
+ quotechar={"},
+ first=\NC,last=\NR,
+ left=,right=\NC,
+ before={\starttabulate[|l|l|l|]},after=\stoptabulate]
+
+\startCSV
+a,b,"c,d"
+d,"""",f
+\stopCSV
+
+\defineseparatedlist
+ [CSV]
+ [separator={ },
+ first=\NC,last=\NR,
+ left=,right=\NC,
+ before={\starttabulate[|l|l|l|]},after=\stoptabulate]
+
+\startCSV
+a b c
+d e f
+\stopCSV
+
+\defineseparatedlist
+ [CSV]
+ [setups=unix,
+ first=\NC,last=\NR,
+ left=,right=\NC,
+ before={\starttabulate[|l|l|l|]},after=\stoptabulate]
+
+% \startsetups CSV:unix
+% \catcode`\#=\@@comment
+% \stopsetups
+
+% %1,2,3
+% 1,2,3
+% # 4,5,6
+% 4,5,6
+
+\processseparatedfile[CSV][test.dat]
+
+\defineseparatedlist
+ [CSVX]
+ [command=\Whatever,
+ separator={,},
+ first=\bTR,last=\eTR,
+ left=\bTD,right=\eTD,
+ before=\bTABLE,after=\eTABLE]
+
+\def\Whatever#1#2#3{[#1][#2][#3]\endgraf}
+
+\startseparatedlist[CSVX]
+a,b,c
+d,e,f
+\stopseparatedlist
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/m-dratex.tex b/Master/texmf-dist/tex/context/base/m-dratex.tex
new file mode 100644
index 00000000000..6c088daf98a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/m-dratex.tex
@@ -0,0 +1,21 @@
+%D \module
+%D [ file=m-dratex,
+%D version=2005.11.25,
+%D title=\CONTEXT\ Extra Modules,
+%D subtitle=\DRATEX\ Loading Macros,
+%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
+
+\readfile{DraTex.sty}{}{\readfile{dratex.sty}{}{\endinput}}
+
+\letvalue{:NewCount}\newcount
+\letvalue{:NewDimen}\newdimen
+
+\readfile{AlDraTex.sty}{}{\readfile{aldratex.sty}{}{\endinput}}
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/m-gamma.tex b/Master/texmf-dist/tex/context/base/m-gamma.tex
index 698613db91b..05f5d3a4254 100644
--- a/Master/texmf-dist/tex/context/base/m-gamma.tex
+++ b/Master/texmf-dist/tex/context/base/m-gamma.tex
@@ -2,21 +2,21 @@
%D [ file=m-gamma,
%D version=2002.05.15,
%D title=\CONTEXT\ Extra Modules,
-%D subtitle=Basic \OMEGA\ Support,
+%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.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
-%D Most of this module is written by Idris Samawi Hamid.
+%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.
+%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]
@@ -90,12 +90,12 @@
[SindhiOCP]
[SindhiUni,UniCUni,CUniArab]
-%D We wrap a couple of languages in environmen tmacros.
+%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).
+%D Todo: better interface to directional primitives.
+%D
+%D Todo: proper language support (labels etc).
\definestartstop
[latin]
@@ -108,7 +108,7 @@
[commands=%
{\usefiltersequence[GreekOCP]%
\switchtobodyfont[omlgc]%
- \language=3\lefthyphenmin=2\righthyphenmin=2}]
+ \language=3\lefthyphenmin2\righthyphenmin=2}]
\definestartstop
[arab]
@@ -183,14 +183,14 @@
\let\typeout\message \input grlccode.tex
-%D We (pre)define a couple of fonts:
+%D We (pre)define a couple of fonts:
\usetypescriptfile[type-omg]
\usetypescript[OmegaArab]
\usetypescript[OmegaLGC]
-%D Dangerous definitions:
+%D Dangerous definitions:
\startencoding[omega]
@@ -201,7 +201,7 @@
\definecharacter dotlessi {^^^^0131}
\definecharacter ssharp {^^^^00df}
-\stopencoding
+\stopencoding
\enableencoding [omega]
@@ -210,20 +210,20 @@
\unexpanded \def\OMEGA {{\switchtobodyfont[omlgc]^^^^03a9}}
\unexpanded \def\OTP {\OMEGA TP}
-%D A few funny definitions:
+%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:
+%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
+% Brrr
\setuptolerance [verytolerant]
diff --git a/Master/texmf-dist/tex/context/base/m-gnuplot.tex b/Master/texmf-dist/tex/context/base/m-gnuplot.tex
new file mode 100644
index 00000000000..8da9317b664
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/m-gnuplot.tex
@@ -0,0 +1,168 @@
+%D \module
+%D [ file=m-gnuplot,
+%D version=2006.01.04,
+%D title=\CONTEXT\ Extra Modules,
+%D subtitle=\GNUPLOT\ Inclusion,
+%D author={Tobias Burnus, Hans Hagen, Taco Hoekwater, Mojca Miklavec},
+%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: reuse (only if really needed)
+
+% \enablemode[demo]
+
+%D example:
+%D
+%D \starttyping
+%D texexec --pdf --mode=demo m-gnuplot
+%D \stoptyping
+
+\unprotect
+
+\ifx\operatingsystem\undefined \def\operatingsystem{unix} \fi % texexec will set that
+
+\newcounter\GNUPLOTnumber
+
+\def\startGNUPLOTinclusions
+ {\bgroup
+ \obeylines
+ \catcode`\%=\@@letter
+ \dostartGNUPLOTinclusions}
+
+\def\dostartGNUPLOTinclusions#1\stopGNUPLOTinclusions
+ {\gdef\GNUPLOTinclusions{#1}%
+ \egroup}
+
+\let\GNUPLOTinclusions\empty
+
+\def\startGNUPLOTgraphic#1%
+ {\bgroup
+ \obeylines
+ \catcode`\%=\@@letter
+ \dostartGNUPLOTgraphic{#1}}
+
+\def\dostartGNUPLOTgraphic#1#2\stopGNUPLOTgraphic
+ {\doglobal\increment\GNUPLOTnumber
+ \letgvalue{gpg:n:#1}\GNUPLOTnumber
+ \setgvalue{gpg:d:\GNUPLOTnumber}{#2}%
+ \egroup}
+
+\def\useGNUPLOTgraphic
+ {\dodoubleempty\douseGNUPLOTgraphic}
+
+\def\douseGNUPLOTgraphic[#1][#2]%
+ {\iffirstargument
+ \@EA\dodouseGNUPLOTgraphic % like \externalfigure[name][optional args]
+ \else
+ \@EA\redouseGNUPLOTgraphic % like \useMPgraphic{name}
+ \fi[#1][#2]}
+
+\def\redouseGNUPLOTgraphic[#1][#2]#3%
+ {\dodouseGNUPLOTgraphic[#3][]}
+
+% \bgroup
+% \obeylines
+% \gdef\fixGNUPLOTnewlines%
+% {\def\par{;\@@svline}%
+% \def ^^M{;\@@svline}}
+% \egroup
+
+\ifx\systemendofline\undefined \def\systemendofline{\rawcharacter{10}} \fi
+
+\newtoks\everyGNUPLOTgraphic
+
+% gnuplot only seems to handle lf so we cannot use \mappartolineend
+% also, in order to prevent fuzzy runs (or no runs) we add a ; to
+% each line
+
+\appendtoks
+ \obeylines
+ \def\obeyedline{;\systemendofline}%
+\to \everyGNUPLOTgraphic
+
+\appendtoks
+ \let\%\letterpercent
+ \def\ {\letterbackslash\systemendofline}%
+\to \everyGNUPLOTgraphic
+
+\def\dodouseGNUPLOTgraphic[#1][#2]%
+ {\bgroup
+ \doifdefined{gpg:n:#1}
+ {\edef\GNUPLOTnumber{\getvalue{gpg:n:#1}}%
+ \edef\GNUPLOTfile {\bufferprefix gnuplot-\GNUPLOTnumber}%
+ \bgroup
+ \the\everyGNUPLOTgraphic
+ \immediate\openout\scratchwrite=\GNUPLOTfile.gpd
+ \immediate\write\scratchwrite{set terminal \@@GNUPLOToutput\space\@@GNUPLOToption}%
+ \doifnotempty
+ {\GNUPLOTinclusions}{\immediate\write\scratchwrite{\GNUPLOTinclusions}}%
+ \immediate\write\scratchwrite{set output "\GNUPLOTfile.\@@GNUPLOTsuffix"}%
+ \immediate\write\scratchwrite{\getvalue{gpg:d:\GNUPLOTnumber}}%
+ \immediate\write\scratchwrite{quit}%
+ \immediate\closeout\scratchwrite
+ \egroup
+ \processGNUPLOTgraphic
+ \convertGNUPLOTgraphic
+ \externalfigure[\@@GNUPLOTresult][#2]}%
+ \egroup}
+
+% we assume pdf inclusion, eps wil be implemented when applicable
+
+\def\setupGNUPLOT
+ {\dodoubleempty\getparameters[@@GNUPLOT]}
+
+\def\processGNUPLOTgraphic
+ {\doifelse\operatingsystem{mswin}
+ {\executesystemcommand{start /MIN pgnuplot \GNUPLOTfile.gpd}} % start is needed else gp fails
+ {\executesystemcommand{gnuplot \GNUPLOTfile.gpd}}}
+
+\def\convertGNUPLOTgraphic
+ {\doifsomething\@@GNUPLOThandle{\executesystemcommand{\@@GNUPLOThandle}}}
+
+\def\defineGNUPLOThandle#1#2#3#4#5% name output suffix conversion-method result
+ {\setvalue{@@GNUPLOT-#1}{{#2}{#3}{#4}{#5}}}
+
+\def\@@GNUPLOToutput{\filterfromvalue{@@GNUPLOT-\@@GNUPLOTmethod}41}
+\def\@@GNUPLOTsuffix{\filterfromvalue{@@GNUPLOT-\@@GNUPLOTmethod}42}
+\def\@@GNUPLOThandle{\filterfromvalue{@@GNUPLOT-\@@GNUPLOTmethod}43}
+\def\@@GNUPLOTresult{\filterfromvalue{@@GNUPLOT-\@@GNUPLOTmethod}44}
+
+\defineGNUPLOThandle{postscript}{postscript}{ps} {texmfstart newpstopdf --method=raw \GNUPLOTfile.ps}{\GNUPLOTfile.pdf}
+\defineGNUPLOThandle{ps} {postscript}{ps} {texmfstart newpstopdf --method=raw \GNUPLOTfile.ps}{\GNUPLOTfile.pdf}
+\defineGNUPLOThandle{pdf} {pdf} {pdf}{} {\GNUPLOTfile.pdf}
+\defineGNUPLOThandle{metapost} {mp} {mp} {texmfstart mptopdf \GNUPLOTfile.mp} {\GNUPLOTfile-0.pdf}
+\defineGNUPLOThandle{mp} {mp} {mp} {texmfstart mptopdf \GNUPLOTfile.mp} {\GNUPLOTfile-0.pdf}
+\defineGNUPLOThandle{png} {png} {png}{} {\GNUPLOTfile.png}
+
+\setupGNUPLOT[\c!method=ps,\c!option=]
+
+\protect \doifnotmode{demo}{\endinput}
+
+\starttext
+
+\startGNUPLOTinclusions
+ set title "trigonometry"
+\stopGNUPLOTinclusions
+
+\startGNUPLOTgraphic{sin}
+ plot sin(x)
+\stopGNUPLOTgraphic
+
+\startGNUPLOTgraphic{cos}
+ plot cos(x)
+\stopGNUPLOTgraphic
+
+\useGNUPLOTgraphic{sin} \endgraf
+\useGNUPLOTgraphic{cos} \endgraf
+\useGNUPLOTgraphic[cos] \endgraf
+
+\setupGNUPLOT[method=ps] \useGNUPLOTgraphic[sin][object=no,height=2cm] \blank
+%setupGNUPLOT[method=pdf] \useGNUPLOTgraphic[sin][object=no,height=2cm] \blank
+\setupGNUPLOT[method=png] \useGNUPLOTgraphic[sin][object=no,height=2cm] \blank
+\setupGNUPLOT[method=mp] \useGNUPLOTgraphic[sin][object=no,height=2cm,option=color] \blank
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/m-graph.tex b/Master/texmf-dist/tex/context/base/m-graph.tex
index 5e45f255b6f..dd30cef468d 100644
--- a/Master/texmf-dist/tex/context/base/m-graph.tex
+++ b/Master/texmf-dist/tex/context/base/m-graph.tex
@@ -8,55 +8,57 @@
%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 I finally finished graph support, if only because I could
-%D not stand the idea that Karel Wesseling would revert to
-%D \PiCTeX.
+%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
+% pre 2000.08.06 version
%
-% \forceMPTEXgraphictrue
-%
-% \appendtoks
+% \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 @
-% \to \MPinitializations
+% 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.
+%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.
-\appendtoks input graph ; \to \MPinitializations
+\startMPinitializations
+ input graph ;
+\stopMPinitializations
-%D Graphics that have \type {begingraph} in them are
-%D recognized as such and force handling of embedded \TEX\
-%D code.
+%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 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
-
-% No longer needed, since John will fix it.
-%
-% %D For the moment we need the following patch. Adam T. Lindsay
-% %D found out that the following code produced an error:
-% %D
-% %D \starttyping
+%D \stoptyping
+
+% No longer needed, since John will fix it.
+%
+% %D For the moment we need the following patch. Adam T. Lindsay
+% %D found out that the following code produced an error:
+% %D
+% %D \starttyping
% %D \startMPcode
% %D draw begingraph(130mm,35mm);
% %D setrange(0,0,10,22000);
@@ -64,7 +66,7 @@
% %D autogrid(itick.bot,grid.lft) withcolor .75white ;
% %D endgraph;
% %D \stopMPcode
-% %D
+% %D
% %D \startMPcode
% %D draw begingraph(130mm,35mm);
% %D setrange(0,50,10,22000);
@@ -72,7 +74,7 @@
% %D autogrid(itick.bot,grid.lft) withcolor .75white ;
% %D endgraph;
% %D \stopMPcode
-% %D
+% %D
% %D \startMPcode
% %D draw begingraph(130mm,35mm);
% %D setrange(0,110,10,30000);
@@ -80,42 +82,41 @@
% %D autogrid(itick.bot,grid.lft) withcolor .75white ;
% %D endgraph;
% %D \stopMPcode
-% %D \stoptyping
+% %D \stoptyping
+% %D
+% %D The bug is a rather nasty one and needs some tweaking in
+% %D the low level graph code. John Hobby suggested for the
+% %D moment to initialize \type {setrange} as follows:
% %D
-% %D The bug is a rather nasty one and needs some tweaking in
-% %D the low level graph code. John Hobby suggested for the
-% %D moment to initialize \type {setrange} as follows:
-% %D
-% %D \starttyping
+% %D \starttyping
% %D setrange(0,0,"22000","22000")
-% %D \stoptyping
-% %D
-% %D Folowing this suggesion, I provide the following
-% %D extension:
-%
-% % \appendtoks
+% %D \stoptyping
+% %D
+% %D Folowing this suggesion, I provide the following
+% %D extension:
+
% def begingraph(expr w, h) =
% begingroup
% save X_, Y_, Gfin_, Gcur_, Gcbb_, Gneedgr_, Gneedfr_, Gdidsc_;
% save Gdpic_, Gppic_, Ggl_, Garw_;
% picture Gfin_, Gcur_, Gcbb_, Gdpic_, Gppic_, Ggl_[];
% boolean Gneedgr_, Gneedfr_, Gdidsc_;
-% Gfin_ = nullpicture;
-% Gcur_ = nullpicture;
-% Gcbb_ = nullpicture;
-% X_.ctyp = Y_.ctyp = linear;
-% Z_.gdim = (w,h);
-% X_.sc = Y_.sc = 0;
-% Gneedgr_ = true;
-% Gneedfr_ = true;
-% Gdidsc_ = false;
-% Gdpic_ = nullpicture;
-% Garw_ = 0;
-% scantokens everybegingraph ;
+% Gfin_ = nullpicture;
+% Gcur_ = nullpicture;
+% Gcbb_ = nullpicture;
+% X_.ctyp = Y_.ctyp = linear;
+% Z_.gdim = (w,h);
+% X_.sc = Y_.sc = 0;
+% Gneedgr_ = true;
+% Gneedfr_ = true;
+% Gdidsc_ = false;
+% Gdpic_ = nullpicture;
+% Garw_ = 0;
+% scantokens everybegingraph ;
% enddef;
-%
-% boolean fixsetrange ; fixsetrange := true ;
-%
+%
+% boolean fixsetrange ; fixsetrange := true ;
+%
% vardef dosetrange(text t) =
% interim warningcheck:=0;
% save r_; r_=0;
@@ -130,19 +131,18 @@
% exitif r_=4;
% endfor
% enddef;
-%
+%
% vardef setrange(text t) =
-% if fixsetrange : dosetrange(0,0,20000,20000) ; fi ;
+% if fixsetrange : dosetrange(0,0,20000,20000) ; fi ;
% dosetrange(t) ;
-% enddef ;
-%
-% if unknown everybegingraph :
+% enddef ;
+%
+% if unknown everybegingraph :
% string everybegingraph ;
-% % everybegingraph := "setrange(0,0,20000,20000)" ;
-% fi ;
-% \to \MPinitializations
+% % everybegingraph := "setrange(0,0,20000,20000)" ;
+% fi ;
-\appendtoks
+\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.
@@ -156,19 +156,19 @@
-@\#low = if abs @\#ctyp<>log: $ fi Mlog_Str h ;
fi
enddef ;
-\to \MPinitializations
+\stopMPinitializations
-\doifnotmode {demo} {\endinput}
+\doifnotmode {demo} {\endinput}
-%D You need to have the data files in your path,
+%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 test:
-\starttext
+\starttext
\startMPpage
draw begingraph(3in,2in);
diff --git a/Master/texmf-dist/tex/context/base/m-newmat.tex b/Master/texmf-dist/tex/context/base/m-newmat.tex
index 6f5f3586a69..eb3208d9458 100644
--- a/Master/texmf-dist/tex/context/base/m-newmat.tex
+++ b/Master/texmf-dist/tex/context/base/m-newmat.tex
@@ -189,7 +189,7 @@
%D
%D [HH] Another macro that users expect (slightly adapted):
-\def\boxed%
+\def\boxed
{\ifmmode\expandafter\mframed\else\expandafter\framed\fi}
%D \macros
diff --git a/Master/texmf-dist/tex/context/base/m-plus.tex b/Master/texmf-dist/tex/context/base/m-plus.tex
index a38c73129fa..312d9f93105 100644
--- a/Master/texmf-dist/tex/context/base/m-plus.tex
+++ b/Master/texmf-dist/tex/context/base/m-plus.tex
@@ -23,7 +23,8 @@
%D \usemodule[plus]
%D \stoptyping
-\readfile {plus-rul} \donothing \donothing
-\readfile {plus-pag} \donothing \donothing
+% \readfile {plus-rul} \donothing \donothing
+% \readfile {page-str} \donothing \donothing
+% \readfile {page-plg} \donothing \donothing
\endinput
diff --git a/Master/texmf-dist/tex/context/base/m-pstric.tex b/Master/texmf-dist/tex/context/base/m-pstric.tex
index 707984d288f..ac018fe074e 100644
--- a/Master/texmf-dist/tex/context/base/m-pstric.tex
+++ b/Master/texmf-dist/tex/context/base/m-pstric.tex
@@ -65,45 +65,45 @@
\def\startPSTRICKS
{\dosingleempty\dostartPSTRICKS}
-\ifx\startTEXapplication\undefined
-
-\long\def\dostartPSTRICKS[#1]#2\stopPSTRICKS
- {\doifelse{\jobsuffix}{dvi}
- {#2}
- {\bgroup
- \setbuffer[pstricks]%
- \usemodule[pstric]%
- \setbox\scratchbox\hbox{#2}%
- % There is probably a nicer way to handle this
- \immediate\openout\scratchwrite=\bufferprefix dim.tmp
- \immediate\write\scratchwrite{\dimen0=\the\ht\scratchbox}%
- \immediate\write\scratchwrite{\dimen2=\the\wd\scratchbox}%
- \immediate\closeout\scratchwrite
- % Quick and dirty
- \startTEXpage[#1]\box\scratchbox\stopTEXpage
- \endbuffer
- % Here we go!
- %\immediate\write18{texexec \bufferprefix pstricks.tmp --once --batch}%
- %\immediate\write18{dvips -G0 -Ppdf \bufferprefix pstricks -o}%
- %\immediate\write18{ps2pdf \bufferprefix pstricks.ps \bufferprefix pstricks.pdf}%
- \executesystemcommand{texexec \bufferprefix pstricks.tmp --once --batch}%
- \executesystemcommand{dvips -G0 -Ppdf \bufferprefix pstricks -o}%
- \executesystemcommand{ps2pdf \bufferprefix pstricks.ps \bufferprefix pstricks.pdf}%
- % We pick up the dimensions from the scratch file.
- \readlocfile{\bufferprefix pstricks-dim.tmp}{}{}%
- % Since the graphic is put on a page (sigh) by dvips/gs
- % we need to shift it around a bit.
- \setbox\scratchbox\hbox
- {\externalfigure[\bufferprefix pstricks.pdf][\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}}
-
-\fi
+% \ifx\startTEXapplication\undefined
+%
+% \long\def\dostartPSTRICKS[#1]#2\stopPSTRICKS
+% {\doifelse{\jobsuffix}{dvi}
+% {#2}
+% {\bgroup
+% \setbuffer[pstricks]%
+% \usemodule[pstric]%
+% \setbox\scratchbox\hbox{#2}%
+% % There is probably a nicer way to handle this
+% \immediate\openout\scratchwrite=\bufferprefix dim.tmp
+% \immediate\write\scratchwrite{\dimen0=\the\ht\scratchbox}%
+% \immediate\write\scratchwrite{\dimen2=\the\wd\scratchbox}%
+% \immediate\closeout\scratchwrite
+% % Quick and dirty
+% \startTEXpage[#1]\box\scratchbox\stopTEXpage
+% \endbuffer
+% % Here we go!
+% %\immediate\write18{texexec \bufferprefix pstricks.tmp --once --batch}%
+% %\immediate\write18{dvips -G0 -Ppdf \bufferprefix pstricks -o}%
+% %\immediate\write18{ps2pdf \bufferprefix pstricks.ps \bufferprefix pstricks.pdf}%
+% \executesystemcommand{texexec \bufferprefix pstricks.tmp --once --batch}%
+% \executesystemcommand{dvips -G0 -Ppdf \bufferprefix pstricks -o}%
+% \executesystemcommand{texmfstart pstopdf \bufferprefix pstricks.ps \bufferprefix pstricks.pdf}%
+% % We pick up the dimensions from the scratch file.
+% \readlocfile{\bufferprefix pstricks-dim.tmp}{}{}%
+% % Since the graphic is put on a page (sigh) by dvips/gs
+% % we need to shift it around a bit.
+% \setbox\scratchbox\hbox
+% {\externalfigure[\bufferprefix pstricks.pdf][\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}}
+%
+% \fi
\long\def\dostartPSTRICKS[#1]#2\stopPSTRICKS
{\doifelse{\jobsuffix}{dvi} % will some day move to app as switch
diff --git a/Master/texmf-dist/tex/context/base/m-r.tex b/Master/texmf-dist/tex/context/base/m-r.tex
new file mode 100644
index 00000000000..244b62c3653
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/m-r.tex
@@ -0,0 +1,216 @@
+%D \module
+%D [ file=m-r,
+%D version=2006.06.06,
+%D title=\CONTEXT\ Modules,
+%D subtitle=R Support,
+%D author={Johan Sandblom \& Hans Hagen},
+%D date=\currentdate,
+%D copyright={PRAGMA / Johan Sandblom}]
+%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 The following R-processor is a variation on Johan Sandblom's
+%D prototype.
+%D
+%D We can combine both variants in one macro definition. Also, we
+%D can minimize the number of runs by checking for a change.
+
+%D \starttyping
+%D \newcounter\Rnumber
+%D \newtoks\everyR
+%D
+%D \appendtoks
+%D \obeylines
+%D \to \everyR
+%D
+%D \def\startR {\dostartR\stopR \plusone}
+%D \def\startRhidden{\dostartR\stopRhidden\zerocount}
+%D
+%D \def\dostartR#1#2%
+%D {\bgroup
+%D \ifcase#2\relax\let\typeRout\relax\fi
+%D \obeylines
+%D \catcode`\%=\@@letter
+%D \catcode`\#=\@@letter
+%D \def\dostartR##1#1%
+%D {\doglobal\increment\Rnumber
+%D \edef\Rfile{\bufferprefix R-\Rnumber}%
+%D \bgroup
+%D \the\everyR
+%D \def\par{\rawcharacter{10}}%
+%D \immediate\openout\scratchwrite=\Rfile.r
+%D \immediate\write\scratchwrite{##1}%
+%D \immediate\closeout\scratchwrite
+%D \egroup
+%D \doifmode{*\v!first}\runR
+%D \typefile{\Rfile.rout}%
+%D \egroup}%
+%D \doifnextcharelse\relax\dostartR\dostartR}
+%D
+%D \def\runR
+%D {\executesystemcommand{texmfstart
+%D --ifchanged=\Rfile.r bin:R
+%D "-q --save --restore < \Rfile.r > \Rfile.rout"}}
+%D \stoptyping
+
+%D JS: The call to R has \type {-q} in order to prevent banner,
+%D \type {--save} to make sure it saves the workspace after the run,
+%D \type {--restore} to make sure it reads any workspace from a
+%D previous session.
+
+%D An easier and better solution is to use the buffering mechanisms:
+
+\def\Rbufferprefix{r-}
+\newcounter\nofRfiles
+
+\def\Rfile{\TEXbufferfile{\Rbufferprefix\nofRfiles}}%
+
+\def\startR
+ {\doglobal\increment\nofRfiles
+ \dostartbuffer[\Rbufferprefix\nofRfiles][startR][stopR]}
+
+\def\stopR
+ {\doifmode{*\v!first}\runR
+ \typefile{\Rfile.out}}
+
+\def\startRhidden
+ {\doglobal\increment\nofRfiles
+ \dostartbuffer[\Rbufferprefix\nofRfiles][startRhidden][stopRhidden]}
+
+\def\stopRhidden
+ {\doifmode{*\v!first}\runR}
+
+% \def\runR % " " needed to preserve < >
+% {\executesystemcommand{texmfstart
+% --ifchanged=\Rfile\space --direct R
+% "-q --save --restore < \Rfile\space > \Rfile.out"}}
+
+\def\runR
+ {\executesystemcommand{texmfstart
+ --ifchanged=\Rfile\space --direct R
+ CMD BATCH -q --save --restore \Rfile\space \Rfile.out}}
+
+\protect \doifnotmode{demo}{\endinput}
+
+% Johan's test file:
+
+\usemodule[r]
+
+\def\R{R}
+
+\setupcolors[state=start]
+
+\setuptyping
+ [Rtype]
+ [color=darkgreen]
+
+\starttext
+
+First a test of whether the workspace is persistent:
+bla
+
+\startR
+a <- "bla"
+b <- "blabla"
+ls()
+\stopR
+
+One \R run ends, another begins.
+
+\startR
+ls()
+\stopR
+
+Now follows a hidden \R run which cleans the R workspace
+
+\startRhidden
+rm(list=ls())
+save.image()
+\stopRhidden
+
+What is in the workspace now?
+
+\startR
+ls()
+\stopR
+
+Then a small test of generating a graphic, in this case a pdf
+\startR
+ushape <- c(rexp(500000), 12-rexp(500000))
+pdf("ushape.pdf")
+par(mfrow=c(1,2))
+hist(ushape)
+plot(density(ushape), main="Density")
+dev.off()
+\stopR
+
+The graphic \type{ushape.pdf} can be included in the standard \CONTEXT\ way
+\startbuffer
+\placefigure{An ugly distribution}{\externalfigure[ushape]}
+\stopbuffer
+\typebuffer
+\getbuffer
+
+\startR
+x <- rnorm(900)
+y <- rexp(900)
+# test comment
+f <- gl(9,9,900)
+summary(aov(y~x+Error(f)))
+library(lattice)
+pdf("lattice.pdf")
+xyplot(y~x|f)
+dev.off()
+\stopR
+
+With \type{Sweave} lattice graphics calls must be enclosed in
+\type{print()} statements but that is not necessary here.
+
+\startbuffer
+\placefigure[here]{Lattice graphics}{\externalfigure[lattice]}
+\stopbuffer
+\typebuffer
+\getbuffer
+
+A test string with nasty characters. In \R, the result of a statement
+is not printed by default. Enclosing the statement in parentheses,
+however causes the parser to see only the value of the statement and
+applying the \type{print()} method.
+\startR
+(test <- ".*\\\\ [[{[{]{[{[{}\]\}=?!+%#|<|>@$")
+cat(test)
+\stopR
+
+A combination
+\startbuffer
+\placefigure{A combination of two previously used graphics}{
+\startcombination[2*1]
+ {\externalfigure[ushape][width=.4\textwidth]}{The first graphic, rescaled}
+ {\externalfigure[lattice][width=.4\textwidth]}{The second graphic, rescaled}}
+\stopcombination
+\stopbuffer
+\typebuffer
+\getbuffer
+
+Testing a function definition.
+
+\startR
+a.df <- data.frame(a=1:2, b=rnorm(2))
+a.df$a
+testfunction <- function(a=NULL, ...) {
+ for(i in 1:length(a)) {
+ gsub(a[[i]], "([a-r]|[A-R])", "bla")}
+ print(a)}
+\stopR
+
+What is in the workspace now?
+
+\startR
+ls()
+\stopR
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/m-steps.tex b/Master/texmf-dist/tex/context/base/m-steps.tex
index deda373eefe..8129d66996b 100644
--- a/Master/texmf-dist/tex/context/base/m-steps.tex
+++ b/Master/texmf-dist/tex/context/base/m-steps.tex
@@ -11,6 +11,9 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+%D When I need this module, I will reimplement it by using the new
+%D sometxt macro. Anyhow, it reflects the state of 2001.
+
\unprotect
% temp hack :
@@ -28,8 +31,8 @@
\def\@@STPC{@@STPC} % charts
\def\@@STPT{@@STPT} % tables
-\def\@@STEC{@@STEC} % cells
-\def\@@STET{@@STET} % tables
+\def\@@STEC{@@STEC} % cells
+\def\@@STET{@@STET} % tables
\def\@@STEL{@@STEL} % lines
\def\setupSTEPcharts{\dodoubleargument\getparameters[\@@STPC]}
@@ -41,7 +44,7 @@
\setupSTEPcharts
[\c!before=\blank,
\c!after=\blank,
- %\c!distance=.25em, % nvt
+ %\c!distance=.25em, % nvt
\c!hoffset=1em,
\c!voffset=1ex,
\c!method=1,
@@ -52,7 +55,7 @@
[\c!before=\blank,
\c!after=\blank,
\c!distance=.25em,
- %\c!hoffset=1em, % nvt
+ %\c!hoffset=1em, % nvt
\c!voffset=1ex,
\c!method=1,
\c!width=4em,
@@ -90,14 +93,14 @@
{\freezedimenmacro\@@STPCoffset
\startMPdrawing
line_v_offset := \@@STPCoffset ;
- line_method := \@@STPCmethod ; % only charts
+ line_method := \@@STPCmethod ; % only charts
\stopMPdrawing}
\def\initializeSTPT
- {\freezedimenmacro\@@STPToffset
+ {\freezedimenmacro\@@STPToffset
\startMPdrawing
line_h_offset := \@@STPToffset ;
- line_method := \@@STPTmethod ; % only charts
+ line_method := \@@STPTmethod ; % only charts
\stopMPdrawing}
\def\initializeSTET
@@ -111,7 +114,7 @@
\def\initializeSTEL
{\freezedimenmacro\@@STELrulethickness}
-%D ...
+%D ...
\defineXMLdirective [stepchart] [charts] \setupSTEPcharts
\defineXMLdirective [stepchart] [cells] \setupSTEPcells
@@ -123,7 +126,7 @@
\defineXMLdirective [steptable] [texts] \setupSTEPtexts
\defineXMLdirective [steptable] [lines] \setupSTEPlines
-%D ...
+%D ...
\presetlocalframed[\@@STPF]
@@ -149,8 +152,8 @@
%D \METAPOST. This method is the cleanest, but has the
%D disadvantage that one cannot embed hyperlinks or document
%D dependent definitions in the cells. The implementation
-%D roughly looks as follows:
-%D
+%D roughly looks as follows:
+%D
%D \starttyping
%D \def\startSTEPchart%
%D {\bgroup
@@ -194,15 +197,15 @@
%D
%D The second attempt was based on tabulations and used the
%D build in position tracking mechanism, which uses two
-%D position nodes per cell.
-%D
+%D position nodes per cell.
+%D
%D This method collects the content in token list registers
%D and build a table from them. In the collecting pass, the
%D graphics are build stepwise. We need to collect because the
%D order of definitions is not the same as the order of
%D typesetting. We show this alternative too because it
-%D demonstrates how to apply backgrounds to table cells.
-%D
+%D demonstrates how to apply backgrounds to table cells.
+%D
%D \starttyping
%D \newtoks\stepsonetop \newtoks\stepstwotop
%D \newtoks\stepsonebot \newtoks\stepstwobot
@@ -254,7 +257,7 @@
%D {\getMPdrawing}
%D \resetMPdrawing
%D \increment(\cellcounter,\cellcounter)\decrement\cellcounter
-%D \setbox2=\vbox
+%D \setbox2=\vbox
%D {\definetabulate[chart][|*{\cellcounter}{ck0|}] % k0 nills space
%D \startchart
%D \ifcase\somesteptwotop \the\stepstwotop \NC \NR \noalign{\kern2ex} \fi
@@ -352,30 +355,30 @@
%D \def\textcellposition#1{\GSC[#1:text]}
%D \def\stepidentifierposition#1{\GSC[#1:step]}
%D \stoptyping
-%D
-%D We abandoned this method after some testing and went for
-%D a third one. It was this third method that evolved into the
-%D current mechanism.
-%D
+%D
+%D We abandoned this method after some testing and went for
+%D a third one. It was this third method that evolved into the
+%D current mechanism.
+%D
%D Since this method was not that efficient, a third one was
-%D implemented, which used one position per cell. So,
+%D implemented, which used one position per cell. So,
%D
%D \blank {\bf Here starts the real implementation!} \blank
%D
%D Because we want to build one graphic only we need to store
%D the graphic directives. We also need to collect the cells,
-%D which are not defined in the order they show up. This
-%D solution uses multiple passes over the definitions. First
-%D the cells and texts are processed and the associated
-%D graphics are defined in the \METAPOST\ file. Next the
-%D lines are flushed. We need to do that in a second pass,
-%D because in order to determine the nature of the line,
+%D which are not defined in the order they show up. This
+%D solution uses multiple passes over the definitions. First
+%D the cells and texts are processed and the associated
+%D graphics are defined in the \METAPOST\ file. Next the
+%D lines are flushed. We need to do that in a second pass,
+%D because in order to determine the nature of the line,
%D \METAPOST\ needs to know if the start and end cells exist.
-%D This need comes from the fact that we store the shapes
-%D and lines kind of directly with their associated colors and
+%D This need comes from the fact that we store the shapes
+%D and lines kind of directly with their associated colors and
%D types, so that we can change the settings in between. So,
-%D changing for instance the line color, can take place
-%D locally.
+%D changing for instance the line color, can take place
+%D locally.
\newbox\stepboxone \newbox\stepboxtwo
\newbox\textboxone \newbox\textboxtwo
@@ -395,11 +398,11 @@
{\dosingleempty\dostartSTEPchart}
\long\def\dostartSTEPchart[#1]#2\stopSTEPchart
- {\ifinsidefloat
- \else
- \whitespace
- \@@STPCbefore
- \startbaselinecorrection
+ {\ifinsidefloat
+ \else
+ \whitespace
+ \@@STPCbefore
+ \startbaselinecorrection
\setlocalhsize
\noindent
\fi
@@ -457,7 +460,7 @@
\setbox2\vbox
{\offinterlineskip
\scratchdimen\@@STPCheight
- \advance\scratchdimen\@@STPCoffset
+ \advance\scratchdimen\@@STPCoffset
\advance\scratchdimen\@@STPCoffset
\ifcase\sometextboxone \box\textboxone \vskip\scratchdimen \fi
\ifcase\somestepboxone \box\stepboxone \vskip\@@STPCvoffset \fi
@@ -573,7 +576,7 @@
\def\dodoSTEPcharttextsA#1#2#3#4% #1=number #2=setup
{\dodoSTEPcharttextsAB{#1}{#2}{#3}{#4}\dodoSTEPcharttextsA
- \ifnum\textcounter>\cellcounter\relax
+ \ifnum\textcounter>\cellcounter\relax
\doglobal\decrement\textcounter\relax
\else
\setbox0\hbox{\doifsomething{#3}{\@@steptext{#3}}}%
@@ -585,7 +588,7 @@
\startMPdrawing
texts[t][#1][\textcounter] := nullpicture ;
\stopMPdrawing
- \else
+ \else
\global\chardef\sometextboxone\zerocount
\edef\stepidentifier{\stepchartprefix#1-\textcounter-t-t}%
\setbox0\hbox to \@@STPChoffset
@@ -627,7 +630,7 @@
\def\dodoSTEPcharttextsB#1#2#3#4% #1=number #2=setup
{\dodoSTEPcharttextsAB{#1}{#2}{#3}{#4}\dodoSTEPcharttextsB
- \ifnum\textcounter>\cellcounter\relax
+ \ifnum\textcounter>\cellcounter\relax
\doglobal\decrement\textcounter\relax
\else
\bgroup
@@ -653,36 +656,36 @@
\def\MPcharttoplinesgraphic#1#2%
{image(drawline(
- \@@STELalternative, get_step_chart_top_line(#1,#2),
+ \@@STELalternative, get_step_chart_top_line(#1,#2),
\@@STELrulethickness, \MPcolor{\@@STELcolor} ) )}
\def\MPchartbotlinesgraphic#1#2%
- {image(drawline(
- \@@STELalternative, get_step_chart_bot_line(#1,#2),
+ {image(drawline(
+ \@@STELalternative, get_step_chart_bot_line(#1,#2),
\@@STELrulethickness, \MPcolor{\@@STELcolor} ) )}
-%D \XML\ coupling.
+%D \XML\ coupling.
-\defineXMLpickup[stepchart][@@STPC]
+\defineXMLpickup[stepchart][@@STPC]
{\bgroup
\defineXMLpush[top]%
\defineXMLpush[bot]%
- \defineXMLenvironment[lines][@@STEL]
- {\expanded{\startlines[\theXMLarguments{@@STEL}]}}
+ \defineXMLenvironment[lines][@@STEL]
+ {\expanded{\startlines[\theXMLarguments{@@STEL}]}}
{\stoplines}%
- \defineXMLenvironment[cells][@@STEC]
+ \defineXMLenvironment[cells][@@STEC]
{\XMLerase{top}\XMLerase{bot}}
{\expanded{\cells[\theXMLarguments{@@STEC}]{\XMLpop{top}}{\XMLpop{bot}}}}%
- \defineXMLenvironment[texts][@@STET]
+ \defineXMLenvironment[texts][@@STET]
{\XMLerase{top}\XMLerase{bot}}
{\expanded{\texts[\theXMLarguments{@@STET}]{\XMLpop{top}}{\XMLpop{bot}}}}%
- \defineXMLenvironmentpush[cell][@@STEC]
+ \defineXMLenvironmentpush[cell][@@STEC]
{\XMLerase{cell}}
{\expanded{\cell [\theXMLarguments{@@STEC}]{\XMLpop{cell}}}}%
- \defineXMLenvironmentpush [text] [@@STET]
+ \defineXMLenvironmentpush [text] [@@STET]
{\XMLerase{text}}
{\expanded{\text [\theXMLarguments{@@STET}]{\XMLpop{text}}}}%
- \expanded{\startSTEPchart[\theXMLarguments{@@STPC}]}}
+ \expanded{\startSTEPchart[\theXMLarguments{@@STPC}]}}
{\stopSTEPchart
\egroup}
@@ -702,11 +705,11 @@
{\dodoubleempty\dostartSTEPaligntable[1]}
\def\dostartSTEPaligntable[#1][#2]#3\stopSTEPaligntable % flag settings data
- {\ifinsidefloat
- \else
- \whitespace
- \@@STPTbefore
- \startbaselinecorrection
+ {\ifinsidefloat
+ \else
+ \whitespace
+ \@@STPTbefore
+ \startbaselinecorrection
\setlocalhsize
\noindent
\fi
@@ -723,7 +726,7 @@
\initializeSTPT
\def\startlines{\bgroup\setupSTEPlines}%
\def\stoplines {\egroup}%
- \def\prep##1{\ignorespaces##1\unskip\enspace\ignorespaces}%
+ \def\prep##1{\ignorespaces##1\unskip\enspace\ignorespaces}%
\def\cell {\dosingleempty\docell}%
\def\cells {\dosingleempty\docells}%
\def\text {\dosingleempty\dotext}%
@@ -761,18 +764,18 @@
\stopMPdrawing
\egroup}
\doglobal\newcounter\cellcounter#3
- % second graphic pass pass, drawing lines
+ % second graphic pass pass, drawing lines
\def\docells[##1]##2##3##4%
{\doglobal\increment\cellcounter}
\def\dotext[##1]##2%
{\bgroup
\initializeSTEL
\startMPdrawing
- lines[\cellcounter] := \MPtablelinesgraphic ;
+ lines[\cellcounter] := \MPtablelinesgraphic ;
\stopMPdrawing
- \egroup}
+ \egroup}
\doglobal\newcounter\cellcounter#3
- % finishing graphic touch
+ % finishing graphic touch
\startMPdrawing
nofcells := \cellcounter ;
end_step_table ;
@@ -783,7 +786,7 @@
{\setbox0\null}
{\setbox0\vbox{\MPstaticgraphictrue\getMPdrawing}}%
\resetMPdrawing
- % typesetting pass
+ % typesetting pass
\dimen6=\@@STPTdistance \dimen6=2\dimen6
% cell width
\dimen8=\dimen1
@@ -801,8 +804,8 @@
{\hbox to \dimen####1{####2\@@stepfake{####3}\strut####4}}%
\setbox8\hbox
{\ifcase#1\else
- \do1\hss{##2}\relax \hskip\@@STPTdistance
- \do3\hss{##3}\hss \hskip\@@STPTdistance
+ \do1\hss{##2}\relax \hskip\@@STPTdistance
+ \do3\hss{##3}\hss \hskip\@@STPTdistance
\fi
\do5\relax{##4}\hss}%
\hpos{\steptableprefix\cellcounter-c}{\@@stepcell{\box8}}
@@ -815,11 +818,11 @@
\advance\hsize-\dimen8
\advance\hsize-\dimen6 % twice the offset
\setbox0\hbox{\@@steptext{##2}}%
-% to do
+% to do
% \ifdim\wd0>\hsize
% \setbox0=\vbox{\@@steptext{##2}}%
% \fi
-% align
+% align
\hpos{\steptableprefix\cellcounter-t}{\box0}%
\endgraf
\egroup
@@ -839,47 +842,47 @@
\ifinsidefloat \else \stopbaselinecorrection \@@STPTafter \fi}
\def\MPtablelinesgraphic
- {image ( drawline (
- \@@STELalternative, get_step_table_line(\cellcounter),
+ {image ( drawline (
+ \@@STELalternative, get_step_table_line(\cellcounter),
\@@STELrulethickness, \MPcolor{\@@STELcolor} ) )}
\defineXMLpickup[steptable][@@STPT]
{\bgroup
- \defineXMLenvironment[lines][@@STEL]
- {\expanded{\startlines[\theXMLarguments{@@STEL}]}}
+ \defineXMLenvironment[lines][@@STEL]
+ {\expanded{\startlines[\theXMLarguments{@@STEL}]}}
{\stoplines}%
- \defineXMLargument[cell][@@STEC]
- {\expanded{\cell[\theXMLarguments{@@STEC}]}}%
+ \defineXMLargument[cell][@@STEC]
+ {\expanded{\cell[\theXMLarguments{@@STEC}]}}%
\defineXMLargument[text][@@STET]
- {\expanded{\text[\theXMLarguments{@@STET}]}}%
+ {\expanded{\text[\theXMLarguments{@@STET}]}}%
\defineXMLargument[prep]
{\prep}%
- \expanded{\startSTEPtable[\theXMLarguments{@@STPT}]}}
+ \expanded{\startSTEPtable[\theXMLarguments{@@STPT}]}}
{\stopSTEPtable
\egroup}
\defineXMLpickup[stepaligntable][@@STPT]
{\bgroup
- \defineXMLenvironment[lines][@@STEL]
- {\expanded{\setupSTEPlines[\theXMLarguments{@@STEL}]}}
+ \defineXMLenvironment[lines][@@STEL]
+ {\expanded{\setupSTEPlines[\theXMLarguments{@@STEL}]}}
{}%
\defineXMLpush[c1]\defineXMLpush[c2]\defineXMLpush[c3]%
\defineXMLenvironment[cells][@@STEC]
{\XMLerase{c1}\XMLerase{c1}\XMLerase{c3}}
{\expanded{\cells[\theXMLarguments{@@STEC}]{\XMLpop{c1}}{\XMLpop{c2}}{\XMLpop{c3}}}}%
\defineXMLargument[text][@@STET]
- {\expanded{\text[\theXMLarguments{@@STET}]}}%
+ {\expanded{\text[\theXMLarguments{@@STET}]}}%
\defineXMLargument[prep]
{\prep}%
- \expanded{\startSTEPaligntable[\theXMLarguments{@@STPT}]}}
+ \expanded{\startSTEPaligntable[\theXMLarguments{@@STPT}]}}
{\stopSTEPaligntable
\egroup}
\protect \endinput
-% A simple paragraph-flow test:
+% A simple paragraph-flow test:
-\starttext
+\starttext
\startbuffer
\startSTEPchart
@@ -892,10 +895,10 @@
\stopSTEPchart
\stopbuffer
-\getbuffer
+\getbuffer
\startnarrower \getbuffer \stopnarrower
\placefigure[left]{}{} \getbuffer
-\stoptext
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/m-streams.tex b/Master/texmf-dist/tex/context/base/m-streams.tex
new file mode 100644
index 00000000000..181c82d331c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/m-streams.tex
@@ -0,0 +1,439 @@
+%D \module
+%D [ file=m-streams,
+%D version=2006.03.21,
+%D title=\CONTEXT\ Modules,
+%D subtitle=Streams,
+%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 First we implement a simple left||right synchronization
+%D mechanism, which we may perfect and extend over time.
+
+\unprotect
+
+\defineoutputstream [\v!left]
+\defineoutputstream [\v!right]
+
+\definemarknote[\v!left]
+\definemarknote[\v!right]
+
+\startsetups stream:\v!left:bottom
+ \flushmarknotes[\v!left]
+\stopsetups
+\startsetups stream:\v!right:bottom
+ \flushmarknotes[\v!right]
+\stopsetups
+\startsetups stream:\v!left:reset
+ \erasemarknotes[\v!left]
+\stopsetups
+\startsetups stream:\v!right:reset
+ \erasemarknotes[\v!right]
+\stopsetups
+
+\def\LeftNote {\setmarknote [\v!left]} % {#1}
+\def\RightNote {\setmarknote [\v!right]} % {#1}
+\def\SwitchToLeft {\enableoutputstream [\v!left]}
+\def\SwitchToRight {\enableoutputstream [\v!right]}
+\def\SwitchToNormal {\enableoutputstream [\s!default]}
+\def\SynchronizeLeftAndRight{\synchronizeoutputstreams[\v!left,\v!right]}
+\def\FlushLeftAndRight {\flushoutputstreampages [\v!left,\v!right]}
+
+\protect
+
+% \topskip \strutheight
+% \splittopskip\strutheight
+
+%D Example of usage:
+%D
+%D \starttyping
+%D \nopenalties \setupinterlinespace[top=height] \setupcolors[state=start]
+%D
+%D \showgrid \showstruts
+%D
+%D \starttext
+%D
+%D \title{Whatever} \page
+%D
+%D \dorecurse {5} {
+%D \let\RecurseLevel\recurselevel
+%D \SwitchToLeft \dorecurse{10}{\dontleavehmode{\tf\RecurseLevel:l \begstrut \input tufte \endstrut \endgraf}}
+%D \SwitchToRight \dorecurse{10}{\dontleavehmode{\sl\RecurseLevel:r \begstrut \input knuth \endstrut \endgraf}}
+%D \SwitchToNormal \SynchronizeLeftAndRight
+%D \SwitchToLeft \dorecurse{10}{\dontleavehmode{\bf\RecurseLevel:l \begstrut \input zapf \endstrut \endgraf}}
+%D \SwitchToRight \dorecurse{10}{\dontleavehmode{\bs\RecurseLevel:r \begstrut \input davis \endstrut \endgraf}}
+%D \SwitchToNormal \SynchronizeLeftAndRight
+%D }
+%D \stoptext
+%D \stoptyping
+%D
+%D Another example:
+%D
+%D \starttyping
+%D \nopenalties \setupinterlinespace[top=height] \setupcolors[state=start]
+%D
+%D \showgrid \showstruts
+%D
+%D \starttext
+%D
+%D \SwitchToNormal \FlushLeftAndRight \page
+%D
+%D \def\StartCouple{\page\SwitchToNormal}
+%D \def\StopCouple {\SwitchToNormal \SynchronizeLeftAndRight \FlushLeftAndRight}
+%D
+%D \def\Original {\SwitchToNormal\SynchronizeLeftAndRight\SwitchToLeft}
+%D \def\Translation{\SwitchToRight}
+%D
+%D \StartCouple
+%D \dorecurse{10} {
+%D \Original o: \begstrut \inright{\blackrule}\input tufte \endstrut \LeftNote {tufte} \endgraf
+%D \Translation t: \begstrut \inleft {\blackrule}\input zapf \endstrut \RightNote{zapf} \endgraf
+%D \Original o: \begstrut \inright{\blackrule}\input knuth \endstrut \LeftNote {knuth} \endgraf
+%D \Translation t: \begstrut \inleft {\blackrule}\input davis \endstrut \RightNote{davis} \endgraf
+%D \Original o: \begstrut \inright{\blackrule}\input douglas \endstrut \LeftNote {douglas} \endgraf
+%D \Translation t: \begstrut \inleft {\blackrule}\input bryson \endstrut \RightNote{bryson} \endgraf
+%D }
+%D \StopCouple
+%D \stoptext
+%D \stoptyping
+
+%D Next we implement stream layers.
+
+\unprotect
+
+\startsetups streamlayer:default:settings
+ % set hsize etc
+\stopsetups
+
+\startsetups streamlayer:default:extras
+ % flush goodies, like local floats
+\stopsetups
+
+\startsetups streamlayer:default:place
+ \setlayer
+ [\currentstreamlayer]
+ [\c!preset=\v!left\v!top]
+ {\outputstreambox[\currentstreamlayer]}%
+\stopsetups
+
+\startsetups streamlayer:default:copy
+ \setlayer
+ [\currentstreamlayer]
+ [\c!preset=\v!left\v!top]
+ {\outputstreamcopy[\currentstreamlayer]}%
+\stopsetups
+
+
+\startsetups streamlayer:default:reset
+ \outputstreambox[\currentstreamlayer]
+\stopsetups
+
+\startsetups streamlayer:default:flush
+ \tightlayer[\currentstreamlayer]
+\stopsetups
+
+\def\definestreamlayer
+ {\dodoubleempty\dodefinestreamlayer}
+
+\def\dodefinestreamlayer[#1][#2]%
+ {\defineoutputstream[#1]%
+ \defineoutputstream[main]%
+ \definelayer[#1][\c!method=\v!fit,\c!width=\textwidth,#2]}
+
+\def\dostreamsetups#1%
+ {\doifsetupselse{streamlayer:\currentstreamlayer:#1}
+ {\directsetup{streamlayer:\currentstreamlayer:#1}}
+ {\directsetup{streamlayer:\s!default:#1}}}
+
+\def\startstreamlayer[#1]%
+ {\bgroup
+% \def\startstreamlayer[##1]{\bgroup\let\stopstreamlayer\egroup}%
+ \edef\currentstreamlayer{#1}%
+ \enableoutputstream[main]%
+ \synchronizeoutput
+ \enableoutputstream[\currentstreamlayer]%
+ \bgroup
+ \dostreamsetups{settings}}
+
+\def\stopstreamlayer
+ {\endgraf
+ \egroup
+ \disableoutputstream % \enableoutputstream[\s!default]%
+ \outputstreambox[main]%
+% \dostreamsetups{place}%
+% \dostreamsetups{extras}%
+% \dostreamsetups{flush}%
+ \egroup}
+
+\def\preparestreamlayer{\dosingleempty\dopreparestreamlayer}
+\def\flushstreamlayer {\dosingleempty\doflushstreamlayer }
+\def\placestreamlayer {\dosingleempty\doplacestreamlayer }
+
+\def\dopreparestreamlayer[#1]%
+ {\bgroup
+ \edef\currentstreamlayer{\iffirstargument#1\else\currentstreamlayer\fi}%
+ \dostreamsetups{place}%
+ \dostreamsetups{extras}%
+% \dostreamsetups{flush}%
+ \egroup}
+
+\def\doflushstreamlayer[#1]%
+ {\bgroup
+ \edef\currentstreamlayer{\iffirstargument#1\else\currentstreamlayer\fi}%
+ \dostreamsetups{flush}%
+ \egroup}
+
+\def\doplacestreamlayer[#1]%
+ {\preparestreamlayer[#1]%
+ \flushstreamlayer[#1]}
+
+\protect
+
+%D Usage:
+
+%D \starttyping
+%D \setupinterlinespace[top=height]
+%D
+%D \setupcolors[state=start]
+%D
+%D \definestreamlayer[block]
+%D
+%D \definemeasure[localtextwidth] [\dimexpr.7\textwidth\relax]
+%D \definemeasure[localfloatwidth][\dimexpr.3\textwidth-2\bodyfontsize\relax]
+%D
+%D \startsetups streamlayer:block:settings
+%D \hsize=\measure{localtextwidth}
+%D \setupfloat[figure][maxwidth=\measure{localfloatwidth}]
+%D \stopsetups
+%D
+%D \startsetups streamlayer:block:extras
+%D \setuplocalfloats
+%D [before=\blank,
+%D after=\blank,
+%D inbetween=\blank]
+%D \setbox\scratchbox\vbox{\hsize\measure{localfloatwidth}\getlocalfloats}
+%D \ifdim\ht\scratchbox>\thelayerheight\currentstreamlayer\relax
+%D % more float than text
+%D \setlayerframed
+%D [\currentstreamlayer]
+%D [preset=righttop]
+%D [frame=off,
+%D offset=overlay]
+%D {\box\scratchbox}
+%D \else
+%D % more text than float
+%D \setuplocalfloats
+%D [before=\vfill,
+%D after=\removedepth\vfill,
+%D inbetween=\removedepth\vfill]
+%D \setlayerframed
+%D [\currentstreamlayer]
+%D [preset=righttop]
+%D [frame=off,
+%D offset=overlay]
+%D {\vbox to \thelayerheight\currentstreamlayer {\hsize\measure{localfloatwidth}\getlocalfloats}}
+%D \fi
+%D \resetlocalfloats
+%D \stopsetups
+%D
+%D \startsetups streamlayer:block:place
+%D \setlayerframed
+%D [\currentstreamlayer]
+%D [preset=lefttop]
+%D [frame=off,
+%D offset=overlay]
+%D {\outputstreambox[\currentstreamlayer]}%
+%D \stopsetups
+%D
+%D \startsetups streamlayer:block:flush
+%D \framed
+%D [offset=overlay,
+%D frame=off,
+%D background=color,
+%D backgroundcolor=red]
+%D {\tightlayer[\currentstreamlayer]}
+%D \stopsetups
+%D
+%D \setupbodyfont[small]
+%D
+%D \starttext
+%D
+%D \dorecurse {10} {
+%D \startstreamlayer[block]
+%D \title{Sample \recurselevel}
+%D \input tufte \endgraf
+%D \placefigure[local]{}{}
+%D \placefigure[local]{}{}
+%D \ifodd\recurselevel\relax \placefigure[local]{}{} \fi
+%D \startitemize[columns]
+%D \item xxx
+%D \item xxx
+%D \item xxx
+%D \item xxx
+%D \item xxx
+%D \stopitemize
+%D \stopstreamlayer
+%D \placestreamlayer[block]
+%D }
+%D
+%D \dorecurse {10} {
+%D \startstreamlayer[block]
+%D \title{Sample \recurselevel}
+%D \startcolumns
+%D \input tufte
+%D \stopcolumns
+%D \stopstreamlayer
+%D \placestreamlayer[block]
+%D }
+%D
+%D \stoptext
+%D \stoptyping
+
+\def\starttextstreamlayer
+ {\startstreamlayer}
+
+\def\stoptextstreamlayer
+ {\endgraf
+ % maybe depth if no proper depth and no skip
+ \removelastskip
+ \stopstreamlayer}
+
+\def\placetextstreamlayer{\placestreamlayer}
+
+%D \starttyping
+%D \definestreamlayer[whatever][width=12cm]
+%D
+%D \startstreamlayer[whatever]
+%D \startitemize[columns,two][after=]
+%D \item one
+%D \item two
+%D \item three
+%D \item four
+%D \stopitemize
+%D \stopstreamlayer
+%D
+%D \framed[strut=no,align=normal]{\placestreamlayer[whatever]\obeydepth}
+%D
+%D \starttextstreamlayer[whatever]
+%D \startitemize[columns,two]
+%D \item one
+%D \item two
+%D \item three
+%D \item four
+%D \stopitemize
+%D \stoptextstreamlayer
+%D
+%D \framed[strut=no]{\placetextstreamlayer[whatever]}
+%D \stoptyping
+
+\endinput
+
+\setupinterlinespace[top=height]
+
+\setupcolors[state=start]
+
+\definestreamlayer[block]
+
+\definemeasure[localtextwidth] [\dimexpr.7\textwidth\relax]
+\definemeasure[localfloatwidth][\dimexpr.3\textwidth-2\bodyfontsize\relax]
+
+\startsetups streamlayer:block:settings
+ \hsize=\measure{localtextwidth}
+ \setupfloat[figure][maxwidth=\measure{localfloatwidth}]
+\stopsetups
+
+\startsetups streamlayer:block:extras
+ \setuplocalfloats
+ [before=\whitespace\blank,
+ after=\whitespace\blank,
+ inbetween=\whitespace\blank]
+ \setbox\scratchbox\vbox{\hsize\measure{localfloatwidth}\getlocalfloats}
+ \ifdim\ht\scratchbox>\thelayerheight\currentstreamlayer\relax
+ % more float than text
+ \setlayerframed
+ [\currentstreamlayer]
+ [preset=righttop]
+ [frame=off,
+ offset=overlay]
+ {\box\scratchbox}
+ \else
+ % more text than float
+ \setuplocalfloats
+ [before=\vfill,
+ after=\removedepth\vfill,
+ inbetween=\removedepth\vfill]
+ \setlayerframed
+ [\currentstreamlayer]
+ [preset=righttop]
+ [frame=off,
+ offset=overlay]
+ {\vbox to \thelayerheight\currentstreamlayer {\hsize\measure{localfloatwidth}\getlocalfloats}}
+ \fi
+ \resetlocalfloats
+\stopsetups
+
+\startsetups streamlayer:block:place
+ \setlayerframed
+ [\currentstreamlayer]
+ [preset=lefttop]
+ [frame=off,
+ offset=overlay]
+ {\outputstreambox[\currentstreamlayer]}%
+\stopsetups
+
+\startsetups streamlayer:block:flush
+ \framed
+ [offset=overlay,
+ frame=off,
+ background=color,
+ backgroundcolor=red]
+ {\tightlayer[\currentstreamlayer]}
+\stopsetups
+
+\setupbodyfont[small]
+
+\starttext
+
+% \definestreamlayer[block]
+%
+% \startstreamlayer[block]
+% \title{Sample \recurselevel}
+% \startcolumns
+% \dorecurse{4}{\input tufte \par}
+% \stopcolumns
+% \stopstreamlayer
+% \placestreamlayer[block]
+
+\dorecurse {10} {
+ \startstreamlayer[block]
+ \title{Sample \recurselevel}
+ \input tufte \endgraf
+ \placefigure[local]{}{}
+ \placefigure[local]{}{}
+ \ifodd\recurselevel\relax \placefigure[local]{}{} \fi
+ \startitemize[columns]
+ \item xxx
+ \item xxx
+ \item xxx
+ \item xxx
+ \item xxx
+ \stopitemize
+ \stopstreamlayer
+ \placestreamlayer[block]
+}
+
+\dorecurse {10} {
+ \startstreamlayer[block]
+ \title{Sample \recurselevel}
+ \startcolumns
+ \input tufte
+ \stopcolumns
+ \stopstreamlayer
+ \placestreamlayer[block]
+}
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/m-subsub.tex b/Master/texmf-dist/tex/context/base/m-subsub.tex
index 3a29bc69f09..3fc71cd505d 100644
--- a/Master/texmf-dist/tex/context/base/m-subsub.tex
+++ b/Master/texmf-dist/tex/context/base/m-subsub.tex
@@ -59,35 +59,35 @@ subsubsubsubsubsubsubsubsubsubject: subsubsubsubsubsubsubsubsubonderwerp
\stopvariables
-\definesection[\v!sectionlevel-8]
-\definesection[\v!sectionlevel-9]
-\definesection[\v!sectionlevel-10]
-\definesection[\v!sectionlevel-11]
-\definesection[\v!sectionlevel-12]
+\definesection[\s!section-8]
+\definesection[\s!section-9]
+\definesection[\s!section-10]
+\definesection[\s!section-11]
+\definesection[\s!section-12]
\definehead
[\v!subsubsubsubsubsection]
- [\c!section=\v!sectionlevel-8,
+ [\c!section=\s!section-8,
\c!default=\v!subsubsubsubsection]
\definehead
[\v!subsubsubsubsubsubsection]
- [\c!section=\v!sectionlevel-9,
+ [\c!section=\s!section-9,
\c!default=\v!subsubsubsubsubsection]
\definehead
[\v!subsubsubsubsubsubsubsection]
- [\c!section=\v!sectionlevel-10,
+ [\c!section=\s!section-10,
\c!default=\v!subsubsubsubsubsubsection]
\definehead
[\v!subsubsubsubsubsubsubsubsection]
- [\c!section=\v!sectionlevel-11,
+ [\c!section=\s!section-11,
\c!default=\v!subsubsubsubsubsubsubsection]
\definehead
[\v!subsubsubsubsubsubsubsubsubsection]
- [\c!section=\v!sectionlevel-12,
+ [\c!section=\s!section-12,
\c!default=\v!subsubsubsubsubsubsubsubsection]
\definehead
diff --git a/Master/texmf-dist/tex/context/base/m-tryout.tex b/Master/texmf-dist/tex/context/base/m-tryout.tex
index ef6c502ba07..89ffc46782b 100644
--- a/Master/texmf-dist/tex/context/base/m-tryout.tex
+++ b/Master/texmf-dist/tex/context/base/m-tryout.tex
@@ -24,6 +24,10 @@
\startmode[activecolon]
+\endinput
+
+% this is now default
+
\gdef\sectionseparator{-}
\gdef\@@filterfirstpart [#1--#2]{#1}
diff --git a/Master/texmf-dist/tex/context/base/m-units.tex b/Master/texmf-dist/tex/context/base/m-units.tex
index 35f870bbf62..50b1a48997e 100644
--- a/Master/texmf-dist/tex/context/base/m-units.tex
+++ b/Master/texmf-dist/tex/context/base/m-units.tex
@@ -59,6 +59,11 @@
1: folositi \string\Degrees\space\string\Celsius\space in locul \string\Celsius !
\stopmessages
+\startmessages french library: units
+ title: unités
+ 1: utilisez \string\Degrees\space\string\Celsius\space à la place de \string\Celsius !
+\stopmessages
+
\unprotect
%D This runtime loadable module implements a way of defining
@@ -185,9 +190,9 @@
\def\dodimensionpower#1%
{\iftextdimensions\expandafter\high\else\expandafter^\fi{#1}}
-\def\ustartmathmode {\iftextdimensions\else\startmathmode \fi}
-\def\ustopmathmode {\iftextdimensions\else\stopmathmode \fi}
-\def\umathematicstypeface{\iftextdimensions\else\mathematicstypeface\fi}
+\def\ustartmathmode {\iftextdimensions\else\expandafter\startmathmode \fi}
+\def\ustopmathmode {\iftextdimensions\else\expandafter\stopmathmode \fi}
+\def\umathematicstypeface{\iftextdimensions\else\expandafter\mathematicstypeface\fi}
%D In forced text mode, we ignore spacing in monospaced fonts.
@@ -197,8 +202,8 @@
\def\dodimensionspace
{\iftextdimensions
\begingroup
- \setbox0=\hbox{i}%
- \setbox2=\hbox{m}%
+ \setbox0\hbox{i}%
+ \setbox2\hbox{m}%
\ifdim\wd0=\wd2
\endgroup
\@EAEAEA\gobbleoneargument
@@ -217,7 +222,7 @@
\let\dimensionsuffix\dimension
\let\dimensionpower \dimension
\global\nesteddimensionfalse
- \setbox0=\hbox{\ustartmathmode#1\ustopmathmode}%
+ \setbox\scratchbox\hbox{\ustartmathmode#1\ustopmathmode}% pre-roll
\global\let\thedimensionprefix\savedthedimensionprefix
\global\let\thedimensionpower \savedthedimensionpower
\endgroup
@@ -233,8 +238,13 @@
\ustartmathmode\dimensiontypeface
\else
\ustartmathmode\dimensiontypeface
- \ifdim\scratchdimen=\dimensionsignal\relax
- \ifspaceddimensions\udimensionhalfspace\fi
+ \ifspaceddimensions
+ \ifdim\scratchdimen=\dimensionsignal\relax
+ \udimensionhalfspace
+\else\ifdim\scratchdimen=\dimensionpowersignal\relax
+ \udimensionhalfspace
+\fi
+ \fi
\fi
\fi
\umathematicstypeface\thedimensionprefix#1%
@@ -263,6 +273,7 @@
\global\let\thedimensionprefix\empty
\global\let\thedimensionpower\empty}
+
%D \macros
%D {dontbreakdimension,
%D dimensionprefix, dimensionaddfix,
@@ -271,8 +282,8 @@
%D
%D Here are some auxilliary macros.
-\def\dontbreakdimension%
- {\scratchdimen=\lastskip
+\def\dontbreakdimension
+ {\scratchdimen\lastskip
\unskip
\nobreak
\hskip\scratchdimen
@@ -641,7 +652,7 @@
\setuplabeltext
[\s!en]
[u:vac=alternating current,
- u:vdc=different current]
+ u:vdc=direct current]
\setuplabeltext
[\s!de]
diff --git a/Master/texmf-dist/tex/context/base/m-visual.tex b/Master/texmf-dist/tex/context/base/m-visual.tex
index 8e992b8557e..5ff273f5c3a 100644
--- a/Master/texmf-dist/tex/context/base/m-visual.tex
+++ b/Master/texmf-dist/tex/context/base/m-visual.tex
@@ -17,6 +17,27 @@
%D needed them for manuals and styles. The macros are documented
%D in a my way document.
+%D For Mojca:
+%D
+%D \starttyping
+%D \def\simplethesis
+%D {\setupsystem[random=1234]
+%D \title{\fakewords{3}{4}}
+%D \placelist[chapter,section]
+%D \dorecurse{6}
+%D {\chapter{\fakewords{5}{10}}
+%D \dorecurse{5}
+%D {\section{\fakewords{2}{5}}
+%D \dorecurse{2}
+%D {\dorecurse{3}{\fakewords{100}{200}\endgraf}
+%D \placefigure{\fakewords{8}{15}}{\fakefigure{5cm}{3cm}{10cm}{5cm}}
+%D \dorecurse{2}{\fakewords{100}{200}\endgraf}}}}}
+%D
+%D \starttext
+%D \simplethesis
+%D \stoptext
+%D \stoptyping
+
\definecolor[fakerulecolor] [black]
\definecolor[fakebaselinecolor] [green]
\definecolor[fakeparindentcolor][blue]
diff --git a/Master/texmf-dist/tex/context/base/math-cow.tex b/Master/texmf-dist/tex/context/base/math-cow.tex
new file mode 100644
index 00000000000..016221f2da2
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/math-cow.tex
@@ -0,0 +1,30 @@
+%D \module
+%D [ file=math-cow,
+%D version=2006.06.23,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Cow Math,
+%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.
+
+\unprotect
+
+\let\COWsqrt\mthsqrt
+\let\COWfrac\mthfrac
+
+\startmathcollection [cow]
+ % todo
+\stopmathcollection
+
+\startrawmathcollection[cow]
+ \definemathcommand [frac] {\COWfrac}
+ \definemathcommand [sqrt] {\COWsqrt}
+ %definemathcommand [r@@t] {\COWroot}
+ %definemathcommand [matrix] {\COWmatrix}
+\stoprawmathcollection
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/math-eul.tex b/Master/texmf-dist/tex/context/base/math-eul.tex
index 230f7ae119e..6acc33356ca 100644
--- a/Master/texmf-dist/tex/context/base/math-eul.tex
+++ b/Master/texmf-dist/tex/context/base/math-eul.tex
@@ -89,59 +89,59 @@
\startmathcollection [eul]
% Ugh. no way around this to keep it compact in the font defs.
-\definemathcharacter [a] [nothing] [mr] ["61]
-\definemathcharacter [b] [nothing] [mr] ["62]
-\definemathcharacter [c] [nothing] [mr] ["63]
-\definemathcharacter [d] [nothing] [mr] ["64]
-\definemathcharacter [e] [nothing] [mr] ["65]
-\definemathcharacter [f] [nothing] [mr] ["66]
-\definemathcharacter [g] [nothing] [mr] ["67]
-\definemathcharacter [h] [nothing] [mr] ["68]
-\definemathcharacter [i] [nothing] [mr] ["69]
-\definemathcharacter [j] [nothing] [mr] ["6A]
-\definemathcharacter [k] [nothing] [mr] ["6B]
-\definemathcharacter [l] [nothing] [mr] ["6C]
-\definemathcharacter [m] [nothing] [mr] ["6D]
-\definemathcharacter [n] [nothing] [mr] ["6E]
-\definemathcharacter [o] [nothing] [mr] ["6F]
-\definemathcharacter [p] [nothing] [mr] ["70]
-\definemathcharacter [q] [nothing] [mr] ["71]
-\definemathcharacter [r] [nothing] [mr] ["72]
-\definemathcharacter [s] [nothing] [mr] ["73]
-\definemathcharacter [t] [nothing] [mr] ["74]
-\definemathcharacter [u] [nothing] [mr] ["75]
-\definemathcharacter [v] [nothing] [mr] ["76]
-\definemathcharacter [w] [nothing] [mr] ["77]
-\definemathcharacter [x] [nothing] [mr] ["78]
-\definemathcharacter [y] [nothing] [mr] ["79]
-\definemathcharacter [z] [nothing] [mr] ["7A]
-
-\definemathcharacter [A] [nothing] [mr] ["41]
-\definemathcharacter [B] [nothing] [mr] ["42]
-\definemathcharacter [C] [nothing] [mr] ["43]
-\definemathcharacter [D] [nothing] [mr] ["45]
-\definemathcharacter [E] [nothing] [mr] ["45]
-\definemathcharacter [F] [nothing] [mr] ["46]
-\definemathcharacter [G] [nothing] [mr] ["47]
-\definemathcharacter [H] [nothing] [mr] ["48]
-\definemathcharacter [I] [nothing] [mr] ["49]
-\definemathcharacter [J] [nothing] [mr] ["4A]
-\definemathcharacter [K] [nothing] [mr] ["4B]
-\definemathcharacter [L] [nothing] [mr] ["4C]
-\definemathcharacter [M] [nothing] [mr] ["4D]
-\definemathcharacter [N] [nothing] [mr] ["4E]
-\definemathcharacter [O] [nothing] [mr] ["4F]
-\definemathcharacter [P] [nothing] [mr] ["50]
-\definemathcharacter [Q] [nothing] [mr] ["51]
-\definemathcharacter [R] [nothing] [mr] ["52]
-\definemathcharacter [S] [nothing] [mr] ["53]
-\definemathcharacter [T] [nothing] [mr] ["54]
-\definemathcharacter [U] [nothing] [mr] ["55]
-\definemathcharacter [V] [nothing] [mr] ["56]
-\definemathcharacter [W] [nothing] [mr] ["57]
-\definemathcharacter [X] [nothing] [mr] ["58]
-\definemathcharacter [Y] [nothing] [mr] ["59]
-\definemathcharacter [Z] [nothing] [mr] ["5A]
+\definemathcharacter [a] [alpha] [mr] ["61]
+\definemathcharacter [b] [alpha] [mr] ["62]
+\definemathcharacter [c] [alpha] [mr] ["63]
+\definemathcharacter [d] [alpha] [mr] ["64]
+\definemathcharacter [e] [alpha] [mr] ["65]
+\definemathcharacter [f] [alpha] [mr] ["66]
+\definemathcharacter [g] [alpha] [mr] ["67]
+\definemathcharacter [h] [alpha] [mr] ["68]
+\definemathcharacter [i] [alpha] [mr] ["69]
+\definemathcharacter [j] [alpha] [mr] ["6A]
+\definemathcharacter [k] [alpha] [mr] ["6B]
+\definemathcharacter [l] [alpha] [mr] ["6C]
+\definemathcharacter [m] [alpha] [mr] ["6D]
+\definemathcharacter [n] [alpha] [mr] ["6E]
+\definemathcharacter [o] [alpha] [mr] ["6F]
+\definemathcharacter [p] [alpha] [mr] ["70]
+\definemathcharacter [q] [alpha] [mr] ["71]
+\definemathcharacter [r] [alpha] [mr] ["72]
+\definemathcharacter [s] [alpha] [mr] ["73]
+\definemathcharacter [t] [alpha] [mr] ["74]
+\definemathcharacter [u] [alpha] [mr] ["75]
+\definemathcharacter [v] [alpha] [mr] ["76]
+\definemathcharacter [w] [alpha] [mr] ["77]
+\definemathcharacter [x] [alpha] [mr] ["78]
+\definemathcharacter [y] [alpha] [mr] ["79]
+\definemathcharacter [z] [alpha] [mr] ["7A]
+
+\definemathcharacter [A] [alpha] [mr] ["41]
+\definemathcharacter [B] [alpha] [mr] ["42]
+\definemathcharacter [C] [alpha] [mr] ["43]
+\definemathcharacter [D] [alpha] [mr] ["44]
+\definemathcharacter [E] [alpha] [mr] ["45]
+\definemathcharacter [F] [alpha] [mr] ["46]
+\definemathcharacter [G] [alpha] [mr] ["47]
+\definemathcharacter [H] [alpha] [mr] ["48]
+\definemathcharacter [I] [alpha] [mr] ["49]
+\definemathcharacter [J] [alpha] [mr] ["4A]
+\definemathcharacter [K] [alpha] [mr] ["4B]
+\definemathcharacter [L] [alpha] [mr] ["4C]
+\definemathcharacter [M] [alpha] [mr] ["4D]
+\definemathcharacter [N] [alpha] [mr] ["4E]
+\definemathcharacter [O] [alpha] [mr] ["4F]
+\definemathcharacter [P] [alpha] [mr] ["50]
+\definemathcharacter [Q] [alpha] [mr] ["51]
+\definemathcharacter [R] [alpha] [mr] ["52]
+\definemathcharacter [S] [alpha] [mr] ["53]
+\definemathcharacter [T] [alpha] [mr] ["54]
+\definemathcharacter [U] [alpha] [mr] ["55]
+\definemathcharacter [V] [alpha] [mr] ["56]
+\definemathcharacter [W] [alpha] [mr] ["57]
+\definemathcharacter [X] [alpha] [mr] ["58]
+\definemathcharacter [Y] [alpha] [mr] ["59]
+\definemathcharacter [Z] [alpha] [mr] ["5A]
\stopmathcollection
diff --git a/Master/texmf-dist/tex/context/base/math-ext.tex b/Master/texmf-dist/tex/context/base/math-ext.tex
new file mode 100644
index 00000000000..9f74ce4a9d9
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/math-ext.tex
@@ -0,0 +1,229 @@
+%D \module
+%D [ file=math-ext,
+%D version=2006.01.14,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Extra Macros,
+%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.
+
+\unprotect
+
+%D These will be generalized!
+
+\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
+
+\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}%
+ \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}%
+ \mathrel{\mathop{\hbox to \dimen0{\hss\copy4\hss}}\limits^{\box0}_{\box2}}
+ \endgroup}
+
+\let\domthxarrsingle\domthxarr
+
+\def\domthxarrdouble#1#2#3#4#5#6#7% opt l r sp rs top bot
+ {\mathrel
+ {\scratchdimen.22ex\relax
+ \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}}
+
+\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\dotripleempty
+ \def\dotripleempty##1[##2][##3]{\setvalue{#1}{\dotripleempty\xmtharrow[#2][##3]}}%
+ \getvalue{#1}%
+ \popmacro\dotripleempty}}
+
+\def\dodefinebotharrow#1#2#3%
+ {\setvalue{#1}{\dotripleempty\xmtharrow[#2][#3]}}
+
+\def\xmtharrow[#1][#2][#3]% #3 == optional arg
+ {\def\doxmtharrow{\dodoxmtharrow[#1,\empty,\empty][#2,\empty,\empty][#3]}% {##1}{##2}
+ \dodoublegroupempty\doxmtharrow}
+
+\def\dodoxmtharrow[#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.
+
+\def\mtharrowfill#1#2#3#4#5#6#7%
+ {$\mathsurround 0pt
+ \thickmuskip0mu\medmuskip\thickmuskip\thinmuskip\thickmuskip
+ \relax#5%
+ \mkern-#1mu
+ \cleaders\hbox{$\mkern -#2mu#6\mkern -#3mu$}\hfill
+ \mkern-#4mu#7$}
+
+\def\defaultmtharrowfill{\mtharrowfill 7227}
+
+% Maybe redefine leftarrowfill and rightarrowfill using arrowfill
+
+\def\rightarrowfill {\defaultmtharrowfill \relbar \relbar \rightarrow }
+\def\leftarrowfill {\defaultmtharrowfill \leftarrow \relbar \relbar }
+\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}
+
+% From amsmath.sty, extarrows.sty, extpfel.sty and mathtools.sty(ams)
+
+\definematharrow [xrightarrow] [0359] [\rightarrowfill]
+\definematharrow [xleftarrow] [3095] [\leftarrowfill]
+\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 [xleftrightharpoons] [3399,3399] [\leftharpoonupfill,\rightharpoondownfill]
+\definematharrow [xrightleftharpoons] [3399,3399] [\rightharpoonupfill,\leftharpoondownfill]
+
+\definematharrow [xhdefaultookleftarrow] [3095] [\hookleftfill]
+\definematharrow [xhdefaultookrightarrow] [0395] [\hookrightfill]
+
+% \startformula \xrightarrow{stuff on top}\stopformula
+% \startformula \xrightarrow{}{stuff on top}\stopformula
+% \startformula \xrightarrow{stuff below}{}\stopformula
+% \startformula \xrightarrow{stuff below}{stuff on top}\stopformula
+
+% \startformula \xleftarrow [none]{stuff below}{stuff on top}\stopformula
+% \startformula \xleftarrow [small]{stuff below}{stuff on top}\stopformula
+% \startformula \xleftarrow [medium]{stuff below}{stuff on top}\stopformula
+% \startformula \xleftarrow [big]{stuff below}{stuff on top}\stopformula
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/math-ini.tex b/Master/texmf-dist/tex/context/base/math-ini.tex
index d78a9e4fcbb..7f50749470d 100644
--- a/Master/texmf-dist/tex/context/base/math-ini.tex
+++ b/Master/texmf-dist/tex/context/base/math-ini.tex
@@ -328,8 +328,42 @@
\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]%
- {\setmathtoks
+ {\ifcase\mathcharactermode
+ \setmathtoks
+ \or
+ \let\mathtoks\mathscratchtoks \mathtoks\emptytoks
+ \fi
\ifdynamicmathfamilies \let\purefamilyhex\relax \fi
\doifnumberelse{#1}
{\scratchcounter#1}
@@ -344,9 +378,16 @@
\mathcode\the\scratchcounter="%
\ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
\purefamilyhex{#3}\uchexnumbers{#4}\space
- \fi\fi\to\mathtoks
+ \fi\fi
+ \to \mathtoks
\let\purefamilyhex\normalpurefamilyhex
- \tracemathcharacter{#1}}
+ \ifcase\mathcharactermode
+ \expandafter\tracemathcharacter
+ \or
+ \the\mathtoks
+ \mathtoks\emptytoks
+ \expandafter\gobbleoneargument
+ \fi{#1}} % maybe lookahead
\def\tracemathcharacter#1%
{\iftracemathcollection
@@ -461,25 +502,52 @@
%D {ifmathpunctuation, enablemathpunctuation,
%D definemathpunctuation}
%D
+%D This will replace periods by comma's:
+%D
%D \starttyping
-%D \definemathpunctuation . mathperiod textperiod
-%D \definemathpunctuation , mathcomma textcomma
+%D \definemathpunctuation . textcomma textperiod
+%D \definemathpunctuation , textcomma textcomma
+%D
+%D \appendtoks
+%D \redefinemathcharacter [.] [ord] [mi] ["3B]%
+%D \to \everymathpunctuation
%D \stoptyping
-\newif\ifmathpunctuation
+% \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 thsi 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{\mathpunctuationtrue}
+\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\everymath}
+ \to\everymathpunctuation}
\def\initializemathpunctuation#1#2#3% sloowww
- {\ifmathpunctuation
- \mathcode`#1="8000
- \defineactivecharacter #1 {\dohandlemathpunctuation{#2}{#3}}%
- \fi}
+ {\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}%
@@ -500,13 +568,42 @@
%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\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
diff --git a/Master/texmf-dist/tex/context/base/math-mis.tex b/Master/texmf-dist/tex/context/base/math-mis.tex
new file mode 100644
index 00000000000..b5a605cea53
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/math-mis.tex
@@ -0,0 +1,49 @@
+%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\geneq b^{a\geneq b^{a\geneq b}}$
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/math-pln.tex b/Master/texmf-dist/tex/context/base/math-pln.tex
index 73c12c973da..b8148491f1f 100644
--- a/Master/texmf-dist/tex/context/base/math-pln.tex
+++ b/Master/texmf-dist/tex/context/base/math-pln.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=math-pln,
-%D version=2001.11.16,
+%D version=2001.11.16,
%D title=\CONTEXT\ System Macros,
%D subtitle=Efficient \PLAIN\ \TEX\ loading,
%D author=Hans Hagen,
@@ -8,17 +8,17 @@
%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 is a temporary module, some of this code will move to
-%D the other math modules.
+%D This is a temporary module, some of this code will move to
+%D the other math modules.
-\unprotect
+\unprotect
\def\m@th{\mathsurround\z@}
-\newbox\rootbox
+\newbox\rootbox
\def\root#1\of%
{\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$}%
@@ -27,7 +27,7 @@
\def\r@@t#1#2% will be overloaded
{\setbox\z@\hbox{$\m@th#1\sqrt{#2}$}\dimen@\ht\z@
\advance\dimen@-\dp\z@
- \mkern5mu\raise.6\dimen@\copy\rootbox
+ \mkern5mu\raise.6\dimen@\copy\rootbox
\mkern-10mu\box\z@}
\def\mathhexbox#1#2#3%
@@ -38,13 +38,13 @@
{\leavevmode
\vtop
{\baselineskip\z@skip \lineskip.25ex%
- \ialign{##\crcr#1\crcr}}}
+ \ialign{##\crcr#1\crcr}}}
\def\o@lign
{\lineskiplimit\z@ \oalign}
\def\ooalign % chars over each other
- {\lineskiplimit-\maxdimen
+ {\lineskiplimit-\maxdimen
\oalign}
{\catcode`p=12 \catcode`t=12 \gdef\\#1pt{#1}} \let\getf@ctor=\\
@@ -52,9 +52,9 @@
\def\sh@ft#1% kern by #1 times the current slant
{\dimen@#1%
\kern\expandafter\getf@ctor\the\fontdimen1\font
- \dimen@}
+ \dimen@}
-% \def\copyright % will be overloaded
+% \def\copyright % will be overloaded
% {{\ooalign{\hfil\raise.07ex\hbox{c}\hfil\crcr\Orb}}}
\def\dots
@@ -76,11 +76,11 @@
\cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill
\mkern-7mu\smash-$}
-% must go to math-tex
+% must go to math-tex
-\mathchardef\braceld="37A
+\mathchardef\braceld="37A
\mathchardef\bracerd="37B
-\mathchardef\bracelu="37C
+\mathchardef\bracelu="37C
\mathchardef\braceru="37D
\def\downbracefill
@@ -95,7 +95,7 @@
\def\bye{\par\vfill\supereject\end}
-\let\sp=^
+\let\sp=^
\let\sb=_
\def\,{\mskip\thinmuskip}
\def\>{\mskip\medmuskip}
@@ -110,14 +110,14 @@
% \def\pr@m@s
% {\ifx'\next
-% \let\nxt\pr@@@s
+% \let\nxt\pr@@@s
% \else
% \ifx^\next
% \let\nxt\pr@@@t
% \else
% \let\nxt\egroup
% \fi
-% \fi
+% \fi
% \nxt}
\def\pr@m@s
@@ -130,7 +130,7 @@
\fi\fi}
\def\pr@@@s#1%
- {\prim@s}
+ {\prim@s}
\def\pr@@@t#1#2%
{#2\egroup}
@@ -258,7 +258,7 @@
% \setbox0=\hbox{\tenex B} \p@renwd=\wd0 % width of the big left (
\def\bordermatrix#1%
- {\begingroup
+ {\begingroup
\m@th
\setbox\z@\vbox
{\def\cr{\crcr\noalign{\kern2\p@\global\let\cr\endline}}%
@@ -279,18 +279,30 @@
\vbox{\kern\ht\@ne\box\tw@}%
\endgroup}
-\def\openup{\afterassignment\@penup\dimen@=}
+% \def\openup{\afterassignment\@penup\dimen@=}
+%
+% \def\@penup{\advance\lineskip\dimen@
+% \advance\baselineskip\dimen@
+% \advance\lineskiplimit\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
- \jot\m@th
+ {\openup\displayopenupvalue % was \openup\jot
+ \m@th
\ialign
{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil\crcr
#1\crcr}}%
@@ -300,32 +312,32 @@
\def\displ@y
{\global\dt@ptrue
- \openup\jot\m@th
+ \openup\displayopenupvalue % was \openup\jot
\everycr
{\noalign
- {\ifdt@p
- \global\dt@pfalse
+ {\ifdt@p
+ \global\dt@pfalse
\ifdim\prevdepth>-1000\p@
- \vskip-\lineskiplimit
- \vskip\normallineskiplimit
+ \vskip-\lineskiplimit
+ \vskip\normallineskiplimit
\fi
- \else
- \penalty\interdisplaylinepenalty
+ \else
+ \penalty\interdisplaylinepenalty
\fi}}}
\def\@lign % restore inside \displ@y
{\tabskip\z@skip
- \everycr{}}
+ \everycr{}}
\def\displaylines#1%
- {\displ@y
+ {\displ@y
\tabskip\z@skip
\halign
{\hbox to \displaywidth{$\@lign\hfil\displaystyle##\hfil$}\crcr
#1\crcr}}
\def\eqalignno#1%
- {\displ@y
+ {\displ@y
\tabskip\centering
\halign to \displaywidth
{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip
@@ -334,7 +346,7 @@
#1\crcr}}
\def\leqalignno#1%
- {\displ@y
+ {\displ@y
\tabskip\centering
\halign to \displaywidth
{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip
diff --git a/Master/texmf-dist/tex/context/base/math-tex.tex b/Master/texmf-dist/tex/context/base/math-tex.tex
index 8b547d00016..d2516bc62c6 100644
--- a/Master/texmf-dist/tex/context/base/math-tex.tex
+++ b/Master/texmf-dist/tex/context/base/math-tex.tex
@@ -466,7 +466,7 @@
\def\notsosqrt[#1]{\root#1\of}
-\def\sqrt{\doifnextcharelse[\notsosqrt\normalsqrt}
+\unexpanded\def\sqrt{\doifnextcharelse[\notsosqrt\normalsqrt}
\def\PLAINbig {\@@dobig{0.85}}
\def\PLAINBig {\@@dobig{1.15}}
diff --git a/Master/texmf-dist/tex/context/base/math-uni.tex b/Master/texmf-dist/tex/context/base/math-uni.tex
index 88698243fc3..e8fd3f05def 100644
--- a/Master/texmf-dist/tex/context/base/math-uni.tex
+++ b/Master/texmf-dist/tex/context/base/math-uni.tex
@@ -3,21 +3,180 @@
%D version=2005.06.11,
%D title=\CONTEXT\ Math Macros,
%D subtitle=unicode support,
-%D author=Nikolai Weibull,
+%D author={Nikolai Weibull \& Taco Hoekwater},
%D date=\currentdate,
-%D copyright={PRAGMA / Nikolai Weibull}]
+%D copyright=PRAGMA]
\unprotect
-% needed for unic-033
+% needed for unic-032 % TH
\startmathcollection[default]
- \definemathcommand [unic@leftarrowtobar] {\mapstochar\leftarrow}
+ \definemathcommand [unic@doubleverticalline] {\mathord{\parallel}}
+ \definemathcommand [unic@doublelowline] {\underline{\textunderscore}}
+
+ \definemathcommand [unic@doubleprime] {''}
+ \definemathcommand [unic@tripleprime] {'''}
+
+ \definemathcommand [unic@reverseddoubleprime] {\mathord{\backprime\backprime}}
+ \definemathcommand [unic@reversedtripleprime] {\mathord{\backprime\backprime\backprime}}
+
+ \definemathcommand [unic@fractionslash] {\vulgarfraction{}{}}
+ \definemathcommand [unic@lowasterisk] {\mathord{\lower-.2em\hbox{$\ast$}}}
+
+ \definemathcommand [unic@functionapplication] {\mathop{}}
+ \definemathcommand [unic@invisibletimes] {\mathbin{}}
+ \definemathcommand [unic@invisibleseparator] {\mathpunct{}}
+
+\stopmathcollection
+
+% needed for unic-033 % TH
+
+\def\unic@vulgarfraction#1#2%
+ {\hbox
+ {\high{{\tfx\it #1}\kern -.2em}%
+ \symbol[vulgarfraction]%
+ \kern -.2em\low{{\tfx\it #2}}}}
+
+\startmathcollection[default]
+
+ \definemathcommand [unic@accountof] {\unic@vulgarfraction{a}{c}}
+ \definemathcommand [unic@addressedtothesubject] {\unic@vulgarfraction{a}{s}}
+ \definemathcommand [unic@doublestruckC] {{\Bbb C}}
+ \definemathcommand [unic@degreecelsius] {{\textdegree \tf C}}
+ \definemathcommand [unic@centrelinesymbol] {\unknownchar}
+ \definemathcommand [unic@careof] {\unic@vulgarfraction{c}{o}}
+ \definemathcommand [unic@cadauna] {\unic@vulgarfraction{c}{u}}
+ \definemathcommand [unic@eulerconstant] {{\rm e}}
+ \definemathcommand [unic@scruple] {\unknownchar}
+ \definemathcommand [unic@degreefahrenheit] {{\textdegree \tf F}}
+ \definemathcommand [unic@scriptg] {\unknownchar}
+ \definemathcommand [unic@scriptH] {{\cal H}}
+ \definemathcommand [unic@blackletterH] {{\fraktur H}}
+ \definemathcommand [unic@doublestruckH] {{\Bbb H}}
+ \definemathcommand [unic@planckconstant] {h}
+ \definemathcommand [unic@planckconstantovertwopi] {\hslash}
+ \definemathcommand [unic@scriptI] {{\cal I}}
+ \definemathcommand [unic@blackletterI] {{\fraktur I}}
+ \definemathcommand [unic@scriptL] {{\cal L}}
+ \definemathcommand [unic@scriptl] {\ell}
+ \definemathcommand [unic@lbbarsymbol] {\unknownchar}
+ \definemathcommand [unic@doublestruckN] {{\Bbb N}}
+ \definemathcommand [unic@numerosign] {\hbox{\symbol[numero]}}
+ \definemathcommand [unic@soundrecordingcopyright] {\encircled{{\tfx P}}}
+ \definemathcommand [unic@scriptP] {{\cal P}}
+ \definemathcommand [unic@doublestruckP] {{\Bbb P}}
+ \definemathcommand [unic@doublestruckQ] {{\Bbb Q}}
+ \definemathcommand [unic@scriptR] {{\cal R}}
+ \definemathcommand [unic@blackletterR] {{\fraktur R}}
+ \definemathcommand [unic@doublestruckR] {{\Bbb R}}
+ \definemathcommand [unic@prescriptiontake] {\unknownchar}
+ \definemathcommand [unic@response] {\unknownchar}
+ \definemathcommand [unic@servicemark] {\high{\txx SM}}
+ \definemathcommand [unic@telephonesign] {\high{\txx TEL}}
+ \definemathcommand [unic@trademarksign] {\trademark}
+ \definemathcommand [unic@versickle] {\unknownchar}
+ \definemathcommand [unic@doublestruckZ] {{\Bbb Z}}
+ \definemathcommand [unic@ouncesign] {\unknownchar}
+ \definemathcommand [unic@ohmsign] {\Omega}
+ \definemathcommand [unic@invertedohmsign] {\rotate[\c!rotation=180]{\Omega}}
+ \definemathcommand [unic@blackletterZ] {{\fraktur Z}}
+ \definemathcommand [unic@turnedgreekletteriota] {\rotate[\c!rotation=180]{\iota}}
+ \definemathcommand [unic@kelvinsign] {{\tf K}}
+ \definemathcommand [unic@angstromsign] {\Angstrom}
+ \definemathcommand [unic@scriptB] {{\cal B}}
+ \definemathcommand [unic@blackletterC] {{\fraktur C}}
+ \definemathcommand [unic@estimatedsymbol] {\unknownchar}
+ \definemathcommand [unic@scripte] {\unknownchar}
+ \definemathcommand [unic@scriptE] {{\cal E}}
+ \definemathcommand [unic@scriptF] {{\cal F}}
+ \definemathcommand [unic@turnedF] {\rotate[\c!rotation=180]{{\tf F}}}
+ \definemathcommand [unic@scriptM] {{\cal M}}
+ \definemathcommand [unic@scripto] {\unknownchar}
+
+ \definemathcommand [unic@informationsource] {{\bf i}}
+ \definemathcommand [unic@rotatedQ] {\rotate[\c!rotation=90]{{\tf Q}}}
+ \definemathcommand [unic@facsimilesign] {\unknownchar}
+ \definemathcommand [unic@doublestruckpi] {\pi}%{\unknownchar}
+ \definemathcommand [unic@doublestruckgamma] {\gamma}%{\unknownchar}
+ \definemathcommand [unic@doublestruckGamma] {\Gamma}%{\unknownchar}
+ \definemathcommand [unic@doublestruckPi] {\Pi}%{\unknownchar}
+ \definemathcommand [unic@doublestrucknarysummation] {\unknownchar}
+ \definemathcommand [unic@turnedsansserifG] {\rotate[\c!rotation=180]{{\ss G}}}
+ \definemathcommand [unic@turnedsansserifL] {\rotate[\c!rotation=180]{{\ss L}}}
+ \definemathcommand [unic@reversedsansserifL] {\mirror{{\ss L}}}
+ \definemathcommand [unic@turnedsansserifY] {\rotate[\c!rotation=180]{{\ss Y}}}
+ \definemathcommand [unic@doublestruckitalicD] {D}%{\unknownchar}
+ \definemathcommand [unic@doublestruckitalicd] {d}%{\unknownchar}
+ \definemathcommand [unic@doublestruckitalice] {e}%{\unknownchar}
+ \definemathcommand [unic@doublestruckitalici] {i}%{\unknownchar}
+ \definemathcommand [unic@doublestruckitalicj] {j}%{\unknownchar}
+ \definemathcommand [unic@propertyline] {\unknownchar}
+ \definemathcommand [unic@turnedampersand] {\rotate[\c!rotation=180]{\&}}
+ \definemathcommand [unic@persign] {\unknownchar}
+
+ \definemathcommand [unic@fractiononethird] {\vulgarfraction{1}{3}}
+ \definemathcommand [unic@fractiontwothirds] {\vulgarfraction{2}{3}}
+ \definemathcommand [unic@fractiononefifth] {\vulgarfraction{1}{5}}
+ \definemathcommand [unic@fractiontwofifths] {\vulgarfraction{2}{5}}
+ \definemathcommand [unic@fractionthreefifths] {\vulgarfraction{3}{5}}
+ \definemathcommand [unic@fractionfourfifths] {\vulgarfraction{4}{5}}
+ \definemathcommand [unic@fractiononesixth] {\vulgarfraction{1}{6}}
+ \definemathcommand [unic@fractionfivesixths] {\vulgarfraction{5}{6}}
+ \definemathcommand [unic@fractiononeeighth] {\vulgarfraction{1}{8}}
+ \definemathcommand [unic@fractionthreeeighths] {\vulgarfraction{3}{8}}
+ \definemathcommand [unic@fractionfiveeighths] {\vulgarfraction{5}{8}}
+ \definemathcommand [unic@fractionseveneighths] {\vulgarfraction{7}{8}}
+ \definemathcommand [unic@fractionnumeratorone] {\vulgarfraction{1}{}}
+ \definemathcommand [unic@romannumeralOne] {{\tf I}}
+ \definemathcommand [unic@romannumeralTwo] {{\tf II}}
+ \definemathcommand [unic@romannumeralThree] {{\tf III}}
+ \definemathcommand [unic@romannumeralFour] {{\tf IV}}
+ \definemathcommand [unic@romannumeralFive] {{\tf V}}
+ \definemathcommand [unic@romannumeralSix] {{\tf VI}}
+ \definemathcommand [unic@romannumeralSeven] {{\tf VII}}
+ \definemathcommand [unic@romannumeralEight] {{\tf VIII}}
+ \definemathcommand [unic@romannumeralNine] {{\tf IX}}
+ \definemathcommand [unic@romannumeralTen] {{\tf X}}
+ \definemathcommand [unic@romannumeralEleven] {{\tf XI}}
+ \definemathcommand [unic@romannumeralTwelve] {{\tf XII}}
+ \definemathcommand [unic@romannumeralFifty] {{\tf L}}
+ \definemathcommand [unic@romannumeralOnehundred] {{\tf C}}
+ \definemathcommand [unic@romannumeralFivehundred] {{\tf D}}
+ \definemathcommand [unic@romannumeralOnethousand] {{\tf M}}
+ \definemathcommand [unic@romannumeralone] {{\tf i}}
+ \definemathcommand [unic@romannumeraltwo] {{\tf ii}}
+ \definemathcommand [unic@romannumeralthree] {{\tf iii}}
+ \definemathcommand [unic@romannumeralfour] {{\tf iv}}
+ \definemathcommand [unic@romannumeralfive] {{\tf v}}
+ \definemathcommand [unic@romannumeralsix] {{\tf vi}}
+ \definemathcommand [unic@romannumeralseven] {{\tf vii}}
+ \definemathcommand [unic@romannumeraleight] {{\tf viii}}
+ \definemathcommand [unic@romannumeralnine] {{\tf ix}}
+ \definemathcommand [unic@romannumeralten] {{\tf x}}
+ \definemathcommand [unic@romannumeraleleven] {{\tf xi}}
+ \definemathcommand [unic@romannumeraltwelve] {{\tf xii}}
+ \definemathcommand [unic@romannumeralfifty] {{\tf l}}
+ \definemathcommand [unic@romannumeralonehundred] {{\tf c}}
+ \definemathcommand [unic@romannumeralfivehundred] {{\tf d}}
+ \definemathcommand [unic@romannumeralonethousand] {{\tf m}}
+ \definemathcommand [unic@romannumeralonethousandCD] {\unknownchar}
+ \definemathcommand [unic@romannumeralfivethousand] {\unknownchar}
+ \definemathcommand [unic@romannumeraltenthousand] {\unknownchar}
+ \definemathcommand [unic@romannumeralreversedonehundred] {\mirror{C}}
+
+\stopmathcollection
+
+% needed for unic-033 % NW
+
+\startmathcollection[default]
+
+ \definemathcommand [unic@leftarrowtobar] {\mapstochar\leftarrow}
\stopmathcollection
-% needed for unic-034
+% needed for unic-034 % NW
\startmathcollection[default]
@@ -64,7 +223,7 @@
\stopmathcollection
-% needed for unic-039
+% needed for unic-039 % NW
\startmathcollection[default]
diff --git a/Master/texmf-dist/tex/context/base/meta-dum.tex b/Master/texmf-dist/tex/context/base/meta-dum.tex
index 47c5504773c..10ce6d99a3f 100644
--- a/Master/texmf-dist/tex/context/base/meta-dum.tex
+++ b/Master/texmf-dist/tex/context/base/meta-dum.tex
@@ -82,14 +82,16 @@
\globallet\figurereplacementcycle\!!plusone
\fi
\weightGRAYfalse % monochrome anyway
+ \MPcmykcolorsfalse
+ \MPspotcolorsfalse
\defineoverlay
[\s!dummy]
[\useMPgraphic
- {placeholder}%
- {width=\figurewidth,
- height=\figureheight,
- reduction=\@@efreduction,
- color=placeholder:\figurereplacementcycle}]%
+ {placeholder}%
+ {width=\figurewidth,
+ height=\figureheight,
+ reduction=\@@efreduction,
+ color=placeholder:\figurereplacementcycle}]%
\expanded{\localframed
[\??ef]
[\c!width=\figurewidth,
diff --git a/Master/texmf-dist/tex/context/base/meta-fig.tex b/Master/texmf-dist/tex/context/base/meta-fig.tex
index 9a46b80d43a..6d4d304f9cd 100644
--- a/Master/texmf-dist/tex/context/base/meta-fig.tex
+++ b/Master/texmf-dist/tex/context/base/meta-fig.tex
@@ -49,11 +49,18 @@
\def\startMPpage
{\dodoubleempty\dostartMPpage}
-\long\def\dostartMPpage[#1][#2]#3\stopMPpage % second arg gobbles space
+\long\def\dostartMPpage[#1][#2]% second arg gobbles space
{\dostartfittingpage[\??mg][#1]%
- \startMPcode#3\stopMPcode
+ \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,
@@ -63,14 +70,14 @@
\c!height=\v!fit,
\c!frame=\v!off]
-%D \macros
+%D \macros
%D {MPfigure}
%D
-%D A bit out of place, here but nevertheless:
+%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
+ \getfiguredimensionsonly[#1]% [\c!object=\v!no] already set
\freezedimenmacro\naturalfigurewidth
\freezedimenmacro\naturalfigureheight
\startMPcode
diff --git a/Master/texmf-dist/tex/context/base/meta-ini.tex b/Master/texmf-dist/tex/context/base/meta-ini.tex
index d628e5e6c43..3353a9a0bd6 100644
--- a/Master/texmf-dist/tex/context/base/meta-ini.tex
+++ b/Master/texmf-dist/tex/context/base/meta-ini.tex
@@ -55,6 +55,11 @@
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
@@ -64,42 +69,46 @@
\maxnofMPgraphics = 4000 % metafun disables the 4K boundary
-\appendtoks
+\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;
-\to \MPextensions
+\stopMPextensions
%D Since we want lables to follow the document settings, we
%D also set the font related variables.
-\appendtoks % scale is not yet ok
+\startMPinitializations % scale is not yet ok
defaultfont:="\truefontname{Regular}";
defaultscale:=\the\bodyfontsize/10pt;
-\to \MPinitializations
+\stopMPinitializations
%D In order to support fancy text features (like outline
%D fonts), we set:
-\appendtoks
+\startMPextensions
graphictextformat:="context";
graphictextdirective "\the\everyMPTEXgraphic";
-\to \MPextensions
+\stopMPextensions
-% \appendtoks
+% \startMPextensions
% textextdirective "\the\everyMPTEXgraphic";
-% \to \MPextensions
+% \stopMPextensions
%D A signal that we're in combines \CONTEXT||\METAFUN mode:
-\appendtoks
+\startMPextensions
string contextversion;
contextversion:="\contextversion";
-\to \MPextensions
+\stopMPextensions
%D Some safeguards:
-
-\appendtoks \cleanupfeatures \to \everyMPgraphic
+%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:
@@ -244,11 +253,15 @@
\elabelgroup}
\long\def\startuniqueMPgraphic
- {\dodoublegroupempty\dostartuniqueMPgraphic}
-
-\long\def\dostartuniqueMPgraphic#1#2#3\stopuniqueMPgraphic%
{\blabelgroup
- \long\setgvalue{\@@MPG#1}{\handleuniqueMPgraphic{#1}{#2}{#3}}%
+ \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
@@ -259,6 +272,8 @@
\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
@@ -274,19 +289,27 @@
\elabelgroup}
\long\def\startuseMPgraphic
- {\dodoublegroupempty\dostartuseMPgraphic}
-
-\long\def\dostartuseMPgraphic#1#2#3\stopuseMPgraphic
{\blabelgroup
- \long\setgvalue{\@@MPG#1}{\handleuseMPgraphic{#1}{#2}{#3}}%
+ \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
- {\dodoublegroupempty\dostartusableMPgraphic}
-
-\long\def\dostartusableMPgraphic#1#2#3\stopusableMPgraphic
{\blabelgroup
- \long\setgvalue{\@@MPG#1}{\handleuseMPgraphic{#1}{#2}{#3}}%
+ \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%
@@ -305,16 +328,15 @@
\elabelgroup}
\long\def\startreusableMPgraphic
- {\dodoublegroupempty\dostartreusableMPgraphic}
+ {\blabelgroup
+ \dodoublegroupempty\dostartreusableMPgraphic}
-% \long\def\dostartreusableMPgraphic#1#2#3\stopreusableMPgraphic%
-% {\ifundefined{\@@MPG#1}%
-% \long\setgvalue{\@@MPG#1}{\handlereusableMPgraphic{#1}{#2}{#3}}%
-% \fi}
+\def\dostartreusableMPgraphic
+ {\obeyMPlines
+ \dodostartreusableMPgraphic}
-\long\def\dostartreusableMPgraphic#1#2#3\stopreusableMPgraphic
- {\blabelgroup
- \long\setgvalue{\@@MPG#1}{\handlereusableMPgraphic{#1}{#2}{#3}}%
+\long\def\dodostartreusableMPgraphic#1#2#3\stopreusableMPgraphic
+ {\long\setgvalue{\@@MPG#1}{\handlereusableMPgraphic{#1}{#2}{#3}}%
\elabelgroup}
\unexpanded\def\useMPgraphic
@@ -328,6 +350,11 @@
\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}
@@ -346,11 +373,15 @@
:\MPcolor\overlaycolor:\MPcolor\overlaylinecolor}
\long\def\startuniqueMPpagegraphic
- {\dodoublegroupempty\dostartuniqueMPpagegraphic}
-
-\long\def\dostartuniqueMPpagegraphic#1#2#3\stopuniqueMPpagegraphic
{\blabelgroup
- \long\setgvalue{\@@MPG o:#1}{\handleuniqueMPgraphic{o:#1}{#2}{#3}}%
+ \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}
@@ -450,13 +481,13 @@
%D We also have to make sure that \METAPOST\ knows this:
-\appendtoks
+\startMPextensions
if not known _data_prefix_:
string _data_prefix_,_data_suffix_;
fi;
_data_prefix_:="\bufferprefix mpd-";
_data_suffix_:=".mpd";
-\to \MPextensions
+\stopMPextensions
%D \macros
%D {getMPdata}
@@ -482,10 +513,10 @@
%D We have to enable this mechanism with:
-\appendtoks
+\startMPextensions
boolean collapse_data; collapse_data:=true;
_data_suffix_:=".mpd"; % overloads previous one
-\to \MPextensions
+\stopMPextensions
%D For the moment, the next one is a private macro:
@@ -497,6 +528,7 @@
{\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}%
@@ -544,7 +576,7 @@
\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}\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}
@@ -635,10 +667,9 @@
\def\douseMPlibrary#1%
{\ifundefined{\c!file\f!javascriptprefix#1}%
\letvalueempty{\c!file\f!javascriptprefix#1}%
- \makeshortfilename[\f!metapostprefix#1]
- \showmessage\m!metapost1{#1}
+ \makeshortfilename[\truefilename{\f!metapostprefix#1}]%
\startreadingfile
- \readsysfile\shortfilename\donothing\donothing
+ \readsysfile\shortfilename{\showmessage\m!metapost1{#1}}\donothing
\stopreadingfile
\fi}
@@ -668,9 +699,13 @@
\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{\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
@@ -679,21 +714,21 @@
\newif\ifMPcmykcolors \MPcmykcolorstrue
\newif\ifMPspotcolors \MPspotcolorstrue
-\appendtoks
+\startMPinitializations
cmykcolors:=\ifMPcmykcolors true\else false\fi;
spotcolors:=\ifMPspotcolors true\else false\fi;
-\to \MPinitializations
+\stopMPinitializations
%D In order to communicate conveniently with the \TEX\
%D engine, we introduce some typesetting variables.
% todo : backgroundoffsets
-\appendtoks
+\startMPextensions
color OverlayColor,OverlayLineColor;
-\to \MPextensions
+\stopMPextensions
-\appendtoks
+\startMPinitializations
OverlayWidth:=\overlaywidth;
OverlayHeight:=\overlayheight;
OverlayDepth:=\overlayheight;
@@ -718,7 +753,11 @@
PageNumber:=\the\pageno;
RealPageNumber:=\the\realpageno;
LastPageNumber:= lastpage;
-\to \MPinitializations
+\stopMPinitializations
+
+\appendtoks
+ \expanded{\definecolor[currentcolor][\currentcolor]}%
+\to \everyMPgraphic
\appendtoks
\baselineskip1\baselineskip
@@ -758,9 +797,9 @@
\ifx\undefined\MPprologues \def\MPprologues{0} \fi
-\appendtoks
+\startMPinitializations
prologues:=\MPprologues;
-\to \MPinitializations
+\stopMPinitializations
\appendtoks
\def\MPprologues{0}%
@@ -811,7 +850,10 @@
%D However, on a 1 Gig Pentium, the next alternative saves
%D us 20 seconds run time for the 300 page \METAFUN\ manual:
-\def\insertMPfile#1#2{\doinsertMPfile{#1}}
+\let\insertMPfileARG\insertMPfile
+
+\def\insertMPfile#1#2% in context #2 is empty
+ {\doifelsenothing{#2}{\doinsertMPfile{#1}}{\insertMPfileARG{#1}{#2}}}
\def\includeMPasEPS#1%
{\bgroup
@@ -853,25 +895,25 @@
%D One more: (still needed?)
-\appendtoks
+\startMPextensions
def initialize_form_numbers =
do_initialize_numbers;
enddef;
-\to \MPextensions
+\stopMPextensions
-\appendtoks
+\startMPinitializations
HSize:=\the\hsize ;
VSize:=\the\vsize ;
-\to \MPinitializations
+\stopMPinitializations
-\appendtoks
+\startMPextensions
vardef ForegroundBox =
unitsquare xysized(HSize,VSize)
enddef ;
vardef PageFraction =
if \lastpage>1: (\realfolio-1)/(\lastpage-1) else: 1 fi
enddef ;
-\to \MPextensions
+\stopMPextensions
%D And some more. These are not really needed since we
%D don't use the normal figure inclusion macros any longer.
@@ -927,7 +969,7 @@
%D New:
-\definelayerpreset
+\definelayerpreset % no dx,dy - else nasty non-mp placement
[mp]
[\c!y=-\MPury bp,
\c!x=\MPllx bp,
@@ -956,13 +998,106 @@
%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 ;
diff --git a/Master/texmf-dist/tex/context/base/meta-pag.tex b/Master/texmf-dist/tex/context/base/meta-pag.tex
index 32473cb7499..cda7dbd96cb 100644
--- a/Master/texmf-dist/tex/context/base/meta-pag.tex
+++ b/Master/texmf-dist/tex/context/base/meta-pag.tex
@@ -19,24 +19,24 @@
\unprotect
-\appendtoks
+\startMPextensions
if unknown context_page: input mp-page; fi;
-\to \MPextensions
+\stopMPextensions
%D The next few macros tell \METAPOST\ how the \CONTEXT\
%D pagebody looks.
-\appendtoks
+\startMPextensions
boolean PageStateAvailable,OnRightPage,InPageBody;
PageStateAvailable:=true;
-\to \MPextensions
+\stopMPextensions
-\appendtoks
+\startMPinitializations
OnRightPage:=true;
InPageBody:=\ifinpagebody true \else false \fi;
-\to \MPinitializations
+\stopMPinitializations
-\appendtoks
+\startMPinitializations
def LoadPageState =
OnRightPage:=\MPonrightpage;
OnOddPage:=\MPonoddpage;
@@ -85,7 +85,7 @@
LayoutColumnDistance:=\the\layoutcolumndistance;
LayoutColumnWidth:=\the\layoutcolumnwidth;
enddef;
-\to \MPinitializations
+\stopMPinitializations
\def\MPonrightpage{true}
\def\MPonoddpage {true}
@@ -181,14 +181,35 @@
\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
+% \doglobal\increment\currentMPtextareadata
+% \edef\namedtextarea{gbd:\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}
-\appendtoks
+\startMPextensions
path PlainTextArea;
-\to \MPextensions
+\stopMPextensions
-\appendtoks
+\startMPinitializations
ResetTextAreas;
\the\MPsavedtextareadata;
SaveTextAreas;
@@ -197,7 +218,7 @@
\the\MPlocaltextareadata;
PlainTextArea:=boundingbox(\MPxy{text:\realfolio}--\MPxy{text:\realfolio}
shifted (\MPw{text:\realfolio},\MPh{text:\realfolio}));
-\to \MPinitializations
+\stopMPinitializations
\appendtoks
\global\MPsavedtextareadata\MPtextareadata
diff --git a/Master/texmf-dist/tex/context/base/meta-pdf.tex b/Master/texmf-dist/tex/context/base/meta-pdf.tex
new file mode 100644
index 00000000000..bddf932efaf
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/meta-pdf.tex
@@ -0,0 +1,3373 @@
+%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 In due time this file will replace \type {supp-pdf} and
+%D \type {supp-mpe}.
+
+% \input supp-pdf
+% \input supp-mpe
+%
+% \endinput
+
+% we're going to experiment a bit with new code
+
+%D To be tested: texopt.rb on this file.
+
+%D Prelude to an optimized version:
+
+%D \module
+%D [ file=supp-pdf,
+%D version=2004.12.16,
+%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 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 \zeropoint here since it may be
+% defined in the range \dimen 0 - 20 which we happen to use
+% as scratch registers; inside context we may consider
+% using dedicated registers.
+
+%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 / PDF (2004.03.26)}
+
+\unprotect
+
+\ifx\PDFcode\undefined
+ \ifx\pdfliteral\undefined
+ \def\PDFcode#1{\special{PDF: #1}}
+ \else\ifx\pdfoutput\undefined
+ \def\PDFcode#1{\special{PDF: #1}}
+ \else\ifcase\pdfoutput
+ \def\PDFcode#1{\special{PDF: #1}}
+ \else % pdftex as well as in pdf mode
+ \let\PDFcode\pdfliteral
+ \fi\fi\fi
+\else
+ % we probably use context
+\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\wd\scratchbox
+ \advance\hsize -#3%
+ \advance\hsize -#4%
+ \vsize\ht\scratchbox
+ \advance\vsize -#5%
+ \advance\vsize -#6%
+ \setbox\scratchbox\vbox to \vsize
+ {\vskip-#5\hbox to \hsize{\hskip-#3\box\scratchbox\hss}}%
+ \pdfxform\scratchbox
+ \pdfrefxform\pdflastxform
+ \egroup}
+
+\fi \fi
+
+%D If you want to save a few hash entries, you may prefer the
+%D less readable alternatives, like:
+%D
+%D \starttyping
+%D \def\pdfimage#1#% This one is less readable but needs no additional
+%D {\bgroup % hash entry for the second stage macro.
+%D \def\pdfimage##1%
+%D {\immediate\pdfximage##1{#2}%
+%D \pdfrefximage\pdflastximage\egroup}}
+%D \stoptyping
+
+%D \macros
+%D {convertMPtoPDF}
+%D
+%D The next set of macros implements \METAPOST\ to \PDF\
+%D conversion. Because we want to test as fast as possible, we
+%D first define the \POSTSCRIPT\ operators that \METAPOST\
+%D uses. We don't define irrelevant ones, because these are
+%D skipped anyway.
+
+%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
+%D {xPSmoveto}}. For everyday documents with relatively
+%D small graphics the gain in speed can be neglected.
+
+\def \PScurveto {curveto}
+\def \PSlineto {lineto}
+\def \PSmoveto {moveto}
+\def \PSshowpage {showpage}
+\def \PSnewpath {newpath}
+\def \PSfshow {fshow}
+\def \PSclosepath {closepath}
+\def \PSfill {fill}
+\def \PSstroke {stroke}
+\def \PSclip {clip}
+\def \PSrlineto {rlineto}
+\def \PSsetlinejoin {setlinejoin}
+\def \PSsetlinecap {setlinecap}
+\def \PSsetmiterlimit {setmiterlimit}
+\def \PSsetgray {setgray}
+\def \PSsetrgbcolor {setrgbcolor}
+\def \PSsetcmykcolor {setcmykcolor}
+\def \PSsetdash {setdash}
+\def \PSgsave {gsave}
+\def \PSgrestore {grestore}
+\def \PStranslate {translate}
+\def \PSscale {scale}
+\def \PSconcat {concat}
+\def \PSdtransform {dtransform}
+\def \PSsetlinewidth {setlinewidth}
+\def \PSpop {pop}
+
+\def \PSnfont {nfont} % was needed for TUG98 proceedings
+\def \PSspecial {special} % extensions to MetaPost
+
+%D A previous version set \type {%} to ignore, which
+%D simplified the following definitions. At the start of
+%D conversion the percent character was made active again.
+%D Because the whole graphic is one paragraph (there are no
+%D empty lines) this does not give the desired effect. This
+%D went unnoticed untill Scott Pakin sent me a test file
+%D percent characters in a string. So, from now on we have
+%D to prefix the following strings with percentages.
+
+%D Some day I'll figure out a better solution (line by line reading
+%D using \ETEX).
+
+\edef \PSBoundingBox {\letterpercent\letterpercent BoundingBox:}
+\edef \PSHiResBoundingBox {\letterpercent\letterpercent HiResBoundingBox:}
+\edef \PSExactBoundingBox {\letterpercent\letterpercent ExactBoundingBox:}
+\edef \PSMetaPostSpecial {\letterpercent\letterpercent MetaPostSpecial:}
+\edef \PSMetaPostSpecials {\letterpercent\letterpercent MetaPostSpecials:}
+\edef \PSPage {\letterpercent\letterpercent Page:}
+
+%D By the way, the \type {setcmykcolor} operator is not
+%D output by \METAPOST\ but can result from converting the
+%D \cap{RGB} color specifications, as implemented in
+%D \type{supp-mps}.
+
+%D In \POSTSCRIPT\ arguments precede the operators. Due to the
+%D fact that in some translations we need access to those
+%D arguments, and also because sometimes we have to skip them,
+%D we stack them up. The stack is one||dimensional for non path
+%D operators and two||dimensional for operators inside a path.
+%D This is because we have to save the whole path for
+%D (optional) postprocessing. Values are pushed onto the stack
+%D by:
+%D
+%D \starttyping
+%D \setMPargument {value}
+%D \stoptyping
+%D
+%D They can be retrieved by the short named macros:
+%D
+%D \starttyping
+%D \gMPa {number}
+%D \gMPs {number}
+%D \stoptyping
+%D
+%D When scanning a path specification, we also save the
+%D operator, using
+%D
+%D \starttyping
+%D \setMPkeyword {n}
+%D \stoptyping
+%D
+%D The path drawing operators are coded for speed: \type{clip},
+%D \type{stroke}, \type{fill} and \type{fillstroke} become
+%D 1, 2, 3 and~4.
+%D
+%D When processing the path this code can be retrieved
+%D using
+%D
+%D \starttyping
+%D \getMPkeyword % {n}
+%D \stoptyping
+%D
+%D When setting an argument, the exact position on the stack
+%D depends on the current value of the \COUNTERS\
+%D \type{\nofMPsegments} and \type{\nofMParguments}.
+
+\newcount\nofMPsegments
+\newcount\nofMParguments
+
+%D These variables hold the coordinates. The argument part of
+%D the stack is reset by:
+%D
+%D \starttyping
+%D \resetMPstack
+%D \stoptyping
+%D
+%D We use the prefix \type{@@MP} to keep the stack from
+%D conflicting with existing macros. To speed up things a bit
+%D more, we use the constant \type{\@@MP}.
+
+\def\@@MP{@@MP}
+
+\def\setMPargument% #1%
+ {\advance\nofMParguments \plusone
+ \expandafter\def
+ \csname\@@MP\the\nofMPsegments\the\nofMParguments\endcsname} % {#1}
+
+\def\letMPargument
+ {\advance\nofMParguments \plusone
+ \expandafter\let
+ \csname\@@MP\the\nofMPsegments\the\nofMParguments\endcsname}
+
+\def\setMPsequence#1 %
+ {\advance\nofMParguments \plusone
+ \expandafter\def
+ \csname\@@MP\the\nofMPsegments\the\nofMParguments\endcsname{#1}%
+ \handleMPsequence}
+
+\def\gMPa#1%
+ {\csname\@@MP0\number#1\endcsname}
+
+\def\gMPs#1%
+ {\csname\@@MP\the\nofMPsegments\number#1\endcsname}
+
+\def\dogMPa#1%
+ {\@EAEAEA\do\csname\@@MP0\number#1\endcsname}
+
+\def\setMPkeyword#1 %
+ {\expandafter\def\csname\@@MP\the\nofMPsegments0\endcsname{#1}%
+ \advance\nofMPsegments \plusone
+ \nofMParguments\zerocount}
+
+\def\getMPkeyword% #1%
+ {\csname\@@MP\the\nofMPsegments0\endcsname} % {\csname\@@MP#10\endcsname}
+
+\def\docleanupMPargument#1% we need this because args can have [ or ] pre/appended
+ {\expandafter\edef\csname\@@MP\the\nofMPsegments\number#1\endcsname
+ {\csname\@@MP\the\nofMPsegments\number#1\endcsname}}
+
+%D When we reset the stack, we can assume that all further
+%D comment is to be ignored and handled in strings.
+%D By redefining the reset macro after the first call, we
+%D save some run time. Only use this macro after all
+%D comments are processed and use the simple alternative
+%D when dealing with comments.
+
+\def\doresetMPstack
+ {\nofMParguments\zerocount}
+
+\def\resetMPstack
+ {\let\handleMPgraphic\handleMPendgraphic
+ \let\resetMPstack\doresetMPstack
+ \resetMPstack}
+
+%D The arguments are saved with the preceding command
+%D \type{\do}. By default this command expands to nothing, but
+%D when we deal with strings it's used to strip off the
+%D \type{(} and \type{)}.
+%D
+%D Strings are kind of tricky, because characters can be
+%D passed verbatim \type{(hello)}, by octal number
+%D \type{(\005)} or as command \type{(\()}. We therefore
+%D cannot simply ignore \type{(} and \type{)}, the way we do
+%D with \type{[} and \type{]}. Another complication is that
+%D strings may contain characters that normally have a
+%D special meaning in \TEX, like \type{$} and \type{{}}.
+%D
+%D A previous solution made \type{\} an active character and
+%D let it look ahead for a number or characters. We had to
+%D abandon this scheme because of the need for verbatim
+%D support. The next solution involved some \CATCODE\
+%D trickery but works well.
+
+\def\octalMPcharacter#1#2#3%
+ {\char'#1#2#3\relax}
+
+%D curly braces and squarly brackets are stored in the argument stack
+%D as part of strings, for instance in:
+%D
+%D \starttyping
+%D /fshow {exch findfont exch scalefont setfont show}bind def
+%D [3 3 ] 0 setdash
+%D \stoptyping
+%D
+%D but we need to keep them in situation like
+%D
+%D \starttyping
+%D ([bla bla] bla bla) ec-lmr10 9.96265 fshow
+%D ({bla bla} bla bla) ec-lmr10 9.96265 fshow
+%D \stoptyping
+%D
+%D So, when we store the snippets, we keep the special tokens, and
+%D when needed we either ignore or obey them
+
+\bgroup
+\catcode`\|=\@@comment
+\catcode`\%=\@@active
+\catcode`\[=\@@active
+\catcode`\]=\@@active
+\catcode`\{=\@@active
+\catcode`\}=\@@active
+\catcode`B=\@@begingroup
+\catcode`E=\@@endgroup
+\gdef\keepMPspecials|
+ B\let%\letterpercent|
+ \def[B\noexpand[E|
+ \def]B\noexpand]E|
+ \def{B\noexpand{E|
+ \def}B\noexpand}EE
+\gdef\ignoreMPspecials|
+ B\let%\letterpercent|
+ \def[BE|
+ \def]BE|
+ \def{BE|
+ \def}BEE
+\gdef\obeyMPspecials|
+ B\def%B\char 37\relax E|
+ \def[B\char 91\relax E|
+ \def]B\char 93\relax E|
+ \def{B\char123\relax E|
+ \def}B\char125\relax EE
+\gdef\setMPspecials|
+ B\setnaturalcatcodes
+ \catcode`\\=\@@escape
+ \catcode`\%=\@@active
+ \catcode`\[=\@@active
+ \catcode`\]=\@@active
+ \catcode`\{=\@@active
+ \catcode`\}=\@@active
+ \lccode`\-=0 | latex sets this to `\-
+ \lccode`\%=`\% | otherwise it's seen as a number
+ \def\(B\char40\relax E|
+ \def\)B\char41\relax E|
+ \def\\B\char92\relax E|
+ \def\0B\octalMPcharacter0E|
+ \def\1B\octalMPcharacter1E|
+ \def\2B\octalMPcharacter2E|
+ \def\3B\octalMPcharacter3E|
+ \def\4B\octalMPcharacter4E|
+ \def\5B\octalMPcharacter5E|
+ \def\6B\octalMPcharacter6E|
+ \def\7B\octalMPcharacter7E|
+ \def\8B\octalMPcharacter8E|
+ \def\9B\octalMPcharacter9EE
+\egroup
+
+%D We use the comment symbol as a sort of trigger. Beware!
+%D The whole graphic is seen as on eparagraph, which means
+%D that we cannot change the catcodes in between.
+
+\bgroup
+\catcode`\%=\@@active
+\gdef\startMPscanning{\let%=\startMPconversion}
+\egroup
+
+%D In earlier versions we used the sequence
+%D
+%D \starttyping
+%D \expandafter\handleMPsequence\input filename\relax
+%D \stoptyping
+%D
+%D Persistent problems in \LATEX\ however forced us to use a
+%D different scheme. Every \POSTSCRIPT\ file starts with a
+%D \type{%}, so we temporary make this an active character
+%D that starts the scanning and redefines itself. (The problem
+%D originates in the redefinition by \LATEX\ of the
+%D \type{\input} primitive.)
+
+\def\startMPconversion
+ {\keepMPspecials
+ \handleMPsequence}
+
+%D Here comes the main loop. Most arguments are numbers. This
+%D means that they can be recognized by their \type{\lccode}.
+%D This method saves a lot of processing time. We could
+%D speed up the conversion by handling the \type{path}
+%D seperately.
+
+\def\@EAEAEA{\expandafter\expandafter\expandafter} % to be sure
+
+\def\dohandleMPsequence#1%
+ {\ifdone
+ \ifcase\lccode`#1\relax
+ \@EAEAEA\dohandleMPsequenceA
+ \else
+ \@EAEAEA\dohandleMPsequenceB
+ \fi
+ \else
+ \@EA\dohandleMPsequenceC
+ \fi#1}
+
+\let\dohandleMPsequenceA\setMPsequence
+
+\def\dohandleMPsequenceB#1 %
+ {\edef\somestring{#1}%
+ \ifx\somestring\PSmoveto
+ \edef\lastMPmoveX{\gMPa1}%
+ \edef\lastMPmoveY{\gMPa2}%
+ \PDFcode{\!MPgMPa1 \!MPgMPa2 m}%
+ \resetMPstack
+ \else\ifx\somestring\PSnewpath
+ \let\handleMPsequence\handleMPpath
+ \else\ifx\somestring\PSgsave
+ \PDFcode{q}%
+ \resetMPstack
+ \else\ifx\somestring\PSgrestore
+ \PDFcode{Q}%
+ \resetMPstack
+ \else\ifx\somestring\PSdtransform % == setlinewidth
+ \let\handleMPsequence\handleMPdtransform
+ % after that we will encounter more tokens until setlinewidth+pop
+ % or pop+setlinewidth which we catch next; we explicitly need to
+ % reset the stack since [] n setdash may follow; a more clever
+ % approach would be to read on till the condition is met, but it's
+ % the only pop / setlinewidth we will encounter so ...
+ \else\ifx\somestring\PSsetlinewidth
+ % already handled in dtransform
+ \resetMPstack
+ \else\ifx\somestring\PSpop
+ % already handled in dtransform
+ \resetMPstack
+ \else\ifx\somestring\PSconcat
+ \cleanupMPconcat
+ \PDFcode{\gMPa1 \gMPa2 \gMPa3 \gMPa4 \gMPa5 \gMPa6 cm}%
+ \resetMPstack
+ \else\ifx\somestring\PSsetrgbcolor
+ \handleMPrgbcolor
+ \resetMPstack
+ \else\ifx\somestring\PSsetcmykcolor
+ \handleMPcmykcolor
+ \resetMPstack
+ \else\ifx\somestring\PSsetgray
+ \handleMPgraycolor
+ \resetMPstack
+ \else\ifx\somestring\PStranslate
+ \PDFcode{1 0 0 1 \gMPa1 \gMPa2 cm}%
+ \resetMPstack
+ \else\ifx\somestring\PSsetdash
+ \handleMPsetdash
+ \resetMPstack
+ \else\ifx\somestring\PSsetlinejoin
+ \PDFcode{\gMPa1 j}%
+ \resetMPstack
+ \else\ifx\somestring\PSsetmiterlimit
+ \PDFcode{\gMPa1 M}%
+ \resetMPstack
+ \else\ifx\somestring\PSfshow
+ \PDFcode{n}%
+ \handleMPfshow
+ \resetMPstack
+ \else\ifx\somestring\PSsetlinecap
+ \PDFcode{\gMPa1 J}%
+ \resetMPstack
+ \else\ifx\somestring\PSrlineto
+ \PDFcode{\!MP\lastMPmoveX\space\!MP\lastMPmoveY\space l S}%
+ \resetMPstack
+ \else\ifx\somestring\PSscale
+ \PDFcode{\gMPa1 0 0 \gMPa2 0 0 cm}%
+ \resetMPstack
+ \else\ifx\somestring\PSspecial
+ \handleMPspecialcommand
+ \resetMPstack
+ \else
+ \handleMPgraphic% {#1}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \handleMPsequence}
+
+\def\dohandleMPsequenceC#1 %
+ {\edef\somestring{#1}%
+ \handleMPgraphic % {#1}%
+ \handleMPsequence}
+
+%D Since colors are not sensitive to transformations, they
+%D are sometimes used for signaling. Therefore, we handle them
+%D separately. The next macro can be redefined if needed.
+
+\def\handleMPrgbcolor
+ {\PDFcode{\!MPgMPa1 \!MPgMPa2 \!MPgMPa3 rg
+ \!MPgMPa1 \!MPgMPa2 \!MPgMPa3 RG}}
+
+\def\handleMPcmykcolor
+ {\PDFcode{\!MPgMPa1 \!MPgMPa2 \!MPgMPa3 \!MPgMPa4 k
+ \!MPgMPa1 \!MPgMPa2 \!MPgMPa3 \!MPgMPa4 K}}
+
+\def\handleMPgraycolor
+ {\PDFcode{\!MPgMPa1 g
+ \!MPgMPa1 G}}
+
+\def\handleMPspotcolor
+ {\PDFcode{0 g
+ 0 G}}
+
+%D Beginning and ending the graphics is taken care of by the
+%D macro \type{\handleMPgraphic}, which is redefined when
+%D the first graphics operator is met.
+
+\def\handleMPendgraphic % #1%
+ {\ifx\somestring\PSshowpage
+ \let\handleMPsequence\finishMPgraphic
+ \else
+ \letMPargument\somestring % {#1}%
+ \fi}
+
+\def\handleMPbegingraphic % #1%
+ {\ifx\somestring\PSBoundingBox
+ \def\handleMPsequence{\handleMPboundingbox1}%
+ \else\ifx\somestring\PSHiResBoundingBox
+ \def\handleMPsequence{\handleMPboundingbox2}%
+ \else\ifx\somestring\PSExactBoundingBox
+ \def\handleMPsequence{\handleMPboundingbox3}%
+ \else\ifx\somestring\PSshowpage
+ \let\handleMPsequence\finishMPgraphic
+ \else\ifx\somestring\PSPage
+ \let\handleMPsequence\handleMPpage
+ \else\ifx\somestring\PSMetaPostSpecials
+ \let\handleMPsequence\handleMPspecialscomment
+ \else\ifx\somestring\PSMetaPostSpecial
+ \let\handleMPsequence\handleMPspecialcomment
+ \else
+ \letMPargument\somestring % {#1}%
+ \fi\fi\fi\fi\fi\fi\fi}
+
+\let\handleMPgraphic=\handleMPbegingraphic
+
+%D We check for three kind of bounding boxes: the normal one
+%D and two high precision ones:
+%D
+%D \starttyping
+%D BoundingBox: llx lly ucx ucy
+%D HiResBoundingBox: llx lly ucx ucy
+%D ExactBoundingBox: llx lly ucx ucy
+%D \stoptyping
+%D
+%D The original as well as the recalculated dimensions are
+%D saved for later use.
+
+\newif\ifskipemptyMPgraphic \skipemptyMPgraphicfalse
+
+\chardef\currentMPboundingbox=0
+
+\def\handleMPboundingbox#1#2 #3 #4 #5
+ {\ifnum#1>\currentMPboundingbox
+ \xdef\MPllx{#2}\xdef\MPlly{#3}%
+ \xdef\MPurx{#4}\xdef\MPury{#5}%
+ \dimen0=#2\onepoint
+ \dimen0=-\MPxscale\dimen0
+ \dimen2=#3\onepoint
+ \dimen2=-\MPyscale\dimen2
+ \xdef\MPxoffset{\withoutpt\the\dimen0}%
+ \xdef\MPyoffset{\withoutpt\the\dimen2}%
+ \dimen0=#2\onebasepoint
+ \dimen0=-\dimen0
+ \dimen2=#3\onebasepoint
+ \dimen2=-\dimen2
+ \advance\dimen0 #4\onebasepoint
+ \dimen0=\MPxscale\dimen0
+ \xdef\MPwidth{\the\dimen0}%
+ \advance\dimen2 #5\onebasepoint
+ \xdef\MPyshift{\the\dimen2}% unscaled
+ \dimen2=\MPyscale\dimen2
+ \xdef\MPheight{\the\dimen2}%
+ \chardef\currentMPboundingbox#1\relax
+ \fi
+ \doresetMPstack
+ \let\handleMPsequence\dohandleMPsequence
+ \let\next\handleMPsequence
+ \ifskipemptyMPgraphic
+ \ifdim\MPheight=\zeropoint\relax\ifdim\MPwidth=\zeropoint\relax
+ \def\next{\endinput\finishMPgraphic}%
+ \fi\fi
+ \fi
+ \next}
+
+%D Unless defined otherwise, we simply ignore specialcomments.
+
+\def\handleMPspecialcomment
+ {\doresetMPstack
+ \let\handleMPsequence\dohandleMPsequence
+ \handleMPsequence}
+
+\let\handleMPspecialscomment\handleMPspecialcomment
+
+%D We use the \type{page} comment as a signal that
+%D stackbuilding can be started.
+
+\def\handleMPpage #1 #2
+ {\doresetMPstack
+ \donetrue
+ \let\handleMPsequence\dohandleMPsequence
+ \handleMPsequence}
+
+%D The same applies to the special extensions.
+
+\def\handleMPspecialcommand
+ {\doresetMPstack
+ \let\handleMPsequence\dohandleMPsequence
+ \handleMPsequence}
+
+%D \METAPOST\ draws its dots by moving to a location and
+%D invoking \type{0 0 rlineto}. This operator is not
+%D available in \PDF. Our solution is straightforward: we draw
+%D a line from $(current\_x, current\_y)$ to itself. This
+%D means that the arguments of the preceding \type{moveto} have
+%D to be saved.
+
+\def\lastMPmoveX{0}
+\def\lastMPmoveY{0}
+
+%D These saved coordinates are also used when we handle the
+%D texts. Text handling proved to be a bit of a nuisance, but
+%D finally I saw the light. It proved that we also had to
+%D take care of \type{(split arguments)}.
+
+\def\setMPfshowfont#1#2%
+ {\font\temp=#1\space at #2\relax\temp}
+
+\let\MPfshowcommand\empty
+
+% \def\dohandleMPfshow
+% {\bgroup
+% \setbox\scratchbox\hbox
+% {\obeyMPspecials
+% \let\ \relax % mp breaks long lines and appends a \
+% \edef\size{\gMPa\nofMParguments}%
+% \ifx\size\PSnfont % round font size (to pt)
+% \advance\nofMParguments \minusone
+% \expandafter\scratchdimen\gMPa\nofMParguments\onepoint\relax
+% \ifdim\scratchdimen<\onepoint
+% \def\size{1pt}%
+% \else
+% \advance\scratchdimen .5\onepoint
+% \def\size##1.##2\relax{\def\size{##1pt}}%
+% \expandafter\size\the\scratchdimen\relax
+% \fi
+% \else
+% \edef\size{\size bp}%
+% \fi
+% \advance\nofMParguments \minusone
+% %\font\temp=\gMPa\nofMParguments\space at \size
+% \let\temp\relax % to be sure
+% \setMPfshowfont{\gMPa\nofMParguments}\size
+% \advance\nofMParguments \minusone
+% \temp
+% \MPfshowcommand
+% {\ifnum\nofMParguments=\plusone
+% \def\do(##1){##1}%
+% \dogMPa1%
+% \else
+% % we need to catch ( a ) (a a a) (\123 \123 \123) etc
+% \scratchcounter\plusone
+% \def\dodo##1% Andreas Fieger's bug: (\304...)
+% {\edef\!!stringa{##1\empty\empty}% and another one: ( 11) -> \ifx 11
+% \ifx\!!stringa\MPspacechar\MPspacechar\else\expandafter##1\fi}%
+% \def\do(##1{\dodo{##1}}%
+% \dogMPa\scratchcounter\MPspacechar
+% \let\do\relax
+% \loop
+% \advance\scratchcounter \plusone
+% \ifnum\scratchcounter<\nofMParguments\relax
+% \gMPa\scratchcounter\MPspacechar
+% \repeat
+% \def\do##1){\dodo{##1}}%
+% \dogMPa\scratchcounter
+% \fi
+% \unskip}}%
+% %
+% % this fails in some versions of pdftex
+% %
+% % \dimen0=\lastMPmoveY bp
+% % \advance\dimen0 by \ht0
+% % \ScaledPointsToBigPoints{\number\dimen0}\lastMPmoveY
+% % \PDFcode{n q 1 0 0 1 \lastMPmoveX\space\lastMPmoveY\space cm}%
+% % \dimen0=\ht0
+% % \advance\dimen0 by \dp0
+% % \box0
+% % \vskip-\dimen0
+% % \PDFcode{Q}%
+% % \egroup}
+% %
+% \setbox\scratchbox\hbox
+% {\hskip\lastMPmoveX\onebasepoint\raise\lastMPmoveY\onebasepoint\box\scratchbox}%
+% \ht\scratchbox\zeropoint
+% \dp\scratchbox\zeropoint
+% \wd\scratchbox\zeropoint
+% \box\scratchbox
+% \egroup}
+%
+% \let\handleMPfshow\dohandleMPfshow % so we can overload this one later
+%
+% we will support plug-ins:
+
+\def\dohandleMPfshow
+ {\setbox\scratchbox\hbox
+ {\obeyMPspecials
+ \edef\MPtextsize{\gMPa\nofMParguments}%
+ \def\do(##1){##1}%
+ \edef\MPtextdata{\dogMPa1}% beware, stack can have more
+ \handleMPtext}%
+ \setbox\scratchbox\hbox
+ {\hskip\lastMPmoveX\onebasepoint\raise\lastMPmoveY\onebasepoint
+ \box\scratchbox}%
+ %
+ % this fails in some versions of pdftex
+ %
+ % \dimen0=\lastMPmoveY bp
+ % \advance\dimen0 by \ht0
+ % \ScaledPointsToBigPoints{\number\dimen0}\lastMPmoveY
+ % \PDFcode{n q 1 0 0 1 \lastMPmoveX\space\lastMPmoveY\space cm}%
+ % \dimen0=\ht0
+ % \advance\dimen0 by \dp0
+ % \box0
+ % \vskip-\dimen0
+ % \PDFcode{Q}%
+ % \egroup}
+ %
+ \ht\scratchbox\zeropoint
+ \dp\scratchbox\zeropoint
+ \wd\scratchbox\zeropoint
+ \box\scratchbox}
+
+\def\handleMPtext {\handleMPtextnormal} % so we can overload this one later
+\def\handleMPfshow{\dohandleMPfshow } % so we can overload this one later
+
+\def\handleMPtext
+ {\ifnum\nofMParguments>\plusthree
+ \handleMPtextnormal
+ \else
+ \convertcommand\MPtextdata\to\MPtextdata
+ \expanded{\splitstring\MPtextdata}\at::::\to\MPtexttag\and\MPtextnumber
+ \executeifdefined{handleMPtext\MPtexttag}\handleMPtextnormal
+ \fi}
+
+% elsewhere we will implement \handleMPtextmptxt
+
+\def\handleMPtextnormal
+ {\let\ \relax % mp breaks long lines and appends a \
+ \ifx\MPtextsize\PSnfont % round font size (to pt)
+ \advance\nofMParguments \minusone
+ \expandafter\scratchdimen\gMPa\nofMParguments\onepoint\relax
+ \ifdim\scratchdimen<\onepoint
+ \def\MPtextsize{1pt}%
+ \else
+ \advance\scratchdimen .5\onepoint
+ \def\MPtextsize##1.##2\relax{\def\MPtextsize{##1pt}}%
+ \expandafter\MPtextsize\the\scratchdimen\relax
+ \fi
+ \else
+ \edef\MPtextsize{\MPtextsize bp}%
+ \fi
+ \advance\nofMParguments \minusone
+ \font\temp=\gMPa\nofMParguments\space at \MPtextsize
+ \let\temp\relax % to be sure
+ \setMPfshowfont{\gMPa\nofMParguments}\MPtextsize
+ \advance\nofMParguments \minusone
+ \temp
+ \MPfshowcommand
+ {\ifnum\nofMParguments=\plusone
+ \def\do(##1){##1}%
+ \dogMPa1%
+ \else
+ % we need to catch ( a ) (a a a) (\123 \123 \123) etc
+ \scratchcounter\plusone
+ \def\dodo##1% Andreas Fieger's bug: (\304...)
+ {\edef\!!stringa{##1\empty\empty}% and another one: ( 11) -> \ifx 11
+ \ifx\!!stringa\MPspacechar\MPspacechar\else\expandafter##1\fi}%
+ \def\do(##1{\dodo{##1}}%
+ \dogMPa\scratchcounter\MPspacechar
+ \let\do\relax
+ \loop
+ \advance\scratchcounter \plusone
+ \ifnum\scratchcounter<\nofMParguments\relax
+ \gMPa\scratchcounter\MPspacechar
+ \repeat
+ \def\do##1){\dodo{##1}}%
+ \dogMPa\scratchcounter
+ \fi
+ \unskip}}
+
+%D You could consider the following definition to be the most
+%D natural one.
+
+% \def\MPspacechar{\space} % normal case
+
+\def\MPspacechar{\char32\relax} % old solution does not work with math
+
+%D However, the following implementation is more robust, since
+%D some fonts have funny visible spaces in the space slot. This
+%D gives a mismatch between the space that \METAPOST\ took into
+%D account and the \quote {natural} space. This only happens in
+%D labels, since \type {btex}||\type {etex} thingies don't have
+%D spaces. This phenomena showed up when preparing the
+%D \METAFUN\ manual, where Palatino fonts are used. We can
+%D safely assume that \METAPOST\ considers \type {\char32} to
+%D be the space.
+
+\def\MPspacechar{\setbox\scratchbox\hbox{\char32}\kern\wd\scratchbox}
+
+%D Well, this does not work with math fonts, so:
+
+\def\MPspacechar{\char32\relax}
+
+%D Most operators are just converted and keep their
+%D arguments. Dashes however need a bit different treatment,
+%D otherwise \PDF\ viewers complain loudly. Another
+%D complication is that one argument comes after the \type{]}.
+%D When reading the data, we simply ignore the array boundary
+%D characters. We save ourselves some redundant newlines and
+%D at the same time keep the output readable by packing the
+%D literals.
+
+\def\handleMPsetdash
+ {\bgroup
+ \ignoreMPspecials
+ \def\somestring{[}%
+ \scratchcounter\plusone
+ \loop
+ \ifnum\scratchcounter<\nofMParguments
+ \edef\somestring{\somestring\space\gMPa\scratchcounter}%
+ \advance\scratchcounter \plusone
+ \repeat
+ \edef\somestring{\somestring]\gMPa\scratchcounter\space d}%
+ \PDFcode{\somestring}%
+ \egroup}
+
+%D The \type{setlinewidth} commands looks a bit complicated. There are
+%D two alternatives, that result in a similar look in both
+%D $x$- and $y$-dorection. As John Hobby says:
+%D
+%D \startnarrower \switchtobodyfont[ss]
+%D \starttyping
+%D x 0 dtransform exch truncate exch idtransform pop setlinewidth
+%D 0 y dtransform truncate idtransform setlinewidth pop
+%D \stoptyping
+%D
+%D These are just fancy versions of \type{x setlinewidth} and
+%D \type{y setlinewidth}. The \type{x 0 ...} form is used if
+%D the path is {\em primarily vertical}. It rounds the width
+%D so that vertical lines come out an integer number of pixels
+%D wide in device space. The \type{0 y ...} form does the same
+%D for paths that are {\em primarily horizontal}. The reason
+%D why I did this is Knuth insists on getting exactly the
+%D widths \TEX\ intends for the horizontal and vertical rules
+%D in \type{btex...etex} output. (Note that PostScript scan
+%D conversion rules cause a horizontal or vertical line of
+%D integer width $n$ in device space to come out $n+1$ pixels
+%D wide, regardless of the phase relative to the pixel grid.)
+%D \stopnarrower
+%D
+%D The common operator in these sequences is \type{dtransform},
+%D so we can use this one to trigger setting the linewidth.
+
+\def\handleMPdtransform
+ {\ifdim\gMPa1\onepoint>\zeropoint
+ \PDFcode{\gMPa1 w}%
+ \def\next##1 ##2 ##3 ##4 ##5 ##6 {\handleMPsequence}%
+ \else
+ \PDFcode{\gMPa2 w}%
+ \def\next##1 ##2 ##3 ##4 {\handleMPsequence}%
+ \fi
+ \let\handleMPsequence\dohandleMPsequence
+ \resetMPstack
+ \next}
+
+%D The most complicated command is \type{concat}. \METAPOST\
+%D applies this operator to \type{stroke}. At that moment the
+%D points set by \type{curveto} and \type{moveto}, are already
+%D fixed. In \PDF\ however the \type{cm} operator affects the
+%D points as well as the pen (stroke). Like more \PDF\
+%D operators, \type{cm} is defined in a bit ambiguous way.
+%D The only save route for non||circular penshapes, is saving
+%D the path, recalculating the points and applying the
+%D transformation matrix in such a way that we can be sure
+%D that its behavior is well defined. This comes down to
+%D inverting the path and applying \type{cm} to that path as
+%D well as the pen. This all means that we have to save the
+%D path.
+
+%D In \METAPOST\ there are three ways to handle a path $p$:
+%D
+%D \starttyping
+%D draw p; fill p; filldraw p;
+%D \stoptyping
+%D
+%D The last case outputs a \type{gsave fill grestore} before
+%D \type{stroke}. Handling the path outside the main loops
+%D saves about 40\% run time.\footnote{We can save some more by
+%D following the \METAPOST\ output routine, but for the moment
+%D we keep things simple.} Switching between the main loop and
+%D the path loop is done by means of the recursely called
+%D macro \type{\handleMPsequence}.
+
+\def\handleMPpath
+ {\chardef\finiMPpath0
+ \let\closeMPpath\relax
+ \let\flushMPpath\flushnormalMPpath
+ \resetMPstack
+ \nofMPsegments\plusone
+ \let\handleMPsequence\dohandleMPpath
+ \dohandleMPpath}
+
+%D Most paths are drawn with simple round pens. Therefore we've
+%D split up the routine in two.
+
+\def\flushnormalMPsegment
+ {\ifcase\getMPkeyword\relax
+ \PDFcode{\!MPgMPs1 \!MPgMPs2 l}%
+ \or
+ \PDFcode{\!MPgMPs1 \!MPgMPs2 \!MPgMPs3 \!MPgMPs4 \!MPgMPs5 \!MPgMPs6 c}%
+ \or
+ \PDFcode{\!MP\lastMPmoveX\space\!MP\lastMPmoveY\space l S}%
+ \or
+ \edef\lastMPmoveX{\gMPs1}% evt \!MP here
+ \edef\lastMPmoveY{\gMPs2}%
+ \PDFcode{\!MP\lastMPmoveX\space \!MP\lastMPmoveY\space m}%
+ \fi}
+
+\def\flushconcatMPsegment
+ {\ifcase\getMPkeyword\relax
+ \doMPconcat{\gMPs1}\a{\gMPs2}\b%
+ \PDFcode{\!MP\a\space\!MP\b\space l}%
+ \or
+ \doMPconcat{\gMPs1}\a{\gMPs2}\b%
+ \doMPconcat{\gMPs3}\c{\gMPs4}\d%
+ \doMPconcat{\gMPs5}\e{\gMPs6}\f%
+ \PDFcode{\!MP\a\space\!MP\b\space
+ \!MP\c\space\!MP\d\space
+ \!MP\e\space\!MP\f\space c}%
+ \or
+ \bgroup
+ \noMPtranslate
+ \doMPconcat\lastMPmoveX\a\lastMPmoveY\b%
+ \PDFcode{\!MP\a\space\!MP\b\space l S}%
+ \egroup
+ \or
+ \edef\lastMPmoveX{\gMPs1}%
+ \edef\lastMPmoveY{\gMPs2}%
+ \doMPconcat\lastMPmoveX\a\lastMPmoveY\b%
+ \PDFcode{\!MP\a\space\!MP\b\space m}%
+ \fi}
+
+\def\doflushsomeMPpath
+ {\dodoflushsomeMPpath
+ \advance\nofMPsegments \plusone
+ \ifnum\nofMPsegments<\scratchcounter
+ \expandafter\doflushsomeMPpath
+ \fi}
+
+\def\flushsomeMPpath
+ {\scratchcounter\nofMPsegments
+ \nofMPsegments\plusone
+ \doflushsomeMPpath}
+
+\def\flushnormalMPpath{\let\dodoflushsomeMPpath\flushnormalMPsegment\flushsomeMPpath}
+
+%OLD \def\flushconcatMPpath{\let\dodoflushsomeMPpath\flushconcatMPsegment\flushsomeMPpath}
+
+%NEW pre-calculate 1/D so it needn't be repeated for each control point.
+
+\def\flushconcatMPpath
+ {\MPreciprocaldeterminant
+ \let\dodoflushsomeMPpath\flushconcatMPsegment\flushsomeMPpath}
+
+%D The transformation of the coordinates is handled by one of
+%D the macros Tanmoy posted to the \PDFTEX\ mailing list.
+%D I rewrote and optimized the original macro to suit the other
+%D macros in this module.
+%D
+%D \starttyping
+%D \doMPconcat {x position} \xresult {y position} \yresult
+%D \stoptyping
+%D
+%D By setting the auxiliary \DIMENSIONS\ \type{\dimen0} upto
+%D \type{\dimen10} only once per path, we save over 20\% run
+%D time. Some more speed was gained by removing some parameter
+%D passing. These macros can be optimized a bit more by using
+%D more constants. There is however not much need for further
+%D optimization because penshapes usually are round and
+%D therefore need no transformation. Nevertheless we move the
+%D factor to the outer level and use a bit different \type{pt}
+%D removal macro. Although the values represent base points,
+%D we converted them to pure points, simply because those can
+%D be converted back.
+
+%OLD \mathchardef\MPconcatfactor=256 % beware don't remove spaces before it
+
+%OLD \def\doMPreducedimen#1
+%OLD {\count0\MPconcatfactor
+%OLD \advance\dimen#1 \ifdim\dimen#1>\zeropoint .5\else -.5\fi\count0
+%OLD \divide\dimen#1 \count0\relax}
+
+%OLD % too inaccurate (see old pragma logo)
+%OLD
+%OLD \def\doMPreducedimen#1
+%OLD {\count0=\MPconcatfactor
+%OLD \divide\dimen#1 \count0\relax}
+
+%OLD \def\doMPreducedimen#1
+%OLD {\advance\dimen#1 \ifdim\dimen#1>\zeropoint .5\else -.5\fi\MPconcatfactor
+%OLD \divide\dimen#1 \MPconcatfactor}
+
+%D The transformation code is rewritten by Daniel H. Luecking who
+%D describes his patch as follows:
+%D
+%D We would like to divide 1 by $X$, but all divisions are integer so
+%D for accuracy we want to convert to large integers and make sure the
+%D integer quotient has as many significant digits as possible. Thus we
+%D need to replace $1/X$ with $M/N$ where $N$ is as large as possible
+%D and $M/N$ is as large as possible. Also for simplicity $M$ should be
+%D a power of 2. So we make $M = 2^{30}$ \footnote{$2^{31} - 1$ is the
+%D largest legal integer. Using it (and simply ignoring the inaccuracy
+%D caused by $-1$) turns out to be at least as accurate in all cases,
+%D and more accurate in some.} (largest legal power of 2) and adjust
+%D $X$ downward (if necessary) to the the range $1-2^{16}$. This gives
+%D at least 15 significant binary digits, (almost as accurate as
+%D \METAPOST\ for numbers near 1) or almost 5 significant figures
+%D (decimal).
+
+\newcount\MPscratchCnt
+\newdimen\MPscratchDim % will be assigned global
+
+\def\MPadjustdimen % sets \MPscratchDim and \MPscratchCnt
+ {\MPscratchCnt\zerocount
+ \doMPadjustdimen}
+
+\def\doMPadjustdimen
+ {\ifdim\MPscratchDim>\onepoint
+ \divide\MPscratchDim 2
+ \advance\MPscratchCnt \plusone
+ \expandafter\doMPadjustdimen
+ \fi}
+
+%OLD \def\doMPexpanddimen#1
+%OLD {\multiply\dimen#1 \MPconcatfactor\relax}
+
+%D DHL: When viewed as an integer, $1 \hbox{pt}=2^{16}$ so $2^{32}/X$
+%D is the right way to do $(1 \hbox{pt})/(X \hbox{pt})$ and get the
+%D answer in points. But we are limited to $2^{30}/X$. However, we
+%D actually do $[ 2^{30} / (X/2^K) ]*2^{2-K}$ where $K$ is the number
+%D of halvings it takes to bring $X$ below $1 \hbox{pt}$. If $K$ is 0
+%D or 1 we readjust by multiplying by 4 or 2, otherwise by halving
+%D $(K-2)$ times \type {\MPscratchCnt} holds the value of $K$ from
+%D \type {\MPadjustdimen}.
+
+\def\MPreadjustdimen % acts on \MPscratchDim and MPscratchCnt
+ {\ifcase\MPscratchCnt
+ \multiply\scratchdimen 4
+ \or
+ \multiply\scratchdimen 2
+ \else
+ \expandafter\doMPreadjustdimen
+ \fi}
+
+\def\doMPreadjustdimen
+ {\ifnum\MPscratchCnt>2
+ \divide\scratchdimen 2
+ \advance\MPscratchCnt \minusone
+ \expandafter\doMPreadjustdimen
+ \fi}
+
+\def\MPreciprocaldeterminant
+ {\scratchdimen\withoutpt\the\dimen0 \dimen6 % s_x*s_y
+ \advance\scratchdimen - \withoutpt\the\dimen2 \dimen4 % s_x*s_y - r_x*r_y
+ \ifdim\scratchdimen<\zeropoint % we need a positive dimension
+ \scratchdimen-\scratchdimen % for \MPadjustdimen (?)
+ \doMPreciprocal
+ \scratchdimen-\scratchdimen
+ \else
+ \doMPreciprocal
+ \fi
+ \edef\MPreciprocal{\withoutpt\the\scratchdimen}}
+
+\newcount\MPnumerator \MPnumerator = 1073741824 % 2^{30}
+
+% todo: dimexpr
+
+\def\doMPreciprocal % replace \scratchdimen with its reciprocal
+ {\ifdim\scratchdimen=\onepoint \else
+ \MPadjustdimen
+ \scratchcounter\MPnumerator
+ \divide\scratchcounter\scratchdimen
+ \scratchdimen1\scratchcounter % 1 needed !
+ \MPreadjustdimen
+ \fi}
+
+%OLD \def\presetMPconcat
+%OLD {\dimen 0=\gMPs1\onepoint \doMPreducedimen 0 % r_x
+%OLD \dimen 2=\gMPs2\onepoint \doMPreducedimen 2 % s_x
+%OLD \dimen 4=\gMPs3\onepoint \doMPreducedimen 4 % s_y
+%OLD \dimen 6=\gMPs4\onepoint \doMPreducedimen 6 % r_y
+%OLD \dimen 8=\gMPs5\onepoint \doMPreducedimen 8 % t_x
+%OLD \dimen10=\gMPs6\onepoint \doMPreducedimen10 } % t_y
+%OLD
+%OLD \def\presetMPscale
+%OLD {\dimen 0=\gMPs1\onepoint \doMPreducedimen 0
+%OLD \dimen 2 \zeropoint
+%OLD \dimen 4 \zeropoint
+%OLD \dimen 6=\gMPs2\onepoint \doMPreducedimen 6
+%OLD \dimen 8 \zeropoint
+%OLD \dimen10 \zeropoint}
+
+\def\cleanupMPconcat
+ {\ignoreMPspecials
+ \docleanupMPargument1%
+ \docleanupMPargument6%
+ \keepMPspecials}
+
+\def\presetMPconcat
+ {\dimen 0=\gMPs1\onepoint % s_x
+ \dimen 2=\gMPs2\onepoint % r_x
+ \dimen 4=\gMPs3\onepoint % r_y
+ \dimen 6=\gMPs4\onepoint % s_y
+ \dimen 8=\gMPs5\onepoint % t_x
+ \dimen10=\gMPs6\onepoint} % t_y
+
+\def\presetMPscale
+ {\dimen 0=\gMPs1\onepoint
+ \dimen 2 \zeropoint
+ \dimen 4 \zeropoint
+ \dimen 6=\gMPs2\onepoint
+ \dimen 8 \zeropoint
+ \dimen10 \zeropoint}
+
+\def\noMPtranslate % use this one grouped
+ {\dimen 8 \zeropoint % t_x
+ \dimen10 \zeropoint} % t_y
+
+%D \starttyping
+%D \def\doMPconcat#1#2#3#4%
+%D {\dimen12=#1 pt \doMPreducedimen12 % p_x
+%D \dimen14=#3 pt \doMPreducedimen14 % p_y
+%D %
+%D \dimen16 \dimen 0
+%D \multiply \dimen16 \dimen 6
+%D \dimen20 \dimen 2
+%D \multiply \dimen20 \dimen 4
+%D \advance \dimen16 -\dimen20
+%D %
+%D \dimen18 \dimen12
+%D \multiply \dimen18 \dimen 6
+%D \dimen20 \dimen14
+%D \multiply \dimen20 \dimen 4
+%D \advance \dimen18 -\dimen20
+%D \dimen20 \dimen 4
+%D \multiply \dimen20 \dimen10
+%D \advance \dimen18 \dimen20
+%D \dimen20 \dimen 6
+%D \multiply \dimen20 \dimen 8
+%D \advance \dimen18 -\dimen20
+%D %
+%D \multiply \dimen12 -\dimen 2
+%D \multiply \dimen14 \dimen 0
+%D \advance \dimen12 \dimen14
+%D \dimen20 \dimen 2
+%D \multiply \dimen20 \dimen 8
+%D \advance \dimen12 \dimen20
+%D \dimen20 \dimen 0
+%D \multiply \dimen20 \dimen10
+%D \advance \dimen12 -\dimen20
+%D %
+%D \doMPreducedimen16
+%D \divide \dimen18 \dimen16 \doMPexpanddimen18
+%D \divide \dimen12 \dimen16 \doMPexpanddimen12
+%D %
+%D \edef#2{\withoutpt\the\dimen18}% % p_x^\prime
+%D \edef#4{\withoutpt\the\dimen12}} % p_y^\prime
+%D \stoptyping
+
+%D The following optimization resulted from some tests by
+%D and email exchanges with Sanjoy Mahajan.
+%D
+%D \starttyping
+%D \def\doMPconcat#1#2#3#4%
+%D {\dimen12=#1 pt \doMPreducedimen12 % p_x
+%D \dimen14=#3 pt \doMPreducedimen14 % p_y
+%D %
+%D \dimen16 \dimen 0
+%D \multiply \dimen16 \dimen 6
+%D \dimen20 \dimen 2
+%D \multiply \dimen20 \dimen 4
+%D \advance \dimen16 -\dimen20
+%D %
+%D \dimen18 \dimen12
+%D \multiply \dimen18 \dimen 6
+%D \dimen20 \dimen14
+%D \multiply \dimen20 \dimen 4
+%D \advance \dimen18 -\dimen20
+%D \dimen20 \dimen 4
+%D \multiply \dimen20 \dimen10
+%D \advance \dimen18 \dimen20
+%D \dimen20 \dimen 6
+%D \multiply \dimen20 \dimen 8
+%D \advance \dimen18 -\dimen20
+%D %
+%D \multiply \dimen12 -\dimen 2
+%D \multiply \dimen14 \dimen 0
+%D \advance \dimen12 \dimen14
+%D \dimen20 \dimen 2
+%D \multiply \dimen20 \dimen 8
+%D \advance \dimen12 \dimen20
+%D \dimen20 \dimen 0
+%D \multiply \dimen20 \dimen10
+%D \advance \dimen12 -\dimen20
+%D %
+%D %\ifdim\dimen16>1pt % oeps, can be < 1pt too
+%D \ifdim\dimen16=1pt \else
+%D \ifdim\dimen16>\MPconcatfactor pt
+%D \doMPreducedimen16
+%D \divide \dimen18 \dimen16 \doMPexpanddimen18
+%D \divide \dimen12 \dimen16 \doMPexpanddimen12
+%D \else
+%D \divide \dimen18 \dimen16 \doMPexpanddimen18 \doMPexpanddimen18
+%D \divide \dimen12 \dimen16 \doMPexpanddimen12 \doMPexpanddimen12
+%D \fi
+%D \fi
+%D %
+%D \edef#2{\withoutpt\the\dimen18}% % p_x^\prime
+%D \edef#4{\withoutpt\the\dimen12}} % p_y^\prime
+%D \stoptyping
+%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=#1pt % p_x
+%OLD \dimen14=#3pt % 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
+%D arithmetic instead of using real factors because it's faster.
+%D However, the actual macros test slower, possibly because I've
+%D omitted three nested loops. In my test files, my approach is more
+%D accurate. It is also far simpler and overflow does not seem to be a
+%D significant concern. The scale factors written by Metapost are (?)
+%D always $<=1$ (it scales coordinates internally) and coordinates are
+%D always likely to be less than \type {\maxdimen}.
+%D
+%D If this should ever cause problems, the scale factors can be reduced.
+
+\def\doMPconcat#1#2#3#4%
+ {\dimen12=#1pt % p_x % #1\onepoint
+ \dimen14=#3pt % p_y % #3\onepoint
+ \advance\dimen12 -\dimen8 % p_x - t_x
+ \advance\dimen14 -\dimen10 % p_y - t_y
+ \dimen18=\withoutpt\the\dimen6 \dimen12 % s_y(p_x - t_x)
+ \advance\dimen18 -\withoutpt\the\dimen4 \dimen14 % - r_y(p_y-t_y)
+ \dimen14=\withoutpt\the\dimen0 \dimen14 % s_x(p_y-t_y)
+ \advance\dimen14 -\withoutpt\the\dimen2 \dimen12 % - r_x(p_x-t_x)
+ % \MPreciprocal contains precomputed 1/D:
+ \dimen18=\MPreciprocal\dimen18
+ \dimen14=\MPreciprocal\dimen14
+ \edef#2{\withoutpt\the\dimen18}% % p_x^\prime
+ \edef#4{\withoutpt\the\dimen14}} % p_y^\prime
+
+% faster but not that often used
+%
+% \def\doMPconcat#1#2#3#4%
+% {\dimen12\dimexpr#1\points-\dimen 8\relax % p_x-t_x
+% \dimen14\dimexpr#3\points-\dimen10\relax % p_y-t_y
+% \dimen18\dimexpr\withoutpt\the\dimen6\dimen12-\withoutpt\the\dimen4\dimen14\relax % s_y(p_x-t_x)-r_y(p_y-t_y)
+% \dimen14\dimexpr\withoutpt\the\dimen0\dimen14-\withoutpt\the\dimen2\dimen12\relax % s_x(p_y-t_y)-r_x(p_x-t_x)
+% \edef#2{\withoutpt\the\dimexpr\MPreciprocal\dimen18\relax}% % p_x^\prime
+% \edef#4{\withoutpt\the\dimexpr\MPreciprocal\dimen14\relax}} % p_y^\prime
+
+%D One reason for Daniel to write this patch was that at small sizes
+%D the accuracy was less than optimal. Here is a test that demonstrates
+%D that his alternative is pretty good:
+%D
+%D \startlinecorrection
+%D \startMPcode
+%D for i = 5cm,1cm,5mm,1mm,.5mm,.1mm,.01mm :
+%D draw fullcircle scaled i withpen pencircle xscaled (i/10) yscaled (i/20) rotated 45 ;
+%D endfor ;
+%D \stopMPcode
+%D \stoplinecorrection
+
+%D The following explanation of the conversion process was
+%D posted to the \PDFTEX\ mailing list by Tanmoy. The original
+%D macro was part of a set of macro's that included sinus and
+%D cosinus calculations as well as scaling and translating. The
+%D \METAPOST\ to \PDF\ conversion however only needs
+%D transformation.
+
+%M \start \switchtobodyfont [ss]
+
+%D Given a point $(U_x, U_y)$ in user coordinates, the business
+%D of \POSTSCRIPT\ is to convert it to device space. Let us say
+%D that the device space coordinates are $(D_x, D_y)$. Then, in
+%D \POSTSCRIPT\ $(D_x, D_y)$ can be written in terms of
+%D $(U_x, U_y)$ in matrix notation, either as
+%D
+%D \placeformula
+%D \startformula
+%D \pmatrix{D_x&D_y&1\cr} = \pmatrix{U_x&U_y&1\cr}
+%D \pmatrix{s_x&r_x&0\cr
+%D r_y&s_y&0\cr
+%D t_x&t_y&1\cr}
+%D \stopformula
+%D
+%D or
+%D
+%D \placeformula
+%D \startformula
+%D \pmatrix{D_x\cr D_y\cr 1} = \pmatrix{s_x&r_y&t_x\cr
+%D r_x&s_y&t_y\cr
+%D 0 &0 &1 \cr}
+%D \pmatrix{U_x\cr
+%D U_y\cr
+%D 1 \cr}
+%D \stopformula
+%D
+%D both of which is a shorthand for the same set of equations:
+%D
+%D \placeformula
+%D \startformula
+%D D_x = s_x U_x + r_y U_y + t_x
+%D \stopformula
+%D
+%D \placeformula
+%D \startformula
+%D D_y = r_x U_x + s_y U_y + t_y
+%D \stopformula
+%D
+%D which define what is called an `affine transformation'.
+%D
+%D \POSTSCRIPT\ represents the `transformation matrix' as a
+%D six element matrix instead of a $3\times 3$ array because
+%D three of the elements are always~0, 0 and~1. Thus the above
+%D transformation is written in postscript as $[s_x\, r_x\,
+%D r_y\, s_y\, t_x\, t_y]$. However, when doing any
+%D calculations, it is useful to go back to the original
+%D matrix notation (whichever: I will use the second) and
+%D continue from there.
+%D
+%D As an example, if the current transformation matrix is
+%D $[s_x\, r_x\, r_y\, s_y\, t_x\, t_y]$ and you say \typ{[a b
+%D c d e f] concat}, this means:
+%D
+%D \startnarrower
+%D Take the user space coordinates and transform them to an
+%D intermediate set of coordinates using array $[a\, b\, c\, d\,
+%D e\, f]$ as the transformation matrix.
+%D
+%D Take the intermediate set of coordinates and change them to
+%D device coordinates using array $[s_x\, r_x\, r_y\, s_y\, t_x\, t_y]$
+%D as the transformation matrix.
+%D \stopnarrower
+%D
+%D Well, what is the net effect? In matrix notation, it is
+%D
+%D \placeformula
+%D \startformula
+%D \pmatrix{I_x\cr I_y\cr 1\cr} = \pmatrix{a&c&e\cr
+%D b&d&f\cr
+%D 0&0&1\cr}
+%D \pmatrix{U_x\cr
+%D U_y\cr
+%D 1 \cr}
+%D \stopformula
+%D
+%D \placeformula
+%D \startformula
+%D \pmatrix{D_y\cr D_y\cr 1\cr} = \pmatrix{s_x&r_y&t_x\cr
+%D r_x&s_y&t_y\cr
+%D 0 &0 &1 \cr}
+%D \pmatrix{I_x\cr
+%D I_y\cr
+%D 1 \cr}
+%D \stopformula
+%D
+%D where $(I_x, I_y)$ is the intermediate coordinate.
+%D
+%D Now, the beauty of the matrix notation is that when there is
+%D a chain of such matrix equations, one can always compose
+%D them into one matrix equation using the standard matrix
+%D composition law. The composite matrix from two matrices can
+%D be derived very easily: the element in the $i$\high{th}
+%D horizontal row and $j$\high{th} vertical column is
+%D calculated by`multiplying' the $i$\high{th} row of the first
+%D matrix and the $j$\high{th} column of the second matrix (and
+%D summing over the elements). Thus, in the above:
+%D
+%D \placeformula
+%D \startformula
+%D \pmatrix{D_x\cr D_y\cr 1} = \pmatrix{s_x^\prime&r_y^\prime&t_x^\prime\cr
+%D r_x^\prime&s_y^\prime&t_y^\prime\cr
+%D 0 &0 &0 \cr}
+%D \pmatrix{U_x\cr
+%D U_y\cr
+%D 1 \cr}
+%D \stopformula
+%D
+%D with
+%D
+%D \placeformula
+%D \startformula
+%D \eqalign
+%D {s_x^\prime & = s_x a + r_y b \cr
+%D r_x^\prime & = r_x a + s_y b \cr
+%D r_y^\prime & = s_x c + r_y d \cr
+%D s_y^\prime & = r_x c + s_y d \cr
+%D t_x^\prime & = s_x e + r_y f + t_x \cr
+%D t_y^\prime & = r_x e + s_y f + t_y \cr}
+%D \stopformula
+
+%D In fact, the same rule is true not only when one is going
+%D from user coordinates to device coordinates, but whenever
+%D one is composing two `transformations' together
+%D (transformations are `associative'). Note that the formula
+%D is not symmetric: you have to keep track of which
+%D transformation existed before (i.e.\ the equivalent of
+%D $[s_x\, r_x\, r_y\, s_y\, t_x\, t_y]$) and which was
+%D specified later (i.e.\ the equivalent of $[a\, b\, c\, d\,
+%D e\, f]$). Note also that the language can be rather
+%D confusing: the one specified later `acts earlier',
+%D converting the user space coordinates to intermediate
+%D coordinates, which are then acted upon by the pre||existing
+%D transformation. The important point is that order of
+%D transformation matrices cannot be flipped (transformations
+%D are not `commutative').
+%D
+%D Now what does it mean to move a transformation matrix
+%D before a drawing? What it means is that given a point
+%D $(P_x, P_y)$ we need a different set of coordinates
+%D $(P_x^\prime, P_y^\prime)$ such that if the transformation
+%D acts on $(P_x^\prime, P_y^\prime)$, they produce $(P_x,
+%D P_y)$. That is we need to solve the set of equations:
+%D
+%D \placeformula
+%D \startformula
+%D \pmatrix{P_x\cr P_y\cr 1\cr} = \pmatrix{s_x&r_y&t_x\cr
+%D r_x&s_y&t_y\cr
+%D 0 &0 &1 \cr}
+%D \pmatrix{P_x^\prime\cr
+%D P_y^\prime\cr
+%D 1 \cr}
+%D \stopformula
+%D
+%D Again matrix notation comes in handy (i.e. someone has
+%D already solved the problem for us): we need the inverse
+%D transformation matrix. The inverse transformation matrix can
+%D be calculated very easily:
+%D
+%D \placeformula
+%D \startformula
+%D \pmatrix{P_x^\prime\cr P_y^\prime\cr 1\cr} =
+%D \pmatrix{s_x^\prime&r_y^\prime&t_x^\prime\cr
+%D r_x^\prime&s_y^\prime&t_y^\prime\cr
+%D 0 &0 &1 \cr}
+%D \pmatrix{P_x\cr
+%D P_y\cr
+%D 1 \cr}
+%D \stopformula
+%D
+%D where, the inverse transformation matrix is given by
+%D
+%D \placeformula
+%D \startformula
+%D \eqalign
+%D {D & = s_x s_y - r_x r_y \cr
+%D s_x^\prime & = s_y / D \cr
+%D s_y^\prime & = s_x / D \cr
+%D r_x^\prime & = - r_x / D \cr
+%D r_y^\prime & = - r_y / D \cr
+%D t_x^\prime & = ( - s_y t_x + r_y t_y ) / D \cr
+%D t_y^\prime & = ( r_x t_x - s_x t_y ) / D \cr}
+%D \stopformula
+%D
+%D And you can see that when expanded out, this does
+%D give the formulas:
+%D
+%D \placeformula
+%D \startformula
+%D P_x^\prime = { { s_y(p_x-t_x) + r_y(t_y-p_y) } \over
+%D { s_x s_y-r_x r_y } }
+%D \stopformula
+%D
+%D \placeformula
+%D \startformula
+%D P_y^\prime = { { s_x(p_y-t_y) + r_x(t_x-p_x) } \over
+%D { s_x*s_y-r_x*r_y } }
+%D \stopformula
+%D
+%D The code works by representing a real number by converting
+%D it to a dimension to be put into a \DIMENSION\ register: 2.3 would
+%D be represented as 2.3pt for example. In this scheme,
+%D multiplying two numbers involves multiplying the \DIMENSION\
+%D registers and dividing by 65536. Accuracy demands that the
+%D division be done as late as possible, but overflow
+%D considerations need early division.
+%D
+%D Division involves dividing the two \DIMENSION\ registers and
+%D multiplying the result by 65536. Again, accuracy would
+%D demand that the numerator be multiplied (and|/|or the
+%D denominator divided) early: but that can lead to overflow
+%D which needs to be avoided.
+%D
+%D If nothing is known about the numbers to start with (in
+%D concat), I have chosen to divide the 65536 as a 256 in each
+%D operand. However, in the series calculating the sine and
+%D cosine, I know that the terms are small (because I never
+%D have an angle greater than 45 degrees), so I chose to
+%D apportion the factor in a different way.
+
+%M \stop
+
+%D The path is output using the values saved on the stack. If
+%D needed, all coordinates are recalculated.
+
+\def\finishMPpath
+ {\PDFcode{\ifcase\finiMPpath W n\or S\or f\or B\fi}}
+
+\def\processMPpath
+ {\checkMPpath
+ \ifcase\nofMPsegments\else
+ \flushMPpath
+ \closeMPpath
+ \finishMPpath
+ \fi
+ \let\handleMPsequence\dohandleMPsequence
+ \resetMPstack
+ \nofMPsegments\zerocount
+ \handleMPsequence}
+
+%D The following \METAPOST\ code is quite valid but, when
+%D processed and converted to \PDF, will make a file
+%D unprintable on a Hewlett Packard printer (from Acrobat
+%D $v<=5$). Who is to blame, the driver of the OS layer in
+%D between, is hard to determine, so we add an additional
+%D check.
+%D
+%D \starttyping
+%D clip currentpicture to origin -- cycle ;
+%D setbounds currentpicture to fullsquare scaled 5cm ;
+%D \stoptyping
+
+\def\checkMPpath
+ {\ifcase\finiMPpath
+ \ifnum\nofMPsegments<3 % n is one ahead
+ \message{omitting zero clip path}%
+ \nofMPsegments\zerocount
+ \fi
+ \fi}
+
+%D In \PDF\ the \type{cm} operator must precede the path
+%D specification. We therefore can output the \type{cm} at
+%D the moment we encounter it.
+
+\def\handleMPpathconcat
+ {\presetMPconcat
+ \PDFcode{\gMPs1 \gMPs2 \gMPs3 \gMPs4 \gMPs5 \gMPs6 cm}%
+ \resetMPstack}
+
+\def\handleMPpathscale
+ {\presetMPscale
+ \PDFcode{\gMPs1 0 0 \gMPs2 0 0 cm}%
+ \resetMPstack}
+
+%D This macro interprets the path and saves it as compact as
+%D possible.
+
+\def\dohandleMPpath#1%
+ {\ifcase\lccode`#1\relax
+ \@EA\dohandleMPpathA
+ \else
+ \@EA\dohandleMPpathB
+ \fi#1}
+
+\let\dohandleMPpathA\setMPsequence
+
+\def\dohandleMPpathB#1 %
+ {\def\somestring{#1}%
+ \ifx\somestring\PSlineto
+ \setMPkeyword0
+ \else\ifx\somestring\PScurveto
+ \setMPkeyword1
+ \else\ifx\somestring\PSrlineto
+ \setMPkeyword2
+ \else\ifx\somestring\PSmoveto
+ \setMPkeyword3
+ \else\ifx\somestring\PSclip
+ % \chardef\finiMPpath0 % already
+ \let\handleMPsequence\processMPpath
+ \else\ifx\somestring\PSgsave
+ \chardef\finiMPpath3
+ \else\ifx\somestring\PSgrestore
+ \else\ifx\somestring\PSfill
+ \ifcase\finiMPpath
+ \chardef\finiMPpath2
+ \let\handleMPsequence\processMPpath
+ \fi
+ \else\ifx\somestring\PSstroke
+ \ifcase\finiMPpath
+ \chardef\finiMPpath1
+ \fi
+ \let\handleMPsequence\processMPpath
+ \else\ifx\somestring\PSclosepath
+ \def\closeMPpath{\PDFcode{h}}%
+ \else\ifx\somestring\PSconcat
+ \cleanupMPconcat
+ \let\flushMPpath\flushconcatMPpath
+ \handleMPpathconcat
+ \else\ifx\somestring\PSscale
+ \let\flushMPpath\flushconcatMPpath
+ \handleMPpathscale
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \handleMPsequence}
+
+%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=0 \fi
+
+\def\lastPDFMPobject{0}
+
+%D The additional code needed can be made available in the
+%D (global) macro \type {\currentPDFresources}.
+
+\let\currentPDFresources\empty
+
+\newtoks\everyMPtoPDFconversion
+
+\def\convertMPtoPDF % #1#2#3%
+ {\bgroup
+ \ifx\pdfdecimaldigits\undefined\else \pdfdecimaldigits=5 \fi % new
+ \setbox\scratchbox\vbox\bgroup
+ \xdef\MPheight{\zeropoint}%
+ \xdef\MPwidth {\zeropoint}%
+ \forgetall
+ \offinterlineskip
+ \startMPresources
+ \doprocessMPtoPDFfile} %
+
+%D The next one is kind of private and probably will become obsolete):
+
+\def\processMPtoPDFfile % file xscale yscale
+ {\bgroup
+ \let\finishMPgraphic\egroup
+ \doprocessMPtoPDFfile}
+
+\let\setMPextensions\relax
+
+\def\doprocessMPtoPDFfile#1#2#3% file xscale yscale
+ {% the following line is needed for latex where onepoint is not
+ % onepoint but a number (maxdimen); some day i'll make a latex
+ % variant of this file so that i no longer have to deal with such
+ % issues; then i'll also speed up this module using a few context
+ % tricks
+ %
+ \let\onepoint\onerealpoint
+ %
+ \setMPspecials
+ \setMPextensions
+ \the\everyMPtoPDFconversion
+ \catcode`\^^M=\@@endofline
+ \startMPscanning
+ \let\do\empty
+ \xdef\MPxscale{#2}%
+ \xdef\MPyscale{#3}%
+ \xdef\MPxoffset{0}%
+ \xdef\MPyoffset{0}%
+ \xdef\MPyshift{\zeropoint}%
+ \donefalse
+ \let\handleMPsequence\dohandleMPsequence
+ \message{[MP to PDF]}% was: [MP to PDF #1] but there is a (#1) anyway
+ \input#1\relax}
+
+% strange rounding/clip in pdftex/viewer
+%
+% \def\finishMPgraphic
+% {\stopMPresources
+% \egroup
+% \ifx\pdftexversion\undefined\else\ifnum\pdftexversion<14 % for the moment
+% \chardef\makeMPintoPDFobject=0
+% \fi\fi
+% \ifcase\makeMPintoPDFobject\or\or\ifx\currentPDFresources\empty\else
+% \chardef\makeMPintoPDFobject=1
+% \fi\fi
+% \setbox\scratchbox=\vbox
+% {\forgetall
+% \hbox
+% {\PDFcode{q \MPxscale\space 0 0 \MPyscale\space \MPxoffset\space \MPyoffset\space cm}%
+% \lower\MPyshift\box\scratchbox % unscaled shift
+% \PDFcode{Q}}}%
+% \ht\scratchbox\MPheight
+% \wd\scratchbox\MPwidth
+% \dp\scratchbox\zeropoint
+% \ifcase\makeMPintoPDFobject
+% \box\scratchbox
+% \or
+% \immediate\pdfxform resources{\currentPDFresources}\scratchbox
+% \xdef\lastPDFMPobject{\the\pdflastxform}%
+% \pdfrefxform\lastPDFMPobject
+% \global\let\currentPDFresources\empty
+% \else
+% \box\scratchbox
+% \fi
+% \egroup}
+%
+% funny clip in viewer
+%
+% \setbox\scratchbox=\vbox
+% {\forgetall
+% \dimen0=\MPllx bp
+% \dimen2=\MPlly bp
+% \setbox\scratchbox=\hbox{\hskip-\dimen0\raise-\dimen2\box\scratchbox}%
+% \ht\scratchbox=\zeropoint
+% \dp\scratchbox=\zeropoint
+% \wd\scratchbox=\zeropoint
+% \hbox
+% {\PDFcode{q \MPxscale\space 0 0 \MPyscale\space 0 0 cm}%
+% \lower\MPshift\box\scratchbox
+% \PDFcode{Q}}}%
+
+% \let\PDFMPformoffset\zeropoint
+
+\def\PDFMPformoffset
+ {\ifx\objectoffset\undefined\zeropoint\else\objectoffset\fi}
+
+\chardef\blackoutMPgraphic\plusone % in supp-pdf it's \zerocount
+
+\def\finishMPgraphic
+ {\stopMPresources
+ \egroup
+ \setbox\scratchbox\vbox
+ {\forgetall
+ \hbox
+ {\PDFcode{q \MPxscale\space 0 0 \MPyscale\space \MPxoffset\space \MPyoffset\space cm}%
+ \ifcase\blackoutMPgraphic\or\PDFcode{0 g 0 G}\fi
+ \lower\MPyshift\box\scratchbox % unscaled shift
+ \PDFcode{Q}}}%
+ \ht\scratchbox\MPheight
+ \wd\scratchbox\MPwidth
+ \dp\scratchbox\zeropoint\relax
+ \dopackageMPgraphic\scratchbox
+ \egroup
+ \endinput}
+
+%D Alternative for \PDFTEX. We cannot come up with something more contexy
+%D because this module is also used in \LATEX.
+
+\def\dopackageMPgraphic#1% #1 = boxregister
+ {%\ifx\pdfxform\undefined
+ % \chardef\makeMPintoPDFobject\zerocount % no pdftex at all
+ %\else\ifx\pdftexversion\undefined
+ % \chardef\makeMPintoPDFobject\zerocount % no pdftex at all
+ %\else\ifnum\pdftexversion<14
+ % \chardef\makeMPintoPDFobject\zerocount % no resource support
+ %\else
+ % % keep the default value
+ %\fi\fi\fi
+ \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}
+%D
+%D Here are a few hooks for \CONTEXT\ specific things.
+
+\ifx\deleteMPgraphic\undefined
+ \def\deleteMPgraphic#1{}
+\fi
+
+\ifx\startMPresources\undefined
+ \let\startMPresources\relax
+ \let\stopMPresources\relax
+\fi
+
+%D \macros
+%D {twodigitMPoutput}
+%D
+%D We can limit the precision to two digits after the comma
+%D by saying:
+%D
+%D \starttyping
+%D \twodigitMPoutput
+%D \stoptyping
+%D
+%D This option only works in \CONTEXT\ combined with \ETEX.
+
+\def\twodigitMPoutput
+ {\let\!MP \twodigitrounding
+ \def\!MPgMPs##1{\twodigitrounding{\gMPs##1}}%
+ \def\!MPgMPa##1{\twodigitrounding{\gMPa##1}}}
+
+\let\!MP \empty
+\let\!MPgMPa\gMPa
+\let\!MPgMPs\gMPs
+
+%D This kind of conversion is possible because \METAPOST\
+%D does all the calculations. Converting other \POSTSCRIPT\
+%D files would drive both me and \TEX\ crazy.
+
+\ifx\undefined\StopLatexHack \else \StopLatexHack \fi
+
+\protect % \endinput
+
+%D \module
+%D [ file=supp-mpe,
+%D version=1999.07.10,
+%D title=\CONTEXT\ Support Macros,
+%D subtitle=METAPOST Special 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.
+
+% fuzzy and complicating is the fact that we need to support
+% context as well as mptopdf, so we cannot fall back on the
+% special drivers and color module (although there may be
+% good reasons to use a smaller context instead); also,
+% shading is handled here while it should move to the special
+% driver - to do!
+
+%D This module is still experimental and deals with some
+%D extensions to \METAPOST. When using \POSTSCRIPT\ output,
+%D these extensions can be supplied by means of proper
+%D preamble definitions, but when producing \PDF\ we have to
+%D set up the appropriate datastructures ourselves. It acts as
+%D a plug in into \type {supp-pdf}. As soon as we need more
+%D extensions, we will generalize these macro. Some
+%D definitions will move to the special drivers.
+
+%D For usage in plain \TEX, say something:
+%D
+%D \starttyping
+%D \input supp-pdf
+%D \input supp-mpe
+%D
+%D \MPcmykcolorstrue
+%D \MPspotcolorstrue
+%D \chardef\makeMPintoPDFobject\plusone
+%D \stoptyping
+
+\writestatus{loading}{MetaPost Special Extensions}
+
+%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
+%D
+%D The implementation below saves the data on the stack in
+%D a way similar to the macros in \type {supp-pdf.tex}, and
+%D just overload a few already defined handlers. That way,
+%D the existing macros are still generic. \footnote {Actually,
+%D the macros here are just as generic.}
+%D
+%D Currently the only extension concerns shading, which is
+%D accomplished by handling yet another value of \type
+%D {\finiMPpath}. The recource disctionary is stored and
+%D later picked up by the general \CONTEXT\ figure inclusion
+%D macros.
+
+\unprotect
+
+%D The \type {%%MetaPostSpecials: version.revision signal} line
+%D triggers this module into handling color specifications kind
+%D of special. We need this safeguard for non||special
+%D usage.
+
+\chardef\MPspecialversion = 0 % specials when >1
+\chardef\MPspecialrevision = 0 % specials when >1
+\chardef\MPspecialsignal = 0 % passed on by graphic
+
+\chardef\inlineMPspecials = 1 % only needed for stack resetting
+
+%D This macro handles the special definitions that are
+%D passed as comment.
+
+\def\dohandleMPspecialcomment#1
+ {\setMPargument{#1}%
+ \advance\scratchcounter \minusone
+ \ifcase\scratchcounter
+ \handleMPspecialcommand
+ \donetrue
+ \doresetMPstack
+ \let\handleMPsequence\dohandleMPsequence
+ \expandafter\handleMPsequence
+ \else
+ \expandafter\dohandleMPspecialcomment
+ \fi}
+
+\def\handleMPspecialcomment #1 % number of arguments
+ {\doresetMPstack
+ \scratchcounter#1\relax
+ \ifcase\scratchcounter % when zero, inline shading is used
+ \chardef\inlineMPspecials\plusone
+ \let\handleMPsequence\dohandleMPsequence
+ \expandafter\handleMPsequence
+ \else
+ \chardef\inlineMPspecials\zerocount
+ \expandafter\dohandleMPspecialcomment
+ \fi}
+
+%D When defined inline, we use another macro to handle the
+%D definitions. Actually, this macro is called by the
+%D previous ones.
+
+\def\handleMPspecialcommand
+ {\ifcase\inlineMPspecials\or
+ \advance\nofMParguments \minusone % pop the size
+ \fi
+ \ifundefined\MPspecial
+ \message{[unknown \MPspecial]}%
+ \else
+ \csname\MPspecial\endcsname
+ \fi
+ \ifcase\inlineMPspecials
+ \doresetMPstack % 0
+ \else
+ \resetMPstack % 1
+ \fi}
+
+%D This macro triggers special support. Currently, the
+%D version and revision number are not used. Any version number
+%D greater than zero will enable special support.
+
+\newconditional\manyMPspecials % \settrue\manyMPspecials
+
+\def\handleMPspecialscomment #1.#2 #3 % version.revision signal #4=div=1000|10000
+ {\doresetMPstack
+ \chardef\MPspecialversion #1%
+ \chardef\MPspecialrevision#2%
+ \chardef\MPspecialsignal #3%
+ \let\handleMPsequence\dohandleMPsequence
+ \ifnum#1=\plusone
+ \expandafter\handleMPsequence
+ \else
+ \expandafter\handleMPspecialscommentx
+ \fi}
+
+\def\handleMPspecialscommentx #1 % version 2
+% {\doifelsedoifelse{#1}{10000}{\settrue\manyMPspecials}{\setfalse\manyMPspecials}% local
+ {\ifnum10000=0#1\relax\settrue\manyMPspecials\else\setfalse\manyMPspecials\fi
+ \handleMPsequence}
+
+% one can say (in meta-ini):
+%
+% \prependtoks
+% _special_div_ := 1000\ifconditional\manyMPspecials0\fi ;
+% \to \MPextensions
+
+%D In case of \PDF, we need to prepare resourcs.
+
+\newtoks\MPstartresources
+\newtoks\MPstopresources
+
+\def\startMPresources
+ {\the\MPstartresources
+ \ifx\currentPDFresources\empty\else
+ \message{[unused resources]}%
+ \fi
+ \global\let\currentPDFresources\empty}
+
+\def\stopMPresources
+ {\let\currentPDFresources\empty
+ \the\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
+
+\ifx\normalhandleMPrgbcolor\undefined % in case we reload this module
+
+ \let\normalhandleMPrgbcolor \handleMPrgbcolor
+ \let\normalhandleMPcmykcolor\handleMPcmykcolor
+ \let\normalhandleMPgraycolor\handleMPgraycolor
+ \let\normalhandleMPspotcolor\handleMPspotcolor
+
+\fi
+
+%D When we are using \CONTEXT, we will fall back to the
+%D better color conversion routines. This also has the advantage
+%D that we don't have to parse and convert the file. In this
+%D alternative, \type {\!MP} is not (yet) supported. Because
+%D we can (for efficiency reasons) turn off strokecolor,
+%D something we cannot do in \METAPOST\ converted code.
+
+\newif\ifPDFMPstrokecolor \PDFMPstrokecolortrue
+
+%D [This code should move to meta-ini.]
+
+\ifCONTEXT % we can use this for a better xgstate handling
+
+ \def\checkPDFMPstrokecolor
+ {\ifPDFMPstrokecolor \PDFstrokecolortrue \fi}
+
+ \def\normalhandleMPrgbcolor
+ {{\checkPDFMPstrokecolor\execcolorR\gMPa1:\gMPa2:\gMPa3:0:0\od}}
+
+ \def\normalhandleMPcmykcolor
+ {{\checkPDFMPstrokecolor\execcolorC\gMPa1:\gMPa2:\gMPa3:\gMPa4:0:0\od}}
+
+ \def\normalhandleMPgraycolor
+ {{\checkPDFMPstrokecolor\execcolorS\gMPa1:0:0\od}}
+
+ \def\normalhandleMPspotcolor % ???
+ {{\checkPDFMPstrokecolor\execcolorP\gMPa1:\gMPa2:\gMPa3:\gMPa4:0:0\od}}
+
+\fi
+
+% In the previous macros we use the special drivers. A more
+% direct approach would have been:
+%
+% \def\doPDFstartrgbcolormode#1#2#3%
+% {\PDFcode{#1 #2 #3 rg #1 #2 #3 RG}}
+%
+% \def\doPDFstartcmykcolormode#1#2#3#4%
+% {\PDFcode{#1 #2 #3 #4 k #1 #2 #3 #4 K}}
+%
+% \def\doPDFstartgraycolormode#1%
+% {\PDFcode{#1 g #1 G}}
+%
+% \appendtoks
+% \let\dostartrgbcolormode \doPDFstartrgbcolormode
+% \let\dostartcmykcolormode\doPDFstartcmykcolormode
+% \let\dostartgraycolormode\doPDFstartgraycolormode
+% \to \everyMPtoPDFconversion
+
+%D Now we can handle special color signals. We only do this
+%D when special are detected.
+
+% \def\MPrgbnumber#1{\expandafter\doMPrgbnumber#1000.0000\relax}
+% \def\doMPrgbnumber#1.#2#3#4#5\relax{#2#3#4}
+
+%D We cannot use \type {\everyMPtoPDFconversion} because in \MPTOPDF\
+%D we don't have the \type {\appendtoks} macro available.
+
+\def\setMPextensions
+ {\ifconditional\manyMPspecials
+ \def\MPrgbnumber##1{\expandafter\doMPrgbnumber##10000.00000\relax}%
+ \def\doMPrgbnumber##1.##2##3##4##5##6\relax{##2##3##4##5}%
+ \else
+ \def\MPrgbnumber##1{\expandafter\doMPrgbnumber##1000.0000\relax}%
+ \def\doMPrgbnumber##1.##2##3##4##5\relax{##2##3##4}%
+ \fi}
+
+%D The naive case looks like:
+%D
+%D \starttyping
+%D \def\handleMPrgbcolor%
+%D {\setMPcolor
+%D \ifcase\MPspecialversion
+%D \resetMPcolor\normalhandleMPrgbcolor
+%D \else\ifnum\MPrgbnumber\lastMPrvalue=\MPspecialsignal
+%D % consider it to be a signal
+%D \else
+%D \resetMPcolor\normalhandleMPrgbcolor
+%D \fi\fi}
+%D \stoptyping
+%D
+%D However, since we want \CMYK\ support, we will use the
+%D following implementation:
+
+% \def\setMPcolor
+% {\edef\lastMPrvalue{\gMPa1}%
+% \edef\lastMPgvalue{\gMPa2}%
+% \edef\lastMPbvalue{\gMPa3}}
+%
+% speed up (hardly called, so no let is needed)
+
+\def\setMPcolor
+ {\edef\lastMPrvalue{\csname\@@MP01\endcsname}%
+ \edef\lastMPgvalue{\csname\@@MP02\endcsname}%
+ \edef\lastMPbvalue{\csname\@@MP03\endcsname}}
+
+\def\zeroMPrgbvalue{0.0}
+
+\def\resetMPcolor
+ {\let\lastMPrvalue\zeroMPrgbvalue
+ \let\lastMPgvalue\zeroMPrgbvalue
+ \let\lastMPbvalue\zeroMPrgbvalue}
+
+\resetMPcolor
+
+\def\@@MPSK{@MPSK@}
+\def\@@MPSP{@MPSP@}
+
+\def\interceptMPcmykcolor % todo : \ifMPcmykcolors
+ {\ifcase\MPrgbnumber\lastMPgvalue
+ % cannot happen
+ \or
+ % 1 == cmyk color spec
+ \ifMPcmykcolors \dointerceptMPcmykcolor \fi
+ \or
+ % 2 == spot color
+ \ifMPspotcolors \dointerceptMPspotcolor \fi
+ \or
+ % 3 == rgb transparency
+ \invokeMPtransparencyspecial
+ \or
+ % 4 == cmyk transparency
+ \ifMPcmykcolors \invokeMPtransparencyspecial \fi
+ \or
+ % 5 == spot transparency
+ \ifMPspotcolors \invokeMPtransparencyspecial \fi
+ \else
+ % \writestatus{MPtoPDF}{unknown direct special}%
+ \fi}
+
+% ifcsname
+
+\def\dointerceptMPcmykcolor
+ {\revokeMPtransparencyspecial
+ \@EA\ifx\csname\@@MPSK\number\MPrgbnumber\lastMPbvalue\endcsname\relax\else
+ \@EA\@EA\@EA\setMPcmyk\csname\@@MPSK\number\MPrgbnumber\lastMPbvalue\endcsname
+ \normalhandleMPcmykcolor
+ \fi}
+
+\def\dointerceptMPspotcolor
+ {\revokeMPtransparencyspecial
+ \@EA\ifx\csname\@@MPSP\number\MPrgbnumber\lastMPbvalue\endcsname\relax\else
+ \@EA\@EA\@EA\setMPspot\csname\@@MPSP\number\MPrgbnumber\lastMPbvalue\endcsname
+ \normalhandleMPspotcolor
+ \fi}
+
+\def\handleMPrgbcolor
+ {\resetMPcolor
+ \ifcase\MPspecialversion
+ \normalhandleMPrgbcolor
+ \else
+ \setMPcolor
+ \ifnum\MPrgbnumber\lastMPrvalue=\MPspecialsignal\relax
+ \interceptMPcmykcolor
+ \else
+ \revokeMPtransparencyspecial
+ \normalhandleMPrgbcolor
+ \fi
+ \fi}
+
+\def\handleMPgraycolor
+ {\resetMPcolor
+ \ifcase\MPspecialversion \else \revokeMPtransparencyspecial \fi
+ \normalhandleMPgraycolor}
+
+\def\handleMPcmykcolor
+ {\resetMPcolor
+ \ifcase\MPspecialversion \else \revokeMPtransparencyspecial \fi
+ \normalhandleMPcmykcolor}
+
+%D Specials are define and recalled using:
+
+\def\MPspecial
+ {MP special \gMPs\nofMParguments}
+
+\def\defineMPspecial#1#2%
+ {\setvalue{MP special #1}{#2}}
+
+%D The path processing macro is slightly extended.
+
+\newtoks \invokeMPspecials
+
+\def\finishMPpath
+ {\PDFcode
+ {\ifcase\finiMPpath W n\or S\or f\or B\else W n\fi
+ \extraMPpathcode}}
+
+\def\processMPpath
+ {\checkMPpath % !
+ \ifcase\nofMPsegments\else
+ \let\extraMPpathcode\empty
+ \ifcase\MPspecialversion\else
+ \ifnum\MPrgbnumber\lastMPrvalue=\MPspecialsignal
+ \ifnum\MPrgbnumber\lastMPgvalue>10 % really needed
+ \scratchcounter\MPrgbnumber\lastMPbvalue
+ \edef\currentMPspecial{\the\scratchcounter}%
+ \ifnum\finiMPpath=2 % to outer level
+ \the\invokeMPspecials
+ \fi
+ \fi
+ \fi
+ \fi
+ \flushMPpath
+ \closeMPpath
+ \finishMPpath
+ \fi
+ \let\handleMPsequence\dohandleMPsequence
+ \resetMPstack
+ \nofMPsegments0
+ \handleMPsequence}
+
+%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
+\let\currentMPshades\empty
+
+\def\startMPshading#1%
+ {\edef\currentMPspecial{\gMPs{#1}}}
+
+\def\stopMPshading
+ {\global\advance\currentPDFshade \plusone
+ \setxvalue{obj:Sh:\currentMPspecial}%
+ {/Sh\the\currentPDFshade\space\the\pdflastobj\space0 R }%
+ \setxvalue{mps:Sh:\currentMPspecial}%
+ {\the\currentPDFshade}}
+
+\appendtoks
+ \global\let\currentMPshades\empty
+\to \MPstartresources
+
+\appendtoks
+ \ifx\currentMPshades\empty \else
+ \xdef\currentPDFresources{\currentPDFresources
+ /Shading <<\currentMPshades>>}%
+ \fi
+\to \MPstopresources
+
+\def\invokeMPshadespecial
+ {\ifundefined{mps:Sh:\currentMPspecial}\else
+ \edef\currentMPshade{\getvalue{obj:Sh:\currentMPspecial}}%
+ \doifinstringelse\currentMPshade\currentMPshades \donothing
+ {\xdef\currentMPshades{\currentMPshades\currentMPshade}}%
+ \def\extraMPpathcode{/Sh\getvalue{mps:Sh:\currentMPspecial} sh Q}%
+ \chardef\finiMPpath\zerocount
+ \PDFcode{q /Pattern cs}%
+ \fi}
+
+\appendtoks \invokeMPshadespecial \to \invokeMPspecials
+
+%D We need to convert the \CMYK\ specials into colors, because
+%D we have to do it twice, we define a macro.
+
+\def\checkMPshadingcolor#1#2#3#4#5%
+ {\edef\tempMPrvalue{\csname\@@MP0#1\endcsname}%
+ \edef\tempMPgvalue{\csname\@@MP0#2\endcsname}%
+ \edef\tempMPbvalue{\csname\@@MP0#3\endcsname}%
+ \global\let\MPresolvedspace\MPgrayspace
+ \global\let\MPresolvedcolor\!!zerocount
+ \ifnum\MPrgbnumber\tempMPrvalue=\MPspecialsignal\relax
+ \ifcase\MPrgbnumber\tempMPgvalue
+ \or % 1 = cmyk
+ \ifMPcmykcolors
+ \expanded{\resolveMPcmykcolor\getvalue{\@@MPSK\number\MPrgbnumber\tempMPbvalue}}\end
+ \fi
+ \or % 2 = spot
+ \ifMPspotcolors
+ \expanded{\resolveMPspotcolor\getvalue{\@@MPSP\number\MPrgbnumber\tempMPbvalue}}\end
+ \fi
+ \or
+ % 3 = rgb transparency
+ % to do
+ \or
+ % 4 == cmyk transparency
+ % \ifMPcmykcolors
+ % to do
+ % \fi
+ \or
+ % 5 == spot transparency
+ % \ifMPspotcolors
+ % to do
+ % \fi
+ \fi
+ \else
+ \ifx\tempMPrvalue\tempMPgvalue
+ \ifx\tempMPrvalue\tempMPbvalue
+ \expanded{\resolveMPgraycolor\tempMPbvalue}\end
+ \else
+ \expanded{\resolveMPrgbcolor\tempMPrvalue\space\tempMPgvalue\space\tempMPbvalue}\end
+ \fi
+ \else
+ \expanded{\resolveMPrgbcolor\tempMPrvalue\space\tempMPgvalue\space\tempMPbvalue}\end
+ \fi
+ \fi
+ \let#4\MPresolvedcolor
+ \let#5\MPresolvedspace}
+
+%D We also need to make sure that we have two \RGB\ or
+%D \CMYK colors, since we have to set the colorspace.
+
+\def\setMPshadingcolors#1#2#3#4#5#6% color space
+ {\checkMPshadingcolor{#1}{#2}{#3}\MPshadeAc\MPshadeAs
+ \checkMPshadingcolor{#4}{#5}{#6}\MPshadeBc\MPshadeBs
+ \ifx\MPshadeAs\MPshadeBs
+ \let\MPshadeA\MPshadeAc
+ \let\MPshadeB\MPshadeBc
+ \let\MPshadeC\MPshadeAs
+ \else\ifx\MPshadeAs\MPgrayspace
+ \ifx\MPshadeBs\MPrgbspace
+ \edef\MPshadeA{\MPshadeAc\space\MPshadeAc\space\MPshadeAc}%
+ \else
+ \negatecolorcomponent\MPshadeAc
+ \edef\MPshadeA{0 0 0 \MPshadeAc}%
+ \fi
+ \let\MPshadeB\MPshadeBc
+ \let\MPshadeC\MPshadeBs
+ \else\ifx\MPshadeBs\MPgrayspace
+ \let\MPshadeA\MPshadeAc
+ \ifx\MPshadeAs\MPrgbspace
+ \edef\MPshadeB{\MPshadeBc\space\MPshadeBc\space\MPshadeBc}%
+ \else
+ \negatecolorcomponent\MPshadeBc
+ \edef\MPshadeB{0 0 0 \MPshadeBc}%
+ \fi
+ \let\MPshadeC\MPshadeAs
+ \else
+ % different color spaces
+ \def\MPshadeA{1}%
+ \def\MPshadeB{1}%
+ \let\MPshadeC\MPgrayspace
+ \fi\fi\fi}
+
+\let\MPshadeA\MPcmykWhite
+\let\MPshadeB\MPcmykBlack
+\let\MPshadeC\MPgrayspace
+
+%D The reason why this macro is a bit complicates is that we
+%D handle black and white situations (otherwise we would have
+%D to use \CMYK\ b/w in case of a \CMYK\ shade).
+
+%D Here are the special handlers:
+
+\defineMPspecial{30}
+ {\startMPshading{14}% type 2
+ \setMPshadingcolors{4}{5}{6}{9}{10}{11}%
+ \immediate\pdfobj
+ {<</FunctionType 2
+ /Domain [\gMPs1 \gMPs2]
+ /C0 [\MPshadeA]
+ /C1 [\MPshadeB]
+ /N \gMPs3>>}%
+ \immediate\pdfobj
+ {<</ShadingType 2
+ /ColorSpace /\MPshadeC\space
+ /Function \the\pdflastobj\space 0 R
+ /Coords [\gMPs7 \gMPs8 \gMPs{12} \gMPs{13}]
+ /Extend [true true]>>}%
+ \stopMPshading}
+
+\defineMPspecial{31}
+ {\startMPshading{16}% type 3
+ \setMPshadingcolors{4}{5}{6}{10}{11}{12}%
+ \immediate\pdfobj
+ {<</FunctionType 2
+ /Domain [\gMPs1 \gMPs2]
+ /C0 [\MPshadeA]
+ /C1 [\MPshadeB]
+ /N \gMPs3>>}%
+ \immediate\pdfobj
+ {<</ShadingType 3
+ /ColorSpace /\MPshadeC\space
+ /Function \the\pdflastobj\space 0 R
+ /Coords [\gMPs7 \gMPs8 \gMPs9 \gMPs{13} \gMPs{14} \gMPs{15}]
+ /Extend [true true]>>}%
+ \stopMPshading}
+
+%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.
+
+\def\invokeMPfigurespecial%
+ {\getvalue{mps:gr:\currentMPspecial}} % or \relax
+
+\appendtoks \invokeMPfigurespecial \to \invokeMPspecials
+
+\defineMPspecial{10}
+ {\setxvalue{mps:gr:\gMPs8}%
+ {\noexpand\handleMPfigurespecial
+ {\gMPs1}{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}%
+ \noexpand\setxvalue{mps:gr:\gMPs8}{}}}
+
+\def\handleMPfigurespecial#1#2#3#4#5#6#7% todo : combine with ext fig
+ {\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{mps:hl:\gMPs6}%
+ {\noexpand\handleMPhyperlink
+ {\gMPs1}{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}%
+ \noexpand\setxvalue{mps:hl:\gMPs6}{}}}
+
+\def\handleMPhyperlink#1#2#3#4#5%
+ {%\ifcase\pdfoutput\or
+ \setbox\scratchbox\hbox
+ {\setbox\scratchbox\null
+ \scratchdimen#1\onebasepoint\scratchdimen-\scratchdimen
+ \advance\scratchdimen#3\onebasepoint
+ \wd\scratchbox\scratchdimen
+ \scratchdimen#2\onebasepoint\scratchdimen-\scratchdimen
+ \advance\scratchdimen#4\onebasepoint
+ \ht\scratchbox\scratchdimen
+ \incolorfalse
+ \gotobox{\box\scratchbox}[#5]}%
+ \setbox\scratchbox\hbox
+ {\scratchdimen\MPxoffset\onebasepoint\advance\scratchdimen#1\onebasepoint
+ \hskip\scratchdimen
+ \scratchdimen\MPyoffset\onebasepoint\advance\scratchdimen#2\onebasepoint
+ \raise\scratchdimen\box\scratchbox}%
+ \smashbox\scratchbox
+ \box\scratchbox
+ }%\fi}
+
+\def\invokeMPhyperlinkspecial%
+ {\getvalue{mps:hl:\currentMPspecial}} % or \relax
+
+\appendtoks \invokeMPhyperlinkspecial \to \invokeMPspecials
+
+%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\gMPs1}{\gMPs2 \gMPs3 \gMPs4 \gMPs5 }%
+ \fi}
+
+\def\setMPcmyk#1 #2 #3 #4 %
+ {\setvalue{\@@MP01}{#1}%
+ \setvalue{\@@MP02}{#2}%
+ \setvalue{\@@MP03}{#3}%
+ \setvalue{\@@MP04}{#4}}
+
+\defineMPspecial{2}
+ {\ifMPspotcolors
+ \setxvalue{\@@MPSP\gMPs1}{\gMPs2 \gMPs3 \gMPs4 \gMPs5 }% space is essential
+ \checkMPspot{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}%
+ \fi}
+
+\def\setMPspot#1 #2 #3 #4 %
+ {\setvalue{\@@MP01}{#1}%
+ \setvalue{\@@MP02}{#2}%
+ \setvalue{\@@MP03}{#3}%
+ \setvalue{\@@MP04}{#4}}
+
+\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}
+
+%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
+
+\ifx\dosavepositionwhd\undefined
+ \let\dosavepositionwhd\gobblesevenarguments
+\fi
+
+\defineMPspecial{50} % x y width height label
+ {\bgroup
+ \scratchdimen\MPllx\onebasepoint\scratchdimen-\scratchdimen
+ % \scratchdimen-\MPllx\onebasepoint % moet ook werken
+ \advance\scratchdimen\gMPs1\onebasepoint
+ \edef\x{\number\scratchdimen}%
+ \scratchdimen\gMPs2\onebasepoint
+ \scratchdimen-\scratchdimen
+ \advance\scratchdimen\MPury\onebasepoint
+ \edef\y{\number\scratchdimen}%
+ \scratchdimen\gMPs3\onebasepoint
+ \edef\w{\number\scratchdimen}%
+ \scratchdimen\gMPs4\onebasepoint
+ \edef\h{\number\scratchdimen}%
+ \dosavepositionwhd{\gMPs5}0\x\y\w\h0%
+ \egroup}
+
+%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 We save all the three components needed in one macro,
+%D just to save hash space.
+
+\def\@@MPST{@MPST@}
+
+\def\assignMPStransparency#1#2#3%
+ {\edef\PDFtransparencyidentifier{#1}%
+ \edef\PDFtransparencyreference {#2}%
+ \edef\PDFtransparencycolorspecs{#3}}
+
+\def\PDFtransparencyspec % todo
+ {\ifx\MPresolvedspace\MPgrayspace
+ \MPresolvedcolor\space g
+ \MPresolvedcolor\space G%
+ \else\ifx\MPresolvedspace\MPrgbspace
+ \MPresolvedcolor\space rg
+ \MPresolvedcolor\space RG%
+ \else\ifx\MPresolvedspace\MPcmykspace
+ \MPresolvedcolor\space k
+ \MPresolvedcolor\space K%
+ \else\ifx\MPresolvedspace\empty\else
+ /\MPresolvedspace\space cs
+ /\MPresolvedspace\space CS
+ \PDFgetspotcolorspec\MPresolvedcolor
+ \fi\fi\fi\fi}
+
+\defineMPspecial{3} % rgb
+ {\edef\currentMPspecial{\gMPs6}%
+ \presetPDFtransparency{\gMPs1}{\gMPs2}%
+ \expanded{\resolveMPrgbcolor\gMPs3 \gMPs4 \gMPs5}\end
+ \setevalue{\@@MPST\currentMPspecial}% was \setxvalue, bug !
+ {\noexpand\assignMPStransparency
+ {\PDFtransparencyidentifier}%
+ {\PDFtransparencyreference}%
+ {\PDFtransparencyspec}}}
+
+\defineMPspecial{4} % cmyk
+ {\edef\currentMPspecial{\gMPs7}%
+ \presetPDFtransparency{\gMPs1}{\gMPs2}%
+ \expanded{\resolveMPcmykcolor\gMPs3 \gMPs4 \gMPs5 \gMPs6}\end
+ \setevalue{\@@MPST\currentMPspecial}% was \setxvalue, bug !
+ {\noexpand\assignMPStransparency
+ {\PDFtransparencyidentifier}%
+ {\PDFtransparencyreference}%
+ {\PDFtransparencyspec}}}
+
+\defineMPspecial{5} % spot
+ {\edef\currentMPspecial{\gMPs7}%
+ \presetPDFtransparency{\gMPs1}{\gMPs2}%
+ \checkMPspot{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}%
+ \setevalue{\@@MPST\currentMPspecial}% was \setxvalue, bug !
+ {\noexpand\assignMPStransparency
+ {\PDFtransparencyidentifier}%
+ {\PDFtransparencyreference}%
+ {\PDFtransparencyspec}}}
+
+% beware: for the moment only supported in pdftex; needs a cleanup!
+
+\def\registerMPcolorspace
+ {\doifobjectreferencefoundelse{PDFCS}\MPspotspace
+ {\doPDFgetobjectreference{PDFCS}\MPspotspace\PDFobjectreference
+ \xdef\currentMPcolorspaces
+ {\currentMPcolorspaces\MPspotspacespec\PDFobjectreference\space}}
+ \donothing}
+
+%D We need to add resource specifications!
+
+\appendtoks
+ \global\let\currentMPcolorspaces\empty
+\to \MPstartresources
+
+\appendtoks
+ \ifx\currentMPcolorspaces\empty \else
+ \xdef\currentPDFresources{\currentPDFresources
+ /ColorSpace <<\currentMPcolorspaces>>}%
+ \fi
+\to \MPstopresources
+
+%D For efficiency reasons, we fall back on the allocation
+%D mechanisms already present. For use within \MPTOPDF, we
+%D provide a fall back routine.
+
+\let\currentMPtransparencies\empty
+
+% this one triggers a new graphic state
+
+\def\invokeMPtransparencyspecial
+ {\scratchcounter\MPrgbnumber\lastMPbvalue
+ \edef\currentMPspecial{\the\scratchcounter}%
+ \ifundefined{\@@MPST\currentMPspecial}\else
+ \getvalue{\@@MPST\currentMPspecial}%
+ \doifinstringelse\PDFtransparencyidentifier\currentMPtransparencies
+ \donothing\registerMPtransparencyresource % slow
+ \PDFcode
+ {\PDFtransparencycolorspecs\space
+ \PDFtransparencyidentifier\space gs}%
+ % potential optimization
+ % \setevalue{\@@MPST\currentMPspecial}%
+ % {\PDFcode
+ % {\PDFtransparencycolorspecs\space
+ % \PDFtransparencyidentifier\space gs}}%
+ % \getvalue{\@@MPST\currentMPspecial}%
+ \let\revokeMPtransparencyspecial\dorevokeMPtransparencyspecial
+ \fi}
+
+% this one does a reset
+
+\let\revokeMPtransparencyspecial\relax
+
+\appendtoks
+ \revokeMPtransparencyspecial
+\to \MPstopresources
+
+\def\dorevokeMPtransparencyspecial % only called if state is set
+ {\ifx\PDFtransparencyresetidentifier\empty\else
+ \doifinstringelse\PDFtransparencyresetidentifier\currentMPtransparencies
+ \donothing\registerMPtransparencyresetresource
+ \PDFcode{\PDFtransparencyresetidentifier\space gs}%
+ % potential optimization
+ % \def\dorevokeMPtransparencyspecial
+ % {\PDFcode
+ % {\PDFtransparencycolorspecs\space
+ % \PDFtransparencyidentifier\space gs}}%
+ \let\dorevokeMPtransparencyspecial\dodorevokeMPtransparencyspecial
+ \let\revokeMPtransparencyspecial\relax % invoke sets it
+ \fi}
+
+% and this one does a simplified reset
+
+\def\dodorevokeMPtransparencyspecial % used after first invocation
+ {\PDFcode{\PDFtransparencyresetidentifier\space gs}%
+ \let\revokeMPtransparencyspecial\relax} % invoke sets it
+
+% add a resource entry
+
+\def\registerMPtransparencyresource
+ {\xdef\currentMPtransparencies
+ {\currentMPtransparencies
+ \PDFtransparencyidentifier\space
+ \PDFtransparencyreference\space}}
+
+\def\registerMPtransparencyresetresource
+ {\xdef\currentMPtransparencies
+ {\currentMPtransparencies
+ \PDFtransparencyresetidentifier\space
+ \PDFtransparencyresetreference\space}}
+
+\appendtoks \invokeMPtransparencyspecial \to \invokeMPspecials
+
+\ifCONTEXT \else
+
+ \def\@@MPSTN{@MPSTN@}
+ \def\@@MPSTO{@MPSTO@}
+
+ \newcount\PDFcurrenttransparency
+
+ \let\PDFtransparencyresetidentifier\empty
+ \let\PDFtransparencyresetreference \empty
+
+ \let\PDFtransparencyidentifier\empty
+ \let\PDFtransparencyreference \empty
+
+ \def\initializePDFtransparency
+ {\global\let\initializePDFtransparency\relax
+ \presetPDFtransparency{1}{1}%
+ \xdef\PDFtransparencyresetidentifier{/Tr0}%
+ \xdef\PDFtransparencyresetreference{\the\pdflastobj\space 0 R}}
+
+ \def\presetPDFtransparency#1#2%
+ {\initializePDFtransparency
+ \@EA\ifx\csname\@@MPSTO#1:#2\endcsname\relax
+ \global\advance\PDFcurrenttransparency \plusone
+ \immediate\pdfobj{\PDFtransparencydictionary{#1}{#2}{}}%
+ \setxvalue{\@@MPSTN#1:#2}{\the\PDFcurrenttransparency}%
+ \setxvalue{\@@MPSTO#1:#2}{\the\pdflastobj}%
+ \fi
+ \edef\PDFtransparencyidentifier{/Tr\getvalue{\@@MPSTN#1:#2}}%
+ \edef\PDFtransparencyreference{\getvalue{\@@MPSTO#1:#2} 0 R}}
+
+ \def\PDFtransparencydictionary#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>>}
+
+\fi
+
+\appendtoks
+ \global\let\currentMPtransparencies\empty
+\to \MPstartresources
+
+\appendtoks
+ \ifx\currentMPtransparencies\empty \else
+ \xdef\currentPDFresources{\currentPDFresources
+ /ExtGState <<\currentMPtransparencies>>}%
+ \fi
+\to \MPstopresources
+
+%D In all cases, we need to keep track of the resources
+%D used.
+
+%D A few auxiliary macros:
+
+\def\MPgrayspace{DeviceGray}
+\def\MPrgbspace {DeviceRGB}
+\def\MPcmykspace{DeviceCMYK}
+\let\MPspotspace\MPgrayspace
+
+\def\MPcmykBlack{0 0 0 0}
+\def\MPcmykWhite{0 0 0 1}
+
+\ifCONTEXT
+
+ \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
+ \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\end
+ {\startMPcolorresolve
+ \execcolorR#1:#2:#3:0:0\od
+ \stopMPcolorresolve}
+
+ \def\resolveMPcmykcolor#1 #2 #3 #4\end
+ {\startMPcolorresolve
+ \execcolorC#1:#2:#3:#4:0:0\od
+ \stopMPcolorresolve}
+
+ \def\resolveMPgraycolor#1\end
+ {\startMPcolorresolve
+ \execcolorS#1:0:0\od
+ \stopMPcolorresolve}
+
+ \def\resolveMPspotcolor#1 #2 #3 #4\end
+ {\startMPcolorresolve
+ \ifnum#2>\plusone
+ \checkmultitonecolor{#1}%
+ \fi
+ \execcolorP#1:#2:#3:#4:0:0\od
+ \stopMPcolorresolve}
+
+\else
+
+ \def\resolveMPspotcolor#1 #2\end
+ {\global\let\MPresolvedspace\MPgrayspace
+ \xdef\MPresolvedcolor{0}}
+
+ \def\resolveMPrgbcolor#1 #2 #3\end
+ {\global\let\MPresolvedspace\MPrgbspace
+ \xdef\MPresolvedcolor{#1 #2 #3}}
+
+ \def\resolveMPcmykcolor#1 #2 #3 #4\end
+ {\global\let\MPresolvedspace\MPcmykspace
+ \xdef\MPresolvedcolor{#1 #2 #3 #4}}
+
+ \def\resolveMPgraycolor#1\end
+ {\global\let\MPresolvedspace\MPgrayspace
+ \xdef\MPresolvedcolor{#1}} % should be inverted
+
+\fi
+
+%D Begin of soon obsolete code.
+
+%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=#2bp\dimen2=-\dimen2 % \dimen2=-#2bp also works since tex handles --
+ \dimen4=#3bp\dimen4=-\dimen4 % \dimen4=-#3bp also works since tex handles --
+ \dimen6=#4bp\advance\dimen6 \dimen2
+ \dimen8=#5bp\advance\dimen8 \dimen4
+ \setPDFboundingbox{\dimen2}{\dimen4}{\dimen6}{\dimen8}\PDFxscale\PDFyscale}
+
+%D End of soon obsolete code.
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/meta-tex.tex b/Master/texmf-dist/tex/context/base/meta-tex.tex
new file mode 100644
index 00000000000..c49021d2e8a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/meta-tex.tex
@@ -0,0 +1,206 @@
+%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}
+
+\initializeboxstack\currentTeXtext
+
+\newtoks\collectedmptexts
+
+\long\def\startTeXtexts#1\stopTeXtexts
+ {\global\collectedmptexts\expandafter{\the\collectedmptexts#1}}
+
+\def\dostartTeXtexts
+ {\global\setfalse\TeXtextdone
+ \startnointerference
+ \the\everyMPTEXgraphic
+ \openTeXtexts
+ \ifrunMPgraphics
+ \initializeboxstack\currentTeXtext
+ \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\currentTeXtext{#1}{\box\nextbox}}
+% \hbox}
+
+\long\def\TeXtext
+ {\dosingleempty\doTeXtext}
+
+\long\def\doTeXtext[#1]#2#3%
+ {\begingroup
+ \setbox\nextbox\hbox
+ {\setnormalcatcodes
+ \newlinechar=`\^^M
+ \everyeof\emptytoks
+ %\def\ascii{#3}%
+ %\scantokens\expandafter{\ascii}}%
+ \scantokens{#3}}%
+ \global\settrue\TeXtextdone
+ \edef\currenttextxt{\number#2}%
+ \executeifdefined{textext::#1}{\getvalue{textext::depth}}%
+ \savebox\currentTeXtext\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
+
+ % \def\getTeXtext
+ % {\localMPtxtfont
+ % \setbox\mptextbox\hbox{\foundbox\currentTeXtext{\number\nofTeXtexts}}%
+ % \setbox\scratchbox\hbox{\MPtextdata}%
+ % \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}}%
+
+ \def\getTeXtext
+ {\localMPtxtfont
+ \setbox\mptextbox\hbox{\foundbox\currentTeXtext{\number\nofTeXtexts}}%
+ \setbox\scratchbox\hbox{\MPtextdata}%
+ \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
+
+\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\filtersometxt#1\sometxt#2#3#4%
+% {\ifx#3\empty
+% \else
+% \increment\txtcounter
+% \TeXtext\txtcounter{#2}%
+% \expandafter\filtersometxt
+% \fi#3#4}
+
+\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}
+
+% \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
diff --git a/Master/texmf-dist/tex/context/base/meta-txt.tex b/Master/texmf-dist/tex/context/base/meta-txt.tex
index 6f8be2e67b6..e6817563575 100644
--- a/Master/texmf-dist/tex/context/base/meta-txt.tex
+++ b/Master/texmf-dist/tex/context/base/meta-txt.tex
@@ -26,9 +26,9 @@
\unprotect
-\appendtoks
+\startMPextensions
if unknown context_text: input mp-text; fi;
-\to \MPextensions
+\stopMPextensions
%%%%%%%
diff --git a/Master/texmf-dist/tex/context/base/mult-com.tex b/Master/texmf-dist/tex/context/base/mult-com.tex
index 3f8f616806a..0582c34727e 100644
--- a/Master/texmf-dist/tex/context/base/mult-com.tex
+++ b/Master/texmf-dist/tex/context/base/mult-com.tex
@@ -54,1798 +54,2371 @@
\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
-ininner: inbinnen ininner
- ininner ininner
- ininner ininner
-inouter: inbuiten inouter
- inouter inouter
- inouter inouter
+ 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
-defineinmargin: definieerinmarge defineinmargin
- defineinmargin defineinmargin
- defineinmargin defineinmargin
+ 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
- atleftmargin: oplinkermarge atleftmargin
- atleftmargin atleftmargin
- atleftmargin atleftmargin
-atrightmargin: oprechtermarge atrightmargin
- atrightmargin atrightmargin
- atrightmargin atrightmargin
-
+ 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
-emptylines: legeregels emptylines
- emptylines emptylines
- emptylines emptylines
+ 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
- couplepage: koppelpagina couplepage
+ 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
- getnumber: haalnummer getnumber
- getnumber getnumber
- getnumber getnumber
-incrementnumber: verhoognummer incrementnumber
- nummererhoehen zvysujicicislo
- incrementanumero numarincrement
-decrementnumber: verlaagnummer decrementnumber
- decrementnumber decrementnumber
- decrementnumber decrementnumber
- resetnumber: resetnummer resetnumber
- resetnumber resetnumber
- resetnumber resetnumber
- setnumber: setnummer setnumber
- setnumber setnumber
- setnumber setnumber
- setupnumber: stelnummerin setupnumber
- setupnumber setupnumber
- impostanumerazione setupnumber
+ 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
-subpagenumber: subpaginanummer subpagenumber
- subpagenumber subpagenumber
- subpagenumber subpagenumber
+ 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
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 % GB
+ 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
-% new
+ ran
headsym: kopsym headsym
headsym headsym
headsym headsym
-% new
+ headsym
defineitemgroup: definieeritemgroep defineitemgroup
defineitemgroup defineitemgroup
defineitemgroup defineitemgroup
+ defineitemgroup
setupitemgroup: stelitemgroepin setupitemgroup
setupitemgroup setupitemgroup
setupitemgroup setupitemgroup
+ setupitemgroup
setupitemgroups: stelitemgroepenin setupitemgroups
setupitemgroups setupitemgroups
setupitemgroups setupitemgroups
-
-% startitemize: startopsomming startitemize
-% startaufzaehlung startvycet
-% iniziaelenco startenumerare
-% setupitemize: stelopsommingin setupitemize
-% stelleaufzaehlungein nastavvycet
-% impostaelenco setareenumerare
-% stopitemize: stopopsomming stopitemize
-% stopaufzaehlung stopvycet
-% terminaelenco stopenumerare
-
- % so far
-
+ 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 % GB
+ separamarcatura decupleazamarcaje
+ decouplemarquage
couplemarking: koppelmarkering couplemarking
verknuepfebeschriftung propojeneznaceni
- accoppiamarcatura cupleazamarcaje % GB
+ accoppiamarcatura cupleazamarcaje
+ couplemarquage
getmarking: haalmarkering getmarking
holebeschriftung ziskejznaceni
- prendimarcatura adumarcaje % GB
+ prendimarcatura adumarcaje
+ obtientmarquage
definelayout: definieerlayout definelayout
definelayout definelayout
- definiscilayout 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
-setuppaper: stelpapierin setuppaper
- setuppaper setuppaper
- setuppaper setuppaper
+ 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
- definecolor: definieerkleur definecolor
+ placelogos
+ definecolor: definieerkleur definecolor
definierefarbe definujbarvu
definiscicolore definesteculoare
-%definespotcolor: definespotcolor definespotcolor
-% definespotcolor definespotcolor
-% definespotcolor definespotcolor
- definecolorgroup: definieerkleurgroep definecolorgroup
+ definitcouleur
+ definecolorgroup: definieerkleurgroep definecolorgroup
definierefarbengruppe definujskupinubarev
definiscigruppocolori definestegrupculori
- definepalet: definieerpalet definepalet
+ definitgroupecouleur
+ definepalet: definieerpalet definepalet
definierepalette definujpaletu
definiscitavolozza definestepaleta
- graycolor: grijskleur graycolor
+ definitpalette
+ graycolor: grijskleur graycolor
graufarbe sedabarva
coloregrigio culoaregri
- color: kleur color
+ couleurgrise
+ color: kleur color
farbe barva
colore culoare
- startcolor: startkleur startcolor
+ couleur
+ startcolor: startkleur startcolor
startfarbe startbarva
iniziacolore startculoare
- stopcolor: stopkleur stopcolor
+ demarrecouleur
+ stopcolor: stopkleur stopcolor
stopfarbe stopbarva
terminacolore stopculoare
- setupcolors: stelkleurenin setupcolors
+ stoppecouleur
+ setupcolors: stelkleurenin setupcolors
stellefarbenein nastavbarvy
impostacolori seteazaculori
- setupcolor: stelkleurin setupcolor
+ reglecouleurs
+ setupcolor: stelkleurin setupcolor
stellefarbeein nastavbarvu
impostacolore seteazaculoare
- setuppalet: stelpaletin setuppalet
+ reglecouleur
+ setuppalet: stelpaletin setuppalet
stellepaletteein nastavpaletu
impostatavolozza seteazapaleta
- showcolor: toonkleur showcolor
+ reglepalette
+ showcolor: toonkleur showcolor
zeigefarbe ukazbarvu
mostracolore afiseazaculoare
- showcolorgroup: toonkleurgroep showcolorgroup
+ montrecouleur
+ showcolorgroup: toonkleurgroep showcolorgroup
zeigefarbengruppe ukazskupinubarev
mostragruppocolori afiseazagrupculoare
- showpalet: toonpalet showpalet
+ montregroupecouleur
+ showpalet: toonpalet showpalet
zeigepalette ukazpaletu
mostratavolozza afiseazapaleta
- comparecolorgroup: vergelijkkleurgroep comparecolorgroup
+ montrepalette
+ comparecolorgroup: vergelijkkleurgroep comparecolorgroup
vergleichefarbengruppe porovnejskupinubarev
confrontagruppocolori comparagrupculoare
- comparepalet: vergelijkpalet comparepalet
+ comparegroupecouleur
+ comparepalet: vergelijkpalet comparepalet
vergleichepalette porovnejpaletu
confrontatavolozza comparapaleta
- colorvalue: kleurwaarde colorvalue
+ comparepalette
+ colorvalue: kleurwaarde colorvalue
farbewert hodnotabarvy
valorecolore valoareculoare
- greyvalue: grijswaarde greyvalue
+ valeurcouleur
+ greyvalue: grijswaarde greyvalue
grauwert hodnotasedi
valoregrigio valoaregri
- startraster: startraster startraster
+ valeurgris
+ startraster: startraster startraster
startraster startrastr
- iniziaraster startraster % GB
- stopraster: stopraster stopraster
+ iniziaraster startraster
+ demarreraster
+ stopraster: stopraster stopraster
stopraster stoprastr
terminaraster stopraster
- defineblock: definieerblok defineblock
+ stopperaster
+ defineblock: definieerblok defineblock
definiereblock definujblok
definisciblocco definestebloc
- setupblock: stelblokin setupblock
+ definitbloc
+ setupblock: stelblokin setupblock
stelleblockein nastavblok
impostablocco seteazabloc
- useblocks: gebruikblokken useblocks
+ reglebloc
+ useblocks: gebruikblokken useblocks
verwendebloecke uzijbloky
usablocco folosestebloc
- processblocks: verwerkblokken processblocks
+ utiliseblocs
+ processblocks: verwerkblokken processblocks
bearbeitebloecke zpracujbloky
elaborablocchi proceseazabloc
- keepblocks: handhaafblokken keepblocks
+ traiteblocs
+ keepblocks: handhaafblokken keepblocks
behaltebloecke zachovejbloky
tieniblocchi pastreazablocuri
- selectblocks: selecteerblokken selectblocks
+ gardeblocs
+ selectblocks: selecteerblokken selectblocks
waehlebloeckeaus vyberbloky
selezionablocchi selecteazablocuri
- hideblocks: verbergblokken hideblocks
+ selectionneblocs
+ hideblocks: verbergblokken hideblocks
verbergebloecke schovejbloky
nascondiblocchi ascundeblocuri
- bypassblocks: passeerblokken bypassblocks
+ cacheblocs
+ bypassblocks: passeerblokken bypassblocks
bypassblocks bypassblocks
saltablocchi saripesteblocuri
- forceblocks: forceerblokken forceblocks
+ sauteblocs
+ forceblocks: forceerblokken forceblocks
forceblocks forceblocks
forzablocchi forteazablocuri
- nomoreblocks: geenblokkenmeer nomoreblocks
+ forceblocs
+ nomoreblocks: geenblokkenmeer nomoreblocks
keinebloeckemehr zadnedalsibloky
bastablocchi gatablocuri
- definelist: definieerlijst definelist
+ pasplusdeblocs
+ definelist: definieerlijst definelist
definiereliste definujseznam
definiscielenco definestelista
- definecombinedlist: definieersamengesteldelijst definecombinedlist
+ definitliste
+ definecombinedlist: definieersamengesteldelijst definecombinedlist
definierezusammengestellteliste definujkombinovanyseznam
definiscielencocombinato definestelistacombinata
-listsymbol: lijstsymbool listsymbol
- listsymbol listsymbol
- listsymbol listsymbol
- placelist: plaatslijst placelist
+ definitlisteimbriquee
+ listsymbol: lijstsymbool listsymbol
+ listsymbol listsymbol
+ listsymbol listsymbol
+ listesymbole
+ placelist: plaatslijst placelist
platziereliste umistiseznam
mettielenco punelista
- plaatsruwelijst: plaatsruwelijst placerawlist
+ placeliste
+ plaatsruwelijst: plaatsruwelijst placerawlist
placerawlist placerawlist
placerawlist placerawlist
- placecombinedlist: plaatssamengesteldelijst placecombinedlist
+ placerawlist
+ placecombinedlist: plaatssamengesteldelijst placecombinedlist
platzierezusammengestellteliste umistikombinovanyseznam
mettielencocombinato punelistacombinata
- writetolist: schrijfnaarlijst writetolist
+ placelisteinmbriquee
+ writetolist: schrijfnaarlijst writetolist
schreibezurliste zapisdoseznamu
scriviinelenco scrieinlista
- writebetweenlist: schrijftussenlijst writebetweenlist
+ ecritdansliste
+ writebetweenlist: schrijftussenlijst writebetweenlist
schreibezwischenliste zapismeziseznam
scrividentroelenco scrieintreliste
-
-% new
-
+ 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 %%%
- movesidefloat: verplaatszijblok movesidefloat
- movesidefloat movesidefloat
- movesidefloat movesidefloat
-defineplacement: definieerplaats defineplacement
- defineplacement defineplacement
- defineplacement defineplacement
- setupplacement: stelplaatsin setupplacement
- setupplacement setupplacement
- setupplacement setupplacement
+ 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 % GB
+ impostacaption seteazalegenda
+ regleintitule
setupcaptions: stelblokkopjesin setupcaptions
stellebilderunterschriftein nastavpopisky
- impostacaptions seteazalegendele % GB
+ 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
-completeregister: volledigregister completeregister
- completeregister completeregister
- completeregister completeregister
+ 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 % GB
+ marcaversione marcheazaversiune
+ marquageversion
selectversion: selecteerversie selectversion
waehleversionaus vyberverzi
- selezionaversione selecteazaversiune % GB
+ 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 nastavodsazovani
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 % GB
+ 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 % GB
+ 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
-navigating: navigerend navigating
- navigating navigating
- navigating navigating
+ qqpart
+ navigating: navigerend navigating
+ navigating navigating
+ navigating navigating
+ navigating
ref: ref ref
ref ref
rif ref
+ ref
gotobox: naarbox gotobox
zurbox jdinabox
- vaiabox dutebox % GB
+ 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
-moveformula: verplaatsformule moveformula
- moveformula moveformula
- spostaformula moveformula
+ 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
- startproject: startproject startproject
+ stoppeproduit
+ startproject: startprojekt startproject
startprojekt startprojekt
iniziaprogetto startproiect
- stopproject: stopproject stopproject
+ demarreprojet
+ stopproject: stopprojekt stopproject
stopprojekt stopprojekt
terminaprogetto stopproiect
+ stoppeprojet
setups: instellingen setups
einstellungen nastaveni
impostazioni setari
- project: project project
+ 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 % GB
+ typebuffer scriebuffer
+ tapebuffer
definebuffer: definieerbuffer definebuffer
definierepuffer definujbuffer
definiscibuffer definestebuffer
+ definitbuffer
unitmeaning: betekenis unitmeaning
bedeutung vyznam
- nomeunita numeunitate % GB
+ 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 % GB
+ 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 % GB
+ 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 % GB
+ 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 % GB
+ 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 % GB
+ adding adauga
+ ajout
periods: punten periods
punkt tecky
punti puncte
+ periodes
setuphyphenmark: stelkoppeltekenin setuphyphenmark
stellebindestrichein nastavdelitko
- impostasegnosillabazione seteazaliniesilabe % GB
+ 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 % GB
+ 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 % GB
+ logcampi logcampuri
+ logchamp
showfields: toonvelden showfields
zeigefelder ukazpole
mostracampi afiseazacampuri
+ montrechamps
tooltip: suggestie tooltip
tooltip bublinkovanapoveda
- tooltip tooltip % GB
+ tooltip tooltip
+ suggestion
fillinfield: invulveld fillinfield
ausfuellfeld vyplnovepole
camporiempimento campumplere
+ remplitchamp
definefieldstack: definieerveldstapel definefieldstack
definierefeldstapel definujzasobnikpoli
- definiscistackcampi definestestivacampuri % GB
+ definiscistackcampi definestestivacampuri
+ definitpilechamp
fieldstack: veldstapel fieldstack
feldstapel zasobnikpoli
stackcampi stivacampuri
+ pilechamp
setupforms: stelformulierenin setupforms
setupforms setupforms
- impostaforms seteazaformulare % GB
+ impostaforms seteazaformulare
+ regleformulaires
setupclipping: stelclipin setupclipping
stelleausschnittein nastavorez
- impostaclippling seteazaclipping % GB
+ 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 % GB
+ 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 % GB
+ posizionatesto pozitietext
+ positionnetexte
definerawfont: definerawfont definerawfont
definerawfont definerawfont
definiscifontgrezzo definestefontraw
+ definitpolicebrute
switchtorawfont: switchtorawfont switchtorawfont
switchtorawfont switchtorawfont
passaafontgrezzo trecilafontraw
-
- placeheadtext: plaatskoptekst placeheadtext
- placeheadtext placeheadtext
- posizionatestotesta placeheadtext
-
-placeheadnumber: plaatskopnummer placeheadnumber
- placeheadnumber placeheadnumber
- posizionanumerotesta placeheadnumber
-
- definepagebreak: definieerpaginaovergang definepagebreak
- definepagebreak definepagebreak
- definepagebreak definepagebreak
-definecolumnbreak: definieerkolomovergang definecolumnbreak
- definecolumnbreak definecolumnbreak
- definecolumnbreak definecolumnbreak
+ 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
@@ -1856,11 +2429,12 @@ definecolumnbreak: definieerkolomovergang definecolumnbreak
\startcommands dutch english
german czech
italian romanian
-
+ french
setupitemgroups: stelopsommingenin setupitemizations
stelleaufzaehlungenein nastavvycty
impostaelencazioni setareitemization
+ reglegroupeselements
\stopcommands
@@ -1875,180 +2449,235 @@ definecolumnbreak: definieerkolomovergang definecolumnbreak
\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 % GB
+ 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
+ largeurbrodgauche
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
- innermarginwidth: binnenmargebreedte innermarginwidth
- innermarginwidth innermarginwidth
- innermarginwidth innermarginwidth
- outermarginwidth: buitenmargebreedte outermarginwidth
- outermarginwidth outermarginwidth
- outermarginwidth outermarginwidth
-innermargindistance: binnenmargeafstand innermargindistance
- innermargindistance innermargindistance
- innermargindistance innermargindistance
-outermargindistance: buitenmargeafstand outermargindistance
- outermargindistance outermargindistance
- outermargindistance outermargindistance
- inneredgewidth: binnenrandbreedte inneredgewidth
- inneredgewidth inneredgewidth
- inneredgewidth inneredgewidth
- outeredgewidth: buitenrandbreedte outeredgewidth
- outeredgewidth outeredgewidth
- outeredgewidth outeredgewidth
- inneredgedistance: binnenrandafstand inneredgedistance
- inneredgedistance inneredgedistance
- inneredgedistance inneredgedistance
- outeredgedistance: buitenrandafstand outeredgedistance
- outeredgedistance outeredgedistance
- outeredgedistance outeredgedistance
+ 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 % GB
+ 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 % GB
+ spaziodietro spatiuspate
+ retourarriere
cutspace: snijwit cutspace
cutspace cutspace
- cutspace cutspace % GB
+ 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 % GB
+ ampiezzacartastampa latimehartieimprimanta
+ largeureditionpapier
printpaperheight: printpapierhoogte printpaperheight
printpapierhoehe vyskatiskpapiru
- altezzacartastampa inaltimehartieimprimanta % GB
+ 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 % GB
+ livellotesta niveltitlu
+ niveautete
linewidth: lijndikte linethickness
liniendicke tloustkacary
spessoreriga grosimelinie
+ largeurligne
totalnumberofpages: totaalaantalpaginas totalnumberofpages
gesamtseitenanzahl celkovypocetstran
numerototaledipagine numartotalpagini
-numberofsubpages: aantalsubpaginas numberofsubpages
- numberofsubpages numberofsubpages
- numberofsubpages numberofsubpages
+ nombretotaldepages
+ numberofsubpages: aantalsubpaginas numberofsubpages
+ numberofsubpages numberofsubpages
+ numberofsubpages numberofsubpages
+ nombredesouspages
useXMLfilter: gebruikXMLfilter useXMLfilter
useXMLfilter useXMLfilter
useXMLfilter useXMLfilter
-
-definecolumnset: definieerkolomgroep definecolumnset
- definecolumnset definecolumnset
- definiscigruppocolonne definecolumnset
- setupcolumnset: stelkolomgroepin setupcolumnset
- setupcolumnset setupcolumnset
- impostagruppocolonne setupcolumnset
- startcolumnset: startkolomgroep startcolumnset
- startcolumnset startcolumnset
- iniziagruppocolonne startcolumnset
- stopcolumnset: stopkolomgroep stopcolumnset
- stopcolumnset stopcolumnset
- terminagruppocolonne stopcolumnset
-
- setupcolumnsetlines: stelkolomgroepregelsin setupcolumnsetlines
- setupcolumnsetlines setupcolumnsetlines
- setupcolumnsetlines setupcolumnsetlines
- setupcolumnsetstart: stelkolomgroepstartin setupcolumnsetstart
- setupcolumnsetstart setupcolumnsetstart
- setupcolumnsetstart setupcolumnsetstart
-
-startcolumnmakeup: startkolomopmaak startcolumnmakeup
- startcolumnmakeup startcolumnmakeup
- startcolumnmakeup startcolumnmakeup
-
- stopcolumnmakeup: stopkolomopmaak stopcolumnmakeup
- stopcolumnmakeup stopcolumnmakeup
- stopcolumnmakeup stopcolumnmakeup
-
- usetypescript: gebruiktypescript usetypescript
- usetypescript usetypescript
- usetypescript usetypescript
+ 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
@@ -2063,50 +2692,36 @@ startcolumnmakeup: startkolomopmaak startcolumnmakeup
\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 % GB
+ iniziaoverview startoverview
+ demarrevuedensemble
stopoverzicht: stopoverzicht stopoverview
stopueberblick stopprehled
terminaoverview stopoverview
+ stoppevuedensemble
label: label label
label poppisek
etichetta eticheta
-%
-% obsolete
-%
-% stelbrievenin: stelbrievenin setupcorrespondence
-% stellekorrespondenzein nastavkorespondenci
-% impostacorrispondenza seteazacorespondenta
-% brieven: brieven letters
-% briefe dopisy
-% lettere litere
-% brief: brief letter
-% brief dopis
-% lettera litera
-% sheet: sheet sheet
-% blatt list
-% foglio sheet
-% stelstickersin: stelstickersin setupstickers
-% stellestickerein nastavetikety
-% impostafrancobolli seteazastickers % GB
-% stelsheetsin: stelsheetsin setupsheets
-% stelleblattein nastavlisty
-% impostafogli seteazasheets
-%
+ etiquette
labels: labels labels
labels popisky
etichette etichete
+ etiquettes
domicile: woonplaats domicile
wohnort bydliste
domicilio domiciliu
+ domicile
\stopcommands
diff --git a/Master/texmf-dist/tex/context/base/mult-con.tex b/Master/texmf-dist/tex/context/base/mult-con.tex
index 9a506832107..07bbf399443 100644
--- a/Master/texmf-dist/tex/context/base/mult-con.tex
+++ b/Master/texmf-dist/tex/context/base/mult-con.tex
@@ -11,14 +11,8 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-% additions are marked as % new
-
%D In this rather large definition file we are going to tell
%D \CONTEXT\ which constants, variables and elements we use.
-%D
-%D The German translations were provided by Tobias Burnus,
-%D the Czech ones by Tom Hudec, the Italian ones by Giuseppe
-%D Bilotta.
\writestatus{loading}{Context Multilingual Macros / Constants}
@@ -32,41 +26,52 @@
\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
@@ -79,70 +84,91 @@
\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:
@@ -150,16 +176,20 @@
\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
@@ -174,67 +204,84 @@
\startvariables dutch english
german czech
italian romanian
+ french
- sectionlevel: sectie section
- abschnitt oddil
- paragrafo sectiune
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 % GB
+ testoprincipale principal
+ corpsdetexte
bodymatter: hoofdteksten bodymatter
haupttexte hlavnicasti
- testiprincipali principalul % GB
+ 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 % GB
+ postfazione epilog
+ postface
backmatter: uitleidingen backmatter
epiloge epilogy
- postambolo epilogul % GB
+ 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
@@ -243,46 +290,57 @@
\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
@@ -291,29 +349,36 @@ subsubsubsubsubsubject: subsubsubsubsubonderwerp subsubsubsubsub
\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
\stopvariables
\startvariables dutch english
german czech
italian romanian
+ french
typing: typen typing
tippen typing
- typing typing % GB
+ typing typing
+ typing
file: file file
datei soubor
file fisier
+ fichier
\stopvariables
@@ -328,82 +393,120 @@ subsubsubsubsubsubject: subsubsubsubsubonderwerp subsubsubsubsub
\startvariables dutch english
german czech
italian romanian
+ french
formula: formule formula
formel rovnice
formula formula
+ formule
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
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
@@ -419,1096 +522,1483 @@ subsubsubsubsubsubject: subsubsubsubsubonderwerp subsubsubsubsub
\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
- compoundhyphen: koppelteken compoundhyphen
- compoundhyphen compoundhyphen
- compoundhyphen compoundhyphen
- leftcompoundhyphen: linkerkoppelteken leftcompoundhyphen
- leftcompoundhyphen leftcompoundhyphen
- leftcompoundhyphen leftcompoundhyphen
-rightcompoundhyphen: rechterkoppelteken rightcompoundhyphen
- rightcompoundhyphen rightcompoundhyphen
- rightcompoundhyphen rightcompoundhyphen
-midsentence: middenzin midsentence
- midsentence midsentence
- midsentence midsentence
+ 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 leftspeech
+ leftspeech
middlespeech: middenuitspraak middlespeech
middlespeech middlespeech
- middlespeech middlespeech %%%
+ middlespeech middlespeech
+ middlespeech
rightspeech: rechteruitspraak rightspeech
rightspeech 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
- splitcolor: splitskleur splitcolor
- splitcolor splitcolor
- splitcolor splitcolor
+ 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
-clipoffset: clipoffset clipoffset
- clipoffset clipoffset
- clipoffset clipoffset
+ 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 % TB TH
+ autofile autofile
+ autofile % TB TH
balance: balanceren balance
ausgleichen rovnovaha
bilanciamento balanta
+ equilibre
wfactor: bfactor wfactor
bfaktor sfaktor
- wfactor factorw % GB
+ 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 % GB
+ 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 % TB TH
+ 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
-component: component component
- component component
- component component
+ 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 % TB
+ conversionetesta conversietitlu
+ conversiontete % TB
headlabel: koplabel headlabel
headlabel popisekhlavicky
- etichettatesta etichetatitlu % TB
+ 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
-% dikte: dikte thickness
-% dicke tloustka
-% spessore grosime
+ 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
-% new
-% eigenschap: eigenschap property
-% property property
-% property property
+ numeroproprio
+% eigenschap: eigenschap property
+% property property
+% property property
+% property
evenmargin: evenmarge evenmargin
geraderand sudamarginalie
marginepari marginepara
+ margepaire
expansion: expansie expansion
expansion expanzen
espansione expansiune
-keyexpansion: sleutelexpansie keyexpansion
- keyexpansion keyexpansion
- keyexpansion keyexpansion
+ 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 % !!
+ 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 % GB
+ 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 % GB
+ hfactor hfactor
+ facteurhauteur
corner: hoek corner
winkel roh
angolo colt
+ coin
hoffset: hoffset hoffset
hoffset hoffset
- hoffset hoffset % GB
+ 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 % new GB
+ 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 % TB TH
+ allineacarattere aliniazacaracter
+ caracterealigne
alignmentcharacter: uitlijnkarakter alignmentcharacter
alignmentcharacter alignmentcharacter
- carattereallineamento alierecaracter % TB TH
+ 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 % GB
+ 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
leftmargindistance: linkermargeafstand leftmargindistance
linkerrandabstand vzdalenostlevehookraje
distanzamarginesinistro distantamarginestanga
+ distancemargegauche
leftoffset: linkeroffset leftoffset
linkeroffset levyoffset
offsetsinistro offsetstanga
+ decalagegauche
leftedge: linkerrand leftedge
linkekante levahrana
bordosinistro bordurastanga
+ brodgauche
leftedgedistance: linkerrandafstand leftedgedistance
linkerkantenabstand vzdalenostlevehrany
distanzabordosinistro distantabordurastanga
+ distancebordgauche
lefttext: linkertekst lefttext
linkertext textvlevo
- testosinistro textstanga % GB
+ 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 % GB
+ centro mijloc
+ milieu
middletext: middentekst middletext
mittigertext strednitext
- testocentro textmijloc % GB
+ 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 % TODO
+ 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 % GB
+ mettistopper punestopper
+ emplacementstopper
place: plaatsen place
platziere umistit
- metti pune % GB
+ metti pune
+ place
placehead: plaatskop placehead
setzekopf umistihlavicku
- mettitesta punetitlu % GB
+ mettitesta punetitlu
+ placetete
position: positie position
position position
- posizione pozitie % TB TH
+ posizione pozitie
+ position % TB TH
prefix: prefix prefix
prefix prefix
prefisso prefix
+ prefixe
preset: preset preset
voreinstellung prednastaveni
- preimpostato preset % GB
+ preimpostato preset
+ prereglage
preview: preview preview
vorschau nahled
anteprima previzualizare
-process: proces process
- process process
- process process
- spot: spot spot
- spot spot
- spot spot
+ 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 % GB
+ 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 % GB
+ 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 % CHECK
+ dilata dilatat
+ etire
resolution: resolutie resolution
aufloesung rozliseni
risoluzione rezolutie
+ resolution
rotation: rotatie rotation
rotation rotace
rotazione rotatie
-% new
+ rotation
orientation: orientatie orientation
orientation orientation
orientation orientation
-
+ orientation
horoffset: rugoffset horoffset
rumpfabstand horoffset
- horoffset offsetoriz % GB
+ horoffset offsetoriz
+ horoffset
backspace: rugwit backspace
rumpfspatium zpetnamezera
- backspace spatiuspate % GB
+ 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 % GB
+ display display
+ affichage
scope: scope scope
bereich rozsah
- scope scop % GB
+ 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
-setups: setups setups
- setups setups
- setups setups
+ numerosection
+ setups: setups setups
+ setups setups
+ setups setups
+ reglages
cutspace: snijwit cutspace
cutspace cutspace
- cutspace cutspace % GB
+ 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 % TB TH
-splitoffset: splitsoffset splitoffset
- splitoffset splitoffset
- splitoffset splitoffset % TB TH
+ 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 % TB GB
+ 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 % GB
+ 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
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
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
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 % GB
+ type type
+ type
align: uitlijnen align
ausrichtung zarovnani
allinea aliniere
+ alignement
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 % GB
+ incremento increment
+ incremente
incrementnumber: verhoognummer incrementnumber
nummererhoehen zvysujicicislo
incrementanumero numarincrement
-resetnumber: resetnummer resetnumber
- resetnumber resetnumber
- resetnumber resetnumber
+ 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 %GB
+ xfactor xfactor
+ xfactor
xmax: xmax xmax
xmax xmax
- xmax xmax % GB
+ xmax xmax
+ xmax
xoffset: xoffset xoffset
xoffset xoffset
- xoffset xoffset % GB
+ xoffset xoffset
+ xoffset
xscale: xschaal xscale
xformat xmeritko
- xscale xscala % GB
+ xscale xscala
+ xscale
xstep: xstap xstep
xschritt xkrok
- xstep xstep % GB
+ xstep xstep
+ xstep
yfactor: yfactor yfactor
yfaktor yfaktor
- yfactor yfactor % GB
+ yfactor yfactor
+ yfactor
ymax: ymax ymax
ymax ymax
- ymax ymax % GB
+ ymax ymax
+ ymax
yoffset: yoffset yoffset
yoffset yoffset
- yoffset yoffset % GB
+ yoffset yoffset
+ yoffset
yscale: yschaal yscale
yformat ymeritko
- yscale yscala % GB
+ yscale yscala
+ yscale
ystep: ystap ystep
yschritt ykrok
- ystep ystep % GB
+ ystep ystep
+ ystep
samepage: zelfdepagina samepage
selbeseite stejnastranka
stessapagina aceeasipagina
- sidealign: zijuitlijnen sidealign
- sidealign sidealign
- sidealign sidealign
+ memepage
+ sidealign: zijuitlijnen sidealign
+ sidealign sidealign
+ sidealign sidealign
+ sidealign
side: zij side
objektabstand pocitat
lato parte
-% new
- fieldlayer: veldlaag fieldlayer
- fieldlayer fieldlayer
- fieldlayer fieldlayer
-textlayer: tekstlaag textlayer
- textlayer textlayer
- textlayer textlayer
+ 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
openaction: openactie openaction
oeffenaktion otevriakci
azioneapri actiunedeschidere
+ actionouverture
closeaction: sluitactie closeaction
schliessenaktion zavriakci
azionechiudi actiuneinchidere
+ actionfermeture
openpageaction: openpaginaactie openpageaction
openpageaction akceotevrenistranky
- azioneapripagina actiunedeschiderepagina % TB
+ azioneapripagina actiunedeschiderepagina
+ actionouverturepage
closepageaction: sluitpaginaactie closepageaction
closepageaction akcezavrenistranky
- azionechiudipagina actiuneinchiderepagina % TB
+ 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 % GB
+ 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 % TB TH
+ distanzatesto textdistance
+ distancetexte
+ numberdistance: nummerafstand numberdistance
+ numberdistance numberdistance
+ numberdistance numberdistance
+ numberdistance
textmargin: tekstmarge textmargin
textmargin textmargin
- textmargin textmargin % TB TH
-
- keyword: trefwoord keyword
- keyword keyword
- parolachiave keyword
+ 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
@@ -1517,10 +2007,12 @@ textlayer: tekstlaag textlayer
\startconstants dutch english
german czech
italian romanian
+ french
extras: extras extras
extras extras
extras extras
+ extras
\stopconstants
@@ -1535,863 +2027,1167 @@ textlayer: tekstlaag textlayer
\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 % GB ETC NEW
+ nonumber nonumber
+ sansnumero
% geentekst: geentekst notext
% notext notext
-% notext notext % GB ETC NEW
+% 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
big: groot big
gross velke
grande mare
+ grand
bigbodyfont: grootkorps bigbodyfont
bigbodyfont bigbodyfont
- grossofontdeltesto 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 % new
+ 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 % GB
+ 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 %%
+ 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 % TB TH
+ colonna coloana
+ colonne
columns: kolommen columns
spalten sloupce
colonne coloane
+ colonnes
head: kop head
kopf hlavicka
- testa antet % GB
+ 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 % TB TH
+ pedap lohi
+ baha
tall: lang tall
lang vysoko
- alto inalt % GB
+ 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
MONTH: MAAND MONTH
MONAT MESIC
MESE LUNA
+ MOIS
month: maand month
monat mesic
mese luna
+ mois
mar: mar mar
mar mar
mar mar
+ mar
+ 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 % new
+ schermo display
+ affichage
reverse: omgekeerd reverse
reverse reverse
- invertito reverse % new
+ invertito reverse
+ inverse
fit: passend fit
passend prizpusobive
adatta ajustat
+ adapte
postscript: postscript postscript
postscript postscript
postscript postscript
+ postscript
preview: preview preview
vorschau nahled
anteprima previzualizare
+ previsualisation
program: programma program
programm program
programma program
-process: proces process
- process process
- process process
- spot: spot spot
- spot spot
- spot spot
+ 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 % GB
+ 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 % GB
+ cutspace cutspace
+ cutspace
tolerant: soepel tolerant
tolerant tolerantni
tollerante tolerant
+ tolerant
space: spatie space
spatium mezera
- spazio spatiu %% check
+ 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 text
+ test test
+ test
inbetween: tussen inbetween
zwischen mezi
tra intre
+ entre
type: type type
tippen type
- type type % GB
+ 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
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 % GB
+ 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
-
- nocheck: geencontrole nocheck
- nocheck nocheck
- nocheck nocheck
-
-% GB TB TH :
-
+ 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 % new
+ overprint overprint
+ overprint
knockout: knockout knockout
knockout knockout
- knockout knockout % new
-
+ 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
\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 % new
+ overprint overprint
+ overprint
\stopconstants
@@ -2407,13 +3203,16 @@ process: proces process
\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
@@ -2439,6 +3238,7 @@ process: proces process
vfil: vfil
hfil: hfil
strut: strut
+ autostrut: autostrut
reset: reset
set: set
escape: escape
@@ -2456,40 +3256,52 @@ process: proces process
\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 % GB
+ sansserif sansserif
+ sansserif
roman: romaan roman
antiqua antikva
- roman roman % GB
+ roman roman
+ roman
teletype: teletype teletype
fernschreiber strojopis
- teletype teletype % GB
+ teletype teletype
+ teletype
type: type type
tippen opis
- type type % GB
+ type type
+ type
serif: serif serif
serif serif
- serif serif % GB
+ 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
@@ -2506,76 +3318,101 @@ process: proces process
\startsetupvariables 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 odsazovani
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 % GB
+ sort sortare
+ tri
sorts: sorteren sorts
sortieren tridit
- sorts sortari % GB
+ 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 % GB
+ 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
\stopsetupvariables
@@ -2590,85 +3427,112 @@ process: proces process
\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 % GB
+ type type
+ type
makeup: opmaak makeup
umbruch zlom
- makeup makeup % GB
+ makeup makeup
+ makeup
text: tekst text
text text
testo text
+ texte
\stopelements
@@ -2677,64 +3541,84 @@ process: proces process
\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 % GB
+ 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 %
+ testatabulato tabulatehead
+ tetetabule
tabulatetail: tabulatiestaart tabulatetail
tabulatetail tabulatetail
- codatabulato 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 % TB TH
+ ambientebloccosezione blocsectiuneambient
+ environementblocsection
pagecomment: paginacommentaar pagecomment
pagecomment komentarstranky
- commentopagina comentariupagina % TB
+ commentopagina comentariupagina
+ commentairepage
\stopvariables
@@ -2749,141 +3633,176 @@ process: proces process
\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 % TB TH GB
+ Richiesta Query
+ Query
QueryAgain: HerhaalRaadplegen QueryAgain
QueryAgain QueryAgain
- RinnovaRichiesta QueryAgain % TB TH GB
+ RinnovaRichiesta QueryAgain
+ QueryAgain
GotoPage: GaNaarPagina GotoPage
GotoPage JdiNaStranku
- VaiAPagina LaPagina % TB
+ 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 % TB
+ IniziaSuono StartSunet
+ DemarreSon
StopSound: StopGeluid StopSound
StopSound StopZvuk
- FermaSuono StopSunet % TB
+ FermaSuono StopSunet
+ StoppeSon
PauseSound: PauzeerGeluid PauseSound
PauseSound PozastavitZvuk
- PausaSuono PauzaSunet % TB
+ PausaSuono PauzaSunet
+ PauseSon
ResumeSound: HervatGeluid ResumeSound
ResumeSound PokracovatZvuk
- RiprendiSuono RepornesteSunet % TB
-
-% new
-
+ 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
-
-% new
-
+ 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
-
- HideLayer: VerbergLaag HideLayer
- HideLayer HideLayer
- HideLayer HideLayer
- VideLayer: ToonLaag VideLayer
- VideLayer VideLayer
- VideLayer VideLayer
-ToggleLayer: WisselLaag ToggleLayer
- ToggleLayer ToggleLayer
- ToggleLayer ToggleLayer
+ 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
\stopvariables
@@ -2893,25 +3812,32 @@ ToggleLayer: WisselLaag ToggleLayer
\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
@@ -2942,8 +3868,6 @@ ToggleLayer: WisselLaag ToggleLayer
\stopvariables
-%D \stopcompressdefinitions
-
\stoplogginginterface
\endinput
diff --git a/Master/texmf-dist/tex/context/base/mult-ini.tex b/Master/texmf-dist/tex/context/base/mult-ini.tex
index abc01562a56..69ef0a6ac10 100644
--- a/Master/texmf-dist/tex/context/base/mult-ini.tex
+++ b/Master/texmf-dist/tex/context/base/mult-ini.tex
@@ -17,15 +17,22 @@
%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 \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 norwegian \NC Hans Fredrik Nordhaug\NC yes \NC no \NC\NR
+%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
@@ -842,14 +849,10 @@
{\let\c!internal!\c!internal!n
\ifcsname\k!prefix!#3\endcsname
\let\c!internal!\c!internal!y
- % \@EAEAEA\def\@EA\@EA
- % \csname#1\csname\k!prefix!#3\endcsname
- % \endcsname\@EA{\csname#2\csname\k!prefix!#3\endcsname\endcsname}%
\@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
- %\@EAEAEA\def\@EA\@EA\csname#1#3\endcsname\@EA{\csname#2#3\endcsname}%
\@EA\def\csname#1#3\@EA\endcsname\@EA{\csname#2#3\endcsname}%
\fi}
@@ -1541,7 +1544,7 @@
\def\contextversion{unknown}
\def\contextversionnumber{0}
\else
- \def\contextversionnumber#1.#2.#3\relax{#1\ifnum#2<10 0\fi#2\ifnum#3<10 0\fi#3}
+ \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}
\fi
diff --git a/Master/texmf-dist/tex/context/base/mult-sys.tex b/Master/texmf-dist/tex/context/base/mult-sys.tex
index 5a398b25df3..716c6d6bfdd 100644
--- a/Master/texmf-dist/tex/context/base/mult-sys.tex
+++ b/Master/texmf-dist/tex/context/base/mult-sys.tex
@@ -32,36 +32,37 @@
%D First we define some system constants used for both the
%D multi||lingual interface and multi||linguag typesetting.
-\definesystemconstant {afrikaans} \definesystemconstant {af}
-\definesystemconstant {catalan} \definesystemconstant {ca}
-\definesystemconstant {chinese} \definesystemconstant {cn}
-\definesystemconstant {croation} \definesystemconstant {hr}
-\definesystemconstant {czech} \definesystemconstant {cz}
-\definesystemconstant {danish} \definesystemconstant {da}
-\definesystemconstant {dutch} \definesystemconstant {nl}
-\definesystemconstant {english} \definesystemconstant {en}
-\definesystemconstant {finish} \definesystemconstant {fi}
-\definesystemconstant {french} \definesystemconstant {fr}
-\definesystemconstant {german} \definesystemconstant {de}
-\definesystemconstant {hungarian} \definesystemconstant {hu}
-\definesystemconstant {italian} \definesystemconstant {it}
-\definesystemconstant {latin} \definesystemconstant {la}
-\definesystemconstant {norwegian} \definesystemconstant {no}
-\definesystemconstant {polish} \definesystemconstant {pl}
-\definesystemconstant {portuguese} \definesystemconstant {pt}
-\definesystemconstant {romanian} \definesystemconstant {ro}
-\definesystemconstant {russian} \definesystemconstant {ru}
-\definesystemconstant {slovak} \definesystemconstant {sk}
-\definesystemconstant {slovenian} \definesystemconstant {sl}
+\definesystemconstant {afrikaans} \definesystemconstant {af}
+\definesystemconstant {catalan} \definesystemconstant {ca}
+\definesystemconstant {chinese} \definesystemconstant {cn}
+\definesystemconstant {croation} \definesystemconstant {hr}
+\definesystemconstant {czech} \definesystemconstant {cz}
+\definesystemconstant {danish} \definesystemconstant {da}
+\definesystemconstant {dutch} \definesystemconstant {nl}
+\definesystemconstant {english} \definesystemconstant {en}
+\definesystemconstant {finish} \definesystemconstant {fi}
+\definesystemconstant {french} \definesystemconstant {fr}
+\definesystemconstant {german} \definesystemconstant {de}
+\definesystemconstant {hungarian} \definesystemconstant {hu}
+\definesystemconstant {italian} \definesystemconstant {it}
+\definesystemconstant {latin} \definesystemconstant {la}
+\definesystemconstant {norwegian} \definesystemconstant {no}
+\definesystemconstant {polish} \definesystemconstant {pl}
+\definesystemconstant {portuguese} \definesystemconstant {pt}
+\definesystemconstant {romanian} \definesystemconstant {ro}
+\definesystemconstant {russian} \definesystemconstant {ru}
+\definesystemconstant {slovak} \definesystemconstant {sk}
+\definesystemconstant {slovenian} \definesystemconstant {sl}
\definesystemconstant {slovene}
-\definesystemconstant {spanish} \definesystemconstant {es}
-\definesystemconstant {swedish} \definesystemconstant {sv}
-\definesystemconstant {turkish} \definesystemconstant {tr}
-\definesystemconstant {ukenglish} \definesystemconstant {uk}
-\definesystemconstant {ukrainian} \definesystemconstant {ua}
-\definesystemconstant {usenglish} \definesystemconstant {us}
-\definesystemconstant {greek} \definesystemconstant {gr}
-\definesystemconstant {vietnamese} \definesystemconstant {vn}
+\definesystemconstant {spanish} \definesystemconstant {es}
+\definesystemconstant {swedish} \definesystemconstant {sv}
+\definesystemconstant {turkish} \definesystemconstant {tr}
+\definesystemconstant {ukenglish} \definesystemconstant {uk}
+\definesystemconstant {ukrainian} \definesystemconstant {ua}
+\definesystemconstant {usenglish} \definesystemconstant {us}
+\definesystemconstant {greek} \definesystemconstant {gr}
+\definesystemconstant {ancientgreek} \definesystemconstant {agr}
+\definesystemconstant {vietnamese} \definesystemconstant {vn}
%D For proper \UNICODE\ support we need a few font related
%D constants.
@@ -81,6 +82,8 @@
\definesystemconstant {Normal}
\definesystemconstant {Caps}
+\definesystemconstant {mnem} % kind of generic short tag
+
%D As the name of their define command states, the next set of
%D constants is used in the message macro's.
@@ -105,6 +108,7 @@
\definemessageconstant {verbatims}
\definemessageconstant {versions}
+
%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,
@@ -165,6 +169,8 @@
\definesystemconstant {font}
+\definesystemconstant {section} \let\v!sectionlevel\s!section % for old times sake
+
%D A more experienced \TEX\ user will recognize the next four
%D constants. We need these because font-definitions are
%D partially english.
@@ -401,6 +407,7 @@
\definesystemvariable {bl} % BLanko
\definesystemvariable {bg} % BleedinG
\definesystemvariable {bo} % BlankO (definitions)
+\definesystemvariable {br} % sideBaR
\definesystemvariable {bs} % SelecteerBlokken
\definesystemvariable {bt} % BuTton
\definesystemvariable {bu} % BUffer
@@ -408,6 +415,7 @@
\definesystemvariable {by} % Per
\definesystemvariable {cb} % CollectBox
\definesystemvariable {cc} % Comment
+\definesystemvariable {ce} % CasEs
\definesystemvariable {ci} % CItaat
\definesystemvariable {cl} % kleur (CoLor setup)
\definesystemvariable {cn} % CollumN
@@ -431,6 +439,7 @@
\definesystemvariable {ec} % EnCoding
\definesystemvariable {en} % ENvironments
\definesystemvariable {ep} % ExternfiguurPreset
+\definesystemvariable {eq} % EQalign
\definesystemvariable {er} % external resources
\definesystemvariable {ex} % ExterneFiguren
\definesystemvariable {ht} % HiddenText
@@ -479,6 +488,7 @@
\definesystemvariable {lb} % LaBels
\definesystemvariable {ld} % LegenDa
\definesystemvariable {le} % LinetablE
+\definesystemvariable {lf} % LocalFigures
\definesystemvariable {lg} % taal (LanGuage)
\definesystemvariable {li} % LIjst
\definesystemvariable {ll} % Layers
@@ -489,11 +499,13 @@
\definesystemvariable {ly} % LaYout
\definesystemvariable {ma} % MargeAchtergrond
\definesystemvariable {mb} % MargeBlokken
+\definesystemvariable {md} % MoDule
\definesystemvariable {mg} % Metapost paGe
\definesystemvariable {mk} % MarKering
\definesystemvariable {mt} % inline MaTh
\definesystemvariable {mo} % Math Options
\definesystemvariable {nm} % Nummering
+\definesystemvariable {mx} % MatriX
\definesystemvariable {np} % NaastPlaatsen
\definesystemvariable {nr} % Nummeren
\definesystemvariable {of} % OFfset
@@ -552,6 +564,7 @@
\definesystemvariable {st} % STickers
\definesystemvariable {su} % SetUp
\definesystemvariable {sv} % SysteemVariabelen
+\definesystemvariable {sx} % Selector
\definesystemvariable {sy} % SYnchronisatie
\definesystemvariable {ta} % TAb
\definesystemvariable {tb} % TekstBlokken
@@ -826,6 +839,13 @@
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
diff --git a/Master/texmf-dist/tex/context/base/page-app.tex b/Master/texmf-dist/tex/context/base/page-app.tex
index 6a9a10d33dd..f31e3ad2da1 100644
--- a/Master/texmf-dist/tex/context/base/page-app.tex
+++ b/Master/texmf-dist/tex/context/base/page-app.tex
@@ -155,8 +155,10 @@
\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]
diff --git a/Master/texmf-dist/tex/context/base/page-bck.tex b/Master/texmf-dist/tex/context/base/page-bck.tex
index e95ab8bf6ca..2054be5fb0d 100644
--- a/Master/texmf-dist/tex/context/base/page-bck.tex
+++ b/Master/texmf-dist/tex/context/base/page-bck.tex
@@ -43,6 +43,10 @@
8: se calculeaza fundalurile
\stopmessages
+\startmessages french library: layouts
+ 8: calcul des arrières-plans
+\stopmessages
+
%D \macros
%D {recalculatebackgrounds}
%D
@@ -221,7 +225,7 @@
% \def\setbackgroundboxes
% {\showmessage\m!layouts8\empty
% \setbackgroundbox\leftbackground\relax
-% \ifdubbelzijdig
+% \ifdoublesided
% \setbackgroundbox\rightbackground\doswapmargins
% \fi
% \doifnot\@@mastatus\v!herhaal{\global\newbackgroundfalse}}
@@ -520,7 +524,7 @@
\setupbackgrounds
[\v!paper,\v!page,\v!leftpage,\v!rightpage]
[\c!frame=\v!off,
- \c!radius=.5\korpsgrootte,
+ \c!radius=.5\bodyfontsize,
\c!corner=\v!rectangular,
\c!background=,
\c!screen=\@@rsscreen,
@@ -586,19 +590,35 @@
\resetglobal \expandafter\gobbleoneargument
\fi}
+% \def\doaddlocalbackground#1%
+% {\edef\next
+% {\noexpand\redoglobal\wd#1\the\wd#1%
+% \noexpand\redoglobal\ht#1\the\ht#1%
+% \noexpand\dodoglobal\dp#1\the\dp#1}%
+% \dodoglobal\setbox#1\hbox
+% {\fastlocalframed
+% [\??ma\v!local]
+% [\c!component=local,\c!frame=\v!off,\c!offset=\v!overlay,\c!setups=,%
+% \c!width=\wd#1,\c!height=\ht#1,% no \c!depth=\dp#1 in cont-exp.tex, to be checked !
+% \c!background=\localbackground]%
+% {\registerMPlocaltextarea{\box#1}}}%
+% \next
+% \doglobal\increment\localpositionnumber\relax} % afterwards !
+
\def\doaddlocalbackground#1%
{\edef\next
{\noexpand\redoglobal\wd#1\the\wd#1%
\noexpand\redoglobal\ht#1\the\ht#1%
- \noexpand\dodoglobal\dp#1\the\dp#1}%
- \dodoglobal\setbox#1\hbox
+ \noexpand\redoglobal\dp#1\the\dp#1}%
+ \redoglobal\setbox#1\hbox
{\fastlocalframed
[\??ma\v!local]
[\c!component=local,\c!frame=\v!off,\c!offset=\v!overlay,\c!setups=,%
- \c!width=\wd#1,hoogte=\ht#1,% no diepte=\dp#1 in cont-exp.tex, to be checked !
+ \c!width=\wd#1,\c!height=\ht#1,% no \c!depth=\dp#1 in cont-exp.tex, to be checked !
\c!background=\localbackground]%
{\registerMPlocaltextarea{\box#1}}}%
\next
+ \resetglobal
\doglobal\increment\localpositionnumber\relax} % afterwards !
% Test how previous macro behaves with depth:
diff --git a/Master/texmf-dist/tex/context/base/page-flt.tex b/Master/texmf-dist/tex/context/base/page-flt.tex
index 67c8013d3cc..a6c39efec22 100644
--- a/Master/texmf-dist/tex/context/base/page-flt.tex
+++ b/Master/texmf-dist/tex/context/base/page-flt.tex
@@ -13,9 +13,6 @@
\writestatus{loading}{Context OTR Macros / Floating Bodies}
-%D This module is currently a mess, due to splitting float
-%D handlers over specific otr's. Consider it work in progress.
-
%D Some of the sidefloat settings should move to page-sid; now it's quite
%D fuzzy the way the variables are set/reset.
@@ -62,6 +59,7 @@
10: -- begrensd
11: geen blok opgegeven
12: niet gedefinieerd
+ 13: er is niets te splitsen
\stopmessages
\startmessages english library: floatblocks
@@ -78,6 +76,7 @@
10: -- limited
11: no block given
12: undefined
+ 13: there is nothing to split
\stopmessages
\startmessages german library: floatblocks
@@ -94,6 +93,7 @@
10: -- begrenzt
11: kein Block gegeben
12: undefiniert
+ 13: there is nothing to split
\stopmessages
\startmessages czech library: floatblocks
@@ -110,6 +110,7 @@
10: -- omezeno
11: nedan zadny blok
12: nedefinovano
+ 13: there is nothing to split
\stopmessages
\startmessages italian library: floatblocks
@@ -126,6 +127,7 @@
10: -- limitato
11: nessun oggetto specificato
12: non definito
+ 13: there is nothing to split
\stopmessages
\startmessages norwegian library: floatblocks
@@ -134,14 +136,15 @@
2: -- lagret
3: -- flyttet
4: -- plassert
- 5: rekkefølge tilpasset
- 6: maksimalt -- flytblokker øverst
+ 5: rekkefølge tilpasset
+ 6: maksimalt -- flytblokker øverst
7: maksimalt -- flytblokker nederst
8: mindre enn -- linjer
- 9: rekkefølge endret
+ 9: rekkefølge endret
10: -- begrenset
11: ingen blokk oppgitt
12: udefinert
+ 13: there is nothing to split
\stopmessages
\startmessages romanian library: floatblocks
@@ -158,6 +161,24 @@
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\setupfloats
@@ -183,7 +204,7 @@
\def\doemptyblock#1%
{\localframed
[\??fl#1][\c!frame=\v!on]%
- {\getmessage\m!floatblocks{12}}}
+ {\getmessage\m!floatblocks{12}\empty}}
% A complication is that we may have to handle a pagebreak
% first, which in turn may issue a (postponed) float.
@@ -191,6 +212,16 @@
% we're realy dealing with the float. Some day I'll root out
% the global settings.
+% \def\docomplexplacefloat[#1][#2]% [#3]#4%
+% {\edef\floattype{#1}%
+% \doifelsenothing\floattype
+% {\let\floattype\v!figure}
+% {\doifundefined{\??fl#1\c!default}{\let\floattype\v!figure}}%
+% \doifelsenothing{#2}
+% {\edef\floatlocation{\getvalue{\??fl\floattype\c!default}}}
+% {\edef\floatlocation{#2}}%
+% \expanded{\dodocomplexplacefloat[\floattype][\floatlocation]}}
+
\def\docomplexplacefloat[#1][#2]% [#3]#4%
{\edef\floattype{#1}%
\doifelsenothing\floattype
@@ -199,35 +230,76 @@
\doifelsenothing{#2}
{\edef\floatlocation{\getvalue{\??fl\floattype\c!default}}}
{\edef\floatlocation{#2}}%
- \expanded{\dodocomplexplacefloat[\floattype][\floatlocation]}}
+ \doifinsetelse\v!split{#2}
+ {\expanded{\dodocomplexsplitfloat[\floattype][\floatlocation]}}
+ {\expanded{\dodocomplexplacefloat[\floattype][\floatlocation]}}}
+
+\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
+
+% \def\dodocomplexplacefloat[#1][#2][#3]#4%
+% {\flushnotes
+% \flushsidefloats % here !
+% \ifsomefloatwaiting
+% % this was \checkwaitingfloats spread all over
+% \doifinsetelse\v!always{#2}
+% {\showmessage\m!floatblocks5\empty}
+% {\expanded{\doifcommonelse{#2}{\flushfloatslist}}\doflushfloats\donothing}%
+% % but which should be done before using box \floatbox
+% \fi
+% \ifmargeblokken % waarschijnlijk gebroken ! ! ! !
+% \doifinset\v!margin{#2}
+% {\endgraf
+% \bgroup\everypar{\egroup\the\everypar}%
+% \hsize\@@mbwidth}%
+% \fi
+% \global\insidefloattrue
+% \begingroup % **
+% \the\everyinsidefloat
+% \let\@@extrafloat\empty
+% \presetmorefloatvariables{#2}%
+% \dowithnextboxcontent % better a \the\everyfloattoks
+% {\setlocalfloathsize
+% \getvalue{\??fl#1\c!inner}%
+% \fuzzysnappingfalse
+% \postponenotes} % new
+% {\xdocompletefloat{#1}{#3}{#1}{#2}{#1}{#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\dodocomplexplacefloat[#1][#2][#3]#4%
{\flushnotes
-\flushsidefloats % here !
+ \flushsidefloats % here !
\ifsomefloatwaiting
% this was \checkwaitingfloats spread all over
\doifinsetelse\v!always{#2}
{\showmessage\m!floatblocks5\empty}
- {\doifcommonelse
- {#2}
- {\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
- {\doflushfloats}
- {}}%
+ {\expanded{\doifcommonelse{#2}{\flushfloatslist}}\doflushfloats\donothing}%
% but which should be done before using box \floatbox
\fi
- \ifmargeblokken % waarschijnlijk gebroken ! ! ! !
- \doifinset\v!margin{#2}
- {\endgraf
- \bgroup\everypar{\egroup\the\everypar}%
- \hsize\@@mbwidth}%
+ \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}%
@@ -236,7 +308,11 @@
\getvalue{\??fl#1\c!inner}%
\fuzzysnappingfalse
\postponenotes} % new
- {\xdocompletefloat{#1}{#3}{#1}{#2}{#1}{#4}% ** not yet done
+ {\doifvaluesomething{\??fl#1\c!criterium}
+ {\ifdim\wd\nextbox>\getvalue{\??fl#1\c!criterium}\relax
+ \edef\forcedfloatmethod{\executeifdefined{\??fl#1\c!fallback}\v!here}%
+ \fi}%
+ \xdocompletefloat{#1}{#3}{#1}{#2}{#1}{#4}% ** not yet done
% we need to carry over the par because of side floats
\doifnotinset\v!text{#2}{\carryoverpar\endgroup}%
\global\sidefloatdownshift \zeropoint
@@ -356,7 +432,7 @@
%\to \everyinsidefloat
%\def\doifrightpagefloatelse % watch out: other default ! ! !
-% {\ifdubbelzijdig
+% {\ifdoublesided
% \ifodd\purenumber\twopassfloatdata\space
% \@EAEAEA\firstoftwoarguments
% \else
@@ -367,8 +443,8 @@
% \fi}
\def\doifrightpagefloatelse
- {\ifdubbelzijdig
- \ifenkelzijdig
+ {\ifdoublesided
+ \ifsinglesided
\@EAEAEA\firstoftwoarguments
\else
\@EAEAEA\doifoddfloatpageelse
@@ -395,7 +471,7 @@
% new : \place...[leftmargin,-2*line]; we need to catch fxtb:2*3
% watch out: line alone aligns on the line ! ! !
-\def\movesidefloat[#1]% (-)line|x=,y=
+\def\movesidefloat[#1]% (-)n*line|x=,y=
{\global\sidefloatdownshift \zeropoint
\global\sidefloatextrashift\zeropoint
\doifassignmentelse{#1}%
@@ -416,17 +492,26 @@
\cleanupfeatures
\doifinstringelse{:}{#1}
\donothing
- {\donefalse
- \def\movedownsidefloat##1%
+ {\def\docommand##1%
{\processaction
[##1]%
- [ \v!line=>\docommando+,%
- +\v!line=>\docommando+,%
- -\v!line=>\docommando-]}%
- \def\docommando##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}%
- \expanded{\dorepeatwithcommand[#1]}\movedownsidefloat}%
+ \donefalse\expanded{\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\expanded{\dorepeatwithcommand[#1]}\docommand}%
\egroup}
\def\hangsidefloat[#1]%
@@ -442,17 +527,18 @@
% already be set at this point
\processallactionsinset
[#4] % ininner/inouter : for old times sake
- [ \v!inner=>\xxdocompletefloat\v!left \v!right,
- \v!outer=>\xxdocompletefloat\v!right \v!left,
+ [ \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!left=>\xxdocompletefloat\v!left \v!left,
- \v!right=>\xxdocompletefloat\v!right \v!right,
- \v!line=>, % only -n*line is handled (see ***)
+ \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}{#5}{#6}\nextbox
@@ -528,12 +614,14 @@
\dododefinefloat[#1][#1]%
\fi\fi}
+% todo: \floatparameter + \currentfloat - saves many hash entries
+
\def\dododefinefloat[#1][#2]%
{\presetlocalframed[\??fl#1]%
\setupfloat
[#1]
- [\c!width=8\lineheight, % 15\korpsgrootte,
- \c!height=6\lineheight, % 10\korpsgrootte,
+ [\c!width=8\lineheight, % 15\bodyfontsize,
+ \c!height=6\lineheight, % 10\bodyfontsize,
\c!minwidth=,
\c!maxwidth=,
\c!maxheight=,
@@ -584,6 +672,8 @@
\c!sectionnumber=\@@kjsectionnumber,
\c!distance=\@@kjdistance,
\c!separator=\@@kjseparator,
+ \c!stopper=\@@kjstopper,
+ \c!suffix=\@@kjsuffix, % hook
\c!command=\@@kjcommand,
\c!conversion=\@@kjconversion]%
\definenumber % \definelabel
@@ -595,6 +685,7 @@
\c!sectionnumber=\getvalue{\??kj#1\c!sectionnumber},
\c!conversion=\getvalue{\??kj#1\c!conversion}]%
\presetlabeltext[#1=\Word{#1}~]%
+ \checkfloatracer{\v!float#1}%
\dodefinefloatcommands[#1][#2]}
\def\dodefinefloatcommands[#1][#2]%
@@ -631,7 +722,7 @@
\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!sectionnumber,\c!separator,\c!distance,\c!conversion]%
+ \c!sectionnumber,\c!separator,\c!stopper,\c!suffix,\c!distance,\c!conversion]%
\definenumber[#1][#3]%
\presetlabeltext[#1=\labeltext{#3}]%
\dodefinefloatcommands[#1][#2]}
@@ -679,6 +770,7 @@
\def\dosavefloatdata % \expanded
{\bgroup
+ \doglobal\increment\noffloatdata
\edef\dosavefloatdata
{\writeutilitycommand
{\twopassentry
@@ -700,48 +792,108 @@
% Er wordt bij \v!altijd als dat nodig is hernummerd.
% Daarbij wordt gebruik gemaakt van de opgeslagen nummers en
% volgorde.
-
-\definetwopasslist\s!float
-
-% \def\dofloatreference
-% {\doglobal\increment\numberedfloat
-% \edef\dodofloatreference
-% {\writeutilitycommand
-% {\twopassentry
-% {\s!float}%
-% {\numberedfloat}%
-% {\hetnummer}}}%
-% \dodofloatreference}
-
+%
+% replaced code:
+%
+% \definetwopasslist\s!float
+%
+% \def\dofloatreference#1%
+% {\doifnot\@@bknumbering\v!nocheck
+% {\doglobal\increment\numberedfloat
+% \doifelse\@@bknumbering\v!text % alternative to yes|page
+% {\let\next\immediatewriteutilitycommand}
+% {\let\next\writeutilitycommand}%
+% \expanded{\next
+% {\noexpand\twopassentry
+% {\s!float}%
+% {\numberedfloat}%
+% {\composedsectionnumber}}}}}
+%
% \def\redofloatorder#1%
-% {\doglobal\increment\nofplacedfloats\relax
-% \gettwopassdata\s!float
-% \iftwopassdatafound
-% \doifnot\hetnummer\twopassdata
-% {\edef\oldhetnummer{\hetnummer}%
-% \xdef\hetnummer{\twopassdata}%
-% \showmessage\m!floatblocks1{\nofplacedfloats,#1 \oldhetnummer,\hetnummer}}%
-% \fi}
+% {\doifnot\@@bknumbering\v!nocheck
+% {\doglobal\increment\nofplacedfloats\relax
+% \gettwopassdata\s!float
+% \iftwopassdatafound
+% \doifnot\composedsectionnumber\twopassdata
+% {\edef\oldcomposedsectionnumber{\composedsectionnumber}%
+% \xdef\composedsectionnumber{\twopassdata}%
+% \showmessage\m!floatblocks1{\nofplacedfloats,#1 \oldcomposedsectionnumber,\composedsectionnumber}}%
+% \fi}}
+%
+% \def\preparefloatnumber#1%
+% {\incrementnumber[#1]%
+% \makesectionnumber[#1]}
+%
+% \def\tracefloatnumber#1%
+% {\dofloatreference{#1}%
+% \redofloatorder{#1}}
+%
+% \def\checkfloatracer#1%
+% {}
-\def\dofloatreference
- {\doifnot\@@bknumbering\v!nocheck
- {\doglobal\increment\numberedfloat
- \expanded{\writeutilitycommand
- {\noexpand\twopassentry
- {\s!float}%
- {\numberedfloat}%
- {\hetnummer}}}}}
-
-\def\redofloatorder#1%
+\def\checkfloatracer#1%
+ {\newnodelocation{#1}}
+
+\def\tracefloatnumber#1%
{\doifnot\@@bknumbering\v!nocheck
- {\doglobal\increment\nofplacedfloats\relax
- \gettwopassdata\s!float
- \iftwopassdatafound
- \doifnot\hetnummer\twopassdata
- {\edef\oldhetnummer{\hetnummer}%
- \xdef\hetnummer{\twopassdata}%
- \showmessage\m!floatblocks1{\nofplacedfloats,#1 \oldhetnummer,\hetnummer}}%
+ {\checkfloatracer{\v!float#1}% will go
+ \tagnodelocation{\v!float#1}}}
+
+\newconditional\retainfloatnumber
+
+\def\preparefloatnumber#1%
+ {\xdef\floatcaptionnumber{#1}%
+ \doifelse\@@bknumbering\v!nocheck
+ {\incrementnumber[#1]%
+ \makesectionnumber[#1]%
+ \ifconditional\retainfloatnumber\decrementnumber[#1]\fi}
+ {\ifinsidecolumns
+ \chardef\nodelocationmode\zerocount
+ % to be perfected:
+ % \chardef\nodelocationmode\plustwo
+ \fi
+ \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
+ \checkfloatracer{\v!float#1}% will go
+ \nextnodelocation{\v!float#1}% better \nextfloatnumber
+ \analyzenodelocation{\v!float#1}%
+ \scratchcounter\getnodelocationo{\v!float#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
% In \dofloatinfomessage wordt {{ }} gebruikt omdat anders
% binnen \startpostponing...\stoppostponing geen goede
@@ -766,6 +918,29 @@
\def\doinsertfloatinfo
{\dofloatinfomessage<4{\the\totalnoffloats}}
+% \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 !
+% \fi
+% \else
+% \setbox\floatbox\box\globalscratchbox % local !
+% \fi
+% \global\advance\savednoffloats \minusone
+% \ifcase\savednoffloats
+% \global\somefloatwaitingfalse
+% \fi
+% \else
+% \global\savednoffloats\zerocount
+% \global\setbox\floatbox\box\voidb@x
+% \fi}
+
\def\dogetfloat
{\ifsomefloatwaiting
\global\setbox\floatlist\vbox
@@ -776,6 +951,12 @@
\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 !
@@ -839,6 +1020,8 @@
\global\somefloatwaitingtrue
\dosavefloatinfo}
+% better (todo): \savednofsavedfloats
+
\def\dosavefloatstatus
{\global\setbox\savedfloatlist\copy\floatlist
\global\setbox\savedfloatbox \copy\floatbox
@@ -852,6 +1035,45 @@
\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
@@ -866,7 +1088,7 @@
\setbox0\vbox{\strut\blank[\@@bkspacebefore]\strut}%
\setbox2\vbox{\strut\blank[\@@bkspaceafter ]\strut}%
\ifdim\ht0>\ht2
- \blank[-\@@bkspaceafter,\@@bkspacebefore]
+ \blank[-\@@bkspaceafter,\@@bkspacebefore]%
\fi
\egroup}
@@ -889,16 +1111,35 @@
% brr, wordt deze niet overladen in page-one? weg er mee
-\def\somepagefloat[#1]% links, rechts, midden, hoog, midden, laag
- {%\checkwaitingfloats{#1}%
- \global\setbox\collectedpagefloats\vbox
- {\unvbox\collectedpagefloats
- \vbox to \textheight
- {\doifnotinset\v!high{#1}\vfill
- \box\floatbox
- \doifnotinset\v!low{#1}\vfill}%
- \goodbreak}%
- \doinsertfloatinfo}
+% \def\somepagefloat[#1]% links, rechts, midden, hoog, midden, laag
+% {%\checkwaitingfloats{#1}%
+% \global\setbox\collectedpagefloats\vbox
+% {\unvbox\collectedpagefloats
+% \vbox to \textheight
+% {\doifnotinset\v!high{#1}\vfill
+% \box\floatbox
+% \doifnotinset\v!low{#1}\vfill}%
+% \goodbreak}%
+% \doinsertfloatinfo}
+
+% \def\OTRONEsomepagefloat[#1]%
+% {%\checkwaitingfloats{#1}%
+% \global\setbox\collectedpagefloats\vbox
+% {\ifvoid\collectedpagefloats\else\unvbox\collectedpagefloats\fi
+% \vbox to \textheight % vss and unvbox catch too high and limited floats
+% {\vss
+% \doifnotinset\v!high{#1}\vfill
+% \unvbox\floatbox
+% \doifnotinset\v!low{#1}\vfill
+% \vss}%
+% \goodbreak}%
+% \doinsertfloatinfo}
+
+% 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}%
@@ -957,7 +1198,7 @@
{\doifinset\v!offset{#1}{\whitespace\blank}%
\box\floattext
\vfill}}}%
- \doifinsetelse\v!right{#1}%
+ \doifinsetelse\v!right{#1}% \floatmethod
{\setbox\floatbox\hbox to \hsize
{\box\floattext
\hfill
@@ -1006,31 +1247,45 @@
{\doifinsetelse\v!always{#1}
{\docheckiffloatfits
\ifroomforfloat
- \doifinsetelse\v!top{#1}
- {\placesometopsfloat[#1]}
- {\doifinsetelse\v!bottom{#1}
- {\placesomebotsfloat[#1]}
- {\placesomeherefloat[#1]}}%
- % more compact and efficient, but quite ugly
- % \doifinsetelse\v!top{#1}
- % \placesometopsfloat
- % {\doifinsetelse\v!bottom{#1}
- % \placesomebotsfloat
- % \placesomeherefloat}[#1]%
+ \sometopbottomfloat[#1]
\else
\showmessage\m!floatblocks9\empty
\doreversesavefloat
\fi}
{\docheckiffloatfits
\ifroomforfloat
- \doifinsetelse\v!top{#1}
- {\placesometopsfloat[#1]}
- {\doifinsetelse\v!bottom{#1}
- {\placesomebotsfloat[#1]}
- {\placesomeherefloat[#1]}}%
+ \sometopbottomfloat[#1]
\else
\dosavefloat
\fi}}}
+
+\def\floatautofactor{.5}
+
+% \def\sometopbottomfloat[#1]%
+% {\doifinsetelse\v!auto{#1}
+% {\ifdim\pagetotal<\floatautofactor\pagegoal % when empty page, maxdimen
+% \placesometopsfloat[#1]%
+% \else
+% \placesomebotsfloat[#1]%
+% \fi}
+% {\doifinsetelse\v!top{#1}
+% {\placesometopsfloat[#1]}
+% {\doifinsetelse\v!bottom{#1}
+% {\placesomebotsfloat[#1]}
+% {\placesomeherefloat[#1]}}}}
+
+\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
@@ -1133,23 +1388,17 @@
\letgvalue{@fl@r@#1}\relax
\letgvalue{@fl@t@#1}\relax
\else
- \incrementnumber[#1]%
- \makesectionnumber[#1]%
- % \globallet\flhetnummer\hetnummer % beware, not unique should be done on a per class base
- \letgvalue{@fl@n@#1}\hetnummer
+ \preparefloatnumber{#1}%
+ \letgvalue{@fl@n@#1}\composedsectionnumber
% indirect macro can be more efficient
\setgvalue{@fl@r@#1}%
- {\dofloatreference
- \redofloatorder{#1}%
- % \dowritetolist{#1}{\flhetnummer}{#3}{#1}%
+ {\tracefloatnumber{#1}%
\dowritetolist{#1}{\getvalue{@fl@n@#1}}{#3}{#1}%
\doglobal\convertargument#3\to\flasciititle % \asciititle is global
- % \doifsomething{#2}{\rawreference\s!flt{#2}{{\flhetnummer}{\flasciititle}}}%
\doifsomething{#2}{\rawreference\s!flt{#2}{{\getvalue{@fl@n@#1}}{\flasciititle}}}%
\letgvalue{@fl@r@#1}\relax}% nils
\setgvalue{@fl@t@#1}%
- % {\preparethenumber{\??kj#1}\flhetnummer\preparednumber
- {\preparethenumber{\??kj#1}{\getvalue{@fl@n@#1}}\preparednumber
+ {\preparefullnumber{\??kj#1}{\getvalue{@fl@n@#1}}\preparednumber
\doattributes{\??kj#1}\c!style\c!color
{\doattributes{\??kj#1}\c!headstyle\c!headcolor
{\labeltexts{#1}{\preparednumber}}%
@@ -1158,6 +1407,7 @@
\fi}
\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
@@ -1179,37 +1429,15 @@
% \floatparameter
-% \def\putcompletecaption#1#2#3#4%
-% {\noindent
-% \xdef\lastcaptiontag{\strut#2\floatcaptionsuffix}%
-% \xdef\floatcaptionnumber{#1}%
-% \dostartattributes{\??kj#1}\c!style\c!color\empty
-% \ifnofloatnumber
-% \else
-% \hbox{\doattributes{\??kj#1}\c!headstyle\c!headcolor{\strut#2\floatcaptionsuffix}}%
-% \ifnofloatcaption \else \ifemptyfloatcaption \else
-% \ifcase#4\relax
-% \scratchskip\@@kjkjdistance\relax
-% \dotfskip\scratchskip\emergencystretch.5\scratchskip
-% \else
-% \ifx\@@kjkjinbetween\empty\else\unskip\@@kjkjinbetween\fi
-% \fi
-% \fi \fi
-% \fi
-% \ifnofloatcaption \else
-% \doattributes{\??kj#1}\c!textstyle\c!textcolor
-% {\begstrut#3\endstrut\endgraf}%
-% \fi
-% \dostopattributes}
-
\def\putcompletecaption#1#2#3#4%
{\noindent
- \xdef\lastcaptiontag{\strut#2\floatcaptionsuffix}%
- \xdef\floatcaptionnumber{#1}%
+% \xdef\lastcaptiontag{\strut#2\floatcaptionsuffix}%
+ \xdef\lastcaptiontag{\strut#2}%
+% \xdef\floatcaptionnumber{#1}%
\dostartattributes{\??kj#1}\c!style\c!color\empty
\ifnofloatnumber
\else
- \hbox{\doattributes{\??kj#1}\c!headstyle\c!headcolor{\strut#2\floatcaptionsuffix}}%
+ \hbox{\doattributes{\??kj#1}\c!headstyle\c!headcolor{\strut#2}}%
\ifnofloatcaption \else \ifemptyfloatcaption \else
\ifcase#4\relax
\scratchskip\@@kjkjdistance\relax
@@ -1314,7 +1542,7 @@
\def\addlocalbackgroundtobox{\resetglobal\gobbleoneargument}%
\fi
-\def\captionminwidth {15\korpsgrootte}
+\def\captionminwidth {15\bodyfontsize}
\def\captionovershoot {2em}
\def\dopreparenocaption#1#2#3#4%
@@ -1358,7 +1586,8 @@
% float is wider than \hsize
\dosetraggedvbox\@@kjkjalign
\setbox\scratchbox\raggedbox % trial run
- {\hsize\captionhsize
+ {\trialtypesettingtrue
+ \hsize\captionhsize
\notesenabledfalse
\putcompletecaption{#4}{#2}{#3}{0}}%
\ifdim\ht\scratchbox>\lineheight % more lines
@@ -1382,7 +1611,8 @@
\edef\captionhsize{\the\scratchdimen}%
\fi
\setbox\scratchbox\vbox % test with overshoot
- {\scratchdimen\captionhsize
+ {\trialtypesettingtrue
+ \scratchdimen\captionhsize
\advance\scratchdimen \captionovershoot
\advance\scratchdimen 3em % an average word length
\ifdim\scratchdimen<\hsize \hsize\scratchdimen \fi
@@ -1522,14 +1752,19 @@
% % {\hfill\box\floatbox\hfill}} % geen \hss, gaat mis in kolommen !
% {\hss \box\floatbox\hss }} % wel \hss, anders mis in colset
+\chardef\postcenterfloatmethod\plusone
+
\def\postcenterfloatbox#1%
- {\scratchdimen \ifinsidecolumns
- \ifpostponecolumnfloats\makeupwidth\else#1\fi
- \else\ifdim#1>\hsize
- \hsize
- \else
- \wd\floatbox
- \fi\fi
+ {\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
@@ -1607,6 +1842,7 @@
\edef\@@kjkjminwidth {\getvalue{\??kj#4\c!minwidth}}% in geval van automatisch
\edef\@@kjkjdistance {\getvalue{\??kj#4\c!distance}}%
\edef\@@kjkjalign {\getvalue{\??kj#4\c!align}}%
+ \def\@@kjkjstopper {\getvalue{\??kj#4\c!stopper}}%
\edef\@@flfllocation {\getvalue{\??fl#4\c!location}}%
\ifparfloat
\@EA\dosetparfloat % {#1}{#2}{#3}{#4}%
@@ -1640,16 +1876,21 @@
\newcounter\noxfloatlocations
+% \long\def\dofloat#1#2#3#4%
+% {\dosetfloatbox{#1}{#2}{#3}{#4}%
+% \doifelsevaluenothing{\??fl#4\c!criterium}
+% {\dogetfloatbox{#1}\empty}
+% {\ifdim\wd\floatbox>\getvalue{\??fl#4\c!criterium}\relax
+% \postcenterfloatbox{\wd\floatbox}% else we get left aligned
+% %dogetfloatbox{#1}\v!here % see details/pascal
+% \dogetfloatbox{#1}{\executeifdefined{\??fl#4\c!fallback}\v!here}%
+% \else
+% \dogetfloatbox{#1}\empty
+% \fi}}
+
\long\def\dofloat#1#2#3#4%
{\dosetfloatbox{#1}{#2}{#3}{#4}%
- \doifelsevaluenothing{\??fl#4\c!criterium}
- {\dogetfloatbox{#1}\empty}
- {\ifdim\wd\floatbox>\getvalue{\??fl#4\c!criterium}\relax
- \postcenterfloatbox{\wd\floatbox}% else we get left aligned
- \dogetfloatbox{#1}\v!here % see details/pascal
- \else
- \dogetfloatbox{#1}\empty
- \fi}}
+ \dogetfloatbox{#1}\empty}
\let\naturalfloatheight\!!zeropoint
\let\naturalfloatwidth \!!zeropoint
@@ -1660,6 +1901,51 @@
\xdef\naturalfloatwidth {\the\wd#1}%
\xdef\naturalfloatdepth {\the\dp#1}}
+% \long\def\docompletefloat#1#2#3#4#5#6#7% #7 = box number
+% {%\flushsidefloats % moved
+% \presetfloatvariables{#1}{#4}{#2}{#6}%
+% \bgroup
+% \setnaturalfloatdimensions#7%
+% \global\setbox\floatbox\vbox
+% {\executeifdefined{\??fl#1\c!command}\firstofoneargument{\box#7}}%
+% \setnaturalfloatdimensions\floatbox
+% \dimen0 \ht\floatbox
+% \advance\dimen0 \dp\floatbox
+% \ifdim\dimen0=\zeropoint
+% \showmessage\m!floatblocks{11}\empty
+% \global\setbox\floatbox\vbox{\doemptyblock{#3}}%
+% \fi
+% \ifnofloatcaption
+% \global\setbox\floatbox\vbox
+% {\unvbox\floatbox
+% \vss % gets rid of the depth (unless tabulate)
+% \rawpagereference\s!flt{#2}}%
+% \egroup
+% \dofloat{#4}{}{#6}{#1}%
+% \else
+% \doglobal\convertargument#6\to\asciititle % \asciititle is global
+% \ifnofloatnumber
+% \global\setbox\floatbox\vbox
+% {\unvbox\floatbox % no \vss, keep the depth
+% \rawreference\s!flt{#2}{{}{\asciititle}}}%
+% \egroup
+% \dofloat{#4}{}{#6}{#1}%
+% \else
+% \incrementnumber[#1]%
+% \makesectionnumber[#1]%
+% \global\setbox\floatbox\vbox
+% {\unvbox\floatbox % no \vss, keep the depth
+% \dofloatreference
+% \redofloatorder{#1}%
+% \rawreference\s!flt{#2}{{\composedsectionnumber}{\asciititle}}%
+% \dowritetolist{#3}{\composedsectionnumber}{#6}{#3}}%
+% \egroup
+% \preparefullnumber{\??kj#1}\composedsectionnumber\preparednumber
+% \dofloat{#4}{\labeltexts{#5}{\preparednumber}}{#6}{#1}%
+% \fi
+% \fi
+% \global\insidefloatfalse}
+
\long\def\docompletefloat#1#2#3#4#5#6#7% #7 = box number
{%\flushsidefloats % moved
\presetfloatvariables{#1}{#4}{#2}{#6}%
@@ -1690,16 +1976,14 @@
\egroup
\dofloat{#4}{}{#6}{#1}%
\else
- \incrementnumber[#1]%
- \makesectionnumber[#1]%
+ \preparefloatnumber{#1}%
\global\setbox\floatbox\vbox
{\unvbox\floatbox % no \vss, keep the depth
- \dofloatreference
- \redofloatorder{#1}%
- \rawreference\s!flt{#2}{{\hetnummer}{\asciititle}}%
- \dowritetolist{#3}{\hetnummer}{#6}{#3}}%
+ \tracefloatnumber{#1}%
+ \rawreference\s!flt{#2}{{\composedsectionnumber}{\asciititle}}%
+ \dowritetolist{#3}{\composedsectionnumber}{#6}{#3}}%
\egroup
- \preparethenumber{\??kj#1}\hetnummer\preparednumber
+ \preparefullnumber{\??kj#1}\composedsectionnumber\preparednumber
\dofloat{#4}{\labeltexts{#5}{\preparednumber}}{#6}{#1}%
\fi
\fi
@@ -1866,14 +2150,35 @@
% \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\dopostponeblock
{\bgroup % new may 2004
\setsystemmode\v!postponing % new may 2004
\the\everytopofpage
- \ifvoid\collectedpagefloats\else
- % message
- \unvbox\collectedpagefloats
- \fi
+ \flushpagefloats
\donefalse
\ifinpostponing \else
\ifcase\nofpostponedblocks \else \donetrue \fi
@@ -1926,56 +2231,6 @@
\dostartbuffer[pbuf-\nofpostponedblocks]%
[\e!start\v!postponing][\e!stop\v!postponing]}
-\definenumber
- [\??si]
- [\c!way=\v!by\v!text,
- \c!conversion=\@@siconversion]
-
-\def\setupfloatsplitting
- {\dodoubleargument\getparameters[\??si]}
-
-% ook (continued)
-
-\def\dosplitfloat[#1]#2% nog dubbele refs
- {\ifinsidecolumns % tzt ook nog figuren splitten
- % not yet supported
- \else
- \bgroup
- \insidefloattrue
- \getparameters[\??si][#1]%
- \resetnumber[\??si]%
- \def\floatcaptionsuffix{\convertednumber[\??si]}%
- \TABLEcaptionheight\@@silines\lineheight % brrr
- \simplifypagebreak % \page becomes \goodbreak
- \dowithnextbox
- {\forgetall
- \dontcomplain
- \doloop
- {\setbox2\vsplit\nextbox to \lineheight
- \setbox2\vbox{\unvbox2}
- \ifdim\ht2>\lineheight
- \incrementnumber[\??si]%
- \ifcase\rawnumber[\??si]\or \ifdim\nextboxht=\zeropoint
- \let\floatcaptionsuffix\empty
- \fi \fi
- \bgroup
- #2{\unvbox2}
- \egroup
- \ifdim\nextboxht>\zeropoint
- \page
- \decrementnumber[\floatcaptionnumber]%
- \fi
- \fi
- \ifdim\nextboxht>\zeropoint\else
- \expandafter\exitloop
- \fi}%
- \egroup}
- \vbox
- \fi}
-
-\def\splitfloat
- {\dosingleempty\dosplitfloat}
-
\def\dooutput{\sidefloatoutput} % redefinition of \dooutput
\setupmarginblocks
@@ -2033,6 +2288,8 @@
\c!blockway=\@@nrblockway,
\c!sectionnumber=\@@nrsectionnumber,
\c!separator=\@@koseparator,
+ \c!stopper=\@@kostopper,
+ \c!suffix=\floatcaptionsuffix, % hook
\c!distance=1em,
\c!command=,
\c!conversion=\v!numbers]
@@ -2043,7 +2300,7 @@
\c!height=\v!fit,
\c!offset=\v!overlay,
\c!frame=\v!off,
- \c!radius=.5\korpsgrootte,
+ \c!radius=.5\bodyfontsize,
\c!corner=\v!rectangular,
\c!background=,
\c!backgroundscreen=\@@rsscreen,
@@ -2073,16 +2330,13 @@
\c!local=,
\c!default=\v!figure,
\c!numbering=\v!yes]
-
-\setupfloatsplitting
- [\c!conversion=\v!character, % \v!romannumerals
- \c!lines=3]
% float strategy, replaces some of the above macros
-\let\floatmethod\empty
-\let\floatcolumn\empty
-\let\floatrow \empty
+\let\floatmethod \empty
+\let\floatcolumn \empty
+\let\floatrow \empty
+\let\forcedfloatmethod\empty
\def\dogetfloatbox#1#2%
{\ifvisible
@@ -2100,8 +2354,11 @@
\let\floatrow\empty
\edef\floatmethod{#2}}%
\doifundefined{\string\floatmethod\floatmethod}
- {\let\floatmethod\v!here}%
- \getvalue{\string\floatmethod\floatmethod}[#1]%
+ {\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
@@ -2114,9 +2371,12 @@
\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
@@ -2139,19 +2399,22 @@
\installfloathandler {fxtb} \someslotfloat
\installfloathandler {fxbt} \someslotfloat
-\def\placesomeslotfloat {\OTRcommand\someslotfloat}
-\def\placesomeherefloat {\OTRcommand\someherefloat}
-\def\placesomefixdfloat {\OTRcommand\somefixdfloat}
-\def\placesomepagefloat {\OTRcommand\somepagefloat}
-\def\placesometopsfloat {\OTRcommand\sometopsfloat}
-\def\placesomebotsfloat {\OTRcommand\somebotsfloat}
-\def\placesomesidefloat {\OTRcommand\somesidefloat}
-\def\placesomefacefloat {\OTRcommand\somefacefloat}
+\def\placesomeslotfloat {\OTRcommand\someslotfloat}
+\def\placesomeherefloat {\OTRcommand\someherefloat}
+\def\placesomefixdfloat {\OTRcommand\somefixdfloat}
+\def\placesomepagefloat {\OTRcommand\somepagefloat}
+\def\placesomeleftpagefloat {\OTRcommand\someleftpagefloat}
+\def\placesomerightpagefloat{\OTRcommand\somerightpagefloat}
+\def\placesometopsfloat {\OTRcommand\sometopsfloat}
+\def\placesomebotsfloat {\OTRcommand\somebotsfloat}
+\def\placesomesidefloat {\OTRcommand\somesidefloat}
+\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]}
@@ -2163,9 +2426,11 @@
\def\somebackspacefloat [#1]{\somesidefloat[#1]}
\def\somecutspacefloat [#1]{\somesidefloat[#1]}
-\def\somefixdfloat {\placesomefixdfloat}
-\def\somepagefloat {\placesomepagefloat}
-\def\somefacefloat {\placesomefacefloat}
-\def\someslotfloat {\placesomeslotfloat}
+\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/page-imp.tex b/Master/texmf-dist/tex/context/base/page-imp.tex
index b54dcfa99c5..b64a543cff7 100644
--- a/Master/texmf-dist/tex/context/base/page-imp.tex
+++ b/Master/texmf-dist/tex/context/base/page-imp.tex
@@ -516,8 +516,7 @@
\global\wd\arrangedpageB\paperwidth
\global\setbox\arrangedpageA\hbox
{\box\arrangedpageA\box\arrangedpageB}%
- \global\ht\arrangedpageA\paperheight
- \global\setbox\arrangedpageB\box\scratchbox} % ?
+ \global\ht\arrangedpageA\paperheight}
\def\handlearrangedpageTOP
{\global\ht\arrangedpageA\paperheight
@@ -719,28 +718,34 @@
% \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\hss\hskip\@@ppdx\hss
- \fi
- \box#1}%
- \ifnum\arrangedpageM<\arrangedpageX\else
- \global\setbox\arrangedpageA\vbox
- \ifdim\@@ppheight>\zeropoint to \@@ppheight \fi
- {\offinterlineskip
- \ifvoid\arrangedpageA\else
- \unvbox\arrangedpageA\vss\vskip\@@ppdy\vss
- \fi
- \box\arrangedpageB}%
- \doglobal\newcounter\arrangedpageM
- \fi
- \ifnum\arrangedpageN<\arrangedpageT\else
- \poparrangedpages
- \fi}
+ {\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
@@ -917,7 +922,7 @@
\def\dofilterpage#1#2%
{\hbox to \textwidth
- {\ifdubbelzijdig\ifdim\@@ipwidth>\zeropoint\relax\ifodd\realpageno\else
+ {\ifdoublesided\ifdim\@@ipwidth>\zeropoint\relax\ifodd\realpageno\else
\hfill
\def\dowithfigure{\hskip-\@@ipwidth}%
\fi\fi\fi
diff --git a/Master/texmf-dist/tex/context/base/page-ini.tex b/Master/texmf-dist/tex/context/base/page-ini.tex
index 7c1ff78d3e5..826ecd350e4 100644
--- a/Master/texmf-dist/tex/context/base/page-ini.tex
+++ b/Master/texmf-dist/tex/context/base/page-ini.tex
@@ -155,10 +155,10 @@
1: caricamento dei file supplementari posticipato (typemode)
2: -- caricato
% 3: provare LaTeX
- 4: comando -- già definito
+ 4: comando -- già definito
5: macro del modulo -- caricate
6: nessuna macro trovata nel modulo --
- 7: macro del modulo -- già caricate
+ 7: macro del modulo -- già caricate
8: nuova versione del file supplementare, seconda passata necessaria
9: -- non trovato/elaborato
10: non usare em in --
@@ -185,12 +185,12 @@
title: system
1: innlesning av hjelpefila utsatt (typemode)
2: -- er lest inn
-% 3: forsøker LaTeX
+% 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
+ 8: ny versjon av hjelpefil, andre gjennomkjøring nødvendig
9: -- ikke funnet/behandlet
10: ikke bruk em i --
11: lager enkel hjelpefil
@@ -205,7 +205,7 @@
20: betydning (sorterer) av -- er lest inn
21: hjelpefila er ikke lest inn
22: bruk en gyldig hjelpefil
- 23: -- arrangert på --
+ 23: -- arrangert på --
24: Flytblokker
25: Referanser
26: Registere
@@ -243,6 +243,37 @@
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 --
@@ -315,12 +346,12 @@
\startmessages norwegian library: layouts
title: layout
- 1: teksthøyde tilpasset med -- på side --
- 2: -- ganger forskjøvet tekst plassert
- 3: -- ganger tekst forskjøvet
+ 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 --)
+ 6: delside sett -- behandlet (størrelse --)
% 7: beregner plass for logo
% 8: beregner bakgrunn
10: -- og -- er ikke 1.0 til sammen
@@ -340,6 +371,20 @@
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}
@@ -532,17 +577,17 @@
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
+ 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
+ 12: flytblokk forskjøvet til neste kolonne / --
+ 13: bred flytblokk forksjøvet til toppen av kolonnene
\stopmessages
\startmessages romanian library: columns
@@ -561,6 +606,23 @@
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
\ifx\dosetuplayout\undefined % overloaded in page-lay !
@@ -568,6 +630,9 @@
\fi
+\def\normalejectpenalty{-\@M} \let\ejectpenalty\normalejectpenalty
+\def\normalsuperpenalty{-\@MM} \let\superpenalty\normalsuperpenalty
+
%D In case we're not running \ETEX, we need to bypass a
%D couple of primitives.
@@ -857,6 +922,8 @@
\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
@@ -868,10 +935,10 @@
% \def\eject {\par\penalty-\@M } % == {\par\break} % plain
% \def\supereject {\par\penalty-\@MM} % also plain
-\def\eject {\par\ifvmode\penalty-\@M \fi\resetpagebreak} % == {\par\break} % plain
-\def\supereject {\par\ifvmode\penalty-\@MM\fi\resetpagebreak} % 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}
+\def\doejectpage {\par\ifvmode\ifdim\pagetotal>\pagegoal\else\normalvfil\fi\fi} % pg set to \textheight
\def\ejectpage {\doejectpage\eject}
\def\superejectpage{\doejectpage\supereject}
@@ -918,7 +985,7 @@
\penalty\outputpenalty
\fi
% not really needed, replaced by \flushsavedfloats
- \ifnum\outputpenalty>-\@MM \else % better use a proper otr signal
+ \ifnum\outputpenalty>\superpenalty \else % better use a proper otr signal
\dosupereject
\fi
% but does not hurt either (we're still in the otr!)
@@ -989,7 +1056,7 @@
\resetselectiepagina
\verhoogpaginanummer
\checkpagedimensions
- \ifnum\outputpenalty>-\@MM \else
+ \ifnum\outputpenalty>\superpenalty \else
\dosupereject
\fi
\doflushspread
@@ -1495,8 +1562,7 @@
% was: \resetsectionmarks\firstsection, zie \handlepagebreak
-\def\page {\pagebreak} % the short form of \pagebreak (mult-com one)
-\def\page{\pagebreak} % for the moment, keep this one
+\def\page{\pagebreak} % the short form of \pagebreak (mult-com one)
\def\resetpagebreak
{\global\paginageblokkeerdfalse}
@@ -1504,6 +1570,9 @@
\def\simplifypagebreak
{\def\dopagebreak[##1]{\goodbreak}}
+\def\disablepagebreaks
+ {\def\dopagebreak[##1]{}}
+
\def\executepagebreakhandler#1%
{\edef\@@pagespecification{#1}%
\doifdefinedelse{\??pe:\@@pagespecification}
@@ -1524,7 +1593,7 @@
% {\flushnotes % see head's; watch how we group
% \doifsomething{#1}{\bgroup\executepagebreakhandlers{#1}\egroup}}
-\def\pagebreak
+\unexpanded\def\pagebreak
{\dosingleempty\dopagebreak}
\def\dopagebreak[#1]% so, page ornaments are reset after a pagebreak command, unless set
@@ -1635,7 +1704,7 @@
\gotonextpageX % will become \gotonextpage
\doifbothsidesoverruled
\orsideone
- \resetcurrentsectionmarks
+ \resetcurrentsectionmarks % sic
\ejectdummypage
\orsidetwo
\od}
@@ -1646,7 +1715,7 @@
\doifbothsidesoverruled
\orsideone
\orsidetwo
- \resetcurrentsectionmarks
+ \resetcurrentsectionmarks % sic
\ejectdummypage
\od}
@@ -1659,7 +1728,7 @@
\doifoddpageelse\donothing{\resetcurrentsectionmarks\ejectdummypage}}
\installpagebreakhandler \v!quadruple % not yet ok inside columnsets
- {\ifdubbelzijdig
+ {\ifdoublesided
\!!counta\realpageno
\!!countb\realpageno
\divide\!!counta 4
@@ -1687,7 +1756,7 @@
\installpagebreakhandler \v!lastpage % handy for backpage preceded by empty pages
{\executepagebreakhandler\v!yes
- \ifdubbelzijdig
+ \ifdoublesided
\executepagebreakhandler\v!left
\executepagebreakhandler\v!empty
\executepagebreakhandler\v!empty
diff --git a/Master/texmf-dist/tex/context/base/page-lay.tex b/Master/texmf-dist/tex/context/base/page-lay.tex
index 5a5bafe24be..20d9e66860b 100644
--- a/Master/texmf-dist/tex/context/base/page-lay.tex
+++ b/Master/texmf-dist/tex/context/base/page-lay.tex
@@ -314,7 +314,7 @@
% {\dodosetuppapersize[#1][#2]}}}
%
% The next version is more extensive; here we can
-% associate paper and page with key/value like settinsg,
+% associate paper and page with key/value like settings,
% which is handy in 'example' when we use setups
\def\setuppaper[#1]%
@@ -354,8 +354,7 @@
\fi\fi\fi}
\def\dododosetuppapersize[#1][#2]%
- {\xdef\restorepapersize
- {\noexpand\setuppapersize[#1][#2]}%
+ {\xdef\restorepapersize{\noexpand\setuppapersize[#1][#2]}%
\dosetuppaperorientation{#1}\paperlandscape\paperorientation\paperreverse\papermirror
\dosetuppaperorientation{#2}\printlandscape\printorientation\printreverse\printmirror
\def\docommando##1%
@@ -609,13 +608,21 @@
%
% \startstandardmakeup[page=blank] ... \stopstandardmakeup
+% \def\checkcurrentlayout % public and used in naw, so keep this name
+% {\ifundefined{\??ly\realfolio\c!state}%
+% \doifoddpageelse\checkcurrentoddlayout\checkcurrentevenlayout
+% \else
+% \doifvalue{\??ly\realfolio\c!state}\v!start
+% {\xdef\currentlayout{\realfolio}\recalculatelayout}% new, global
+% \fi}
+
\def\checkcurrentlayout % public and used in naw, so keep this name
- {\ifundefined{\??ly\realfolio\c!state}%
- \doifoddpageelse\checkcurrentoddlayout\checkcurrentevenlayout
- \else
- \doifvalue{\??ly\realfolio\c!state}\v!start
- {\xdef\currentlayout{\realfolio}\recalculatelayout}% new, global
- \fi}
+ {\doifundefinedelse{\??ly\realfolio\c!state}
+ {\doifundefinedelse{\??ly\v!current\c!state}
+ {\doifoddpageelse\checkcurrentoddlayout\checkcurrentevenlayout}
+ {\globallet\currentlayout\v!current\recalculatelayout}}
+ {\doifvalue{\??ly\realfolio\c!state}\v!start
+ {\xdef\currentlayout{\realfolio}\recalculatelayout}}} % new, global
\def\checkcurrentoddlayout
{\ifundefined{\??ly\v!odd\c!state}\else
@@ -629,7 +636,15 @@
{\globallet\currentlayout\v!even\recalculatelayout}% new, global
\fi}
-\appendtoks \checkcurrentlayout \to \everyaftershipout
+% \appendtoks \checkcurrentlayout \to \everyaftershipout
+
+\appendtoks
+ \ifx\currentlayout\v!current
+ \globallet\currentlayout\empty
+ \global\letbeundefined{\??ly\v!current\c!state}%
+ \checkcurrentlayout
+ \fi
+\to \everyaftershipout
\newif\ifdoublesidedprint
@@ -848,7 +863,7 @@
\def\orientpagebodybox#1#2#3%
{\ifnum#2#3>\zerocount
\setbox#1\vbox
- {\edef\somerotation{\ifdubbelzijdig\ifodd\realpageno#2\else#3\fi\else#2\fi}%
+ {\edef\somerotation{\ifdoublesided\ifodd\realpageno#2\else#3\fi\else#2\fi}%
\dorotatebox\somerotation\hbox{\box#1}}%
\fi}
@@ -925,28 +940,22 @@
\ifnum\verticalcutmarks >2 \chardef\colormarkoffset4 \fi
#1{#2}}
-\newif\ifdubbelzijdig \dubbelzijdigfalse
-\newif\ifenkelzijdig \enkelzijdigtrue
-
-\def\doifsometextlineelse#1%
- {\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}
+\newif\ifdoublesided \doublesidedfalse
+\newif\ifsinglesided \singlesidedtrue
% NOG EENS NAGAAN WANNEER NU GLOBAL EN WANNEER NIET
+\ifx\doifelselayoutsomeline\undefined % defined in page-txt
+ \let\doifelselayoutsomeline\secondofthreearguments
+\fi
+
\def\calculatevsizes % global needed in \recalculatelayoutregel
{\redoglobal\textheight\makeupheight
- \doifsometextlineelse \v!header
+ \doifelselayoutsomeline \v!header
{\redoglobal\advance\textheight -\headerheight
\redoglobal\advance\textheight -\headerdistance}%
\donothing
- \doifsometextlineelse \v!footer
+ \doifelselayoutsomeline \v!footer
{\redoglobal\advance\textheight -\footerheight
\redoglobal\advance\textheight -\footerdistance}%
\donothing
@@ -965,12 +974,12 @@
\def\calculatereducedvsizes
{\textheight\makeupheight
- \doifsometextlineelse \v!header
+ \doifelselayoutsomeline \v!header
{\advance\textheight -\headerheight
\advance\textheight -\headerdistance}%
{\headerheight\zeropoint
\setlayoutdistances}%
- \doifsometextlineelse \v!footer
+ \doifelselayoutsomeline \v!footer
{\advance\textheight -\footerheight
\advance\textheight -\footerdistance}%
{\footerheight\zeropoint
@@ -1027,15 +1036,15 @@
% what are those \relax'es doing there?
\def\doifbothsidesoverruled#1\orsideone#2\orsidetwo#3\od
- {\ifdubbelzijdig
+ {\ifdoublesided
\doifoddpageelse{#2}{#3}\relax
\else
#1\relax
\fi}
\def\doifbothsides#1\orsideone#2\orsidetwo#3\od
- {\ifdubbelzijdig
- \ifenkelzijdig
+ {\ifdoublesided
+ \ifsinglesided
#1\relax
\else
\doifoddpageelse{#2}{#3}\relax
@@ -1075,8 +1084,8 @@
\the\everyswapmargins}
\def\rightorleftpageaction
- {\ifdubbelzijdig
- \ifenkelzijdig
+ {\ifdoublesided
+ \ifsinglesided
\@EAEAEA\firstoftwoarguments
\else
\@EAEAEA\doifoddpageelse
diff --git a/Master/texmf-dist/tex/context/base/page-lin.tex b/Master/texmf-dist/tex/context/base/page-lin.tex
index dfb99ca95c4..a0b4e84a94d 100644
--- a/Master/texmf-dist/tex/context/base/page-lin.tex
+++ b/Master/texmf-dist/tex/context/base/page-lin.tex
@@ -200,12 +200,39 @@
\newevery \everylinenumber \relax
+% \def\dodoplacelinenumber
+% {% beware of em's, the font is already switched !
+% \setbox\scratchbox\hbox
+% {\setbox0\hbox{\@@rncommand{\completelinenumber}}\vsmashbox0%
+% \ifcase\linenumberlocation
+% \rlap{\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\dodoplacelinenumber
{% beware of em's, the font is already switched !
\setbox\scratchbox\hbox
{\setbox0\hbox{\@@rncommand{\completelinenumber}}\vsmashbox0%
\ifcase\linenumberlocation
- \rlap{\hbox to \@@rnwidth{\box0\hss}}% was \llap, nog testen !!
+ \iftypesettinglines % hack
+ \expandafter\llap
+ \else
+ \expandafter\rlap
+ \fi{\hbox to \@@rnwidth{\box0\hss}}% was \llap, nog testen !!
\or
\inleftmargin
{\forgetall
@@ -240,9 +267,12 @@
% \v!text=>\chardef\linenumberlocation\zerocount,
%\s!unknown=>\chardef\linenumberlocation\zerocount,
%\s!default=>\chardef\linenumberlocation\zerocount]%
- \ifcase\linenumberlocation % text
- \advance\leftskip \@@rnwidth\relax
- \fi
+ \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
@@ -276,6 +306,7 @@
\let\stoplinenumbering\dostopnummerenVERB
\def\placelinenumber
{\global\linenumber\verbatimlinenumber
+ \global\advance\linenumber \minusone
\doplacelinenumber}%
\fi
\dostartnummeren}
@@ -431,7 +462,7 @@
\newcount\internalparagraphnumber
-\def\setupparagraphnumbering%
+\def\setupparagraphnumbering
{\dosingleempty\dosetupparagraphnumbering}
\def\dosetupparagraphnumbering[#1]%
diff --git a/Master/texmf-dist/tex/context/base/page-log.tex b/Master/texmf-dist/tex/context/base/page-log.tex
index 19411065e52..53984eefd4f 100644
--- a/Master/texmf-dist/tex/context/base/page-log.tex
+++ b/Master/texmf-dist/tex/context/base/page-log.tex
@@ -43,6 +43,10 @@
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
@@ -131,7 +135,7 @@
\def\setlogoboxes
{\showmessage\m!layouts7\empty
\dosetlogobox\leftlogos\relax
- \ifdubbelzijdig
+ \ifdoublesided
\dosetlogobox\rightlogos\doswapmargins
\fi}
diff --git a/Master/texmf-dist/tex/context/base/page-lyr.tex b/Master/texmf-dist/tex/context/base/page-lyr.tex
index c1a9499f09d..e92f120529e 100644
--- a/Master/texmf-dist/tex/context/base/page-lyr.tex
+++ b/Master/texmf-dist/tex/context/base/page-lyr.tex
@@ -130,6 +130,19 @@
\def\currentlayerdata{0}
+\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}\voidbox}
+\def\thelayerheight#1{\the\ht\executeifdefined{\@@layerbox#1}\voidbox}
+
\def\setlayer
{\dotripleempty\dosetlayer}
@@ -198,8 +211,15 @@
\def\definelayerpreset
{\dodoubleargument\dodefinelayerpreset}
+% \def\dodefinelayerpreset[#1][#2]%
+% {\setvalue{\??ll\??ll#1}{\dopresetlayer{#2}}}
+%
+% more fun: \definelayerpreset[whatever][lefttop]
+
\def\dodefinelayerpreset[#1][#2]%
- {\setvalue{\??ll\??ll#1}{\dopresetlayer{#2}}}
+ {\doifassignmentelse{#2}
+ {\setvalue{\??ll\??ll#1}{\dopresetlayer{#2}}}
+ {\setvalue{\??ll\??ll#1}{\getvalue{\??ll\??ll#2}}}}
\def\dopresetlayer#1#2#3% #1=list #2=tag #3=list
{\getparameters[\??ll#2][#1,#3]}
@@ -300,7 +320,7 @@
\doifundefined{\@@layerbox#2\currentlayer\layerpage}
{\global\expandafter\newbox\csname\@@layerbox#2\currentlayer\layerpage\endcsname}}%
\dontcomplain % more comfortable
- \chardef\layerpagebox\csname\@@layerbox#2\currentlayer\layerpage\endcsname
+ \mathchardef\layerpagebox\csname\@@layerbox#2\currentlayer\layerpage\endcsname
\ifvoid\layerpagebox
\gsetboxllx\layerpagebox\zeropoint
\gsetboxlly\layerpagebox\zeropoint
@@ -415,6 +435,8 @@
%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
@@ -470,7 +492,7 @@
{\doifvalue{\??ll#2\c!repeat}\v!yes\!!donecfalse
\doifvalue{\??ll#2\c!state}\v!repeat\!!donecfalse}%
\fi
- \chardef\layerbox\csname\@@layerbox#3\endcsname
+ \mathchardef\layerbox\csname\@@layerbox#3\endcsname
% 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
@@ -724,8 +746,8 @@
{\doifelselayerdata{OTRTEXT}
{\setbox#1\hbox to \makeupwidth
{\startoverlay
+ {\tightlayer[OTRTEXT]} % first, otherwise problems with toc
{\normalsettextpagecontent{#1}{#2}{#3}\box#1}
- {\tightlayer[OTRTEXT]}
\stopoverlay}%
\dp#1\zeropoint}%
{\normalsettextpagecontent{#1}{#2}{#3}}}
diff --git a/Master/texmf-dist/tex/context/base/page-mak.tex b/Master/texmf-dist/tex/context/base/page-mak.tex
index a6e5a66fd0a..807d77fc07f 100644
--- a/Master/texmf-dist/tex/context/base/page-mak.tex
+++ b/Master/texmf-dist/tex/context/base/page-mak.tex
@@ -127,9 +127,10 @@
\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
- \forgetall
+% \forgetall
\setups[\makeupparameter\c!setups]%
\hsize\makeupparameter\c!width
\doifsomething{\makeupparameter\c!align}
@@ -141,7 +142,7 @@
\makeupparameter\c!bottom
\egroup
\flushmarks % new, here, else empty pages
-\stopregistercolor
+ \stopregistercolor
\doflushmakeup
\egroup
\calculatehsizes
@@ -166,13 +167,20 @@
\def\doshipoutmakeup
{\globalpushmacro\@@pnstate % new
\makeupparameter\c!before
- \vbox{\hbox{\color[\makeupparameter\c!color]{\box\makeupbox}}}%
+ \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
- \ifdubbelzijdig \ifodd\realpageno\else
+ \ifdoublesided \ifodd\realpageno\else
\processaction
[\makeupparameter\c!doublesided]
[ \v!yes=>\null
diff --git a/Master/texmf-dist/tex/context/base/page-mar.tex b/Master/texmf-dist/tex/context/base/page-mar.tex
index 6cec52d04ee..6a251f0d0e3 100644
--- a/Master/texmf-dist/tex/context/base/page-mar.tex
+++ b/Master/texmf-dist/tex/context/base/page-mar.tex
@@ -93,13 +93,13 @@
\setvalue{\s!do\??im\??im\v!inner}{\presignalrightpage\doifrightpageelse\doleftmarginline \dorightmarginline}
\setvalue{\s!do\??im\??im\v!outer}{\presignalrightpage\doifrightpageelse\dorightmarginline\doleftmarginline }
-\definemarginline[inleftmargin] [\c!location=\v!left, \c!width=\leftmarginwidth, \c!distance=\leftmargindistance]
-\definemarginline[inrightmargin][\c!location=\v!right,\c!width=\rightmarginwidth,\c!distance=\rightmargindistance]
+\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]
-\definemarginline[ininnermargin][\c!location=\v!inner,\c!width=\innermarginwidth,\c!distance=\innermargindistance]
+\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]
@@ -574,7 +574,7 @@
\v!right=>\let\next\dorightmarginblock, % no swapping
\v!inner=>\def\next{\doinmarginswapped\dorightmarginblock\doleftmarginblock },
\v!outer=>\def\next{\doinmarginswapped\doleftmarginblock \dorightmarginblock},
- \s!unknown=>\ifdubbelzijdig
+ \s!unknown=>\ifdoublesided
\doifcommonelse{+,-}{#4}
{\def\next{\doinmarginswapped\dorightmarginblock\doleftmarginblock }}
{\def\next{\doinmarginswapped\doleftmarginblock \dorightmarginblock}}%
diff --git a/Master/texmf-dist/tex/context/base/page-mul.tex b/Master/texmf-dist/tex/context/base/page-mul.tex
index c68a4dcf280..991e7532d30 100644
--- a/Master/texmf-dist/tex/context/base/page-mul.tex
+++ b/Master/texmf-dist/tex/context/base/page-mul.tex
@@ -27,7 +27,7 @@
\let\OTRMULsetvsize \OTRONEsetvsize
\let\OTRMULsethsize \OTRONEsethsize
\let\OTRMULdopagecontents \OTRONEdopagecontents
-\let\OTRMULfinalsidefloatoutput\OTRONEfinalsidefloatoutput
+\let\OTRMULfinalsidefloatoutput\OTRONEfinalsidefloatoutput % ???
\let\OTRMULflushfloatbox \OTRONEflushfloatbox
\let\OTRMULdosettopinserts \relax
@@ -37,6 +37,9 @@
\let\OTRMULdosetbothinserts \relax
\let\OTRMULflushsavedfloats \relax
+\let\OTRMULflushsidefloats \forgetsidefloats % \relax
+\let\OTRMULsynchronizesidefloats\forgetsidefloats % \relax
+
\newtoks \OTRMULoutput
\def\OTRMULgotonextpage
@@ -476,7 +479,7 @@
\fi
\appendtoks\topskip1\topskip\to\everybodyfont
\the\everybodyfont % ugly here
-\saveinterlinespace % uglu here
+ \saveinterlinespace % ugly here
\initializecolumns\nofcolumns
\hangafter\zerocount
\hangindent\zeropoint
@@ -632,7 +635,9 @@
\edef\maxcolumndepth{\the\dp\currentcolumnbox}%
\fi}}
-\def\flushcolumnedpage
+\chardef\columnedtopflushmethod\plusone
+
+\def\flushcolumnedpage#1%
{\bgroup
\forgetall
\setmulticolumnsout
@@ -698,20 +703,48 @@
\global\precolumnboxheight\zeropoint
\setvsize
\dosomebreak\nobreak
- % wrong, but keep it as a reminder
- % \ifgridsnapping \else
- % \scratchdimen\topskip
- % \advance\scratchdimen -\openstrutheight
- % \nointerlineskip
- % \vskip-\scratchdimen
- % \fi
- % so that we don't add it again
+ \ifgridsnapping \else
+ \ifcase\columnedtopflushmethod
+ % 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
+ \scratchdimen\topskip
+ \advance\scratchdimen -\openstrutheight
+ \nointerlineskip
+ \vskip-\scratchdimen
+ \or
+ % untested but maybe handy
+ \scratchdimen\topskip
+ \advance\scratchdimen -\openstrutheight
+ \nointerlineskip
+ \vskip-\scratchdimen
+ \vskip-\lineheight
+ \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}
@@ -984,7 +1017,7 @@
\getmulticolumnlines
\dimen0=\nofcolumnlines\openlineheight
\dohandleallcolumns
- {\splitcurrentcolumn from \box\normalpagebox to \dimen0}
+ {\splitcurrentcolumn from \box\normalpagebox to \dimen0}%
\setbox\restofpage\vbox{\unvbox\normalpagebox}%
\ifinheritcolumns
\ifr@ggedbottom % vreemd
@@ -1021,7 +1054,7 @@
\dohandleallcolumns
{\global\ht\currentcolumnbox\dimen0}%
\fi
- \setbox\precolumnbox\vbox{\flushcolumnedpage}%
+ \setbox\precolumnbox\vbox{\flushcolumnedpage\zerocount}%
\finaloutput\box\precolumnbox
\sethsize
\setvsize
@@ -1038,6 +1071,8 @@
%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
@@ -1083,49 +1118,58 @@
\dimen2=\onepoint % RUBISH
\dimen2=\spacingfactor\dimen2
\fi
- \loop
- \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}%
- \advance\dimen4 -.0005pt % get rid of accurracy problem, pretty new
- \ifnum\count255>100
- \donefalse
- \else\ifdim\dimen4>\ht2
- \donetrue
- \else
- \donefalse
- \fi\fi
- \ifdone
- \advance\dimen0 \dimen2\relax
- \repeat
+ \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>100\relax
+ \ifnum\count255>\multicolumnsbalancemax\relax
\showmessage\m!columns7\empty
\else
\showmessage\m!columns8{\the\count255\space}%
\fi
\egroup
\ifinheritcolumns
- \dimen0\ht\firstcolumnbox
- \dimen2\ht\firstcolumnbox
+ % 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
+ \dimen6=10\openlineheight % funny value
\global\setbox\currentcolumnbox\vbox to \dimen0
{\unvbox\currentcolumnbox
\ifdim\dimen4>\dimen6
@@ -1174,10 +1218,17 @@
\fi
\global\output{\balancingerror}%
\b@selinebottomtrue % forces depth in separation rule
- \flushcolumnedpage
- \allowbreak
+ \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
@@ -1238,8 +1289,7 @@
\let\flushcolumnfloats\noflushcolumnfloats}
\def\setlocalcolumnfloats
- {\everypar
- {\flushnotes\flushcolumnfloat\flushmargincontents\checkindentation}%
+ {\everypar{\flushnotes\flushcolumnfloat\flushmargincontents\checkindentation}%
\let\flushcolumnfloat\doflushcolumnfloat
%\let\doroomfloat\docolumnroomfloat
\let\docheckiffloatfits\docolumnroomfloat
@@ -1490,6 +1540,24 @@
\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
@@ -1511,8 +1579,8 @@
% \stopcolumns
\newif\ifinsidecolumns
-\newif\if@@klbalanceren
-\newif\if@@kluitlijnen
+% \newif\if@@klbalanceren
+% \newif\if@@kluitlijnen
\insidecolumnsfalse
@@ -1632,11 +1700,11 @@
{\goodbreak}
\installcolumnbreakhandler {MUL} \v!yes
- {\par % todo: since
+ {\par % todo: since
{\testrulewidth\zeropoint\ruledvskip\textheight} % we misuse a
- \penalty-200 % side effect
+ \penalty-200 % side effect
\vskip-\textheight
- \prevdepth-\thousandpoint} % signals top of column to \blank
+ }% bugged : \prevdepth-\thousandpoint} % signals top of column to \blank
\setupcolumns
[\c!n=2,
@@ -1645,14 +1713,14 @@
\c!direction=\v!right,
\c!rule=\v!off,
\c!tolerance=\v!tolerant,
- \c!distance=1.5\korpsgrootte, % influenced by switching
+ \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\korpsgrootte]
+ \c!offset=.5\bodyfontsize]
%D Undocumented and still under development.
@@ -1663,7 +1731,7 @@
{\bgroup
\nopenalties
\getparameters[\??kl]
- [\c!width=\hsize,\c!distance=1.5\korpsgrootte,%
+ [\c!width=\hsize,\c!distance=1.5\bodyfontsize,%
\c!n=2,\c!lines=0,#1]%
\let\rigidcolumnlines\@@kllines
\setrigidcolumnhsize\@@klwidth\@@kldistance\@@kln
diff --git a/Master/texmf-dist/tex/context/base/page-num.tex b/Master/texmf-dist/tex/context/base/page-num.tex
index 358a30275fa..b5a90fe6be3 100644
--- a/Master/texmf-dist/tex/context/base/page-num.tex
+++ b/Master/texmf-dist/tex/context/base/page-num.tex
@@ -343,10 +343,10 @@
% so far
\def\checkpagecounter
- {\checknummer{\s!page}}
+ {\checknumber[\s!page]}
% \getpagestatus
-% \ifrightpage als odd/enkelzijdig
+% \ifrightpage als odd/singlesided
\newif\ifrightpage \rightpagetrue
@@ -365,7 +365,7 @@
\writepagref}
\def\getpagestatus % hierboven gebruiken
- {\ifdubbelzijdig
+ {\ifdoublesided
\gettwopassdata\s!page
\iftwopassdatafound \else
\let\twopassdata\realpageno
@@ -402,8 +402,8 @@
\v!right=>\dododosetpagenumberlocation{\v!text\c!righttext},
\v!inleft=>\dododosetpagenumberlocation{\v!margin\c!lefttext},
\v!inright=>\dododosetpagenumberlocation{\v!margin\c!righttext},
- \v!inmargin=>\dododosetpagenumberlocation{\v!margin\ifdubbelzijdig\c!margintext\else\c!righttext\fi},
- \v!margin=>\dododosetpagenumberlocation{\v!margin\ifdubbelzijdig\c!margintext\else\c!righttext\fi},
+ \v!inmargin=>\dododosetpagenumberlocation{\v!margin\ifdoublesided\c!margintext\else\c!righttext\fi},
+ \v!margin=>\dododosetpagenumberlocation{\v!margin\ifdoublesided\c!margintext\else\c!righttext\fi},
\v!atmargin=>\dododosetpagenumberlocation{\v!text\c!marginedgetext},
\v!marginedge=>\dododosetpagenumberlocation{\v!text\c!marginedgetext}]%
\ifdone \else
@@ -419,14 +419,14 @@
\def\dosetuppagenumbering[#1]%
{\getparameters[\??nm][#1]%
\preparepageprefix\??nm
- \enkelzijdigfalse
- \dubbelzijdigfalse
+ \singlesidedfalse
+ \doublesidedfalse
\ExpandFirstAfter\processallactionsinset
[\@@nmalternative]
- [ \v!singlesided=>\enkelzijdigtrue,
- \v!doublesided=>\dubbelzijdigtrue]%
+ [ \v!singlesided=>\singlesidedtrue,
+ \v!doublesided=>\doublesidedtrue]%
\ifx\trackingmarginnotestrue\undefined\else
- \ifdubbelzijdig
+ \ifdoublesided
\trackingmarginnotestrue
\else
\trackingmarginnotesfalse
@@ -489,13 +489,19 @@
{\dodopageprefix{#1}%
\donexttracklevel{#1}}
+\chardef\pageprefixmode\plusone
+
\def\pageprefix#1[#2]%
- {\bgroup
- \edef\pageprefixtype{#1}%
- \edef\postprefix{\@@filternumberpart[#2]}%
- \let\donexttrackcommando\dopageprefix
- \donexttrackcommando\firstsection
- \egroup}
+ {\ifcase\pageprefixmode
+ % skip
+ \or
+ \bgroup
+ \edef\pageprefixtype{#1}%
+ \edef\postprefix{\@@filternumberpart[#2]}%
+ \let\donexttrackcommando\dopageprefix
+ \donexttrackcommando\firstsection
+ \egroup
+ \fi}
%D It was Marco Kuhlmann who uncovered the missing strut. This
%D was a pretty old bug kind of covered up by the fact that non
diff --git a/Master/texmf-dist/tex/context/base/page-one.tex b/Master/texmf-dist/tex/context/base/page-one.tex
index 124232868cd..b1931dd1e98 100644
--- a/Master/texmf-dist/tex/context/base/page-one.tex
+++ b/Master/texmf-dist/tex/context/base/page-one.tex
@@ -125,16 +125,48 @@
#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\MPy{pbd:\realfolio:b}%
+ \advance\scratchdimen-\MPy{pbd:\realfolio:e}%
+ \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
- \let\OTRONEregisteredtextareaA\OTRONEregisteredtextarea
- \or % whole page
- \let\OTRONEregisteredtextareaB\OTRONEregisteredtextarea
+ \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
@@ -309,16 +341,6 @@
\OTRONEdosetbotinserts
\fi}
-% \def\OTRONEdotopinsertions
-% {\ifvoid\topins\else
-% \ifgridsnapping
-% \box\topins % not \topsnaptogrid{\box\topins}%
-% \else
-% \unvbox\topins
-% \fi
-% \fi
-% \global\topinserted\zeropoint}
-
\def\OTRONEdotopinsertions
{\ifvoid\topins\else
\ifgridsnapping
@@ -359,16 +381,6 @@
\fi \fi
\snaptogrid\hbox{\iftestfloatbox\ruledhbox\fi{\copy\floatbox}}}
-% \def\OTRONEdodoflushfloats % moet nog beter: als precies passend, niet onder baseline
-% {\ifsomefloatwaiting
-% \bgroup % \box\floatbox can be in use!
-% \dogetfloat
-% \doplacefloatbox
-% \egroup
-% \dofloatflushedinfo
-% \expandafter\OTRONEdodoflushfloats
-% \fi}
-
\def\OTRONEdodoflushfloats % much in common with OTRSET
{\ifsomefloatwaiting
\ifpackflushedfloats
@@ -424,52 +436,6 @@
\expandafter\OTRONEdodoflushfloats
\fi}
-% \def\OTRONEdocheckiffloatfits % vervangen ivm downward comp
-% {\ifnofloatpermitted
-% \global\roomforfloatfalse
-% \else
-% \dimen0 \pagetotal
-% \advance\dimen0 \ht\floatbox
-% \advance\dimen0 \dp\floatbox
-% \advance\dimen0 \floattopskip
-% % \advance\dimen0 -\pageshrink % toegevoegd
-% %\message{c:\the\mofcolumns,t:\the\pagetotal,g:\the\pagegoal}%\wait
-% \ifdim\dimen0>\pagegoal
-% \global\roomforfloatfalse
-% \else
-% \global\roomforfloattrue
-% \fi
-% \fi}
-
-% \def\OTRONEdocheckiffloatfits % vervangen ivm downward comp
-% {\ifnofloatpermitted
-% \global\roomforfloatfalse
-% \else
-% \dimen0 \pagetotal
-% \advance\dimen0 \ht\floatbox
-% \advance\dimen0 \dp\floatbox
-% \advance\dimen0 \floattopskip
-% \advance\dimen0 -\pageshrink % toegevoegd
-% %\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\OTRONEdocheckiffloatfits % vervangen ivm downward comp
{\ifnofloatpermitted
\global\roomforfloatfalse
@@ -518,7 +484,8 @@
%\ifgridsnapping \else \baselinecorrection \fi % ! ! ! test test test ! ! ! !
\doplacefloatbox
\doinsertfloatinfo
- \dochecknextindentation\??bk}
+ \dochecknextindentation\??bk
+ \dorechecknextindentation}
% \def\OTRONEsomefixdfloat % [#1]
% {\docheckiffloatfits
@@ -573,30 +540,33 @@
[#1]
[ \v!left=>\leftfloat {\box\floatbox},
\v!right=>\rightfloat {\box\floatbox},
- \v!inleft=>\leftmarginfloat {\box\floatbox},
- \v!inright=>\rightmarginfloat{\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=>{\doinmargenormal\leftmarginfloat
- \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\OTRONEsomepagefloat[#1]%
+\def\OTRONEdosomepagefloat#1[#2]%
{%\checkwaitingfloats{#1}%
- \global\setbox\collectedpagefloats\vbox
- {\unvbox\collectedpagefloats
+ \global\setbox#1\vbox
+ {\unvbox#1%
\vbox to \textheight
- {\doifnotinset\v!high{#1}\vfill
+ {\doifnotinset\v!high{#2}\vfill
\box\floatbox
- \doifnotinset\v!low{#1}\vfill}%
+ \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
diff --git a/Master/texmf-dist/tex/context/base/page-plg.tex b/Master/texmf-dist/tex/context/base/page-plg.tex
new file mode 100644
index 00000000000..8478d6ef60b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-plg.tex
@@ -0,0 +1,209 @@
+%D \module
+%D [ file=page-pls,
+%D version=2003.03.16,
+%D title=\CONTEXT\ Core 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 Core 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-1\topskip
+ \vskip\strutheight
+ %
+ \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
+ \orsideone
+ \let\!!stringa\v!rightpage
+ \orsidetwo
+ \let\!!stringa\v!leftpage
+ \od
+ \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
+ \orsideone
+ \dodopagearea{#1}{#2}\c!righttext
+ \orsidetwo
+ \dodopagearea{#1}{#2}\c!lefttext
+ \od
+ \else
+ \doif{#1}\v!text % copy due to trial runs in TABLE
+ {\iftrialtypesetting
+ \copy\pagebox
+ \else
+ \setbox\pagebox\vbox
+ {\localstarttextcolor
+ \box\pagebox
+ \localstoptextcolor}%
+ \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.tex
index b44662d3c95..302a1b5a07b 100644
--- a/Master/texmf-dist/tex/context/base/page-run.tex
+++ b/Master/texmf-dist/tex/context/base/page-run.tex
@@ -32,7 +32,7 @@
[\c!offset=\v!overlay,\c!strut=\v!no,
\c!width=\paperwidth,\c!height=\paperheight]
{\ss ABC\par DEF}}%
- \dubbelzijdigfalse
+ \doublesidedfalse
\def\cutmarklength{.5em}%
\addpagecutmarks0%
\replicatepagebox0%
diff --git a/Master/texmf-dist/tex/context/base/page-set.tex b/Master/texmf-dist/tex/context/base/page-set.tex
index 76866c563d5..be744b2a184 100644
--- a/Master/texmf-dist/tex/context/base/page-set.tex
+++ b/Master/texmf-dist/tex/context/base/page-set.tex
@@ -52,6 +52,9 @@
\def\@otr@{otr}
+\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}
@@ -84,6 +87,72 @@
% \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
@@ -529,17 +598,19 @@
\def\OTRSETdoflush
{\ifcollectingcontent
+ \registerOTRSETmarks
\global\mofcolumns\plusone
\else
\OTRSETdofinalflush
\OTRSETdofinaloutput
-\ifnum\columnsetpage>0
- \dorecurse\nofcolumns{\doresetcolumnsetlines\recurselevel}%
-\fi
-\doglobal\increment\columnsetpage
+ \ifnum\columnsetpage>0
+ \dorecurse\nofcolumns{\doresetcolumnsetlines\recurselevel}%
+ \fi
+ \doglobal\increment\columnsetpage
\OTRSETinitializecolumns
%\OTRSETdoflushfloats
\OTRSETstartnextpage
+\presetOTRSETmarks
\initializecolumntextareas
\fi}
@@ -893,7 +964,9 @@
{\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
@@ -1708,6 +1781,7 @@
{\increment\columnsetlevel\relax
\globallet\localcolumnmaxcells\!!zerocount
\global\chardef\OTRSETfinish\zerocount
+ \resetOTRSETmarks
\ifnum\columnsetlevel=\plusone
\bgroup
\saveinterlinespace
@@ -1725,6 +1799,31 @@
\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
@@ -1746,6 +1845,7 @@
\fi
\global\chardef\OTRSETfinish\zerocount
\ifsomefloatwaiting \setvsize \pagebreak \setvsize \fi
+ \OTRSETflushleftovers
\else
\egroup
\fi
@@ -1875,7 +1975,7 @@
{\vskip-\struttotal\verticalstrut\vfill\eject}%
\else
\ifnum\mofcolumns>\plusone
- \donetrue
+ \donetrue
\else\ifdim\pagetotal>\zeropoint % too dangerous, we loose data
\donetrue
\else
@@ -1889,6 +1989,7 @@
\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
@@ -1944,12 +2045,26 @@
\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)
- \OTRSETnaturalflush
- %\OTRSETstartnextpage
- \OTRSETdoflushfloats % actually belongs in \flushsavedfloats (but goes wrong)
- \OTRSETcheckfreelines
+ \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
@@ -2596,7 +2711,7 @@
\advance\!!widthb -\!!countc\textwidth
\ifodd\realpageno \else % tricky, assumes that we keep there
\ifcase\!!countc\else
- % nog niet ok voor enkel/dubbelzijdig
+ % 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
@@ -2627,6 +2742,7 @@
\c!depthcorrection=\v!off,
\c!n=2,
\c!nlines=0,
+ \c!indenting=,
\c!indentnext=\v!yes,
\c!default=HERE,
\c!alternative=\v!a,
@@ -2732,7 +2848,7 @@
% todo : \v!here -> here enzovoorts
\OTRSETstoreincolumnslot\floatmethod\scratchbox
% watch out: no \dochecknextindentation{tag}
- \checknextindentation[\framedtextparameter{cs:#1}\c!indentnext]
+ \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
diff --git a/Master/texmf-dist/tex/context/base/page-sid.tex b/Master/texmf-dist/tex/context/base/page-sid.tex
index 882464fc375..499f34f936f 100644
--- a/Master/texmf-dist/tex/context/base/page-sid.tex
+++ b/Master/texmf-dist/tex/context/base/page-sid.tex
@@ -77,6 +77,8 @@
\def\rightedgefloat {\global\chardef\sidefloattype7 \putsidefloat}
\def\cutspacefloat {\global\chardef\sidefloattype8 \putsidefloat}
+\let\marginfloat \cutspacefloat
+
\newif\ifroomforfloat
\newif\iffloatshort
\newif\iffloatflag
@@ -864,4 +866,22 @@
\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
+
+\def\synchronizesidefloats{\OTRcommand\synchronizesidefloats}
+\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.tex
index c90e9cf0f8b..53d50875240 100644
--- a/Master/texmf-dist/tex/context/base/page-spr.tex
+++ b/Master/texmf-dist/tex/context/base/page-spr.tex
@@ -60,7 +60,7 @@
\def\startspread
{\bgroup
- \ifdubbelzijdig
+ \ifdoublesided
\page[\v!left]%
%\setsystemmode{spread}%
\inspreadtrue
diff --git a/Master/texmf-dist/tex/context/base/page-str.tex b/Master/texmf-dist/tex/context/base/page-str.tex
new file mode 100644
index 00000000000..ca6504598ab
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-str.tex
@@ -0,0 +1,366 @@
+%D \module
+%D [ file=page-str,
+%D version=2006.03.21,
+%D title=\CONTEXT\ Core 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}.
+
+\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
+ {\doifelse\currentoutputstream\s!default
+ {\ifnum\outputpenalty=\streampenalty
+ \ifvoid\normalpagebox \else
+ \unvbox\normalpagebox
+ \fi
+ \else
+ \the\defaultstreamoutput
+ \fi}
+ {\the\normalstreamoutput}}
+
+\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}\voidbox
+ \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\outputstreambox [#1]{\ifvoid\outputstreamtag{#1}\else\box \outputstreamtag{#1}\fi}
+\def\outputstreamcopy[#1]{\ifvoid\outputstreamtag{#1}\else\copy\outputstreamtag{#1}\fi}
+\def\outputstreamht [#1]{\ht\outputstreamtag{#1}}
+\def\outputstreamdp [#1]{\dp\outputstreamtag{#1}}
+\def\outputstreamwd [#1]{\wd\outputstreamtag{#1}}
+
+%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.
+
+\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}}{#1}%
+ \expanded{\marking[#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.tex
index a36bf92568e..14707a5eb5e 100644
--- a/Master/texmf-dist/tex/context/base/page-txt.tex
+++ b/Master/texmf-dist/tex/context/base/page-txt.tex
@@ -67,15 +67,36 @@
\def\setuplayouttext
{\dotripleempty\dosetuplayouttext}
+% \def\dosetuplayouttext[#1][#2][#3]%
+% {\ifthirdargument
+% \getparameters[\??tk#1#2][#3]%
+% \else
+% %\getparameters[\??tk#1\v!text][#2]%
+% \edef\previoustextstate{\getvalue{\??tk#1\c!state}}%
+% \getparameters[\??tk#1][#2]%
+% \doifnotvalue{\??tk#1\c!state}\previoustextstate
+% {%\checkcurrentlayout % no
+% \calculatevsizes
+% \recalculatebackgrounds
+% \recalculatelogos}%
+% \fi}
+
\def\dosetuplayouttext[#1][#2][#3]%
{\ifthirdargument
\getparameters[\??tk#1#2][#3]%
\else
%\getparameters[\??tk#1\v!text][#2]%
+ \edef\previoustextstate{\getvalue{\??tk#1\c!state}}%
\getparameters[\??tk#1][#2]%
- \fi
- %\checkcurrentlayout % no
- \calculatevsizes}
+ \doifnotvalue{\??tk#1\c!state}\previoustextstate
+ {%\checkcurrentlayout % no
+ \edef\currenttextstate{\getvalue{\??tk#1\c!state}}%
+ % speed optimization (calculating backgrounds takes time)
+ \doifcommon{\previoustextstate,\currenttextstate}{\v!high,\v!none}{%
+ \calculatevsizes
+ \recalculatebackgrounds
+ \recalculatelogos}}%
+ \fi}
\def\setuptop {\dotripleempty\dosetuplayouttext[\v!top]}
\def\setupheader {\dotripleempty\dosetuplayouttext[\v!header]}
@@ -220,12 +241,15 @@
\appendtoks \placelayouttextline\v!footer\footerheight \to \footertextcontent
\appendtoks \placelayouttextline\v!bottom\bottomheight \to \bottomtextcontent
-%D Texts can be disables, moved up and ignored, depending in
+%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{\letgvalue{\??tk#1\c!state}\v!normal}
+%def\resettextlinestatus#1{\letgvalue{\??tk#1\c!state}\v!normal}
+
+\def\resettextlinestatus#1% postpone
+ {\setgvalue{\??tk#1\s!reset}{\letgvalue{\??tk#1\c!state}\v!normal}}
\def\placelayouttextline#1% #2
{\settextlinestatus{#1}%
@@ -237,10 +261,35 @@
\fi
\endcsname{#1}} % {#2}
-\setvalue{\string\placelayouttextline\v!normal}{\doplacelayouttextline}
+\def\doifelselayouttextline#1% shown or not
+ {\doifinsetelse{\getvalue{\??tk#1\c!state}}{\v!normal,\v!start}}
+
+\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
+
+\setvalue{\string\placelayouttextline\v!normal }{\doplacelayouttextline}
\setvalue{\string\placelayouttextline }{\doplacelayouttextline}
-\letvalue{\string\placelayouttextline\v!none }\gobbletwoarguments
-\letvalue{\string\placelayouttextline\v!high }\gobbletwoarguments
+
+\setvalue{\string\placelayouttextline\v!none}#1#2%
+ {}
+
+% \setvalue{\string\placelayouttextline\v!high}#1#2%
+% {\global\settrue\resyncaftertextline}
+
+\setvalue{\string\placelayouttextline\v!high}#1#2%
+ {\global\settrue\resyncaftertextline
+ \resettextlinestatus{#1}}
\setvalue{\string\placelayouttextline\v!empty}#1#2%
{\resettextlinestatus{#1}}
@@ -260,40 +309,62 @@
\egroup}
\setvalue{\string\placelayouttextline\s!unknown}#1#2%
- {\bgroup % new
+ {\global\settrue\resyncaftertextline
+ \bgroup % new
\resettextlinestatus{#1}%
\getvalue{\??tk#1\textlinestatus}%
- \getvalue{\??tk#1\v!text\textlinestatus}%
+ \getvalue{\??tk#1\v!text \textlinestatus}%
\getvalue{\??tk#1\v!margin\textlinestatus}%
- \getvalue{\??tk#1\v!edge\textlinestatus}%
+ \getvalue{\??tk#1\v!edge \textlinestatus}%
\doplacelayouttextline{#1}{#2}%
\egroup}
%D The following macro has to be called after a page
%D is flushed.
-\def\resetlayouttextline#1% beware: global assignment
- {\doifvalue{\??tk#1\c!state}\v!high
- {\resettextlinestatus{#1}%
- \donetrue}}
+% \def\resetlayouttextline#1%
+% {\doifvalue{\??tk#1\c!state}\v!high
+% {\global\settrue\resyncaftertextline
+% \resettextlinestatus{#1}}}
+
+\def\resetlayouttextline#1%
+ {\getvalue {\??tk#1\s!reset}%
+ \letgvalue{\??tk#1\s!reset}\relax}
+
+% \def\resetlayouttextlines
+% {\resetlayouttextline\v!top
+% \resetlayouttextline\v!header
+% \resetlayouttextline\v!text
+% \resetlayouttextline\v!footer
+% \resetlayouttextline\v!bottom
+% \ifconditional\resyncaftertextline
+% \doglobal\calculatevsizes
+% \recalculatebackgrounds
+% \recalculatelogos
+% \global\setfalse\resyncaftertextline
+% \fi}
\def\resetlayouttextlines
- {\donefalse
- \resetlayouttextline\v!top
+ {\resetlayouttextline\v!top
\resetlayouttextline\v!header
\resetlayouttextline\v!text
\resetlayouttextline\v!footer
\resetlayouttextline\v!bottom
- \ifdone
+ \ifconditional\resyncaftertextline
\doglobal\calculatevsizes
\recalculatebackgrounds
\recalculatelogos
+ \global\setfalse\resyncaftertextline
\fi}
%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
@@ -305,15 +376,11 @@
\offinterlineskip
\vskip-\topheight
\vskip-\topdistance
- \ifdim\topheight>\zeropoint
- \the\toptextcontent
- \vskip\topheight
- \fi
+ \the\toptextcontent
+ \vskip\topheight
\vskip\topdistance
- \ifdim\headerheight>\zeropoint
- \the\headertextcontent
- \vskip\headerheight
- \fi
+ \the\headertextcontent
+ \vskip\headerheight
\vskip\headerdistance
\placepositionanchors
\vskip-\textheight
@@ -321,15 +388,11 @@
\vskip\textheight
\the\everyendoftextbody
\vskip\footerdistance
- \ifdim\footerheight>\zeropoint
- \the\footertextcontent
- \vskip\footerheight
- \fi
+ \the\footertextcontent
+ \vskip\footerheight
\vskip\bottomdistance
- \ifdim\bottomheight>\zeropoint
- \the\bottomtextcontent
- \vskip\bottomheight
- \fi
+ \the\bottomtextcontent
+ \vskip\bottomheight
\vfilll}%
\smashbox\scratchpagebox
\box\scratchpagebox}
diff --git a/Master/texmf-dist/tex/context/base/prop-lay.tex b/Master/texmf-dist/tex/context/base/prop-lay.tex
index 749848fa812..0e5038d1999 100644
--- a/Master/texmf-dist/tex/context/base/prop-lay.tex
+++ b/Master/texmf-dist/tex/context/base/prop-lay.tex
@@ -27,8 +27,8 @@
\def\checklayerproperty
{\doifelse{\checkedpropertyparameter\v!printable\currentproperty}\v!no
- {\def\printviewerlayer{0}}%
- {\def\printviewerlayer{1}}
+ {\def\printviewerlayer{0}}
+ {\def\printviewerlayer{1}}%
\dodefineviewerlayer
\currentproperty % tag
{\checkedpropertyparameter\c!title\currentproperty}%
@@ -36,11 +36,15 @@
{0}% type (1=frozen)
{\printviewerlayer}}% 1=printable
+\let\currentlayerproperty\empty
+
\def\startlayerproperty
- {\dostartviewerlayer\currentproperty}
+ {\let\currentlayerproperty\currentproperty
+ \dostartviewerlayer\currentproperty}
\def\stoplayerproperty
- {\dostopviewerlayer}
+ {\dostopviewerlayer
+ \let\currentlayerproperty\previousproperty}
\setglobalsystemreference \rt!exec \v!HideLayer {hidelayer}
\setglobalsystemreference \rt!exec \v!VideLayer {videlayer}
diff --git a/Master/texmf-dist/tex/context/base/regi-cp1250.tex b/Master/texmf-dist/tex/context/base/regi-cp1250.tex
new file mode 100644
index 00000000000..b92eb5e31a2
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/regi-cp1250.tex
@@ -0,0 +1,153 @@
+%D \module
+%D [ file=regi-cp1250,
+%D version=2005.12.26,
+%D title=\CONTEXT\ Encoding Macros,
+%D subtitle=cp1250 (East European),
+%D author=script-generated,
+%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 Support for cp1250 input encoding (regime) for Central European languages,
+%D see also iso-8859-2.
+%D
+%D Usage:
+%D \type{\enableregime[cp1250]} or \type{\enablereregime[windows-1250]}
+
+
+\startregime[cp1250]
+
+\defineactivetoken 128 {\texteuro} % 20AC EURO SIGN
+\defineactivetoken 129 {\unknownchar} % <undefined>
+\defineactivetoken 130 {\quotesinglebase} % 201A SINGLE LOW-9 QUOTATION MARK
+\defineactivetoken 131 {\unknownchar} % <undefined>
+\defineactivetoken 132 {\quotedblbase} % 201E DOUBLE LOW-9 QUOTATION MARK
+\defineactivetoken 133 {\textellipsis} % 2026 HORIZONTAL ELLIPSIS
+\defineactivetoken 134 {\textdag} % 2020 DAGGER
+\defineactivetoken 135 {\textddag} % 2021 DOUBLE DAGGER
+\defineactivetoken 136 {\unknownchar} % <undefined>
+\defineactivetoken 137 {\perthousand} % 2030 PER MILLE SIGN
+\defineactivetoken 138 {\Scaron} % 0160 LATIN CAPITAL LETTER S WITH CARON
+\defineactivetoken 139 {\guilsingleleft} % 2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+\defineactivetoken 140 {\Sacute} % 015A LATIN CAPITAL LETTER S WITH ACUTE
+\defineactivetoken 141 {\Tcaron} % 0164 LATIN CAPITAL LETTER T WITH CARON
+\defineactivetoken 142 {\Zcaron} % 017D LATIN CAPITAL LETTER Z WITH CARON
+\defineactivetoken 143 {\Zacute} % 0179 LATIN CAPITAL LETTER Z WITH ACUTE
+\defineactivetoken 144 {\unknownchar} % <undefined>
+\defineactivetoken 145 {\quoteleft} % 2018 LEFT SINGLE QUOTATION MARK
+\defineactivetoken 146 {\quoteright} % 2019 RIGHT SINGLE QUOTATION MARK
+\defineactivetoken 147 {\quotedblleft} % 201C LEFT DOUBLE QUOTATION MARK
+\defineactivetoken 148 {\quotedblright} % 201D RIGHT DOUBLE QUOTATION MARK
+\defineactivetoken 149 {\textbullet} % 2022 BULLET
+\defineactivetoken 150 {\endash} % 2013 EN DASH
+\defineactivetoken 151 {\emdash} % 2014 EM DASH
+\defineactivetoken 152 {\unknownchar} % <undefined>
+\defineactivetoken 153 {\trademark} % 2122 TRADE MARK SIGN
+\defineactivetoken 154 {\scaron} % 0161 LATIN SMALL LETTER S WITH CARON
+\defineactivetoken 155 {\guilsingleright} % 203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+\defineactivetoken 156 {\sacute} % 015B LATIN SMALL LETTER S WITH ACUTE
+\defineactivetoken 157 {\tcaron} % 0165 LATIN SMALL LETTER T WITH CARON
+\defineactivetoken 158 {\zcaron} % 017E LATIN SMALL LETTER Z WITH CARON
+\defineactivetoken 159 {\zacute} % 017A LATIN SMALL LETTER Z WITH ACUTE
+\defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE
+\defineactivetoken 161 {\textcaron} % 02C7 CARON
+\defineactivetoken 162 {\textbreve} % 02D8 BREVE
+\defineactivetoken 163 {\Lstroke} % 0141 LATIN CAPITAL LETTER L WITH STROKE
+\defineactivetoken 164 {\textcurrency} % 00A4 CURRENCY SIGN
+\defineactivetoken 165 {\Aogonek} % 0104 LATIN CAPITAL LETTER A WITH OGONEK
+\defineactivetoken 166 {\textbrokenbar} % 00A6 BROKEN BAR
+\defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN
+\defineactivetoken 168 {\textdiaeresis} % 00A8 DIAERESIS
+\defineactivetoken 169 {\copyright} % 00A9 COPYRIGHT SIGN
+\defineactivetoken 170 {\Scedilla} % 015E LATIN CAPITAL LETTER S WITH CEDILLA
+\defineactivetoken 171 {\leftguillemot} % 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+\defineactivetoken 172 {\textlognot} % 00AC NOT SIGN
+\defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN
+\defineactivetoken 174 {\registered} % 00AE REGISTERED SIGN
+\defineactivetoken 175 {\Zdotaccent} % 017B LATIN CAPITAL LETTER Z WITH DOT ABOVE
+\defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN
+\defineactivetoken 177 {\textpm} % 00B1 PLUS-MINUS SIGN
+\defineactivetoken 178 {\textogonek} % 02DB OGONEK
+\defineactivetoken 179 {\lstroke} % 0142 LATIN SMALL LETTER L WITH STROKE
+\defineactivetoken 180 {\textacute} % 00B4 ACUTE ACCENT
+\defineactivetoken 181 {\textmu} % 00B5 MICRO SIGN
+\defineactivetoken 182 {\paragraphmark} % 00B6 PILCROW SIGN
+\defineactivetoken 183 {\periodcentered} % 00B7 MIDDLE DOT
+\defineactivetoken 184 {\textcedilla} % 00B8 CEDILLA
+\defineactivetoken 185 {\aogonek} % 0105 LATIN SMALL LETTER A WITH OGONEK
+\defineactivetoken 186 {\scedilla} % 015F LATIN SMALL LETTER S WITH CEDILLA
+\defineactivetoken 187 {\rightguillemot} % 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+\defineactivetoken 188 {\Lcaron} % 013D LATIN CAPITAL LETTER L WITH CARON
+\defineactivetoken 189 {\texthungarumlaut} % 02DD DOUBLE ACUTE ACCENT
+\defineactivetoken 190 {\lcaron} % 013E LATIN SMALL LETTER L WITH CARON
+\defineactivetoken 191 {\zdotaccent} % 017C LATIN SMALL LETTER Z WITH DOT ABOVE
+\defineactivetoken 192 {\Racute} % 0154 LATIN CAPITAL LETTER R WITH ACUTE
+\defineactivetoken 193 {\Aacute} % 00C1 LATIN CAPITAL LETTER A WITH ACUTE
+\defineactivetoken 194 {\Acircumflex} % 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+\defineactivetoken 195 {\Abreve} % 0102 LATIN CAPITAL LETTER A WITH BREVE
+\defineactivetoken 196 {\Adiaeresis} % 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
+\defineactivetoken 197 {\Lacute} % 0139 LATIN CAPITAL LETTER L WITH ACUTE
+\defineactivetoken 198 {\Cacute} % 0106 LATIN CAPITAL LETTER C WITH ACUTE
+\defineactivetoken 199 {\Ccedilla} % 00C7 LATIN CAPITAL LETTER C WITH CEDILLA
+\defineactivetoken 200 {\Ccaron} % 010C LATIN CAPITAL LETTER C WITH CARON
+\defineactivetoken 201 {\Eacute} % 00C9 LATIN CAPITAL LETTER E WITH ACUTE
+\defineactivetoken 202 {\Eogonek} % 0118 LATIN CAPITAL LETTER E WITH OGONEK
+\defineactivetoken 203 {\Ediaeresis} % 00CB LATIN CAPITAL LETTER E WITH DIAERESIS
+\defineactivetoken 204 {\Ecaron} % 011A LATIN CAPITAL LETTER E WITH CARON
+\defineactivetoken 205 {\Iacute} % 00CD LATIN CAPITAL LETTER I WITH ACUTE
+\defineactivetoken 206 {\Icircumflex} % 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+\defineactivetoken 207 {\Dcaron} % 010E LATIN CAPITAL LETTER D WITH CARON
+\defineactivetoken 208 {\Dstroke} % 0110 LATIN CAPITAL LETTER D WITH STROKE
+\defineactivetoken 209 {\Nacute} % 0143 LATIN CAPITAL LETTER N WITH ACUTE
+\defineactivetoken 210 {\Ncaron} % 0147 LATIN CAPITAL LETTER N WITH CARON
+\defineactivetoken 211 {\Oacute} % 00D3 LATIN CAPITAL LETTER O WITH ACUTE
+\defineactivetoken 212 {\Ocircumflex} % 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+\defineactivetoken 213 {\Ohungarumlaut} % 0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+\defineactivetoken 214 {\Odiaeresis} % 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
+\defineactivetoken 215 {\textmultiply} % 00D7 MULTIPLICATION SIGN
+\defineactivetoken 216 {\Rcaron} % 0158 LATIN CAPITAL LETTER R WITH CARON
+\defineactivetoken 217 {\Uring} % 016E LATIN CAPITAL LETTER U WITH RING ABOVE
+\defineactivetoken 218 {\Uacute} % 00DA LATIN CAPITAL LETTER U WITH ACUTE
+\defineactivetoken 219 {\Uhungarumlaut} % 0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+\defineactivetoken 220 {\Udiaeresis} % 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
+\defineactivetoken 221 {\Yacute} % 00DD LATIN CAPITAL LETTER Y WITH ACUTE
+\defineactivetoken 222 {\Tcedilla} % 0162 LATIN CAPITAL LETTER T WITH CEDILLA
+\defineactivetoken 223 {\ssharp} % 00DF LATIN SMALL LETTER SHARP S
+\defineactivetoken 224 {\racute} % 0155 LATIN SMALL LETTER R WITH ACUTE
+\defineactivetoken 225 {\aacute} % 00E1 LATIN SMALL LETTER A WITH ACUTE
+\defineactivetoken 226 {\acircumflex} % 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
+\defineactivetoken 227 {\abreve} % 0103 LATIN SMALL LETTER A WITH BREVE
+\defineactivetoken 228 {\adiaeresis} % 00E4 LATIN SMALL LETTER A WITH DIAERESIS
+\defineactivetoken 229 {\lacute} % 013A LATIN SMALL LETTER L WITH ACUTE
+\defineactivetoken 230 {\cacute} % 0107 LATIN SMALL LETTER C WITH ACUTE
+\defineactivetoken 231 {\ccedilla} % 00E7 LATIN SMALL LETTER C WITH CEDILLA
+\defineactivetoken 232 {\ccaron} % 010D LATIN SMALL LETTER C WITH CARON
+\defineactivetoken 233 {\eacute} % 00E9 LATIN SMALL LETTER E WITH ACUTE
+\defineactivetoken 234 {\eogonek} % 0119 LATIN SMALL LETTER E WITH OGONEK
+\defineactivetoken 235 {\ediaeresis} % 00EB LATIN SMALL LETTER E WITH DIAERESIS
+\defineactivetoken 236 {\ecaron} % 011B LATIN SMALL LETTER E WITH CARON
+\defineactivetoken 237 {\iacute} % 00ED LATIN SMALL LETTER I WITH ACUTE
+\defineactivetoken 238 {\icircumflex} % 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
+\defineactivetoken 239 {\dcaron} % 010F LATIN SMALL LETTER D WITH CARON
+\defineactivetoken 240 {\dstroke} % 0111 LATIN SMALL LETTER D WITH STROKE
+\defineactivetoken 241 {\nacute} % 0144 LATIN SMALL LETTER N WITH ACUTE
+\defineactivetoken 242 {\ncaron} % 0148 LATIN SMALL LETTER N WITH CARON
+\defineactivetoken 243 {\oacute} % 00F3 LATIN SMALL LETTER O WITH ACUTE
+\defineactivetoken 244 {\ocircumflex} % 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
+\defineactivetoken 245 {\ohungarumlaut} % 0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE
+\defineactivetoken 246 {\odiaeresis} % 00F6 LATIN SMALL LETTER O WITH DIAERESIS
+\defineactivetoken 247 {\textdiv} % 00F7 DIVISION SIGN
+\defineactivetoken 248 {\rcaron} % 0159 LATIN SMALL LETTER R WITH CARON
+\defineactivetoken 249 {\uring} % 016F LATIN SMALL LETTER U WITH RING ABOVE
+\defineactivetoken 250 {\uacute} % 00FA LATIN SMALL LETTER U WITH ACUTE
+\defineactivetoken 251 {\uhungarumlaut} % 0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE
+\defineactivetoken 252 {\udiaeresis} % 00FC LATIN SMALL LETTER U WITH DIAERESIS
+\defineactivetoken 253 {\yacute} % 00FD LATIN SMALL LETTER Y WITH ACUTE
+\defineactivetoken 254 {\tcedilla} % 0163 LATIN SMALL LETTER T WITH CEDILLA
+\defineactivetoken 255 {\textdotaccent} % 02D9 DOT ABOVE
+
+\stopregime
+
diff --git a/Master/texmf-dist/tex/context/base/regi-cp1251.tex b/Master/texmf-dist/tex/context/base/regi-cp1251.tex
new file mode 100644
index 00000000000..60f04170b31
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/regi-cp1251.tex
@@ -0,0 +1,152 @@
+%D \module
+%D [ file=regi-cp1251,
+%D version=2005.12.26,
+%D title=\CONTEXT\ Encoding Macros,
+%D subtitle=cp1251 (Cyrillic),
+%D author=script-generated,
+%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 Support for cp1251 input encoding (regime) for Cyrillic.
+%D
+%D Usage:
+%D \type{\enableregime[cp1251]} or \type{\enablereregime[windows-1251]}
+
+
+\startregime[cp1251]
+
+\defineactivetoken 128 {\cyrillicDJE} % 0402 CYRILLIC CAPITAL LETTER DJE
+\defineactivetoken 129 {\cyrillicGJE} % 0403 CYRILLIC CAPITAL LETTER GJE
+\defineactivetoken 130 {\quotesinglebase} % 201A SINGLE LOW-9 QUOTATION MARK
+\defineactivetoken 131 {\cyrillicgje} % 0453 CYRILLIC SMALL LETTER GJE
+\defineactivetoken 132 {\quotedblbase} % 201E DOUBLE LOW-9 QUOTATION MARK
+\defineactivetoken 133 {\textellipsis} % 2026 HORIZONTAL ELLIPSIS
+\defineactivetoken 134 {\textdag} % 2020 DAGGER
+\defineactivetoken 135 {\textddag} % 2021 DOUBLE DAGGER
+\defineactivetoken 136 {\texteuro} % 20AC EURO SIGN
+\defineactivetoken 137 {\perthousand} % 2030 PER MILLE SIGN
+\defineactivetoken 138 {\cyrillicLJE} % 0409 CYRILLIC CAPITAL LETTER LJE
+\defineactivetoken 139 {\guilsingleleft} % 2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+\defineactivetoken 140 {\cyrillicNJE} % 040A CYRILLIC CAPITAL LETTER NJE
+\defineactivetoken 141 {\cyrillicKJE} % 040C CYRILLIC CAPITAL LETTER KJE
+\defineactivetoken 142 {\cyrillicTSHE} % 040B CYRILLIC CAPITAL LETTER TSHE
+\defineactivetoken 143 {\cyrillicDZHE} % 040F CYRILLIC CAPITAL LETTER DZHE
+\defineactivetoken 144 {\cyrillicdje} % 0452 CYRILLIC SMALL LETTER DJE
+\defineactivetoken 145 {\quoteleft} % 2018 LEFT SINGLE QUOTATION MARK
+\defineactivetoken 146 {\quoteright} % 2019 RIGHT SINGLE QUOTATION MARK
+\defineactivetoken 147 {\quotedblleft} % 201C LEFT DOUBLE QUOTATION MARK
+\defineactivetoken 148 {\quotedblright} % 201D RIGHT DOUBLE QUOTATION MARK
+\defineactivetoken 149 {\textbullet} % 2022 BULLET
+\defineactivetoken 150 {\endash} % 2013 EN DASH
+\defineactivetoken 151 {\emdash} % 2014 EM DASH
+\defineactivetoken 152 {\unknownchar} % <undefined>
+\defineactivetoken 153 {\trademark} % 2122 TRADE MARK SIGN
+\defineactivetoken 154 {\cyrilliclje} % 0459 CYRILLIC SMALL LETTER LJE
+\defineactivetoken 155 {\guilsingleright} % 203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+\defineactivetoken 156 {\cyrillicnje} % 045A CYRILLIC SMALL LETTER NJE
+\defineactivetoken 157 {\cyrillickje} % 045C CYRILLIC SMALL LETTER KJE
+\defineactivetoken 158 {\cyrillictshe} % 045B CYRILLIC SMALL LETTER TSHE
+\defineactivetoken 159 {\cyrillicdzhe} % 045F CYRILLIC SMALL LETTER DZHE
+\defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE
+\defineactivetoken 161 {\cyrillicUSHRT} % 040E CYRILLIC CAPITAL LETTER SHORT U
+\defineactivetoken 162 {\cyrillicushrt} % 045E CYRILLIC SMALL LETTER SHORT U
+\defineactivetoken 163 {\cyrillicJE} % 0408 CYRILLIC CAPITAL LETTER JE
+\defineactivetoken 164 {\textcurrency} % 00A4 CURRENCY SIGN
+\defineactivetoken 165 {\cyrillicGHEupturn} % 0490 CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+\defineactivetoken 166 {\textbrokenbar} % 00A6 BROKEN BAR
+\defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN
+\defineactivetoken 168 {\cyrillicYO} % 0401 CYRILLIC CAPITAL LETTER IO
+\defineactivetoken 169 {\copyright} % 00A9 COPYRIGHT SIGN
+\defineactivetoken 170 {\cyrillicIE} % 0404 CYRILLIC CAPITAL LETTER UKRAINIAN IE
+\defineactivetoken 171 {\leftguillemot} % 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+\defineactivetoken 172 {\textlognot} % 00AC NOT SIGN
+\defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN
+\defineactivetoken 174 {\registered} % 00AE REGISTERED SIGN
+\defineactivetoken 175 {\cyrillicYI} % 0407 CYRILLIC CAPITAL LETTER YI
+\defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN
+\defineactivetoken 177 {\textpm} % 00B1 PLUS-MINUS SIGN
+\defineactivetoken 178 {\cyrillicII} % 0406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+\defineactivetoken 179 {\cyrillicii} % 0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+\defineactivetoken 180 {\cyrillicgheupturn} % 0491 CYRILLIC SMALL LETTER GHE WITH UPTURN
+\defineactivetoken 181 {\textmu} % 00B5 MICRO SIGN
+\defineactivetoken 182 {\paragraphmark} % 00B6 PILCROW SIGN
+\defineactivetoken 183 {\periodcentered} % 00B7 MIDDLE DOT
+\defineactivetoken 184 {\cyrillicyo} % 0451 CYRILLIC SMALL LETTER IO
+\defineactivetoken 185 {\textnumero} % 2116 NUMERO SIGN
+\defineactivetoken 186 {\cyrillicie} % 0454 CYRILLIC SMALL LETTER UKRAINIAN IE
+\defineactivetoken 187 {\rightguillemot} % 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+\defineactivetoken 188 {\cyrillicje} % 0458 CYRILLIC SMALL LETTER JE
+\defineactivetoken 189 {\cyrillicDZE} % 0405 CYRILLIC CAPITAL LETTER DZE
+\defineactivetoken 190 {\cyrillicdze} % 0455 CYRILLIC SMALL LETTER DZE
+\defineactivetoken 191 {\cyrillicyi} % 0457 CYRILLIC SMALL LETTER YI
+\defineactivetoken 192 {\cyrillicA} % 0410 CYRILLIC CAPITAL LETTER A
+\defineactivetoken 193 {\cyrillicB} % 0411 CYRILLIC CAPITAL LETTER BE
+\defineactivetoken 194 {\cyrillicV} % 0412 CYRILLIC CAPITAL LETTER VE
+\defineactivetoken 195 {\cyrillicG} % 0413 CYRILLIC CAPITAL LETTER GHE
+\defineactivetoken 196 {\cyrillicD} % 0414 CYRILLIC CAPITAL LETTER DE
+\defineactivetoken 197 {\cyrillicE} % 0415 CYRILLIC CAPITAL LETTER IE
+\defineactivetoken 198 {\cyrillicZH} % 0416 CYRILLIC CAPITAL LETTER ZHE
+\defineactivetoken 199 {\cyrillicZ} % 0417 CYRILLIC CAPITAL LETTER ZE
+\defineactivetoken 200 {\cyrillicI} % 0418 CYRILLIC CAPITAL LETTER I
+\defineactivetoken 201 {\cyrillicISHRT} % 0419 CYRILLIC CAPITAL LETTER SHORT I
+\defineactivetoken 202 {\cyrillicK} % 041A CYRILLIC CAPITAL LETTER KA
+\defineactivetoken 203 {\cyrillicL} % 041B CYRILLIC CAPITAL LETTER EL
+\defineactivetoken 204 {\cyrillicM} % 041C CYRILLIC CAPITAL LETTER EM
+\defineactivetoken 205 {\cyrillicN} % 041D CYRILLIC CAPITAL LETTER EN
+\defineactivetoken 206 {\cyrillicO} % 041E CYRILLIC CAPITAL LETTER O
+\defineactivetoken 207 {\cyrillicP} % 041F CYRILLIC CAPITAL LETTER PE
+\defineactivetoken 208 {\cyrillicR} % 0420 CYRILLIC CAPITAL LETTER ER
+\defineactivetoken 209 {\cyrillicS} % 0421 CYRILLIC CAPITAL LETTER ES
+\defineactivetoken 210 {\cyrillicT} % 0422 CYRILLIC CAPITAL LETTER TE
+\defineactivetoken 211 {\cyrillicU} % 0423 CYRILLIC CAPITAL LETTER U
+\defineactivetoken 212 {\cyrillicF} % 0424 CYRILLIC CAPITAL LETTER EF
+\defineactivetoken 213 {\cyrillicH} % 0425 CYRILLIC CAPITAL LETTER HA
+\defineactivetoken 214 {\cyrillicC} % 0426 CYRILLIC CAPITAL LETTER TSE
+\defineactivetoken 215 {\cyrillicCH} % 0427 CYRILLIC CAPITAL LETTER CHE
+\defineactivetoken 216 {\cyrillicSH} % 0428 CYRILLIC CAPITAL LETTER SHA
+\defineactivetoken 217 {\cyrillicSHCH} % 0429 CYRILLIC CAPITAL LETTER SHCHA
+\defineactivetoken 218 {\cyrillicHRDSN} % 042A CYRILLIC CAPITAL LETTER HARD SIGN
+\defineactivetoken 219 {\cyrillicERY} % 042B CYRILLIC CAPITAL LETTER YERU
+\defineactivetoken 220 {\cyrillicSFTSN} % 042C CYRILLIC CAPITAL LETTER SOFT SIGN
+\defineactivetoken 221 {\cyrillicEREV} % 042D CYRILLIC CAPITAL LETTER E
+\defineactivetoken 222 {\cyrillicYU} % 042E CYRILLIC CAPITAL LETTER YU
+\defineactivetoken 223 {\cyrillicYA} % 042F CYRILLIC CAPITAL LETTER YA
+\defineactivetoken 224 {\cyrillica} % 0430 CYRILLIC SMALL LETTER A
+\defineactivetoken 225 {\cyrillicb} % 0431 CYRILLIC SMALL LETTER BE
+\defineactivetoken 226 {\cyrillicv} % 0432 CYRILLIC SMALL LETTER VE
+\defineactivetoken 227 {\cyrillicg} % 0433 CYRILLIC SMALL LETTER GHE
+\defineactivetoken 228 {\cyrillicd} % 0434 CYRILLIC SMALL LETTER DE
+\defineactivetoken 229 {\cyrillice} % 0435 CYRILLIC SMALL LETTER IE
+\defineactivetoken 230 {\cyrilliczh} % 0436 CYRILLIC SMALL LETTER ZHE
+\defineactivetoken 231 {\cyrillicz} % 0437 CYRILLIC SMALL LETTER ZE
+\defineactivetoken 232 {\cyrillici} % 0438 CYRILLIC SMALL LETTER I
+\defineactivetoken 233 {\cyrillicishrt} % 0439 CYRILLIC SMALL LETTER SHORT I
+\defineactivetoken 234 {\cyrillick} % 043A CYRILLIC SMALL LETTER KA
+\defineactivetoken 235 {\cyrillicl} % 043B CYRILLIC SMALL LETTER EL
+\defineactivetoken 236 {\cyrillicm} % 043C CYRILLIC SMALL LETTER EM
+\defineactivetoken 237 {\cyrillicn} % 043D CYRILLIC SMALL LETTER EN
+\defineactivetoken 238 {\cyrillico} % 043E CYRILLIC SMALL LETTER O
+\defineactivetoken 239 {\cyrillicp} % 043F CYRILLIC SMALL LETTER PE
+\defineactivetoken 240 {\cyrillicr} % 0440 CYRILLIC SMALL LETTER ER
+\defineactivetoken 241 {\cyrillics} % 0441 CYRILLIC SMALL LETTER ES
+\defineactivetoken 242 {\cyrillict} % 0442 CYRILLIC SMALL LETTER TE
+\defineactivetoken 243 {\cyrillicu} % 0443 CYRILLIC SMALL LETTER U
+\defineactivetoken 244 {\cyrillicf} % 0444 CYRILLIC SMALL LETTER EF
+\defineactivetoken 245 {\cyrillich} % 0445 CYRILLIC SMALL LETTER HA
+\defineactivetoken 246 {\cyrillicc} % 0446 CYRILLIC SMALL LETTER TSE
+\defineactivetoken 247 {\cyrillicch} % 0447 CYRILLIC SMALL LETTER CHE
+\defineactivetoken 248 {\cyrillicsh} % 0448 CYRILLIC SMALL LETTER SHA
+\defineactivetoken 249 {\cyrillicshch} % 0449 CYRILLIC SMALL LETTER SHCHA
+\defineactivetoken 250 {\cyrillichrdsn} % 044A CYRILLIC SMALL LETTER HARD SIGN
+\defineactivetoken 251 {\cyrillicery} % 044B CYRILLIC SMALL LETTER YERU
+\defineactivetoken 252 {\cyrillicsftsn} % 044C CYRILLIC SMALL LETTER SOFT SIGN
+\defineactivetoken 253 {\cyrillicerev} % 044D CYRILLIC SMALL LETTER E
+\defineactivetoken 254 {\cyrillicyu} % 044E CYRILLIC SMALL LETTER YU
+\defineactivetoken 255 {\cyrillicya} % 044F CYRILLIC SMALL LETTER YA
+
+\stopregime
+
diff --git a/Master/texmf-dist/tex/context/base/regi-cp1252.tex b/Master/texmf-dist/tex/context/base/regi-cp1252.tex
new file mode 100644
index 00000000000..3911644ce6d
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/regi-cp1252.tex
@@ -0,0 +1,156 @@
+%D \module
+%D [ file=regi-cp1252,
+%D version=2005.12.26,
+%D title=\CONTEXT\ Encoding Macros,
+%D subtitle=cp1252 (West European),
+%D author=script-generated,
+%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 Support for cp1252 input encoding (regime) for West European languages,
+%D see also iso-8859-1 and iso-8859-15.
+%D
+%D (Contributors to the original file: Tobias Burnus, Hans Hagen & Victor Figurnov.)
+%D
+%D Usage:
+%D \type{\enableregime[cp1252]} or \type{\enablereregime[windows-1252]}
+%D % and \enableregime[win] for backward-compatibility
+
+
+\startregime[cp1252]
+
+\defineactivetoken 128 {\texteuro} % 20AC EURO SIGN
+\defineactivetoken 129 {\unknownchar} % <undefined>
+\defineactivetoken 130 {\quotesinglebase} % 201A SINGLE LOW-9 QUOTATION MARK
+\defineactivetoken 131 {\fhook} % 0192 LATIN SMALL LETTER F WITH HOOK
+\defineactivetoken 132 {\quotedblbase} % 201E DOUBLE LOW-9 QUOTATION MARK
+\defineactivetoken 133 {\textellipsis} % 2026 HORIZONTAL ELLIPSIS
+\defineactivetoken 134 {\textdag} % 2020 DAGGER
+\defineactivetoken 135 {\textddag} % 2021 DOUBLE DAGGER
+\defineactivetoken 136 {\textcircumflex} % 02C6 MODIFIER LETTER CIRCUMFLEX ACCENT
+\defineactivetoken 137 {\perthousand} % 2030 PER MILLE SIGN
+\defineactivetoken 138 {\Scaron} % 0160 LATIN CAPITAL LETTER S WITH CARON
+\defineactivetoken 139 {\guilsingleleft} % 2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+\defineactivetoken 140 {\OEligature} % 0152 LATIN CAPITAL LIGATURE OE
+\defineactivetoken 141 {\unknownchar} % <undefined>
+\defineactivetoken 142 {\Zcaron} % 017D LATIN CAPITAL LETTER Z WITH CARON
+\defineactivetoken 143 {\unknownchar} % <undefined>
+\defineactivetoken 144 {\unknownchar} % <undefined>
+\defineactivetoken 145 {\quoteleft} % 2018 LEFT SINGLE QUOTATION MARK
+\defineactivetoken 146 {\quoteright} % 2019 RIGHT SINGLE QUOTATION MARK
+\defineactivetoken 147 {\quotedblleft} % 201C LEFT DOUBLE QUOTATION MARK
+\defineactivetoken 148 {\quotedblright} % 201D RIGHT DOUBLE QUOTATION MARK
+\defineactivetoken 149 {\textbullet} % 2022 BULLET
+\defineactivetoken 150 {\endash} % 2013 EN DASH
+\defineactivetoken 151 {\emdash} % 2014 EM DASH
+\defineactivetoken 152 {\texttilde} % 02DC SMALL TILDE
+\defineactivetoken 153 {\trademark} % 2122 TRADE MARK SIGN
+\defineactivetoken 154 {\scaron} % 0161 LATIN SMALL LETTER S WITH CARON
+\defineactivetoken 155 {\guilsingleright} % 203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+\defineactivetoken 156 {\oeligature} % 0153 LATIN SMALL LIGATURE OE
+\defineactivetoken 157 {\unknownchar} % <undefined>
+\defineactivetoken 158 {\zcaron} % 017E LATIN SMALL LETTER Z WITH CARON
+\defineactivetoken 159 {\Ydiaeresis} % 0178 LATIN CAPITAL LETTER Y WITH DIAERESIS
+\defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE
+\defineactivetoken 161 {\exclamdown} % 00A1 INVERTED EXCLAMATION MARK
+\defineactivetoken 162 {\textcent} % 00A2 CENT SIGN
+\defineactivetoken 163 {\textsterling} % 00A3 POUND SIGN
+\defineactivetoken 164 {\textcurrency} % 00A4 CURRENCY SIGN
+\defineactivetoken 165 {\textyen} % 00A5 YEN SIGN
+\defineactivetoken 166 {\textbrokenbar} % 00A6 BROKEN BAR
+\defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN
+\defineactivetoken 168 {\textdiaeresis} % 00A8 DIAERESIS
+\defineactivetoken 169 {\copyright} % 00A9 COPYRIGHT SIGN
+\defineactivetoken 170 {\ordfeminine} % 00AA FEMININE ORDINAL INDICATOR
+\defineactivetoken 171 {\leftguillemot} % 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+\defineactivetoken 172 {\textlognot} % 00AC NOT SIGN
+\defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN
+\defineactivetoken 174 {\registered} % 00AE REGISTERED SIGN
+\defineactivetoken 175 {\textmacron} % 00AF MACRON
+\defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN
+\defineactivetoken 177 {\textpm} % 00B1 PLUS-MINUS SIGN
+\defineactivetoken 178 {\twosuperior} % 00B2 SUPERSCRIPT TWO
+\defineactivetoken 179 {\threesuperior} % 00B3 SUPERSCRIPT THREE
+\defineactivetoken 180 {\textacute} % 00B4 ACUTE ACCENT
+\defineactivetoken 181 {\textmu} % 00B5 MICRO SIGN
+\defineactivetoken 182 {\paragraphmark} % 00B6 PILCROW SIGN
+\defineactivetoken 183 {\periodcentered} % 00B7 MIDDLE DOT
+\defineactivetoken 184 {\textcedilla} % 00B8 CEDILLA
+\defineactivetoken 185 {\onesuperior} % 00B9 SUPERSCRIPT ONE
+\defineactivetoken 186 {\ordmasculine} % 00BA MASCULINE ORDINAL INDICATOR
+\defineactivetoken 187 {\rightguillemot} % 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+\defineactivetoken 188 {\onequarter} % 00BC VULGAR FRACTION ONE QUARTER
+\defineactivetoken 189 {\onehalf} % 00BD VULGAR FRACTION ONE HALF
+\defineactivetoken 190 {\threequarter} % 00BE VULGAR FRACTION THREE QUARTERS
+\defineactivetoken 191 {\questiondown} % 00BF INVERTED QUESTION MARK
+\defineactivetoken 192 {\Agrave} % 00C0 LATIN CAPITAL LETTER A WITH GRAVE
+\defineactivetoken 193 {\Aacute} % 00C1 LATIN CAPITAL LETTER A WITH ACUTE
+\defineactivetoken 194 {\Acircumflex} % 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+\defineactivetoken 195 {\Atilde} % 00C3 LATIN CAPITAL LETTER A WITH TILDE
+\defineactivetoken 196 {\Adiaeresis} % 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
+\defineactivetoken 197 {\Aring} % 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
+\defineactivetoken 198 {\AEligature} % 00C6 LATIN CAPITAL LETTER AE
+\defineactivetoken 199 {\Ccedilla} % 00C7 LATIN CAPITAL LETTER C WITH CEDILLA
+\defineactivetoken 200 {\Egrave} % 00C8 LATIN CAPITAL LETTER E WITH GRAVE
+\defineactivetoken 201 {\Eacute} % 00C9 LATIN CAPITAL LETTER E WITH ACUTE
+\defineactivetoken 202 {\Ecircumflex} % 00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+\defineactivetoken 203 {\Ediaeresis} % 00CB LATIN CAPITAL LETTER E WITH DIAERESIS
+\defineactivetoken 204 {\Igrave} % 00CC LATIN CAPITAL LETTER I WITH GRAVE
+\defineactivetoken 205 {\Iacute} % 00CD LATIN CAPITAL LETTER I WITH ACUTE
+\defineactivetoken 206 {\Icircumflex} % 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+\defineactivetoken 207 {\Idiaeresis} % 00CF LATIN CAPITAL LETTER I WITH DIAERESIS
+\defineactivetoken 208 {\Eth} % 00D0 LATIN CAPITAL LETTER ETH
+\defineactivetoken 209 {\Ntilde} % 00D1 LATIN CAPITAL LETTER N WITH TILDE
+\defineactivetoken 210 {\Ograve} % 00D2 LATIN CAPITAL LETTER O WITH GRAVE
+\defineactivetoken 211 {\Oacute} % 00D3 LATIN CAPITAL LETTER O WITH ACUTE
+\defineactivetoken 212 {\Ocircumflex} % 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+\defineactivetoken 213 {\Otilde} % 00D5 LATIN CAPITAL LETTER O WITH TILDE
+\defineactivetoken 214 {\Odiaeresis} % 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
+\defineactivetoken 215 {\textmultiply} % 00D7 MULTIPLICATION SIGN
+\defineactivetoken 216 {\Ostroke} % 00D8 LATIN CAPITAL LETTER O WITH STROKE
+\defineactivetoken 217 {\Ugrave} % 00D9 LATIN CAPITAL LETTER U WITH GRAVE
+\defineactivetoken 218 {\Uacute} % 00DA LATIN CAPITAL LETTER U WITH ACUTE
+\defineactivetoken 219 {\Ucircumflex} % 00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+\defineactivetoken 220 {\Udiaeresis} % 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
+\defineactivetoken 221 {\Yacute} % 00DD LATIN CAPITAL LETTER Y WITH ACUTE
+\defineactivetoken 222 {\Thorn} % 00DE LATIN CAPITAL LETTER THORN
+\defineactivetoken 223 {\ssharp} % 00DF LATIN SMALL LETTER SHARP S
+\defineactivetoken 224 {\agrave} % 00E0 LATIN SMALL LETTER A WITH GRAVE
+\defineactivetoken 225 {\aacute} % 00E1 LATIN SMALL LETTER A WITH ACUTE
+\defineactivetoken 226 {\acircumflex} % 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
+\defineactivetoken 227 {\atilde} % 00E3 LATIN SMALL LETTER A WITH TILDE
+\defineactivetoken 228 {\adiaeresis} % 00E4 LATIN SMALL LETTER A WITH DIAERESIS
+\defineactivetoken 229 {\aring} % 00E5 LATIN SMALL LETTER A WITH RING ABOVE
+\defineactivetoken 230 {\aeligature} % 00E6 LATIN SMALL LETTER AE
+\defineactivetoken 231 {\ccedilla} % 00E7 LATIN SMALL LETTER C WITH CEDILLA
+\defineactivetoken 232 {\egrave} % 00E8 LATIN SMALL LETTER E WITH GRAVE
+\defineactivetoken 233 {\eacute} % 00E9 LATIN SMALL LETTER E WITH ACUTE
+\defineactivetoken 234 {\ecircumflex} % 00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
+\defineactivetoken 235 {\ediaeresis} % 00EB LATIN SMALL LETTER E WITH DIAERESIS
+\defineactivetoken 236 {\igrave} % 00EC LATIN SMALL LETTER I WITH GRAVE
+\defineactivetoken 237 {\iacute} % 00ED LATIN SMALL LETTER I WITH ACUTE
+\defineactivetoken 238 {\icircumflex} % 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
+\defineactivetoken 239 {\idiaeresis} % 00EF LATIN SMALL LETTER I WITH DIAERESIS
+\defineactivetoken 240 {\eth} % 00F0 LATIN SMALL LETTER ETH
+\defineactivetoken 241 {\ntilde} % 00F1 LATIN SMALL LETTER N WITH TILDE
+\defineactivetoken 242 {\ograve} % 00F2 LATIN SMALL LETTER O WITH GRAVE
+\defineactivetoken 243 {\oacute} % 00F3 LATIN SMALL LETTER O WITH ACUTE
+\defineactivetoken 244 {\ocircumflex} % 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
+\defineactivetoken 245 {\otilde} % 00F5 LATIN SMALL LETTER O WITH TILDE
+\defineactivetoken 246 {\odiaeresis} % 00F6 LATIN SMALL LETTER O WITH DIAERESIS
+\defineactivetoken 247 {\textdiv} % 00F7 DIVISION SIGN
+\defineactivetoken 248 {\ostroke} % 00F8 LATIN SMALL LETTER O WITH STROKE
+\defineactivetoken 249 {\ugrave} % 00F9 LATIN SMALL LETTER U WITH GRAVE
+\defineactivetoken 250 {\uacute} % 00FA LATIN SMALL LETTER U WITH ACUTE
+\defineactivetoken 251 {\ucircumflex} % 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
+\defineactivetoken 252 {\udiaeresis} % 00FC LATIN SMALL LETTER U WITH DIAERESIS
+\defineactivetoken 253 {\yacute} % 00FD LATIN SMALL LETTER Y WITH ACUTE
+\defineactivetoken 254 {\thorn} % 00FE LATIN SMALL LETTER THORN
+\defineactivetoken 255 {\ydiaeresis} % 00FF LATIN SMALL LETTER Y WITH DIAERESIS
+
+\stopregime
+
diff --git a/Master/texmf-dist/tex/context/base/regi-cp1253.tex b/Master/texmf-dist/tex/context/base/regi-cp1253.tex
new file mode 100644
index 00000000000..24ec45eac5e
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/regi-cp1253.tex
@@ -0,0 +1,153 @@
+%D \module
+%D [ file=regi-cp1253,
+%D version=2005.12.26,
+%D title=\CONTEXT\ Encoding Macros,
+%D subtitle=cp1253 (Greek),
+%D author=script-generated,
+%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 Support for cp1253 input encoding (regime) for Greek,
+%D see also iso-8859-7.
+%D
+%D Usage:
+%D \type{\enableregime[cp1253]} or \type{\enablereregime[windows-1253]}
+
+
+\startregime[cp1253]
+
+\defineactivetoken 128 {\texteuro} % 20AC EURO SIGN
+\defineactivetoken 129 {\unknownchar} % <undefined>
+\defineactivetoken 130 {\quotesinglebase} % 201A SINGLE LOW-9 QUOTATION MARK
+\defineactivetoken 131 {\fhook} % 0192 LATIN SMALL LETTER F WITH HOOK
+\defineactivetoken 132 {\quotedblbase} % 201E DOUBLE LOW-9 QUOTATION MARK
+\defineactivetoken 133 {\textellipsis} % 2026 HORIZONTAL ELLIPSIS
+\defineactivetoken 134 {\textdag} % 2020 DAGGER
+\defineactivetoken 135 {\textddag} % 2021 DOUBLE DAGGER
+\defineactivetoken 136 {\unknownchar} % <undefined>
+\defineactivetoken 137 {\perthousand} % 2030 PER MILLE SIGN
+\defineactivetoken 138 {\unknownchar} % <undefined>
+\defineactivetoken 139 {\guilsingleleft} % 2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+\defineactivetoken 140 {\unknownchar} % <undefined>
+\defineactivetoken 141 {\unknownchar} % <undefined>
+\defineactivetoken 142 {\unknownchar} % <undefined>
+\defineactivetoken 143 {\unknownchar} % <undefined>
+\defineactivetoken 144 {\unknownchar} % <undefined>
+\defineactivetoken 145 {\quoteleft} % 2018 LEFT SINGLE QUOTATION MARK
+\defineactivetoken 146 {\quoteright} % 2019 RIGHT SINGLE QUOTATION MARK
+\defineactivetoken 147 {\quotedblleft} % 201C LEFT DOUBLE QUOTATION MARK
+\defineactivetoken 148 {\quotedblright} % 201D RIGHT DOUBLE QUOTATION MARK
+\defineactivetoken 149 {\textbullet} % 2022 BULLET
+\defineactivetoken 150 {\endash} % 2013 EN DASH
+\defineactivetoken 151 {\emdash} % 2014 EM DASH
+\defineactivetoken 152 {\unknownchar} % <undefined>
+\defineactivetoken 153 {\trademark} % 2122 TRADE MARK SIGN
+\defineactivetoken 154 {\unknownchar} % <undefined>
+\defineactivetoken 155 {\guilsingleright} % 203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+\defineactivetoken 156 {\unknownchar} % <undefined>
+\defineactivetoken 157 {\unknownchar} % <undefined>
+\defineactivetoken 158 {\unknownchar} % <undefined>
+\defineactivetoken 159 {\unknownchar} % <undefined>
+\defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE
+\defineactivetoken 161 {\greekdialytikatonos} % 0385 GREEK DIALYTIKA TONOS
+\defineactivetoken 162 {\greekAlphatonos} % 0386 GREEK CAPITAL LETTER ALPHA WITH TONOS
+\defineactivetoken 163 {\textsterling} % 00A3 POUND SIGN
+\defineactivetoken 164 {\textcurrency} % 00A4 CURRENCY SIGN
+\defineactivetoken 165 {\textyen} % 00A5 YEN SIGN
+\defineactivetoken 166 {\textbrokenbar} % 00A6 BROKEN BAR
+\defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN
+\defineactivetoken 168 {\textdiaeresis} % 00A8 DIAERESIS
+\defineactivetoken 169 {\copyright} % 00A9 COPYRIGHT SIGN
+\defineactivetoken 170 {\unknownchar} % <undefined>
+\defineactivetoken 171 {\leftguillemot} % 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+\defineactivetoken 172 {\textlognot} % 00AC NOT SIGN
+\defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN
+\defineactivetoken 174 {\registered} % 00AE REGISTERED SIGN
+\defineactivetoken 175 {\texthorizontalbar} % 2015 HORIZONTAL BAR
+\defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN
+\defineactivetoken 177 {\textpm} % 00B1 PLUS-MINUS SIGN
+\defineactivetoken 178 {\twosuperior} % 00B2 SUPERSCRIPT TWO
+\defineactivetoken 179 {\threesuperior} % 00B3 SUPERSCRIPT THREE
+\defineactivetoken 180 {\greektonos} % 0384 GREEK TONOS
+\defineactivetoken 181 {\textmu} % 00B5 MICRO SIGN
+\defineactivetoken 182 {\paragraphmark} % 00B6 PILCROW SIGN
+\defineactivetoken 183 {\periodcentered} % 00B7 MIDDLE DOT
+\defineactivetoken 184 {\greekEpsilontonos} % 0388 GREEK CAPITAL LETTER EPSILON WITH TONOS
+\defineactivetoken 185 {\greekEtatonos} % 0389 GREEK CAPITAL LETTER ETA WITH TONOS
+\defineactivetoken 186 {\greekIotatonos} % 038A GREEK CAPITAL LETTER IOTA WITH TONOS
+\defineactivetoken 187 {\rightguillemot} % 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+\defineactivetoken 188 {\greekOmicrontonos} % 038C GREEK CAPITAL LETTER OMICRON WITH TONOS
+\defineactivetoken 189 {\onehalf} % 00BD VULGAR FRACTION ONE HALF
+\defineactivetoken 190 {\greekUpsilontonos} % 038E GREEK CAPITAL LETTER UPSILON WITH TONOS
+\defineactivetoken 191 {\greekOmegatonos} % 038F GREEK CAPITAL LETTER OMEGA WITH TONOS
+\defineactivetoken 192 {\greekiotadialytikatonos} % 0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+\defineactivetoken 193 {\greekAlpha} % 0391 GREEK CAPITAL LETTER ALPHA
+\defineactivetoken 194 {\greekBeta} % 0392 GREEK CAPITAL LETTER BETA
+\defineactivetoken 195 {\greekGamma} % 0393 GREEK CAPITAL LETTER GAMMA
+\defineactivetoken 196 {\greekDelta} % 0394 GREEK CAPITAL LETTER DELTA
+\defineactivetoken 197 {\greekEpsilon} % 0395 GREEK CAPITAL LETTER EPSILON
+\defineactivetoken 198 {\greekZeta} % 0396 GREEK CAPITAL LETTER ZETA
+\defineactivetoken 199 {\greekEta} % 0397 GREEK CAPITAL LETTER ETA
+\defineactivetoken 200 {\greekTheta} % 0398 GREEK CAPITAL LETTER THETA
+\defineactivetoken 201 {\greekIota} % 0399 GREEK CAPITAL LETTER IOTA
+\defineactivetoken 202 {\greekKappa} % 039A GREEK CAPITAL LETTER KAPPA
+\defineactivetoken 203 {\greekLambda} % 039B GREEK CAPITAL LETTER LAMDA
+\defineactivetoken 204 {\greekMu} % 039C GREEK CAPITAL LETTER MU
+\defineactivetoken 205 {\greekNu} % 039D GREEK CAPITAL LETTER NU
+\defineactivetoken 206 {\greekXi} % 039E GREEK CAPITAL LETTER XI
+\defineactivetoken 207 {\greekOmicron} % 039F GREEK CAPITAL LETTER OMICRON
+\defineactivetoken 208 {\greekPi} % 03A0 GREEK CAPITAL LETTER PI
+\defineactivetoken 209 {\greekRho} % 03A1 GREEK CAPITAL LETTER RHO
+\defineactivetoken 210 {\unknownchar} % <undefined>
+\defineactivetoken 211 {\greekSigma} % 03A3 GREEK CAPITAL LETTER SIGMA
+\defineactivetoken 212 {\greekTau} % 03A4 GREEK CAPITAL LETTER TAU
+\defineactivetoken 213 {\greekUpsilon} % 03A5 GREEK CAPITAL LETTER UPSILON
+\defineactivetoken 214 {\greekPhi} % 03A6 GREEK CAPITAL LETTER PHI
+\defineactivetoken 215 {\greekChi} % 03A7 GREEK CAPITAL LETTER CHI
+\defineactivetoken 216 {\greekPsi} % 03A8 GREEK CAPITAL LETTER PSI
+\defineactivetoken 217 {\greekOmega} % 03A9 GREEK CAPITAL LETTER OMEGA
+\defineactivetoken 218 {\greekIotadialytika} % 03AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+\defineactivetoken 219 {\greekUpsilondialytika} % 03AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+\defineactivetoken 220 {\greekalphatonos} % 03AC GREEK SMALL LETTER ALPHA WITH TONOS
+\defineactivetoken 221 {\greekepsilontonos} % 03AD GREEK SMALL LETTER EPSILON WITH TONOS
+\defineactivetoken 222 {\greeketatonos} % 03AE GREEK SMALL LETTER ETA WITH TONOS
+\defineactivetoken 223 {\greekiotatonos} % 03AF GREEK SMALL LETTER IOTA WITH TONOS
+\defineactivetoken 224 {\greekupsilondialytikatonos} % 03B0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+\defineactivetoken 225 {\greekalpha} % 03B1 GREEK SMALL LETTER ALPHA
+\defineactivetoken 226 {\greekbeta} % 03B2 GREEK SMALL LETTER BETA
+\defineactivetoken 227 {\greekgamma} % 03B3 GREEK SMALL LETTER GAMMA
+\defineactivetoken 228 {\greekdelta} % 03B4 GREEK SMALL LETTER DELTA
+\defineactivetoken 229 {\greekepsilon} % 03B5 GREEK SMALL LETTER EPSILON
+\defineactivetoken 230 {\greekzeta} % 03B6 GREEK SMALL LETTER ZETA
+\defineactivetoken 231 {\greeketa} % 03B7 GREEK SMALL LETTER ETA
+\defineactivetoken 232 {\greektheta} % 03B8 GREEK SMALL LETTER THETA
+\defineactivetoken 233 {\greekiota} % 03B9 GREEK SMALL LETTER IOTA
+\defineactivetoken 234 {\greekkappa} % 03BA GREEK SMALL LETTER KAPPA
+\defineactivetoken 235 {\greeklambda} % 03BB GREEK SMALL LETTER LAMDA
+\defineactivetoken 236 {\greekmu} % 03BC GREEK SMALL LETTER MU
+\defineactivetoken 237 {\greeknu} % 03BD GREEK SMALL LETTER NU
+\defineactivetoken 238 {\greekxi} % 03BE GREEK SMALL LETTER XI
+\defineactivetoken 239 {\greekomicron} % 03BF GREEK SMALL LETTER OMICRON
+\defineactivetoken 240 {\greekpi} % 03C0 GREEK SMALL LETTER PI
+\defineactivetoken 241 {\greekrho} % 03C1 GREEK SMALL LETTER RHO
+\defineactivetoken 242 {\greekfinalsigma} % 03C2 GREEK SMALL LETTER FINAL SIGMA
+\defineactivetoken 243 {\greeksigma} % 03C3 GREEK SMALL LETTER SIGMA
+\defineactivetoken 244 {\greektau} % 03C4 GREEK SMALL LETTER TAU
+\defineactivetoken 245 {\greekupsilon} % 03C5 GREEK SMALL LETTER UPSILON
+\defineactivetoken 246 {\greekphi} % 03C6 GREEK SMALL LETTER PHI
+\defineactivetoken 247 {\greekchi} % 03C7 GREEK SMALL LETTER CHI
+\defineactivetoken 248 {\greekpsi} % 03C8 GREEK SMALL LETTER PSI
+\defineactivetoken 249 {\greekomega} % 03C9 GREEK SMALL LETTER OMEGA
+\defineactivetoken 250 {\greekiotadialytika} % 03CA GREEK SMALL LETTER IOTA WITH DIALYTIKA
+\defineactivetoken 251 {\greekupsilondiaeresis} % 03CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+\defineactivetoken 252 {\greekomicrontonos} % 03CC GREEK SMALL LETTER OMICRON WITH TONOS
+\defineactivetoken 253 {\greekupsilontonos} % 03CD GREEK SMALL LETTER UPSILON WITH TONOS
+\defineactivetoken 254 {\greekomegatonos} % 03CE GREEK SMALL LETTER OMEGA WITH TONOS
+\defineactivetoken 255 {\unknownchar} % <undefined>
+
+\stopregime
+
diff --git a/Master/texmf-dist/tex/context/base/regi-cp1254.tex b/Master/texmf-dist/tex/context/base/regi-cp1254.tex
new file mode 100644
index 00000000000..4dd509b9d69
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/regi-cp1254.tex
@@ -0,0 +1,153 @@
+%D \module
+%D [ file=regi-cp1254,
+%D version=2005.12.26,
+%D title=\CONTEXT\ Encoding Macros,
+%D subtitle=cp1254 (Turkish),
+%D author=script-generated,
+%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 Support for cp1254 input encoding (regime) for Turkish,
+%D see also iso-8859-9.
+%D
+%D Usage:
+%D \type{\enableregime[cp1254]} or \type{\enablereregime[windows-1254]}
+
+
+\startregime[cp1254]
+
+\defineactivetoken 128 {\texteuro} % 20AC EURO SIGN
+\defineactivetoken 129 {\unknownchar} % <undefined>
+\defineactivetoken 130 {\quotesinglebase} % 201A SINGLE LOW-9 QUOTATION MARK
+\defineactivetoken 131 {\fhook} % 0192 LATIN SMALL LETTER F WITH HOOK
+\defineactivetoken 132 {\quotedblbase} % 201E DOUBLE LOW-9 QUOTATION MARK
+\defineactivetoken 133 {\textellipsis} % 2026 HORIZONTAL ELLIPSIS
+\defineactivetoken 134 {\textdag} % 2020 DAGGER
+\defineactivetoken 135 {\textddag} % 2021 DOUBLE DAGGER
+\defineactivetoken 136 {\textcircumflex} % 02C6 MODIFIER LETTER CIRCUMFLEX ACCENT
+\defineactivetoken 137 {\perthousand} % 2030 PER MILLE SIGN
+\defineactivetoken 138 {\Scaron} % 0160 LATIN CAPITAL LETTER S WITH CARON
+\defineactivetoken 139 {\guilsingleleft} % 2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+\defineactivetoken 140 {\OEligature} % 0152 LATIN CAPITAL LIGATURE OE
+\defineactivetoken 141 {\unknownchar} % <undefined>
+\defineactivetoken 142 {\unknownchar} % <undefined>
+\defineactivetoken 143 {\unknownchar} % <undefined>
+\defineactivetoken 144 {\unknownchar} % <undefined>
+\defineactivetoken 145 {\quoteleft} % 2018 LEFT SINGLE QUOTATION MARK
+\defineactivetoken 146 {\quoteright} % 2019 RIGHT SINGLE QUOTATION MARK
+\defineactivetoken 147 {\quotedblleft} % 201C LEFT DOUBLE QUOTATION MARK
+\defineactivetoken 148 {\quotedblright} % 201D RIGHT DOUBLE QUOTATION MARK
+\defineactivetoken 149 {\textbullet} % 2022 BULLET
+\defineactivetoken 150 {\endash} % 2013 EN DASH
+\defineactivetoken 151 {\emdash} % 2014 EM DASH
+\defineactivetoken 152 {\texttilde} % 02DC SMALL TILDE
+\defineactivetoken 153 {\trademark} % 2122 TRADE MARK SIGN
+\defineactivetoken 154 {\scaron} % 0161 LATIN SMALL LETTER S WITH CARON
+\defineactivetoken 155 {\guilsingleright} % 203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+\defineactivetoken 156 {\oeligature} % 0153 LATIN SMALL LIGATURE OE
+\defineactivetoken 157 {\unknownchar} % <undefined>
+\defineactivetoken 158 {\unknownchar} % <undefined>
+\defineactivetoken 159 {\Ydiaeresis} % 0178 LATIN CAPITAL LETTER Y WITH DIAERESIS
+\defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE
+\defineactivetoken 161 {\exclamdown} % 00A1 INVERTED EXCLAMATION MARK
+\defineactivetoken 162 {\textcent} % 00A2 CENT SIGN
+\defineactivetoken 163 {\textsterling} % 00A3 POUND SIGN
+\defineactivetoken 164 {\textcurrency} % 00A4 CURRENCY SIGN
+\defineactivetoken 165 {\textyen} % 00A5 YEN SIGN
+\defineactivetoken 166 {\textbrokenbar} % 00A6 BROKEN BAR
+\defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN
+\defineactivetoken 168 {\textdiaeresis} % 00A8 DIAERESIS
+\defineactivetoken 169 {\copyright} % 00A9 COPYRIGHT SIGN
+\defineactivetoken 170 {\ordfeminine} % 00AA FEMININE ORDINAL INDICATOR
+\defineactivetoken 171 {\leftguillemot} % 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+\defineactivetoken 172 {\textlognot} % 00AC NOT SIGN
+\defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN
+\defineactivetoken 174 {\registered} % 00AE REGISTERED SIGN
+\defineactivetoken 175 {\textmacron} % 00AF MACRON
+\defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN
+\defineactivetoken 177 {\textpm} % 00B1 PLUS-MINUS SIGN
+\defineactivetoken 178 {\twosuperior} % 00B2 SUPERSCRIPT TWO
+\defineactivetoken 179 {\threesuperior} % 00B3 SUPERSCRIPT THREE
+\defineactivetoken 180 {\textacute} % 00B4 ACUTE ACCENT
+\defineactivetoken 181 {\textmu} % 00B5 MICRO SIGN
+\defineactivetoken 182 {\paragraphmark} % 00B6 PILCROW SIGN
+\defineactivetoken 183 {\periodcentered} % 00B7 MIDDLE DOT
+\defineactivetoken 184 {\textcedilla} % 00B8 CEDILLA
+\defineactivetoken 185 {\onesuperior} % 00B9 SUPERSCRIPT ONE
+\defineactivetoken 186 {\ordmasculine} % 00BA MASCULINE ORDINAL INDICATOR
+\defineactivetoken 187 {\rightguillemot} % 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+\defineactivetoken 188 {\onequarter} % 00BC VULGAR FRACTION ONE QUARTER
+\defineactivetoken 189 {\onehalf} % 00BD VULGAR FRACTION ONE HALF
+\defineactivetoken 190 {\threequarter} % 00BE VULGAR FRACTION THREE QUARTERS
+\defineactivetoken 191 {\questiondown} % 00BF INVERTED QUESTION MARK
+\defineactivetoken 192 {\Agrave} % 00C0 LATIN CAPITAL LETTER A WITH GRAVE
+\defineactivetoken 193 {\Aacute} % 00C1 LATIN CAPITAL LETTER A WITH ACUTE
+\defineactivetoken 194 {\Acircumflex} % 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+\defineactivetoken 195 {\Atilde} % 00C3 LATIN CAPITAL LETTER A WITH TILDE
+\defineactivetoken 196 {\Adiaeresis} % 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
+\defineactivetoken 197 {\Aring} % 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
+\defineactivetoken 198 {\AEligature} % 00C6 LATIN CAPITAL LETTER AE
+\defineactivetoken 199 {\Ccedilla} % 00C7 LATIN CAPITAL LETTER C WITH CEDILLA
+\defineactivetoken 200 {\Egrave} % 00C8 LATIN CAPITAL LETTER E WITH GRAVE
+\defineactivetoken 201 {\Eacute} % 00C9 LATIN CAPITAL LETTER E WITH ACUTE
+\defineactivetoken 202 {\Ecircumflex} % 00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+\defineactivetoken 203 {\Ediaeresis} % 00CB LATIN CAPITAL LETTER E WITH DIAERESIS
+\defineactivetoken 204 {\Igrave} % 00CC LATIN CAPITAL LETTER I WITH GRAVE
+\defineactivetoken 205 {\Iacute} % 00CD LATIN CAPITAL LETTER I WITH ACUTE
+\defineactivetoken 206 {\Icircumflex} % 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+\defineactivetoken 207 {\Idiaeresis} % 00CF LATIN CAPITAL LETTER I WITH DIAERESIS
+\defineactivetoken 208 {\Gbreve} % 011E LATIN CAPITAL LETTER G WITH BREVE
+\defineactivetoken 209 {\Ntilde} % 00D1 LATIN CAPITAL LETTER N WITH TILDE
+\defineactivetoken 210 {\Ograve} % 00D2 LATIN CAPITAL LETTER O WITH GRAVE
+\defineactivetoken 211 {\Oacute} % 00D3 LATIN CAPITAL LETTER O WITH ACUTE
+\defineactivetoken 212 {\Ocircumflex} % 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+\defineactivetoken 213 {\Otilde} % 00D5 LATIN CAPITAL LETTER O WITH TILDE
+\defineactivetoken 214 {\Odiaeresis} % 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
+\defineactivetoken 215 {\textmultiply} % 00D7 MULTIPLICATION SIGN
+\defineactivetoken 216 {\Ostroke} % 00D8 LATIN CAPITAL LETTER O WITH STROKE
+\defineactivetoken 217 {\Ugrave} % 00D9 LATIN CAPITAL LETTER U WITH GRAVE
+\defineactivetoken 218 {\Uacute} % 00DA LATIN CAPITAL LETTER U WITH ACUTE
+\defineactivetoken 219 {\Ucircumflex} % 00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+\defineactivetoken 220 {\Udiaeresis} % 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
+\defineactivetoken 221 {\Idotaccent} % 0130 LATIN CAPITAL LETTER I WITH DOT ABOVE
+\defineactivetoken 222 {\Scedilla} % 015E LATIN CAPITAL LETTER S WITH CEDILLA
+\defineactivetoken 223 {\ssharp} % 00DF LATIN SMALL LETTER SHARP S
+\defineactivetoken 224 {\agrave} % 00E0 LATIN SMALL LETTER A WITH GRAVE
+\defineactivetoken 225 {\aacute} % 00E1 LATIN SMALL LETTER A WITH ACUTE
+\defineactivetoken 226 {\acircumflex} % 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
+\defineactivetoken 227 {\atilde} % 00E3 LATIN SMALL LETTER A WITH TILDE
+\defineactivetoken 228 {\adiaeresis} % 00E4 LATIN SMALL LETTER A WITH DIAERESIS
+\defineactivetoken 229 {\aring} % 00E5 LATIN SMALL LETTER A WITH RING ABOVE
+\defineactivetoken 230 {\aeligature} % 00E6 LATIN SMALL LETTER AE
+\defineactivetoken 231 {\ccedilla} % 00E7 LATIN SMALL LETTER C WITH CEDILLA
+\defineactivetoken 232 {\egrave} % 00E8 LATIN SMALL LETTER E WITH GRAVE
+\defineactivetoken 233 {\eacute} % 00E9 LATIN SMALL LETTER E WITH ACUTE
+\defineactivetoken 234 {\ecircumflex} % 00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
+\defineactivetoken 235 {\ediaeresis} % 00EB LATIN SMALL LETTER E WITH DIAERESIS
+\defineactivetoken 236 {\igrave} % 00EC LATIN SMALL LETTER I WITH GRAVE
+\defineactivetoken 237 {\iacute} % 00ED LATIN SMALL LETTER I WITH ACUTE
+\defineactivetoken 238 {\icircumflex} % 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
+\defineactivetoken 239 {\idiaeresis} % 00EF LATIN SMALL LETTER I WITH DIAERESIS
+\defineactivetoken 240 {\gbreve} % 011F LATIN SMALL LETTER G WITH BREVE
+\defineactivetoken 241 {\ntilde} % 00F1 LATIN SMALL LETTER N WITH TILDE
+\defineactivetoken 242 {\ograve} % 00F2 LATIN SMALL LETTER O WITH GRAVE
+\defineactivetoken 243 {\oacute} % 00F3 LATIN SMALL LETTER O WITH ACUTE
+\defineactivetoken 244 {\ocircumflex} % 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
+\defineactivetoken 245 {\otilde} % 00F5 LATIN SMALL LETTER O WITH TILDE
+\defineactivetoken 246 {\odiaeresis} % 00F6 LATIN SMALL LETTER O WITH DIAERESIS
+\defineactivetoken 247 {\textdiv} % 00F7 DIVISION SIGN
+\defineactivetoken 248 {\ostroke} % 00F8 LATIN SMALL LETTER O WITH STROKE
+\defineactivetoken 249 {\ugrave} % 00F9 LATIN SMALL LETTER U WITH GRAVE
+\defineactivetoken 250 {\uacute} % 00FA LATIN SMALL LETTER U WITH ACUTE
+\defineactivetoken 251 {\ucircumflex} % 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
+\defineactivetoken 252 {\udiaeresis} % 00FC LATIN SMALL LETTER U WITH DIAERESIS
+\defineactivetoken 253 {\dotlessi} % 0131 LATIN SMALL LETTER DOTLESS I
+\defineactivetoken 254 {\scedilla} % 015F LATIN SMALL LETTER S WITH CEDILLA
+\defineactivetoken 255 {\ydiaeresis} % 00FF LATIN SMALL LETTER Y WITH DIAERESIS
+
+\stopregime
+
diff --git a/Master/texmf-dist/tex/context/base/regi-cp1257.tex b/Master/texmf-dist/tex/context/base/regi-cp1257.tex
new file mode 100644
index 00000000000..0790ef7344d
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/regi-cp1257.tex
@@ -0,0 +1,153 @@
+%D \module
+%D [ file=regi-cp1257,
+%D version=2005.12.26,
+%D title=\CONTEXT\ Encoding Macros,
+%D subtitle=cp1257 (Windows Baltic),
+%D author=script-generated,
+%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 Support for cp1257 input encoding (regime) for Baltic languages,
+%D see also iso-8859-4 and iso-8859-13.
+%D
+%D Usage:
+%D \type{\enableregime[cp1257]} or \type{\enablereregime[windows-1257]}
+
+
+\startregime[cp1257]
+
+\defineactivetoken 128 {\texteuro} % 20AC EURO SIGN
+\defineactivetoken 129 {\unknownchar} % <undefined>
+\defineactivetoken 130 {\quotesinglebase} % 201A SINGLE LOW-9 QUOTATION MARK
+\defineactivetoken 131 {\unknownchar} % <undefined>
+\defineactivetoken 132 {\quotedblbase} % 201E DOUBLE LOW-9 QUOTATION MARK
+\defineactivetoken 133 {\textellipsis} % 2026 HORIZONTAL ELLIPSIS
+\defineactivetoken 134 {\textdag} % 2020 DAGGER
+\defineactivetoken 135 {\textddag} % 2021 DOUBLE DAGGER
+\defineactivetoken 136 {\unknownchar} % <undefined>
+\defineactivetoken 137 {\perthousand} % 2030 PER MILLE SIGN
+\defineactivetoken 138 {\unknownchar} % <undefined>
+\defineactivetoken 139 {\guilsingleleft} % 2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+\defineactivetoken 140 {\unknownchar} % <undefined>
+\defineactivetoken 141 {\textdiaeresis} % 00A8 DIAERESIS
+\defineactivetoken 142 {\textcaron} % 02C7 CARON
+\defineactivetoken 143 {\textcedilla} % 00B8 CEDILLA
+\defineactivetoken 144 {\unknownchar} % <undefined>
+\defineactivetoken 145 {\quoteleft} % 2018 LEFT SINGLE QUOTATION MARK
+\defineactivetoken 146 {\quoteright} % 2019 RIGHT SINGLE QUOTATION MARK
+\defineactivetoken 147 {\quotedblleft} % 201C LEFT DOUBLE QUOTATION MARK
+\defineactivetoken 148 {\quotedblright} % 201D RIGHT DOUBLE QUOTATION MARK
+\defineactivetoken 149 {\textbullet} % 2022 BULLET
+\defineactivetoken 150 {\endash} % 2013 EN DASH
+\defineactivetoken 151 {\emdash} % 2014 EM DASH
+\defineactivetoken 152 {\unknownchar} % <undefined>
+\defineactivetoken 153 {\trademark} % 2122 TRADE MARK SIGN
+\defineactivetoken 154 {\unknownchar} % <undefined>
+\defineactivetoken 155 {\guilsingleright} % 203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+\defineactivetoken 156 {\unknownchar} % <undefined>
+\defineactivetoken 157 {\textmacron} % 00AF MACRON
+\defineactivetoken 158 {\textogonek} % 02DB OGONEK
+\defineactivetoken 159 {\unknownchar} % <undefined>
+\defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE
+\defineactivetoken 161 {\unknownchar} % <undefined>
+\defineactivetoken 162 {\textcent} % 00A2 CENT SIGN
+\defineactivetoken 163 {\textsterling} % 00A3 POUND SIGN
+\defineactivetoken 164 {\textcurrency} % 00A4 CURRENCY SIGN
+\defineactivetoken 165 {\unknownchar} % <undefined>
+\defineactivetoken 166 {\textbrokenbar} % 00A6 BROKEN BAR
+\defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN
+\defineactivetoken 168 {\Ostroke} % 00D8 LATIN CAPITAL LETTER O WITH STROKE
+\defineactivetoken 169 {\copyright} % 00A9 COPYRIGHT SIGN
+\defineactivetoken 170 {\Rcommaaccent} % 0156 LATIN CAPITAL LETTER R WITH CEDILLA
+\defineactivetoken 171 {\leftguillemot} % 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+\defineactivetoken 172 {\textlognot} % 00AC NOT SIGN
+\defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN
+\defineactivetoken 174 {\registered} % 00AE REGISTERED SIGN
+\defineactivetoken 175 {\AEligature} % 00C6 LATIN CAPITAL LETTER AE
+\defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN
+\defineactivetoken 177 {\textpm} % 00B1 PLUS-MINUS SIGN
+\defineactivetoken 178 {\twosuperior} % 00B2 SUPERSCRIPT TWO
+\defineactivetoken 179 {\threesuperior} % 00B3 SUPERSCRIPT THREE
+\defineactivetoken 180 {\textacute} % 00B4 ACUTE ACCENT
+\defineactivetoken 181 {\textmu} % 00B5 MICRO SIGN
+\defineactivetoken 182 {\paragraphmark} % 00B6 PILCROW SIGN
+\defineactivetoken 183 {\periodcentered} % 00B7 MIDDLE DOT
+\defineactivetoken 184 {\ostroke} % 00F8 LATIN SMALL LETTER O WITH STROKE
+\defineactivetoken 185 {\onesuperior} % 00B9 SUPERSCRIPT ONE
+\defineactivetoken 186 {\rcommaaccent} % 0157 LATIN SMALL LETTER R WITH CEDILLA
+\defineactivetoken 187 {\rightguillemot} % 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+\defineactivetoken 188 {\onequarter} % 00BC VULGAR FRACTION ONE QUARTER
+\defineactivetoken 189 {\onehalf} % 00BD VULGAR FRACTION ONE HALF
+\defineactivetoken 190 {\threequarter} % 00BE VULGAR FRACTION THREE QUARTERS
+\defineactivetoken 191 {\aeligature} % 00E6 LATIN SMALL LETTER AE
+\defineactivetoken 192 {\Aogonek} % 0104 LATIN CAPITAL LETTER A WITH OGONEK
+\defineactivetoken 193 {\Iogonek} % 012E LATIN CAPITAL LETTER I WITH OGONEK
+\defineactivetoken 194 {\Amacron} % 0100 LATIN CAPITAL LETTER A WITH MACRON
+\defineactivetoken 195 {\Cacute} % 0106 LATIN CAPITAL LETTER C WITH ACUTE
+\defineactivetoken 196 {\Adiaeresis} % 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
+\defineactivetoken 197 {\Aring} % 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
+\defineactivetoken 198 {\Eogonek} % 0118 LATIN CAPITAL LETTER E WITH OGONEK
+\defineactivetoken 199 {\Emacron} % 0112 LATIN CAPITAL LETTER E WITH MACRON
+\defineactivetoken 200 {\Ccaron} % 010C LATIN CAPITAL LETTER C WITH CARON
+\defineactivetoken 201 {\Eacute} % 00C9 LATIN CAPITAL LETTER E WITH ACUTE
+\defineactivetoken 202 {\Zacute} % 0179 LATIN CAPITAL LETTER Z WITH ACUTE
+\defineactivetoken 203 {\Edotaccent} % 0116 LATIN CAPITAL LETTER E WITH DOT ABOVE
+\defineactivetoken 204 {\Gcommaaccent} % 0122 LATIN CAPITAL LETTER G WITH CEDILLA
+\defineactivetoken 205 {\Kcommaaccent} % 0136 LATIN CAPITAL LETTER K WITH CEDILLA
+\defineactivetoken 206 {\Imacron} % 012A LATIN CAPITAL LETTER I WITH MACRON
+\defineactivetoken 207 {\Lcommaaccent} % 013B LATIN CAPITAL LETTER L WITH CEDILLA
+\defineactivetoken 208 {\Scaron} % 0160 LATIN CAPITAL LETTER S WITH CARON
+\defineactivetoken 209 {\Nacute} % 0143 LATIN CAPITAL LETTER N WITH ACUTE
+\defineactivetoken 210 {\Ncommaaccent} % 0145 LATIN CAPITAL LETTER N WITH CEDILLA
+\defineactivetoken 211 {\Oacute} % 00D3 LATIN CAPITAL LETTER O WITH ACUTE
+\defineactivetoken 212 {\Omacron} % 014C LATIN CAPITAL LETTER O WITH MACRON
+\defineactivetoken 213 {\Otilde} % 00D5 LATIN CAPITAL LETTER O WITH TILDE
+\defineactivetoken 214 {\Odiaeresis} % 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
+\defineactivetoken 215 {\textmultiply} % 00D7 MULTIPLICATION SIGN
+\defineactivetoken 216 {\Uogonek} % 0172 LATIN CAPITAL LETTER U WITH OGONEK
+\defineactivetoken 217 {\Lstroke} % 0141 LATIN CAPITAL LETTER L WITH STROKE
+\defineactivetoken 218 {\Sacute} % 015A LATIN CAPITAL LETTER S WITH ACUTE
+\defineactivetoken 219 {\Umacron} % 016A LATIN CAPITAL LETTER U WITH MACRON
+\defineactivetoken 220 {\Udiaeresis} % 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
+\defineactivetoken 221 {\Zdotaccent} % 017B LATIN CAPITAL LETTER Z WITH DOT ABOVE
+\defineactivetoken 222 {\Zcaron} % 017D LATIN CAPITAL LETTER Z WITH CARON
+\defineactivetoken 223 {\ssharp} % 00DF LATIN SMALL LETTER SHARP S
+\defineactivetoken 224 {\aogonek} % 0105 LATIN SMALL LETTER A WITH OGONEK
+\defineactivetoken 225 {\iogonek} % 012F LATIN SMALL LETTER I WITH OGONEK
+\defineactivetoken 226 {\amacron} % 0101 LATIN SMALL LETTER A WITH MACRON
+\defineactivetoken 227 {\cacute} % 0107 LATIN SMALL LETTER C WITH ACUTE
+\defineactivetoken 228 {\adiaeresis} % 00E4 LATIN SMALL LETTER A WITH DIAERESIS
+\defineactivetoken 229 {\aring} % 00E5 LATIN SMALL LETTER A WITH RING ABOVE
+\defineactivetoken 230 {\eogonek} % 0119 LATIN SMALL LETTER E WITH OGONEK
+\defineactivetoken 231 {\emacron} % 0113 LATIN SMALL LETTER E WITH MACRON
+\defineactivetoken 232 {\ccaron} % 010D LATIN SMALL LETTER C WITH CARON
+\defineactivetoken 233 {\eacute} % 00E9 LATIN SMALL LETTER E WITH ACUTE
+\defineactivetoken 234 {\zacute} % 017A LATIN SMALL LETTER Z WITH ACUTE
+\defineactivetoken 235 {\edotaccent} % 0117 LATIN SMALL LETTER E WITH DOT ABOVE
+\defineactivetoken 236 {\gcommaaccent} % 0123 LATIN SMALL LETTER G WITH CEDILLA
+\defineactivetoken 237 {\kcommaaccent} % 0137 LATIN SMALL LETTER K WITH CEDILLA
+\defineactivetoken 238 {\imacron} % 012B LATIN SMALL LETTER I WITH MACRON
+\defineactivetoken 239 {\lcommaaccent} % 013C LATIN SMALL LETTER L WITH CEDILLA
+\defineactivetoken 240 {\scaron} % 0161 LATIN SMALL LETTER S WITH CARON
+\defineactivetoken 241 {\nacute} % 0144 LATIN SMALL LETTER N WITH ACUTE
+\defineactivetoken 242 {\ncommaaccent} % 0146 LATIN SMALL LETTER N WITH CEDILLA
+\defineactivetoken 243 {\oacute} % 00F3 LATIN SMALL LETTER O WITH ACUTE
+\defineactivetoken 244 {\omacron} % 014D LATIN SMALL LETTER O WITH MACRON
+\defineactivetoken 245 {\otilde} % 00F5 LATIN SMALL LETTER O WITH TILDE
+\defineactivetoken 246 {\odiaeresis} % 00F6 LATIN SMALL LETTER O WITH DIAERESIS
+\defineactivetoken 247 {\textdiv} % 00F7 DIVISION SIGN
+\defineactivetoken 248 {\uogonek} % 0173 LATIN SMALL LETTER U WITH OGONEK
+\defineactivetoken 249 {\lstroke} % 0142 LATIN SMALL LETTER L WITH STROKE
+\defineactivetoken 250 {\sacute} % 015B LATIN SMALL LETTER S WITH ACUTE
+\defineactivetoken 251 {\umacron} % 016B LATIN SMALL LETTER U WITH MACRON
+\defineactivetoken 252 {\udiaeresis} % 00FC LATIN SMALL LETTER U WITH DIAERESIS
+\defineactivetoken 253 {\zdotaccent} % 017C LATIN SMALL LETTER Z WITH DOT ABOVE
+\defineactivetoken 254 {\zcaron} % 017E LATIN SMALL LETTER Z WITH CARON
+\defineactivetoken 255 {\textdotaccent} % 02D9 DOT ABOVE
+
+\stopregime
+
diff --git a/Master/texmf-dist/tex/context/base/regi-cyr.tex b/Master/texmf-dist/tex/context/base/regi-cyr.tex
index 134cc572858..1e84b9cba87 100644
--- a/Master/texmf-dist/tex/context/base/regi-cyr.tex
+++ b/Master/texmf-dist/tex/context/base/regi-cyr.tex
@@ -11,10 +11,10 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D Here are input regimes for cyrillic encodings:
+%D Here are additional input regimes for cyrillic encodings others than cp1251
+%D and iso-8859-5:
%D
%D \startitemize
-%D \item windows
%D \item two variants of dos
%D \item three variants of koi-8 for *nix: russian,
%D ukrainian and mixed
@@ -24,139 +24,6 @@
%D Other, not so popular regimes, can be found in \type
%D {regi-cy2}.
-\startregime[cp1251]
-
-\defineactivetoken 192 {\cyrillicA}
-\defineactivetoken 193 {\cyrillicB}
-\defineactivetoken 194 {\cyrillicV}
-\defineactivetoken 195 {\cyrillicG}
-\defineactivetoken 196 {\cyrillicD}
-\defineactivetoken 197 {\cyrillicE}
-\defineactivetoken 198 {\cyrillicZH}
-\defineactivetoken 199 {\cyrillicZ}
-\defineactivetoken 200 {\cyrillicI}
-\defineactivetoken 201 {\cyrillicISHRT}
-\defineactivetoken 202 {\cyrillicK}
-\defineactivetoken 203 {\cyrillicL}
-\defineactivetoken 204 {\cyrillicM}
-\defineactivetoken 205 {\cyrillicN}
-\defineactivetoken 206 {\cyrillicO}
-\defineactivetoken 207 {\cyrillicP}
-\defineactivetoken 208 {\cyrillicR}
-\defineactivetoken 209 {\cyrillicS}
-\defineactivetoken 210 {\cyrillicT}
-\defineactivetoken 211 {\cyrillicU}
-\defineactivetoken 212 {\cyrillicF}
-\defineactivetoken 213 {\cyrillicH}
-\defineactivetoken 214 {\cyrillicC}
-\defineactivetoken 215 {\cyrillicCH}
-\defineactivetoken 216 {\cyrillicSH}
-\defineactivetoken 217 {\cyrillicSHCH}
-\defineactivetoken 218 {\cyrillicHRDSN}
-\defineactivetoken 219 {\cyrillicERY}
-\defineactivetoken 220 {\cyrillicSFTSN}
-\defineactivetoken 221 {\cyrillicEREV}
-\defineactivetoken 222 {\cyrillicYU}
-\defineactivetoken 223 {\cyrillicYA}
-\defineactivetoken 224 {\cyrillica}
-\defineactivetoken 225 {\cyrillicb}
-\defineactivetoken 226 {\cyrillicv}
-\defineactivetoken 227 {\cyrillicg}
-\defineactivetoken 228 {\cyrillicd}
-\defineactivetoken 229 {\cyrillice}
-\defineactivetoken 230 {\cyrilliczh}
-\defineactivetoken 231 {\cyrillicz}
-\defineactivetoken 232 {\cyrillici}
-\defineactivetoken 233 {\cyrillicishrt}
-\defineactivetoken 234 {\cyrillick}
-\defineactivetoken 235 {\cyrillicl}
-\defineactivetoken 236 {\cyrillicm}
-\defineactivetoken 237 {\cyrillicn}
-\defineactivetoken 238 {\cyrillico}
-\defineactivetoken 239 {\cyrillicp}
-\defineactivetoken 240 {\cyrillicr}
-\defineactivetoken 241 {\cyrillics}
-\defineactivetoken 242 {\cyrillict}
-\defineactivetoken 243 {\cyrillicu}
-\defineactivetoken 244 {\cyrillicf}
-\defineactivetoken 245 {\cyrillich}
-\defineactivetoken 246 {\cyrillicc}
-\defineactivetoken 247 {\cyrillicch}
-\defineactivetoken 248 {\cyrillicsh}
-\defineactivetoken 249 {\cyrillicshch}
-\defineactivetoken 250 {\cyrillichrdsn}
-\defineactivetoken 251 {\cyrillicery}
-\defineactivetoken 252 {\cyrillicsftsn}
-\defineactivetoken 253 {\cyrillicerev}
-\defineactivetoken 254 {\cyrillicyu}
-\defineactivetoken 255 {\cyrillicya}
-\defineactivetoken 128 {\cyrillicDJE}
-\defineactivetoken 129 {\'\cyrillicG}
-\defineactivetoken 130 {\lowerleftsingleninequote}
-\defineactivetoken 131 {\'\cyrillicg}
-\defineactivetoken 132 {\lowerleftdoubleninequote}
-\defineactivetoken 133 {\textellipsis}
-\defineactivetoken 134 {\textdag}
-\defineactivetoken 135 {\textddag}
-\defineactivetoken 136 {\texteuro}
-\defineactivetoken 137 {\perthousand}
-\defineactivetoken 138 {\cyrillicLJE}
-\defineactivetoken 139 {\leftsubguillemot}
-\defineactivetoken 140 {\cyrillicNJE}
-\defineactivetoken 141 {\'\cyrillicK}
-\defineactivetoken 142 {\cyrillicTSHE}
-\defineactivetoken 143 {\cyrillicDZHE}
-\defineactivetoken 144 {\cyrillicdje}
-\defineactivetoken 145 {\upperleftsinglesixquote}
-\defineactivetoken 146 {\upperrightsingleninequote}
-\defineactivetoken 147 {\upperleftdoublesixquote}
-\defineactivetoken 148 {\upperrightdoubleninequote}
-\defineactivetoken 149 {\textbullet}
-\defineactivetoken 150 {\endash}
-\defineactivetoken 151 {\emdash}
-\defineactivetoken 152 {\unknownchar}
-\defineactivetoken 153 {\trademark}
-\defineactivetoken 154 {\cyrilliclje}
-\defineactivetoken 155 {\rightsubguillemot}
-\defineactivetoken 156 {\cyrillicnje}
-\defineactivetoken 157 {\'\cyrillick}
-\defineactivetoken 158 {\cyrillictshe}
-\defineactivetoken 159 {\cyrillicdzhe}
-\defineactivetoken 160 {\nonbreakablespace}
-\defineactivetoken 161 {\cyrillicUSHRT}
-\defineactivetoken 162 {\cyrillicushrt}
-\defineactivetoken 163 {\cyrillicJE}
-\defineactivetoken 164 {\textcurrency}
-\defineactivetoken 165 {\cyrillicGUP}
-\defineactivetoken 166 {\textbrokenbar}
-\defineactivetoken 167 {\sectionmark}
-\defineactivetoken 168 {\cyrillicYO}
-\defineactivetoken 169 {\copyright}
-\defineactivetoken 170 {\cyrillicIE}
-\defineactivetoken 171 {\leftguillemot}
-\defineactivetoken 173 {\hyphen}
-\defineactivetoken 174 {\registered}
-\defineactivetoken 175 {\cyrillicYI}
-\defineactivetoken 176 {\textdegree}
-\defineactivetoken 178 {\cyrillicII}
-\defineactivetoken 179 {\cyrillicii}
-\defineactivetoken 180 {\cyrillicgup}
-\defineactivetoken 182 {\paragraphmark}
-\defineactivetoken 183 {\periodcentered}
-\defineactivetoken 184 {\cyrillicyo}
-\defineactivetoken 185 {\textnumero}
-\defineactivetoken 186 {\cyrillicie}
-\defineactivetoken 187 {\rightguillemot}
-\defineactivetoken 188 {\cyrillicje}
-\defineactivetoken 189 {\cyrillicDZE}
-\defineactivetoken 190 {\cyrillicdze}
-\defineactivetoken 191 {\cyrillicyi}
-\defineactivetoken 172 {\textlognot}
-\defineactivetoken 177 {\textpm}
-\defineactivetoken 181 {\textmu}
-
-\stopregime
-
\startregime[cp866]
\defineactivetoken 128 {\cyrillicA}
diff --git a/Master/texmf-dist/tex/context/base/regi-ini.tex b/Master/texmf-dist/tex/context/base/regi-ini.tex
index 1c3fceb55f7..679730d4059 100644
--- a/Master/texmf-dist/tex/context/base/regi-ini.tex
+++ b/Master/texmf-dist/tex/context/base/regi-ini.tex
@@ -22,11 +22,11 @@
\def\douseregime#1% nearly identical to encoding
{\doifundefined{\c!file\f!regimeprefix#1}%
{\setvalue{\c!file\f!regimeprefix#1}{}%
- \makeshortfilename[\f!regimeprefix#1]%
+ \makeshortfilename[\truefilename{\f!regimeprefix#1}]%
\startreadingfile
- \readsysfile\shortfilename
- {\showmessage\m!encodings2{#1}}
- {\showmessage\m!encodings3{#1}}%
+ \readsysfile\shortfilename
+ {\showmessage\m!encodings2{#1}}
+ {\showmessage\m!encodings3{#1}}%
\stopreadingfile}}
\def\useregime[#1]%
@@ -37,6 +37,8 @@
\protect
% \useregime[def,uni,ibm,win,il1,mac]
-\useregime[def,uni,lat,win,il1,mac]
+% \useregime[def,uni,iso-8858-1,iso-8858-2,cp1252,mac]
+
+\useregime[def,uni,utf] % we load the rest runtime
\endinput
diff --git a/Master/texmf-dist/tex/context/base/regi-iso-8859-1.tex b/Master/texmf-dist/tex/context/base/regi-iso-8859-1.tex
new file mode 100644
index 00000000000..27481686bf4
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/regi-iso-8859-1.tex
@@ -0,0 +1,157 @@
+%D \module
+%D [ file=regi-iso-8859-1,
+%D version=2006.04.10,
+%D title=\CONTEXT\ Encoding Macros,
+%D subtitle=iso-8859-1 (West European),
+%D author=script-generated,
+%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 Support for iso-8859-1/Latin1 input encoding (regime) for West European languages,
+%D see also cp1252 and iso-8859-15 (includes Euro).
+%D
+%D (Contributors to the original file: Daniel Flipo, Hans Hagen & Denis Roegel.)
+%D
+%D Usage:
+%D \type{\enableregime[iso-8859-1]} or
+%D \type{\enableregime[latin1]} or
+%D \type{\enableregime[il1]}
+
+
+\startregime[iso-8859-1]
+
+\defineactivetoken 128 {\unknownchar} % 0080 <control>
+\defineactivetoken 129 {\unknownchar} % 0081 <control>
+\defineactivetoken 130 {\unknownchar} % 0082 <control>
+\defineactivetoken 131 {\unknownchar} % 0083 <control>
+\defineactivetoken 132 {\unknownchar} % 0084 <control>
+\defineactivetoken 133 {\unknownchar} % 0085 <control>
+\defineactivetoken 134 {\unknownchar} % 0086 <control>
+\defineactivetoken 135 {\unknownchar} % 0087 <control>
+\defineactivetoken 136 {\unknownchar} % 0088 <control>
+\defineactivetoken 137 {\unknownchar} % 0089 <control>
+\defineactivetoken 138 {\unknownchar} % 008A <control>
+\defineactivetoken 139 {\unknownchar} % 008B <control>
+\defineactivetoken 140 {\unknownchar} % 008C <control>
+\defineactivetoken 141 {\unknownchar} % 008D <control>
+\defineactivetoken 142 {\unknownchar} % 008E <control>
+\defineactivetoken 143 {\unknownchar} % 008F <control>
+\defineactivetoken 144 {\unknownchar} % 0090 <control>
+\defineactivetoken 145 {\unknownchar} % 0091 <control>
+\defineactivetoken 146 {\unknownchar} % 0092 <control>
+\defineactivetoken 147 {\unknownchar} % 0093 <control>
+\defineactivetoken 148 {\unknownchar} % 0094 <control>
+\defineactivetoken 149 {\unknownchar} % 0095 <control>
+\defineactivetoken 150 {\unknownchar} % 0096 <control>
+\defineactivetoken 151 {\unknownchar} % 0097 <control>
+\defineactivetoken 152 {\unknownchar} % 0098 <control>
+\defineactivetoken 153 {\unknownchar} % 0099 <control>
+\defineactivetoken 154 {\unknownchar} % 009A <control>
+\defineactivetoken 155 {\unknownchar} % 009B <control>
+\defineactivetoken 156 {\unknownchar} % 009C <control>
+\defineactivetoken 157 {\unknownchar} % 009D <control>
+\defineactivetoken 158 {\unknownchar} % 009E <control>
+\defineactivetoken 159 {\unknownchar} % 009F <control>
+\defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE
+\defineactivetoken 161 {\exclamdown} % 00A1 INVERTED EXCLAMATION MARK
+\defineactivetoken 162 {\textcent} % 00A2 CENT SIGN
+\defineactivetoken 163 {\textsterling} % 00A3 POUND SIGN
+\defineactivetoken 164 {\textcurrency} % 00A4 CURRENCY SIGN
+\defineactivetoken 165 {\textyen} % 00A5 YEN SIGN
+\defineactivetoken 166 {\textbrokenbar} % 00A6 BROKEN BAR
+\defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN
+\defineactivetoken 168 {\textdiaeresis} % 00A8 DIAERESIS
+\defineactivetoken 169 {\copyright} % 00A9 COPYRIGHT SIGN
+\defineactivetoken 170 {\ordfeminine} % 00AA FEMININE ORDINAL INDICATOR
+\defineactivetoken 171 {\leftguillemot} % 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+\defineactivetoken 172 {\textlognot} % 00AC NOT SIGN
+\defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN
+\defineactivetoken 174 {\registered} % 00AE REGISTERED SIGN
+\defineactivetoken 175 {\textmacron} % 00AF MACRON
+\defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN
+\defineactivetoken 177 {\textpm} % 00B1 PLUS-MINUS SIGN
+\defineactivetoken 178 {\twosuperior} % 00B2 SUPERSCRIPT TWO
+\defineactivetoken 179 {\threesuperior} % 00B3 SUPERSCRIPT THREE
+\defineactivetoken 180 {\textacute} % 00B4 ACUTE ACCENT
+\defineactivetoken 181 {\textmu} % 00B5 MICRO SIGN
+\defineactivetoken 182 {\paragraphmark} % 00B6 PILCROW SIGN
+\defineactivetoken 183 {\periodcentered} % 00B7 MIDDLE DOT
+\defineactivetoken 184 {\textcedilla} % 00B8 CEDILLA
+\defineactivetoken 185 {\onesuperior} % 00B9 SUPERSCRIPT ONE
+\defineactivetoken 186 {\ordmasculine} % 00BA MASCULINE ORDINAL INDICATOR
+\defineactivetoken 187 {\rightguillemot} % 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+\defineactivetoken 188 {\onequarter} % 00BC VULGAR FRACTION ONE QUARTER
+\defineactivetoken 189 {\onehalf} % 00BD VULGAR FRACTION ONE HALF
+\defineactivetoken 190 {\threequarter} % 00BE VULGAR FRACTION THREE QUARTERS
+\defineactivetoken 191 {\questiondown} % 00BF INVERTED QUESTION MARK
+\defineactivetoken 192 {\Agrave} % 00C0 LATIN CAPITAL LETTER A WITH GRAVE
+\defineactivetoken 193 {\Aacute} % 00C1 LATIN CAPITAL LETTER A WITH ACUTE
+\defineactivetoken 194 {\Acircumflex} % 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+\defineactivetoken 195 {\Atilde} % 00C3 LATIN CAPITAL LETTER A WITH TILDE
+\defineactivetoken 196 {\Adiaeresis} % 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
+\defineactivetoken 197 {\Aring} % 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
+\defineactivetoken 198 {\AEligature} % 00C6 LATIN CAPITAL LETTER AE
+\defineactivetoken 199 {\Ccedilla} % 00C7 LATIN CAPITAL LETTER C WITH CEDILLA
+\defineactivetoken 200 {\Egrave} % 00C8 LATIN CAPITAL LETTER E WITH GRAVE
+\defineactivetoken 201 {\Eacute} % 00C9 LATIN CAPITAL LETTER E WITH ACUTE
+\defineactivetoken 202 {\Ecircumflex} % 00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+\defineactivetoken 203 {\Ediaeresis} % 00CB LATIN CAPITAL LETTER E WITH DIAERESIS
+\defineactivetoken 204 {\Igrave} % 00CC LATIN CAPITAL LETTER I WITH GRAVE
+\defineactivetoken 205 {\Iacute} % 00CD LATIN CAPITAL LETTER I WITH ACUTE
+\defineactivetoken 206 {\Icircumflex} % 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+\defineactivetoken 207 {\Idiaeresis} % 00CF LATIN CAPITAL LETTER I WITH DIAERESIS
+\defineactivetoken 208 {\Eth} % 00D0 LATIN CAPITAL LETTER ETH
+\defineactivetoken 209 {\Ntilde} % 00D1 LATIN CAPITAL LETTER N WITH TILDE
+\defineactivetoken 210 {\Ograve} % 00D2 LATIN CAPITAL LETTER O WITH GRAVE
+\defineactivetoken 211 {\Oacute} % 00D3 LATIN CAPITAL LETTER O WITH ACUTE
+\defineactivetoken 212 {\Ocircumflex} % 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+\defineactivetoken 213 {\Otilde} % 00D5 LATIN CAPITAL LETTER O WITH TILDE
+\defineactivetoken 214 {\Odiaeresis} % 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
+\defineactivetoken 215 {\textmultiply} % 00D7 MULTIPLICATION SIGN
+\defineactivetoken 216 {\Ostroke} % 00D8 LATIN CAPITAL LETTER O WITH STROKE
+\defineactivetoken 217 {\Ugrave} % 00D9 LATIN CAPITAL LETTER U WITH GRAVE
+\defineactivetoken 218 {\Uacute} % 00DA LATIN CAPITAL LETTER U WITH ACUTE
+\defineactivetoken 219 {\Ucircumflex} % 00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+\defineactivetoken 220 {\Udiaeresis} % 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
+\defineactivetoken 221 {\Yacute} % 00DD LATIN CAPITAL LETTER Y WITH ACUTE
+\defineactivetoken 222 {\Thorn} % 00DE LATIN CAPITAL LETTER THORN
+\defineactivetoken 223 {\ssharp} % 00DF LATIN SMALL LETTER SHARP S
+\defineactivetoken 224 {\agrave} % 00E0 LATIN SMALL LETTER A WITH GRAVE
+\defineactivetoken 225 {\aacute} % 00E1 LATIN SMALL LETTER A WITH ACUTE
+\defineactivetoken 226 {\acircumflex} % 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
+\defineactivetoken 227 {\atilde} % 00E3 LATIN SMALL LETTER A WITH TILDE
+\defineactivetoken 228 {\adiaeresis} % 00E4 LATIN SMALL LETTER A WITH DIAERESIS
+\defineactivetoken 229 {\aring} % 00E5 LATIN SMALL LETTER A WITH RING ABOVE
+\defineactivetoken 230 {\aeligature} % 00E6 LATIN SMALL LETTER AE
+\defineactivetoken 231 {\ccedilla} % 00E7 LATIN SMALL LETTER C WITH CEDILLA
+\defineactivetoken 232 {\egrave} % 00E8 LATIN SMALL LETTER E WITH GRAVE
+\defineactivetoken 233 {\eacute} % 00E9 LATIN SMALL LETTER E WITH ACUTE
+\defineactivetoken 234 {\ecircumflex} % 00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
+\defineactivetoken 235 {\ediaeresis} % 00EB LATIN SMALL LETTER E WITH DIAERESIS
+\defineactivetoken 236 {\igrave} % 00EC LATIN SMALL LETTER I WITH GRAVE
+\defineactivetoken 237 {\iacute} % 00ED LATIN SMALL LETTER I WITH ACUTE
+\defineactivetoken 238 {\icircumflex} % 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
+\defineactivetoken 239 {\idiaeresis} % 00EF LATIN SMALL LETTER I WITH DIAERESIS
+\defineactivetoken 240 {\eth} % 00F0 LATIN SMALL LETTER ETH
+\defineactivetoken 241 {\ntilde} % 00F1 LATIN SMALL LETTER N WITH TILDE
+\defineactivetoken 242 {\ograve} % 00F2 LATIN SMALL LETTER O WITH GRAVE
+\defineactivetoken 243 {\oacute} % 00F3 LATIN SMALL LETTER O WITH ACUTE
+\defineactivetoken 244 {\ocircumflex} % 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
+\defineactivetoken 245 {\otilde} % 00F5 LATIN SMALL LETTER O WITH TILDE
+\defineactivetoken 246 {\odiaeresis} % 00F6 LATIN SMALL LETTER O WITH DIAERESIS
+\defineactivetoken 247 {\textdiv} % 00F7 DIVISION SIGN
+\defineactivetoken 248 {\ostroke} % 00F8 LATIN SMALL LETTER O WITH STROKE
+\defineactivetoken 249 {\ugrave} % 00F9 LATIN SMALL LETTER U WITH GRAVE
+\defineactivetoken 250 {\uacute} % 00FA LATIN SMALL LETTER U WITH ACUTE
+\defineactivetoken 251 {\ucircumflex} % 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
+\defineactivetoken 252 {\udiaeresis} % 00FC LATIN SMALL LETTER U WITH DIAERESIS
+\defineactivetoken 253 {\yacute} % 00FD LATIN SMALL LETTER Y WITH ACUTE
+\defineactivetoken 254 {\thorn} % 00FE LATIN SMALL LETTER THORN
+\defineactivetoken 255 {\ydiaeresis} % 00FF LATIN SMALL LETTER Y WITH DIAERESIS
+
+\stopregime
+
diff --git a/Master/texmf-dist/tex/context/base/regi-iso-8859-15.tex b/Master/texmf-dist/tex/context/base/regi-iso-8859-15.tex
new file mode 100644
index 00000000000..ad0c320da88
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/regi-iso-8859-15.tex
@@ -0,0 +1,157 @@
+%D \module
+%D [ file=regi-iso-8859-15,
+%D version=2006.04.10,
+%D title=\CONTEXT\ Encoding Macros,
+%D subtitle=iso-8859-15 (West European),
+%D author=script-generated,
+%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 Support for iso-8859-15/Latin9 input encoding (regime) for West European languages,
+%D almost the same as iso-8859-1 with rarely used symbols (currency symbol,
+%D fractions, accents) replaced by Euro and some additional letters,
+%D see also cp1252.
+%D
+%D Usage:
+%D \type{\enableregime[iso-8859-15]} or
+%D \type{\enableregime[latin9]} or
+%D \type{\enableregime[il9]}
+
+
+\startregime[iso-8859-15]
+
+\defineactivetoken 128 {\unknownchar} % 0080 <control>
+\defineactivetoken 129 {\unknownchar} % 0081 <control>
+\defineactivetoken 130 {\unknownchar} % 0082 <control>
+\defineactivetoken 131 {\unknownchar} % 0083 <control>
+\defineactivetoken 132 {\unknownchar} % 0084 <control>
+\defineactivetoken 133 {\unknownchar} % 0085 <control>
+\defineactivetoken 134 {\unknownchar} % 0086 <control>
+\defineactivetoken 135 {\unknownchar} % 0087 <control>
+\defineactivetoken 136 {\unknownchar} % 0088 <control>
+\defineactivetoken 137 {\unknownchar} % 0089 <control>
+\defineactivetoken 138 {\unknownchar} % 008A <control>
+\defineactivetoken 139 {\unknownchar} % 008B <control>
+\defineactivetoken 140 {\unknownchar} % 008C <control>
+\defineactivetoken 141 {\unknownchar} % 008D <control>
+\defineactivetoken 142 {\unknownchar} % 008E <control>
+\defineactivetoken 143 {\unknownchar} % 008F <control>
+\defineactivetoken 144 {\unknownchar} % 0090 <control>
+\defineactivetoken 145 {\unknownchar} % 0091 <control>
+\defineactivetoken 146 {\unknownchar} % 0092 <control>
+\defineactivetoken 147 {\unknownchar} % 0093 <control>
+\defineactivetoken 148 {\unknownchar} % 0094 <control>
+\defineactivetoken 149 {\unknownchar} % 0095 <control>
+\defineactivetoken 150 {\unknownchar} % 0096 <control>
+\defineactivetoken 151 {\unknownchar} % 0097 <control>
+\defineactivetoken 152 {\unknownchar} % 0098 <control>
+\defineactivetoken 153 {\unknownchar} % 0099 <control>
+\defineactivetoken 154 {\unknownchar} % 009A <control>
+\defineactivetoken 155 {\unknownchar} % 009B <control>
+\defineactivetoken 156 {\unknownchar} % 009C <control>
+\defineactivetoken 157 {\unknownchar} % 009D <control>
+\defineactivetoken 158 {\unknownchar} % 009E <control>
+\defineactivetoken 159 {\unknownchar} % 009F <control>
+\defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE
+\defineactivetoken 161 {\exclamdown} % 00A1 INVERTED EXCLAMATION MARK
+\defineactivetoken 162 {\textcent} % 00A2 CENT SIGN
+\defineactivetoken 163 {\textsterling} % 00A3 POUND SIGN
+\defineactivetoken 164 {\texteuro} % 20AC EURO SIGN
+\defineactivetoken 165 {\textyen} % 00A5 YEN SIGN
+\defineactivetoken 166 {\Scaron} % 0160 LATIN CAPITAL LETTER S WITH CARON
+\defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN
+\defineactivetoken 168 {\scaron} % 0161 LATIN SMALL LETTER S WITH CARON
+\defineactivetoken 169 {\copyright} % 00A9 COPYRIGHT SIGN
+\defineactivetoken 170 {\ordfeminine} % 00AA FEMININE ORDINAL INDICATOR
+\defineactivetoken 171 {\leftguillemot} % 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+\defineactivetoken 172 {\textlognot} % 00AC NOT SIGN
+\defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN
+\defineactivetoken 174 {\registered} % 00AE REGISTERED SIGN
+\defineactivetoken 175 {\textmacron} % 00AF MACRON
+\defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN
+\defineactivetoken 177 {\textpm} % 00B1 PLUS-MINUS SIGN
+\defineactivetoken 178 {\twosuperior} % 00B2 SUPERSCRIPT TWO
+\defineactivetoken 179 {\threesuperior} % 00B3 SUPERSCRIPT THREE
+\defineactivetoken 180 {\Zcaron} % 017D LATIN CAPITAL LETTER Z WITH CARON
+\defineactivetoken 181 {\textmu} % 00B5 MICRO SIGN
+\defineactivetoken 182 {\paragraphmark} % 00B6 PILCROW SIGN
+\defineactivetoken 183 {\periodcentered} % 00B7 MIDDLE DOT
+\defineactivetoken 184 {\zcaron} % 017E LATIN SMALL LETTER Z WITH CARON
+\defineactivetoken 185 {\onesuperior} % 00B9 SUPERSCRIPT ONE
+\defineactivetoken 186 {\ordmasculine} % 00BA MASCULINE ORDINAL INDICATOR
+\defineactivetoken 187 {\rightguillemot} % 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+\defineactivetoken 188 {\OEligature} % 0152 LATIN CAPITAL LIGATURE OE
+\defineactivetoken 189 {\oeligature} % 0153 LATIN SMALL LIGATURE OE
+\defineactivetoken 190 {\Ydiaeresis} % 0178 LATIN CAPITAL LETTER Y WITH DIAERESIS
+\defineactivetoken 191 {\questiondown} % 00BF INVERTED QUESTION MARK
+\defineactivetoken 192 {\Agrave} % 00C0 LATIN CAPITAL LETTER A WITH GRAVE
+\defineactivetoken 193 {\Aacute} % 00C1 LATIN CAPITAL LETTER A WITH ACUTE
+\defineactivetoken 194 {\Acircumflex} % 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+\defineactivetoken 195 {\Atilde} % 00C3 LATIN CAPITAL LETTER A WITH TILDE
+\defineactivetoken 196 {\Adiaeresis} % 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
+\defineactivetoken 197 {\Aring} % 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
+\defineactivetoken 198 {\AEligature} % 00C6 LATIN CAPITAL LETTER AE
+\defineactivetoken 199 {\Ccedilla} % 00C7 LATIN CAPITAL LETTER C WITH CEDILLA
+\defineactivetoken 200 {\Egrave} % 00C8 LATIN CAPITAL LETTER E WITH GRAVE
+\defineactivetoken 201 {\Eacute} % 00C9 LATIN CAPITAL LETTER E WITH ACUTE
+\defineactivetoken 202 {\Ecircumflex} % 00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+\defineactivetoken 203 {\Ediaeresis} % 00CB LATIN CAPITAL LETTER E WITH DIAERESIS
+\defineactivetoken 204 {\Igrave} % 00CC LATIN CAPITAL LETTER I WITH GRAVE
+\defineactivetoken 205 {\Iacute} % 00CD LATIN CAPITAL LETTER I WITH ACUTE
+\defineactivetoken 206 {\Icircumflex} % 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+\defineactivetoken 207 {\Idiaeresis} % 00CF LATIN CAPITAL LETTER I WITH DIAERESIS
+\defineactivetoken 208 {\Eth} % 00D0 LATIN CAPITAL LETTER ETH
+\defineactivetoken 209 {\Ntilde} % 00D1 LATIN CAPITAL LETTER N WITH TILDE
+\defineactivetoken 210 {\Ograve} % 00D2 LATIN CAPITAL LETTER O WITH GRAVE
+\defineactivetoken 211 {\Oacute} % 00D3 LATIN CAPITAL LETTER O WITH ACUTE
+\defineactivetoken 212 {\Ocircumflex} % 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+\defineactivetoken 213 {\Otilde} % 00D5 LATIN CAPITAL LETTER O WITH TILDE
+\defineactivetoken 214 {\Odiaeresis} % 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
+\defineactivetoken 215 {\textmultiply} % 00D7 MULTIPLICATION SIGN
+\defineactivetoken 216 {\Ostroke} % 00D8 LATIN CAPITAL LETTER O WITH STROKE
+\defineactivetoken 217 {\Ugrave} % 00D9 LATIN CAPITAL LETTER U WITH GRAVE
+\defineactivetoken 218 {\Uacute} % 00DA LATIN CAPITAL LETTER U WITH ACUTE
+\defineactivetoken 219 {\Ucircumflex} % 00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+\defineactivetoken 220 {\Udiaeresis} % 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
+\defineactivetoken 221 {\Yacute} % 00DD LATIN CAPITAL LETTER Y WITH ACUTE
+\defineactivetoken 222 {\Thorn} % 00DE LATIN CAPITAL LETTER THORN
+\defineactivetoken 223 {\ssharp} % 00DF LATIN SMALL LETTER SHARP S
+\defineactivetoken 224 {\agrave} % 00E0 LATIN SMALL LETTER A WITH GRAVE
+\defineactivetoken 225 {\aacute} % 00E1 LATIN SMALL LETTER A WITH ACUTE
+\defineactivetoken 226 {\acircumflex} % 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
+\defineactivetoken 227 {\atilde} % 00E3 LATIN SMALL LETTER A WITH TILDE
+\defineactivetoken 228 {\adiaeresis} % 00E4 LATIN SMALL LETTER A WITH DIAERESIS
+\defineactivetoken 229 {\aring} % 00E5 LATIN SMALL LETTER A WITH RING ABOVE
+\defineactivetoken 230 {\aeligature} % 00E6 LATIN SMALL LETTER AE
+\defineactivetoken 231 {\ccedilla} % 00E7 LATIN SMALL LETTER C WITH CEDILLA
+\defineactivetoken 232 {\egrave} % 00E8 LATIN SMALL LETTER E WITH GRAVE
+\defineactivetoken 233 {\eacute} % 00E9 LATIN SMALL LETTER E WITH ACUTE
+\defineactivetoken 234 {\ecircumflex} % 00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
+\defineactivetoken 235 {\ediaeresis} % 00EB LATIN SMALL LETTER E WITH DIAERESIS
+\defineactivetoken 236 {\igrave} % 00EC LATIN SMALL LETTER I WITH GRAVE
+\defineactivetoken 237 {\iacute} % 00ED LATIN SMALL LETTER I WITH ACUTE
+\defineactivetoken 238 {\icircumflex} % 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
+\defineactivetoken 239 {\idiaeresis} % 00EF LATIN SMALL LETTER I WITH DIAERESIS
+\defineactivetoken 240 {\eth} % 00F0 LATIN SMALL LETTER ETH
+\defineactivetoken 241 {\ntilde} % 00F1 LATIN SMALL LETTER N WITH TILDE
+\defineactivetoken 242 {\ograve} % 00F2 LATIN SMALL LETTER O WITH GRAVE
+\defineactivetoken 243 {\oacute} % 00F3 LATIN SMALL LETTER O WITH ACUTE
+\defineactivetoken 244 {\ocircumflex} % 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
+\defineactivetoken 245 {\otilde} % 00F5 LATIN SMALL LETTER O WITH TILDE
+\defineactivetoken 246 {\odiaeresis} % 00F6 LATIN SMALL LETTER O WITH DIAERESIS
+\defineactivetoken 247 {\textdiv} % 00F7 DIVISION SIGN
+\defineactivetoken 248 {\ostroke} % 00F8 LATIN SMALL LETTER O WITH STROKE
+\defineactivetoken 249 {\ugrave} % 00F9 LATIN SMALL LETTER U WITH GRAVE
+\defineactivetoken 250 {\uacute} % 00FA LATIN SMALL LETTER U WITH ACUTE
+\defineactivetoken 251 {\ucircumflex} % 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
+\defineactivetoken 252 {\udiaeresis} % 00FC LATIN SMALL LETTER U WITH DIAERESIS
+\defineactivetoken 253 {\yacute} % 00FD LATIN SMALL LETTER Y WITH ACUTE
+\defineactivetoken 254 {\thorn} % 00FE LATIN SMALL LETTER THORN
+\defineactivetoken 255 {\ydiaeresis} % 00FF LATIN SMALL LETTER Y WITH DIAERESIS
+
+\stopregime
+
diff --git a/Master/texmf-dist/tex/context/base/regi-iso-8859-2.tex b/Master/texmf-dist/tex/context/base/regi-iso-8859-2.tex
new file mode 100644
index 00000000000..cc14c4ec338
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/regi-iso-8859-2.tex
@@ -0,0 +1,155 @@
+%D \module
+%D [ file=regi-iso-8859-2,
+%D version=2006.04.10,
+%D title=\CONTEXT\ Encoding Macros,
+%D subtitle=iso-8859-2 (East European),
+%D author=script-generated,
+%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 Support for iso-8859-2/Latin2 input encoding (regime) for Central European languages,
+%D see also cp1250.
+%D
+%D Usage:
+%D \type{\enableregime[iso-8859-2]} or
+%D \type{\enableregime[latin2]} or
+%D \type{\enableregime[il2]}
+
+
+\startregime[iso-8859-2]
+
+\defineactivetoken 128 {\unknownchar} % 0080 <control>
+\defineactivetoken 129 {\unknownchar} % 0081 <control>
+\defineactivetoken 130 {\unknownchar} % 0082 <control>
+\defineactivetoken 131 {\unknownchar} % 0083 <control>
+\defineactivetoken 132 {\unknownchar} % 0084 <control>
+\defineactivetoken 133 {\unknownchar} % 0085 <control>
+\defineactivetoken 134 {\unknownchar} % 0086 <control>
+\defineactivetoken 135 {\unknownchar} % 0087 <control>
+\defineactivetoken 136 {\unknownchar} % 0088 <control>
+\defineactivetoken 137 {\unknownchar} % 0089 <control>
+\defineactivetoken 138 {\unknownchar} % 008A <control>
+\defineactivetoken 139 {\unknownchar} % 008B <control>
+\defineactivetoken 140 {\unknownchar} % 008C <control>
+\defineactivetoken 141 {\unknownchar} % 008D <control>
+\defineactivetoken 142 {\unknownchar} % 008E <control>
+\defineactivetoken 143 {\unknownchar} % 008F <control>
+\defineactivetoken 144 {\unknownchar} % 0090 <control>
+\defineactivetoken 145 {\unknownchar} % 0091 <control>
+\defineactivetoken 146 {\unknownchar} % 0092 <control>
+\defineactivetoken 147 {\unknownchar} % 0093 <control>
+\defineactivetoken 148 {\unknownchar} % 0094 <control>
+\defineactivetoken 149 {\unknownchar} % 0095 <control>
+\defineactivetoken 150 {\unknownchar} % 0096 <control>
+\defineactivetoken 151 {\unknownchar} % 0097 <control>
+\defineactivetoken 152 {\unknownchar} % 0098 <control>
+\defineactivetoken 153 {\unknownchar} % 0099 <control>
+\defineactivetoken 154 {\unknownchar} % 009A <control>
+\defineactivetoken 155 {\unknownchar} % 009B <control>
+\defineactivetoken 156 {\unknownchar} % 009C <control>
+\defineactivetoken 157 {\unknownchar} % 009D <control>
+\defineactivetoken 158 {\unknownchar} % 009E <control>
+\defineactivetoken 159 {\unknownchar} % 009F <control>
+\defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE
+\defineactivetoken 161 {\Aogonek} % 0104 LATIN CAPITAL LETTER A WITH OGONEK
+\defineactivetoken 162 {\textbreve} % 02D8 BREVE
+\defineactivetoken 163 {\Lstroke} % 0141 LATIN CAPITAL LETTER L WITH STROKE
+\defineactivetoken 164 {\textcurrency} % 00A4 CURRENCY SIGN
+\defineactivetoken 165 {\Lcaron} % 013D LATIN CAPITAL LETTER L WITH CARON
+\defineactivetoken 166 {\Sacute} % 015A LATIN CAPITAL LETTER S WITH ACUTE
+\defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN
+\defineactivetoken 168 {\textdiaeresis} % 00A8 DIAERESIS
+\defineactivetoken 169 {\Scaron} % 0160 LATIN CAPITAL LETTER S WITH CARON
+\defineactivetoken 170 {\Scedilla} % 015E LATIN CAPITAL LETTER S WITH CEDILLA
+\defineactivetoken 171 {\Tcaron} % 0164 LATIN CAPITAL LETTER T WITH CARON
+\defineactivetoken 172 {\Zacute} % 0179 LATIN CAPITAL LETTER Z WITH ACUTE
+\defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN
+\defineactivetoken 174 {\Zcaron} % 017D LATIN CAPITAL LETTER Z WITH CARON
+\defineactivetoken 175 {\Zdotaccent} % 017B LATIN CAPITAL LETTER Z WITH DOT ABOVE
+\defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN
+\defineactivetoken 177 {\aogonek} % 0105 LATIN SMALL LETTER A WITH OGONEK
+\defineactivetoken 178 {\textogonek} % 02DB OGONEK
+\defineactivetoken 179 {\lstroke} % 0142 LATIN SMALL LETTER L WITH STROKE
+\defineactivetoken 180 {\textacute} % 00B4 ACUTE ACCENT
+\defineactivetoken 181 {\lcaron} % 013E LATIN SMALL LETTER L WITH CARON
+\defineactivetoken 182 {\sacute} % 015B LATIN SMALL LETTER S WITH ACUTE
+\defineactivetoken 183 {\textcaron} % 02C7 CARON
+\defineactivetoken 184 {\textcedilla} % 00B8 CEDILLA
+\defineactivetoken 185 {\scaron} % 0161 LATIN SMALL LETTER S WITH CARON
+\defineactivetoken 186 {\scedilla} % 015F LATIN SMALL LETTER S WITH CEDILLA
+\defineactivetoken 187 {\tcaron} % 0165 LATIN SMALL LETTER T WITH CARON
+\defineactivetoken 188 {\zacute} % 017A LATIN SMALL LETTER Z WITH ACUTE
+\defineactivetoken 189 {\texthungarumlaut} % 02DD DOUBLE ACUTE ACCENT
+\defineactivetoken 190 {\zcaron} % 017E LATIN SMALL LETTER Z WITH CARON
+\defineactivetoken 191 {\zdotaccent} % 017C LATIN SMALL LETTER Z WITH DOT ABOVE
+\defineactivetoken 192 {\Racute} % 0154 LATIN CAPITAL LETTER R WITH ACUTE
+\defineactivetoken 193 {\Aacute} % 00C1 LATIN CAPITAL LETTER A WITH ACUTE
+\defineactivetoken 194 {\Acircumflex} % 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+\defineactivetoken 195 {\Abreve} % 0102 LATIN CAPITAL LETTER A WITH BREVE
+\defineactivetoken 196 {\Adiaeresis} % 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
+\defineactivetoken 197 {\Lacute} % 0139 LATIN CAPITAL LETTER L WITH ACUTE
+\defineactivetoken 198 {\Cacute} % 0106 LATIN CAPITAL LETTER C WITH ACUTE
+\defineactivetoken 199 {\Ccedilla} % 00C7 LATIN CAPITAL LETTER C WITH CEDILLA
+\defineactivetoken 200 {\Ccaron} % 010C LATIN CAPITAL LETTER C WITH CARON
+\defineactivetoken 201 {\Eacute} % 00C9 LATIN CAPITAL LETTER E WITH ACUTE
+\defineactivetoken 202 {\Eogonek} % 0118 LATIN CAPITAL LETTER E WITH OGONEK
+\defineactivetoken 203 {\Ediaeresis} % 00CB LATIN CAPITAL LETTER E WITH DIAERESIS
+\defineactivetoken 204 {\Ecaron} % 011A LATIN CAPITAL LETTER E WITH CARON
+\defineactivetoken 205 {\Iacute} % 00CD LATIN CAPITAL LETTER I WITH ACUTE
+\defineactivetoken 206 {\Icircumflex} % 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+\defineactivetoken 207 {\Dcaron} % 010E LATIN CAPITAL LETTER D WITH CARON
+\defineactivetoken 208 {\Dstroke} % 0110 LATIN CAPITAL LETTER D WITH STROKE
+\defineactivetoken 209 {\Nacute} % 0143 LATIN CAPITAL LETTER N WITH ACUTE
+\defineactivetoken 210 {\Ncaron} % 0147 LATIN CAPITAL LETTER N WITH CARON
+\defineactivetoken 211 {\Oacute} % 00D3 LATIN CAPITAL LETTER O WITH ACUTE
+\defineactivetoken 212 {\Ocircumflex} % 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+\defineactivetoken 213 {\Ohungarumlaut} % 0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+\defineactivetoken 214 {\Odiaeresis} % 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
+\defineactivetoken 215 {\textmultiply} % 00D7 MULTIPLICATION SIGN
+\defineactivetoken 216 {\Rcaron} % 0158 LATIN CAPITAL LETTER R WITH CARON
+\defineactivetoken 217 {\Uring} % 016E LATIN CAPITAL LETTER U WITH RING ABOVE
+\defineactivetoken 218 {\Uacute} % 00DA LATIN CAPITAL LETTER U WITH ACUTE
+\defineactivetoken 219 {\Uhungarumlaut} % 0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+\defineactivetoken 220 {\Udiaeresis} % 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
+\defineactivetoken 221 {\Yacute} % 00DD LATIN CAPITAL LETTER Y WITH ACUTE
+\defineactivetoken 222 {\Tcedilla} % 0162 LATIN CAPITAL LETTER T WITH CEDILLA
+\defineactivetoken 223 {\ssharp} % 00DF LATIN SMALL LETTER SHARP S
+\defineactivetoken 224 {\racute} % 0155 LATIN SMALL LETTER R WITH ACUTE
+\defineactivetoken 225 {\aacute} % 00E1 LATIN SMALL LETTER A WITH ACUTE
+\defineactivetoken 226 {\acircumflex} % 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
+\defineactivetoken 227 {\abreve} % 0103 LATIN SMALL LETTER A WITH BREVE
+\defineactivetoken 228 {\adiaeresis} % 00E4 LATIN SMALL LETTER A WITH DIAERESIS
+\defineactivetoken 229 {\lacute} % 013A LATIN SMALL LETTER L WITH ACUTE
+\defineactivetoken 230 {\cacute} % 0107 LATIN SMALL LETTER C WITH ACUTE
+\defineactivetoken 231 {\ccedilla} % 00E7 LATIN SMALL LETTER C WITH CEDILLA
+\defineactivetoken 232 {\ccaron} % 010D LATIN SMALL LETTER C WITH CARON
+\defineactivetoken 233 {\eacute} % 00E9 LATIN SMALL LETTER E WITH ACUTE
+\defineactivetoken 234 {\eogonek} % 0119 LATIN SMALL LETTER E WITH OGONEK
+\defineactivetoken 235 {\ediaeresis} % 00EB LATIN SMALL LETTER E WITH DIAERESIS
+\defineactivetoken 236 {\ecaron} % 011B LATIN SMALL LETTER E WITH CARON
+\defineactivetoken 237 {\iacute} % 00ED LATIN SMALL LETTER I WITH ACUTE
+\defineactivetoken 238 {\icircumflex} % 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
+\defineactivetoken 239 {\dcaron} % 010F LATIN SMALL LETTER D WITH CARON
+\defineactivetoken 240 {\dstroke} % 0111 LATIN SMALL LETTER D WITH STROKE
+\defineactivetoken 241 {\nacute} % 0144 LATIN SMALL LETTER N WITH ACUTE
+\defineactivetoken 242 {\ncaron} % 0148 LATIN SMALL LETTER N WITH CARON
+\defineactivetoken 243 {\oacute} % 00F3 LATIN SMALL LETTER O WITH ACUTE
+\defineactivetoken 244 {\ocircumflex} % 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
+\defineactivetoken 245 {\ohungarumlaut} % 0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE
+\defineactivetoken 246 {\odiaeresis} % 00F6 LATIN SMALL LETTER O WITH DIAERESIS
+\defineactivetoken 247 {\textdiv} % 00F7 DIVISION SIGN
+\defineactivetoken 248 {\rcaron} % 0159 LATIN SMALL LETTER R WITH CARON
+\defineactivetoken 249 {\uring} % 016F LATIN SMALL LETTER U WITH RING ABOVE
+\defineactivetoken 250 {\uacute} % 00FA LATIN SMALL LETTER U WITH ACUTE
+\defineactivetoken 251 {\uhungarumlaut} % 0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE
+\defineactivetoken 252 {\udiaeresis} % 00FC LATIN SMALL LETTER U WITH DIAERESIS
+\defineactivetoken 253 {\yacute} % 00FD LATIN SMALL LETTER Y WITH ACUTE
+\defineactivetoken 254 {\tcedilla} % 0163 LATIN SMALL LETTER T WITH CEDILLA
+\defineactivetoken 255 {\textdotaccent} % 02D9 DOT ABOVE
+
+\stopregime
+
diff --git a/Master/texmf-dist/tex/context/base/regi-iso-8859-7.tex b/Master/texmf-dist/tex/context/base/regi-iso-8859-7.tex
new file mode 100644
index 00000000000..aa1e2e321bc
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/regi-iso-8859-7.tex
@@ -0,0 +1,155 @@
+%D \module
+%D [ file=regi-iso-8859-7,
+%D version=2006.04.10,
+%D title=\CONTEXT\ Encoding Macros,
+%D subtitle=iso-8859-7 (Greek),
+%D author=script-generated,
+%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 Support for iso-8859-7 input encoding (regime) for Greek,
+%D see also cp1253.
+%D
+%D (Contributor to the original file: Apostolos Syropoulos.)
+%D
+%D Usage:
+%D \type{\enableregime[iso-8859-7]} or
+%D \type{\enableregime[grk]}
+
+
+\startregime[iso-8859-7]
+
+\defineactivetoken 128 {\unknownchar} % 0080 <control>
+\defineactivetoken 129 {\unknownchar} % 0081 <control>
+\defineactivetoken 130 {\unknownchar} % 0082 <control>
+\defineactivetoken 131 {\unknownchar} % 0083 <control>
+\defineactivetoken 132 {\unknownchar} % 0084 <control>
+\defineactivetoken 133 {\unknownchar} % 0085 <control>
+\defineactivetoken 134 {\unknownchar} % 0086 <control>
+\defineactivetoken 135 {\unknownchar} % 0087 <control>
+\defineactivetoken 136 {\unknownchar} % 0088 <control>
+\defineactivetoken 137 {\unknownchar} % 0089 <control>
+\defineactivetoken 138 {\unknownchar} % 008A <control>
+\defineactivetoken 139 {\unknownchar} % 008B <control>
+\defineactivetoken 140 {\unknownchar} % 008C <control>
+\defineactivetoken 141 {\unknownchar} % 008D <control>
+\defineactivetoken 142 {\unknownchar} % 008E <control>
+\defineactivetoken 143 {\unknownchar} % 008F <control>
+\defineactivetoken 144 {\unknownchar} % 0090 <control>
+\defineactivetoken 145 {\unknownchar} % 0091 <control>
+\defineactivetoken 146 {\unknownchar} % 0092 <control>
+\defineactivetoken 147 {\unknownchar} % 0093 <control>
+\defineactivetoken 148 {\unknownchar} % 0094 <control>
+\defineactivetoken 149 {\unknownchar} % 0095 <control>
+\defineactivetoken 150 {\unknownchar} % 0096 <control>
+\defineactivetoken 151 {\unknownchar} % 0097 <control>
+\defineactivetoken 152 {\unknownchar} % 0098 <control>
+\defineactivetoken 153 {\unknownchar} % 0099 <control>
+\defineactivetoken 154 {\unknownchar} % 009A <control>
+\defineactivetoken 155 {\unknownchar} % 009B <control>
+\defineactivetoken 156 {\unknownchar} % 009C <control>
+\defineactivetoken 157 {\unknownchar} % 009D <control>
+\defineactivetoken 158 {\unknownchar} % 009E <control>
+\defineactivetoken 159 {\unknownchar} % 009F <control>
+\defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE
+\defineactivetoken 161 {\quoteleft} % 2018 LEFT SINGLE QUOTATION MARK
+\defineactivetoken 162 {\quoteright} % 2019 RIGHT SINGLE QUOTATION MARK
+\defineactivetoken 163 {\textsterling} % 00A3 POUND SIGN
+\defineactivetoken 164 {\texteuro} % 20AC EURO SIGN
+\defineactivetoken 165 {\?} % 20AF DRACHMA SIGN
+\defineactivetoken 166 {\textbrokenbar} % 00A6 BROKEN BAR
+\defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN
+\defineactivetoken 168 {\textdiaeresis} % 00A8 DIAERESIS
+\defineactivetoken 169 {\copyright} % 00A9 COPYRIGHT SIGN
+\defineactivetoken 170 {\?} % 037A GREEK YPOGEGRAMMENI
+\defineactivetoken 171 {\leftguillemot} % 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+\defineactivetoken 172 {\textlognot} % 00AC NOT SIGN
+\defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN
+\defineactivetoken 175 {\texthorizontalbar} % 2015 HORIZONTAL BAR
+\defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN
+\defineactivetoken 177 {\textpm} % 00B1 PLUS-MINUS SIGN
+\defineactivetoken 178 {\twosuperior} % 00B2 SUPERSCRIPT TWO
+\defineactivetoken 179 {\threesuperior} % 00B3 SUPERSCRIPT THREE
+\defineactivetoken 180 {\greektonos} % 0384 GREEK TONOS
+\defineactivetoken 181 {\greekdialytikatonos} % 0385 GREEK DIALYTIKA TONOS
+\defineactivetoken 182 {\greekAlphatonos} % 0386 GREEK CAPITAL LETTER ALPHA WITH TONOS
+\defineactivetoken 183 {\periodcentered} % 00B7 MIDDLE DOT
+\defineactivetoken 184 {\greekEpsilontonos} % 0388 GREEK CAPITAL LETTER EPSILON WITH TONOS
+\defineactivetoken 185 {\greekEtatonos} % 0389 GREEK CAPITAL LETTER ETA WITH TONOS
+\defineactivetoken 186 {\greekIotatonos} % 038A GREEK CAPITAL LETTER IOTA WITH TONOS
+\defineactivetoken 187 {\rightguillemot} % 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+\defineactivetoken 188 {\greekOmicrontonos} % 038C GREEK CAPITAL LETTER OMICRON WITH TONOS
+\defineactivetoken 189 {\onehalf} % 00BD VULGAR FRACTION ONE HALF
+\defineactivetoken 190 {\greekUpsilontonos} % 038E GREEK CAPITAL LETTER UPSILON WITH TONOS
+\defineactivetoken 191 {\greekOmegatonos} % 038F GREEK CAPITAL LETTER OMEGA WITH TONOS
+\defineactivetoken 192 {\greekiotadialytikatonos} % 0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+\defineactivetoken 193 {\greekAlpha} % 0391 GREEK CAPITAL LETTER ALPHA
+\defineactivetoken 194 {\greekBeta} % 0392 GREEK CAPITAL LETTER BETA
+\defineactivetoken 195 {\greekGamma} % 0393 GREEK CAPITAL LETTER GAMMA
+\defineactivetoken 196 {\greekDelta} % 0394 GREEK CAPITAL LETTER DELTA
+\defineactivetoken 197 {\greekEpsilon} % 0395 GREEK CAPITAL LETTER EPSILON
+\defineactivetoken 198 {\greekZeta} % 0396 GREEK CAPITAL LETTER ZETA
+\defineactivetoken 199 {\greekEta} % 0397 GREEK CAPITAL LETTER ETA
+\defineactivetoken 200 {\greekTheta} % 0398 GREEK CAPITAL LETTER THETA
+\defineactivetoken 201 {\greekIota} % 0399 GREEK CAPITAL LETTER IOTA
+\defineactivetoken 202 {\greekKappa} % 039A GREEK CAPITAL LETTER KAPPA
+\defineactivetoken 203 {\greekLambda} % 039B GREEK CAPITAL LETTER LAMDA
+\defineactivetoken 204 {\greekMu} % 039C GREEK CAPITAL LETTER MU
+\defineactivetoken 205 {\greekNu} % 039D GREEK CAPITAL LETTER NU
+\defineactivetoken 206 {\greekXi} % 039E GREEK CAPITAL LETTER XI
+\defineactivetoken 207 {\greekOmicron} % 039F GREEK CAPITAL LETTER OMICRON
+\defineactivetoken 208 {\greekPi} % 03A0 GREEK CAPITAL LETTER PI
+\defineactivetoken 209 {\greekRho} % 03A1 GREEK CAPITAL LETTER RHO
+\defineactivetoken 210 {\unknownchar} % <undefined>
+\defineactivetoken 211 {\greekSigma} % 03A3 GREEK CAPITAL LETTER SIGMA
+\defineactivetoken 212 {\greekTau} % 03A4 GREEK CAPITAL LETTER TAU
+\defineactivetoken 213 {\greekUpsilon} % 03A5 GREEK CAPITAL LETTER UPSILON
+\defineactivetoken 214 {\greekPhi} % 03A6 GREEK CAPITAL LETTER PHI
+\defineactivetoken 215 {\greekChi} % 03A7 GREEK CAPITAL LETTER CHI
+\defineactivetoken 216 {\greekPsi} % 03A8 GREEK CAPITAL LETTER PSI
+\defineactivetoken 217 {\greekOmega} % 03A9 GREEK CAPITAL LETTER OMEGA
+\defineactivetoken 218 {\greekIotadialytika} % 03AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+\defineactivetoken 219 {\greekUpsilondialytika} % 03AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+\defineactivetoken 220 {\greekalphatonos} % 03AC GREEK SMALL LETTER ALPHA WITH TONOS
+\defineactivetoken 221 {\greekepsilontonos} % 03AD GREEK SMALL LETTER EPSILON WITH TONOS
+\defineactivetoken 222 {\greeketatonos} % 03AE GREEK SMALL LETTER ETA WITH TONOS
+\defineactivetoken 223 {\greekiotatonos} % 03AF GREEK SMALL LETTER IOTA WITH TONOS
+\defineactivetoken 224 {\greekupsilondialytikatonos} % 03B0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+\defineactivetoken 225 {\greekalpha} % 03B1 GREEK SMALL LETTER ALPHA
+\defineactivetoken 226 {\greekbeta} % 03B2 GREEK SMALL LETTER BETA
+\defineactivetoken 227 {\greekgamma} % 03B3 GREEK SMALL LETTER GAMMA
+\defineactivetoken 228 {\greekdelta} % 03B4 GREEK SMALL LETTER DELTA
+\defineactivetoken 229 {\greekepsilon} % 03B5 GREEK SMALL LETTER EPSILON
+\defineactivetoken 230 {\greekzeta} % 03B6 GREEK SMALL LETTER ZETA
+\defineactivetoken 231 {\greeketa} % 03B7 GREEK SMALL LETTER ETA
+\defineactivetoken 232 {\greektheta} % 03B8 GREEK SMALL LETTER THETA
+\defineactivetoken 233 {\greekiota} % 03B9 GREEK SMALL LETTER IOTA
+\defineactivetoken 234 {\greekkappa} % 03BA GREEK SMALL LETTER KAPPA
+\defineactivetoken 235 {\greeklambda} % 03BB GREEK SMALL LETTER LAMDA
+\defineactivetoken 236 {\greekmu} % 03BC GREEK SMALL LETTER MU
+\defineactivetoken 237 {\greeknu} % 03BD GREEK SMALL LETTER NU
+\defineactivetoken 238 {\greekxi} % 03BE GREEK SMALL LETTER XI
+\defineactivetoken 239 {\greekomicron} % 03BF GREEK SMALL LETTER OMICRON
+\defineactivetoken 240 {\greekpi} % 03C0 GREEK SMALL LETTER PI
+\defineactivetoken 241 {\greekrho} % 03C1 GREEK SMALL LETTER RHO
+\defineactivetoken 242 {\greekfinalsigma} % 03C2 GREEK SMALL LETTER FINAL SIGMA
+\defineactivetoken 243 {\greeksigma} % 03C3 GREEK SMALL LETTER SIGMA
+\defineactivetoken 244 {\greektau} % 03C4 GREEK SMALL LETTER TAU
+\defineactivetoken 245 {\greekupsilon} % 03C5 GREEK SMALL LETTER UPSILON
+\defineactivetoken 246 {\greekphi} % 03C6 GREEK SMALL LETTER PHI
+\defineactivetoken 247 {\greekchi} % 03C7 GREEK SMALL LETTER CHI
+\defineactivetoken 248 {\greekpsi} % 03C8 GREEK SMALL LETTER PSI
+\defineactivetoken 249 {\greekomega} % 03C9 GREEK SMALL LETTER OMEGA
+\defineactivetoken 250 {\greekiotadialytika} % 03CA GREEK SMALL LETTER IOTA WITH DIALYTIKA
+\defineactivetoken 251 {\greekupsilondiaeresis} % 03CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+\defineactivetoken 252 {\greekomicrontonos} % 03CC GREEK SMALL LETTER OMICRON WITH TONOS
+\defineactivetoken 253 {\greekupsilontonos} % 03CD GREEK SMALL LETTER UPSILON WITH TONOS
+\defineactivetoken 254 {\greekomegatonos} % 03CE GREEK SMALL LETTER OMEGA WITH TONOS
+\defineactivetoken 255 {\unknownchar} % <undefined>
+
+\stopregime
+
diff --git a/Master/texmf-dist/tex/context/base/regi-syn.tex b/Master/texmf-dist/tex/context/base/regi-syn.tex
new file mode 100644
index 00000000000..324ccf62b25
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/regi-syn.tex
@@ -0,0 +1,62 @@
+%D \module
+%D [ file=regi-syn,
+%D version=2006.04.04,
+%D title=\CONTEXT\ Regime Macros,
+%D subtitle=Synonyms,
+%D author=Mojca Miklavec \& 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 Regime Macros (synonyms)}
+
+\unprotect
+
+\defineregimesynonym [windows-1250] [cp1250]
+\defineregimesynonym [windows-1251] [cp1251]
+\defineregimesynonym [windows-1252] [cp1252]
+\defineregimesynonym [windows-1253] [cp1253]
+\defineregimesynonym [windows-1254] [cp1254]
+%defineregimesynonym [windows-1255] [cp1255] % not supported yet (Hebrew)
+%defineregimesynonym [windows-1256] [cp1256] % not supported yet (Arabic)
+\defineregimesynonym [windows-1257] [cp1257]
+%defineregimesynonym [windows-1258] [cp1258] % not supported yet (Vietnamese)
+
+\defineregimesynonym [il1] [iso-8859-1]
+\defineregimesynonym [il2] [iso-8859-2]
+\defineregimesynonym [il3] [iso-8859-3]
+\defineregimesynonym [il4] [iso-8859-4]
+\defineregimesynonym [il5] [iso-8859-9]
+\defineregimesynonym [il6] [iso-8859-10]
+\defineregimesynonym [il7] [iso-8859-13]
+%defineregimesynonym [il8] [iso-8859-14]
+\defineregimesynonym [il9] [iso-8859-15]
+\defineregimesynonym [il10] [iso-8859-16]
+
+\defineregimesynonym [latin1] [iso-8859-1]
+\defineregimesynonym [latin2] [iso-8859-2]
+\defineregimesynonym [latin3] [iso-8859-3]
+\defineregimesynonym [latin4] [iso-8859-4]
+\defineregimesynonym [latin5] [iso-8859-9]
+\defineregimesynonym [latin6] [iso-8859-10]
+\defineregimesynonym [latin7] [iso-8859-13]
+%defineregimesynonym [latin8] [iso-8859-14]
+\defineregimesynonym [latin9] [iso-8859-15]
+\defineregimesynonym [latin10] [iso-8859-16]
+
+% kind of special
+
+\defineregimesynonym [utf-8] [utf]
+\defineregimesynonym [utf8] [utf]
+
+% for historical reasons / compatibility
+
+\defineregimesynonym [windows] [cp1252]
+\defineregimesynonym [grk] [iso-8859-7]
+\defineregimesynonym [iso88595] [iso-8859-5]
+
+\protect \endinput
+
diff --git a/Master/texmf-dist/tex/context/base/regi-uni.tex b/Master/texmf-dist/tex/context/base/regi-uni.tex
index 2b749967fc9..c4d9521e9d0 100644
--- a/Master/texmf-dist/tex/context/base/regi-uni.tex
+++ b/Master/texmf-dist/tex/context/base/regi-uni.tex
@@ -2,17 +2,18 @@
%D [ file=enco-uni,
%D version=1998.10.18,
%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Unicode,
+%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.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
-%D This module activates all characters in the upper range
-%D and sets them to the basic unicodehandler.
+%D This module activates all characters in the upper range
+%D and sets them to the basic unicodehandler. Beware, this is
+%D a special purpose handler (esp for chinese encodings).
\startregime[unicode]
@@ -20,4 +21,4 @@
\stopregime
-\endinput
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/regi-utf.tex b/Master/texmf-dist/tex/context/base/regi-utf.tex
index b529406e135..da89eedec78 100644
--- a/Master/texmf-dist/tex/context/base/regi-utf.tex
+++ b/Master/texmf-dist/tex/context/base/regi-utf.tex
@@ -17,12 +17,30 @@
%D instead of a active token handler because here we don't want
%D the \type {{}}. We only support this in \ETEX.
+% ÀÃÂÃÄÅàáâãäå
+% ÆÇæç
+% ÈÉÊËèéêë
+% ÃŒÃÃŽÃÞìíîïþ
+% Ãð
+% Ññ
+% ÒÓÔÕÖòóôõö
+% Øø
+% ÙÚÛÜùúû
+% Ãýÿ
+% ß
+
\beginTEX
\expandafter \endinput
\endTEX
+\beginXETEX
+ \expandafter \endinput
+\endXETEX
+
\unprotect
+% beware, this may change: \utftwouniglyph rawchar
+
\startregime[utf]
\dostepwiserecurse{192}{223}{1}
diff --git a/Master/texmf-dist/tex/context/base/regi-vis.tex b/Master/texmf-dist/tex/context/base/regi-vis.tex
index ceac691c417..d1071354f96 100644
--- a/Master/texmf-dist/tex/context/base/regi-vis.tex
+++ b/Master/texmf-dist/tex/context/base/regi-vis.tex
@@ -1,152 +1,158 @@
-% temporary module
+%D \module
+%D [ file=regi-vis,
+%D version=2005.12.26,
+%D title=\CONTEXT\ Encoding Macros,
+%D subtitle=viscii,
+%D author=script-generated,
+%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.
-\startregime[viscii]
-
-\defineactivetoken 2 {\h{uA}}
-\defineactivetoken 5 {\~{uA}}
-\defineactivetoken 6 {\~{^A}}
-\defineactivetoken 20 {\h{Y}}
-\defineactivetoken 23 {\h{Y}}
-\defineactivetoken 24 {\d{Y}}
-\defineactivetoken 25 {\~{Y}}
-\defineactivetoken 30 {\d{Y}}
-
-\defineactivetoken 128 {\d{A}}
-\defineactivetoken 129 {\'{uA}}
-\defineactivetoken 130 {\`{uA}}
-\defineactivetoken 131 {\d{uA}}
-\defineactivetoken 132 {\'{^A}}
-\defineactivetoken 133 {\`{^A}}
-\defineactivetoken 134 {\h{^A}}
-\defineactivetoken 135 {\d{^A}}
-\defineactivetoken 136 {\~{E}}
-\defineactivetoken 137 {\d{E}}
-\defineactivetoken 138 {\'{^E}}
-\defineactivetoken 139 {\`{^E}}
-\defineactivetoken 140 {\h{^E}}
-\defineactivetoken 141 {\~{^E}}
-\defineactivetoken 142 {\d{^E}}
-\defineactivetoken 143 {\'{^O}}
-
-\defineactivetoken 144 {\`{^O}}
-\defineactivetoken 145 {\h{^O}}
-\defineactivetoken 146 {\~{^O}}
-\defineactivetoken 147 {\d{^O}}
-\defineactivetoken 148 {\d{hO}}
-\defineactivetoken 149 {\'{hO}}
-\defineactivetoken 150 {\`{hO}}
-\defineactivetoken 151 {\h{hO}}
-\defineactivetoken 152 {\d{I}}
-\defineactivetoken 153 {\h{O}}
-\defineactivetoken 154 {\d{O}}
-\defineactivetoken 155 {\h{I}}
-\defineactivetoken 156 {\h{U}}
-\defineactivetoken 157 {\~{U}}
-\defineactivetoken 158 {\d{U}}
-\defineactivetoken 159 {\`{Y}}
+%D Support for VISCII input encoding (regime) for Vietnamese.
+%D
+%D Usage:
+%D \type{\enableregime[vis]}
-\defineactivetoken 160 {\~{O}}
-\defineactivetoken 161 {\'{ua}}
-\defineactivetoken 162 {\`{ua}}
-\defineactivetoken 163 {\d{ua}}
-\defineactivetoken 164 {\'{^a}}
-\defineactivetoken 165 {\`{^a}}
-\defineactivetoken 166 {\h{^a}}
-\defineactivetoken 167 {\d{^a}}
-\defineactivetoken 168 {\~{e}}
-\defineactivetoken 169 {\d{ e}}
-\defineactivetoken 170 {\'{^e}}
-\defineactivetoken 171 {\`{^e}}
-\defineactivetoken 172 {\h{^e}}
-\defineactivetoken 173 {\~{^e}}
-\defineactivetoken 174 {\d{^e}}
-\defineactivetoken 175 {\'{^o}}
-\defineactivetoken 176 {\`{^o}}
-\defineactivetoken 177 {\h{^o}}
-\defineactivetoken 178 {\~{^o}}
-\defineactivetoken 179 {\~{hO}}
-\defineactivetoken 180 {\h{O}}
-\defineactivetoken 181 {\d{^o}}
-\defineactivetoken 182 {\`{ho}}
-\defineactivetoken 183 {\h{ho}}
-\defineactivetoken 184 {\d{i}}
-\defineactivetoken 185 {\d{hU}}
-\defineactivetoken 186 {\'{hU}}
-\defineactivetoken 187 {\`{hU}}
-\defineactivetoken 188 {\h{hU}}
-\defineactivetoken 189 {\h{o}}
-\defineactivetoken 190 {\'{ho}}
-\defineactivetoken 191 {\h{U}}
-
-\defineactivetoken 192 {\`{A}}
-\defineactivetoken 193 {\'{A}}
-\defineactivetoken 194 {\^{A}}
-\defineactivetoken 195 {\~{A}}
-\defineactivetoken 196 {\h{A}}
-\defineactivetoken 197 {\u{A}}
-\defineactivetoken 198 {\h{ua}}
-\defineactivetoken 199 {\~{ua}}
-\defineactivetoken 200 {\`{E}}
-\defineactivetoken 201 {\'{E}}
-\defineactivetoken 202 {\^{E}}
-\defineactivetoken 203 {\h{E}}
-\defineactivetoken 204 {\`{I}}
-\defineactivetoken 205 {\'{I}}
-\defineactivetoken 206 {\~{I}}
-\defineactivetoken 207 {\`{y}}
-
-\defineactivetoken 208 {\DJ{}}
-\defineactivetoken 209 {\'{hu}}
-\defineactivetoken 210 {\`{O}}
-\defineactivetoken 211 {\'{O}}
-\defineactivetoken 212 {\^{O}}
-\defineactivetoken 213 {\d{a}}
-\defineactivetoken 214 {\h{y}}
-\defineactivetoken 215 {\`{hu}}
-\defineactivetoken 216 {\h{hu}}
-\defineactivetoken 217 {\`{U}}
-\defineactivetoken 218 {\'{U}}
-\defineactivetoken 219 {\~{y}}
-\defineactivetoken 220 {\d{y}}
-\defineactivetoken 221 {\'{Y}}
-\defineactivetoken 222 {\~{ho}}
-\defineactivetoken 223 {\h{u}}
-
-\defineactivetoken 224 {\`{a}}
-\defineactivetoken 225 {\'{a}}
-\defineactivetoken 226 {\^{a}}
-\defineactivetoken 227 {\~{a}}
-\defineactivetoken 228 {\h{a}}
-\defineactivetoken 229 {\u{a}}
-\defineactivetoken 230 {\~{hu}}
-\defineactivetoken 231 {\~{^a}}
-\defineactivetoken 232 {\`{e}}
-\defineactivetoken 233 {\'{e}}
-\defineactivetoken 234 {\^{e}}
-\defineactivetoken 235 {\h{e}}
-\defineactivetoken 236 {\`{i}}
-\defineactivetoken 237 {\'{i}}
-\defineactivetoken 238 {\~{i}}
-\defineactivetoken 239 {\h{i}}
+\startregime[viscii]
-\defineactivetoken 240 {\dj{}}
-\defineactivetoken 241 {\d{hu}}
-\defineactivetoken 242 {\`{o}}
-\defineactivetoken 243 {\'{o}}
-\defineactivetoken 244 {\^{o}}
-\defineactivetoken 245 {\~{o}}
-\defineactivetoken 246 {\h{o}}
-\defineactivetoken 247 {\d{o}}
-\defineactivetoken 248 {\d{u}}
-\defineactivetoken 249 {\`{u}}
-\defineactivetoken 250 {\'{u}}
-\defineactivetoken 251 {\~{u}}
-\defineactivetoken 252 {\h{u}}
-\defineactivetoken 253 {\'{y}}
-\defineactivetoken 254 {\d{ho}}
-\defineactivetoken 255 {\~{hU}}
+\defineactivetoken 2 {\Abrevehook} % 1EB2 LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+\defineactivetoken 5 {\Abrevetilde} % 1EB4 LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+\defineactivetoken 6 {\Acircumflextilde} % 1EAA LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+\defineactivetoken 20 {\Yhook} % 1EF6 LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+\defineactivetoken 25 {\Ytilde} % 1EF8 LATIN CAPITAL LETTER Y WITH TILDE
+\defineactivetoken 30 {\Ydotbelow} % 1EF4 LATIN CAPITAL LETTER Y WITH DOT BELOW
+\defineactivetoken 128 {\Adotbelow} % 1EA0 LATIN CAPITAL LETTER A WITH DOT BELOW
+\defineactivetoken 129 {\Abreveacute} % 1EAE LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+\defineactivetoken 130 {\Abrevegrave} % 1EB0 LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+\defineactivetoken 131 {\Abrevedotbelow} % 1EB6 LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+\defineactivetoken 132 {\Acircumflexacute} % 1EA4 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+\defineactivetoken 133 {\Acircumflexgrave} % 1EA6 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+\defineactivetoken 134 {\Acircumflexhook} % 1EA8 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+\defineactivetoken 135 {\Acircumflexdotbelow} % 1EAC LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+\defineactivetoken 136 {\Etilde} % 1EBC LATIN CAPITAL LETTER E WITH TILDE
+\defineactivetoken 137 {\Edotbelow} % 1EB8 LATIN CAPITAL LETTER E WITH DOT BELOW
+\defineactivetoken 138 {\Ecircumflexacute} % 1EBE LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+\defineactivetoken 139 {\Ecircumflexgrave} % 1EC0 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+\defineactivetoken 140 {\Ecircumflexhook} % 1EC2 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+\defineactivetoken 141 {\Ecircumflextilde} % 1EC4 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+\defineactivetoken 142 {\Ecircumflexdotbelow} % 1EC6 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+\defineactivetoken 143 {\Ocircumflexacute} % 1ED0 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+\defineactivetoken 144 {\Ocircumflexgrave} % 1ED2 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+\defineactivetoken 145 {\Ocircumflexhook} % 1ED4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+\defineactivetoken 146 {\Ocircumflextilde} % 1ED6 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+\defineactivetoken 147 {\Ocircumflexdotbelow} % 1ED8 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+\defineactivetoken 148 {\Ohorndotbelow} % 1EE2 LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+\defineactivetoken 149 {\Ohornacute} % 1EDA LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+\defineactivetoken 150 {\Ohorngrave} % 1EDC LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+\defineactivetoken 151 {\Ohornhook} % 1EDE LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+\defineactivetoken 152 {\Idotbelow} % 1ECA LATIN CAPITAL LETTER I WITH DOT BELOW
+\defineactivetoken 153 {\Ohook} % 1ECE LATIN CAPITAL LETTER O WITH HOOK ABOVE
+\defineactivetoken 154 {\Odotbelow} % 1ECC LATIN CAPITAL LETTER O WITH DOT BELOW
+\defineactivetoken 155 {\Ihook} % 1EC8 LATIN CAPITAL LETTER I WITH HOOK ABOVE
+\defineactivetoken 156 {\Uhook} % 1EE6 LATIN CAPITAL LETTER U WITH HOOK ABOVE
+\defineactivetoken 157 {\Utilde} % 0168 LATIN CAPITAL LETTER U WITH TILDE
+\defineactivetoken 158 {\Udotbelow} % 1EE4 LATIN CAPITAL LETTER U WITH DOT BELOW
+\defineactivetoken 159 {\Ygrave} % 1EF2 LATIN CAPITAL LETTER Y WITH GRAVE
+\defineactivetoken 160 {\Otilde} % 00D5 LATIN CAPITAL LETTER O WITH TILDE
+\defineactivetoken 161 {\abreveacute} % 1EAF LATIN SMALL LETTER A WITH BREVE AND ACUTE
+\defineactivetoken 162 {\abrevegrave} % 1EB1 LATIN SMALL LETTER A WITH BREVE AND GRAVE
+\defineactivetoken 163 {\abrevedotbelow} % 1EB7 LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+\defineactivetoken 164 {\acircumflexacute} % 1EA5 LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+\defineactivetoken 165 {\acircumflexgrave} % 1EA7 LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+\defineactivetoken 166 {\Acircumflexhook} % 1EA8 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+\defineactivetoken 167 {\acircumflexdotbelow} % 1EAD LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+\defineactivetoken 168 {\etilde} % 1EBD LATIN SMALL LETTER E WITH TILDE
+\defineactivetoken 169 {\edotbelow} % 1EB9 LATIN SMALL LETTER E WITH DOT BELOW
+\defineactivetoken 170 {\ecircumflexacute} % 1EBF LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+\defineactivetoken 171 {\ecircumflexgrave} % 1EC1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+\defineactivetoken 172 {\ecircumflexhook} % 1EC3 LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+\defineactivetoken 173 {\ecircumflextilde} % 1EC5 LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+\defineactivetoken 174 {\ecircumflexdotbelow} % 1EC7 LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+\defineactivetoken 175 {\ocircumflexacute} % 1ED1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+\defineactivetoken 176 {\ocircumflexgrave} % 1ED3 LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+\defineactivetoken 177 {\ocircumflexhook} % 1ED5 LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+\defineactivetoken 178 {\ocircumflextilde} % 1ED7 LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+\defineactivetoken 179 {\Ohorntilde} % 1EE0 LATIN CAPITAL LETTER O WITH HORN AND TILDE
+\defineactivetoken 180 {\Ohorn} % 01A0 LATIN CAPITAL LETTER O WITH HORN
+\defineactivetoken 181 {\ocircumflexdotbelow} % 1ED9 LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+\defineactivetoken 182 {\ohorngrave} % 1EDD LATIN SMALL LETTER O WITH HORN AND GRAVE
+\defineactivetoken 183 {\ohornhook} % 1EDF LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+\defineactivetoken 184 {\idotbelow} % 1ECB LATIN SMALL LETTER I WITH DOT BELOW
+\defineactivetoken 185 {\Uhorndotbelow} % 1EF0 LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+\defineactivetoken 186 {\Uhornacute} % 1EE8 LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+\defineactivetoken 187 {\Uhorngrave} % 1EEA LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+\defineactivetoken 188 {\Uhornhook} % 1EEC LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+\defineactivetoken 189 {\ohorn} % 01A1 LATIN SMALL LETTER O WITH HORN
+\defineactivetoken 190 {\ohornacute} % 1EDB LATIN SMALL LETTER O WITH HORN AND ACUTE
+\defineactivetoken 191 {\Uhorn} % 01AF LATIN CAPITAL LETTER U WITH HORN
+\defineactivetoken 192 {\Agrave} % 00C0 LATIN CAPITAL LETTER A WITH GRAVE
+\defineactivetoken 193 {\Aacute} % 00C1 LATIN CAPITAL LETTER A WITH ACUTE
+\defineactivetoken 194 {\Acircumflex} % 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+\defineactivetoken 195 {\Atilde} % 00C3 LATIN CAPITAL LETTER A WITH TILDE
+\defineactivetoken 196 {\Ahook} % 1EA2 LATIN CAPITAL LETTER A WITH HOOK ABOVE
+\defineactivetoken 197 {\Abreve} % 0102 LATIN CAPITAL LETTER A WITH BREVE
+\defineactivetoken 198 {\abrevehook} % 1EB3 LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+\defineactivetoken 199 {\abrevetilde} % 1EB5 LATIN SMALL LETTER A WITH BREVE AND TILDE
+\defineactivetoken 200 {\Egrave} % 00C8 LATIN CAPITAL LETTER E WITH GRAVE
+\defineactivetoken 201 {\Eacute} % 00C9 LATIN CAPITAL LETTER E WITH ACUTE
+\defineactivetoken 202 {\Ecircumflex} % 00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+\defineactivetoken 203 {\Ehook} % 1EBA LATIN CAPITAL LETTER E WITH HOOK ABOVE
+\defineactivetoken 204 {\Igrave} % 00CC LATIN CAPITAL LETTER I WITH GRAVE
+\defineactivetoken 205 {\Iacute} % 00CD LATIN CAPITAL LETTER I WITH ACUTE
+\defineactivetoken 206 {\Itilde} % 0128 LATIN CAPITAL LETTER I WITH TILDE
+\defineactivetoken 207 {\ygrave} % 1EF3 LATIN SMALL LETTER Y WITH GRAVE
+\defineactivetoken 208 {\Dstroke} % 0110 LATIN CAPITAL LETTER D WITH STROKE
+\defineactivetoken 209 {\uhornacute} % 1EE9 LATIN SMALL LETTER U WITH HORN AND ACUTE
+\defineactivetoken 210 {\Ograve} % 00D2 LATIN CAPITAL LETTER O WITH GRAVE
+\defineactivetoken 211 {\Oacute} % 00D3 LATIN CAPITAL LETTER O WITH ACUTE
+\defineactivetoken 212 {\Ocircumflex} % 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+\defineactivetoken 213 {\adotbelow} % 1EA1 LATIN SMALL LETTER A WITH DOT BELOW
+\defineactivetoken 214 {\yhook} % 1EF7 LATIN SMALL LETTER Y WITH HOOK ABOVE
+\defineactivetoken 215 {\uhorngrave} % 1EEB LATIN SMALL LETTER U WITH HORN AND GRAVE
+\defineactivetoken 216 {\uhornhook} % 1EED LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+\defineactivetoken 217 {\Ugrave} % 00D9 LATIN CAPITAL LETTER U WITH GRAVE
+\defineactivetoken 218 {\Uacute} % 00DA LATIN CAPITAL LETTER U WITH ACUTE
+\defineactivetoken 219 {\ytilde} % 1EF9 LATIN SMALL LETTER Y WITH TILDE
+\defineactivetoken 220 {\ydotbelow} % 1EF5 LATIN SMALL LETTER Y WITH DOT BELOW
+\defineactivetoken 221 {\Yacute} % 00DD LATIN CAPITAL LETTER Y WITH ACUTE
+\defineactivetoken 222 {\ohorntilde} % 1EE1 LATIN SMALL LETTER O WITH HORN AND TILDE
+\defineactivetoken 223 {\uhorn} % 01B0 LATIN SMALL LETTER U WITH HORN
+\defineactivetoken 224 {\agrave} % 00E0 LATIN SMALL LETTER A WITH GRAVE
+\defineactivetoken 225 {\aacute} % 00E1 LATIN SMALL LETTER A WITH ACUTE
+\defineactivetoken 226 {\acircumflex} % 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
+\defineactivetoken 227 {\atilde} % 00E3 LATIN SMALL LETTER A WITH TILDE
+\defineactivetoken 228 {\ahook} % 1EA3 LATIN SMALL LETTER A WITH HOOK ABOVE
+\defineactivetoken 229 {\abreve} % 0103 LATIN SMALL LETTER A WITH BREVE
+\defineactivetoken 230 {\uhorntilde} % 1EEF LATIN SMALL LETTER U WITH HORN AND TILDE
+\defineactivetoken 231 {\acircumflextilde} % 1EAB LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+\defineactivetoken 232 {\egrave} % 00E8 LATIN SMALL LETTER E WITH GRAVE
+\defineactivetoken 233 {\eacute} % 00E9 LATIN SMALL LETTER E WITH ACUTE
+\defineactivetoken 234 {\ecircumflex} % 00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
+\defineactivetoken 235 {\ehook} % 1EBB LATIN SMALL LETTER E WITH HOOK ABOVE
+\defineactivetoken 236 {\igrave} % 00EC LATIN SMALL LETTER I WITH GRAVE
+\defineactivetoken 237 {\iacute} % 00ED LATIN SMALL LETTER I WITH ACUTE
+\defineactivetoken 238 {\itilde} % 0129 LATIN SMALL LETTER I WITH TILDE
+\defineactivetoken 239 {\ihook} % 1EC9 LATIN SMALL LETTER I WITH HOOK ABOVE
+\defineactivetoken 240 {\dstroke} % 0111 LATIN SMALL LETTER D WITH STROKE
+\defineactivetoken 241 {\uhorndotbelow} % 1EF1 LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+\defineactivetoken 242 {\ograve} % 00F2 LATIN SMALL LETTER O WITH GRAVE
+\defineactivetoken 243 {\oacute} % 00F3 LATIN SMALL LETTER O WITH ACUTE
+\defineactivetoken 244 {\ocircumflex} % 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
+\defineactivetoken 245 {\otilde} % 00F5 LATIN SMALL LETTER O WITH TILDE
+\defineactivetoken 246 {\ohook} % 1ECF LATIN SMALL LETTER O WITH HOOK ABOVE
+\defineactivetoken 247 {\odotbelow} % 1ECD LATIN SMALL LETTER O WITH DOT BELOW
+\defineactivetoken 248 {\udotbelow} % 1EE5 LATIN SMALL LETTER U WITH DOT BELOW
+\defineactivetoken 249 {\ugrave} % 00F9 LATIN SMALL LETTER U WITH GRAVE
+\defineactivetoken 250 {\uacute} % 00FA LATIN SMALL LETTER U WITH ACUTE
+\defineactivetoken 251 {\utilde} % 0169 LATIN SMALL LETTER U WITH TILDE
+\defineactivetoken 252 {\uhook} % 1EE7 LATIN SMALL LETTER U WITH HOOK ABOVE
+\defineactivetoken 253 {\yacute} % 00FD LATIN SMALL LETTER Y WITH ACUTE
+\defineactivetoken 254 {\ohorndotbelow} % 1EE3 LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+\defineactivetoken 255 {\Uhorntilde} % 1EEE LATIN CAPITAL LETTER U WITH HORN AND TILDE
\stopregime
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/rlxtools.rlx b/Master/texmf-dist/tex/context/base/rlxtools.rlx
new file mode 100644
index 00000000000..2c5c3c6cef8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/rlxtools.rlx
@@ -0,0 +1,92 @@
+<?xml version='1.0 standalone='yes'?>
+
+<rl:manipulators>
+
+ <!-- pstopdf will be made independent of the example framework -->
+
+ <!-- rl:manipulator name='pdf' suffix='svg'>
+ <rl:old><rl:value name='path'/>/<rl:value name='file'/></rl:old>
+ <rl:new><rl:value name='path'/>/<rl:value name='prefix'/><rl:value name='file' method='nosuffix'/>.pdf</rl:new>
+ <rl:step>
+ inkscape
+ --without-gui
+ --print="&gt;<rl:value name='path'/>/<rl:value name='prefix'/><rl:value name='file' method='nosuffix'/>.ps"
+ <rl:value name='path'/>/<rl:value name='file' method='nosuffix'/>.svg
+ </rl:step>
+ <rl:step>
+ texmfstart pstopdf
+ <rl:value name='path'/>/<rl:value name='prefix'/><rl:value name='file' method='nosuffix'/>.ps
+ <rl:value name='path'/>/<rl:value name='prefix'/><rl:value name='file' method='nosuffix'/>.pdf
+ </rl:step>
+ </rl:manipulator -->
+
+ <!-- rl:manipulator name='pdf' suffix='svgz'>
+ <rl:old><rl:value name='path'/>/<rl:value name='file'/></rl:old>
+ <rl:new><rl:value name='path'/>/<rl:value name='prefix'/><rl:value name='file' method='nosuffix'/>.pdf</rl:new>
+ <rl:step>
+ inkscape
+ --without-gui
+ --print="&gt;<rl:value name='path'/>/<rl:value name='prefix'/><rl:value name='file' method='nosuffix'/>.ps"
+ <rl:value name='path'/>/<rl:value name='file' method='nosuffix'/>.svgz
+ </rl:step>
+ <rl:step>
+ texmfstart pstopdf
+ <rl:value name='path'/>/<rl:value name='prefix'/><rl:value name='file' method='nosuffix'/>.ps
+ <rl:value name='path'/>/<rl:value name='prefix'/><rl:value name='file' method='nosuffix'/>.pdf
+ </rl:step>
+ </rl:manipulator -->
+
+ <rl:manipulator name='pdf' suffix='svg'>
+ <rl:old><rl:value name='path'/>/<rl:value name='file' method='nosuffix'/>.svg</rl:old>
+ <rl:new><rl:value name='path'/>/<rl:value name='prefix'/><rl:value name='file' method='nosuffix'/>.pdf</rl:new>
+ <rl:step>
+ texmfstart pstopdf --convert
+ <rl:value name='old'/>
+ <rl:value name='new'/>
+ </rl:step>
+ </rl:manipulator>
+
+ <rl:manipulator name='pdf' suffix='svgz'>
+ <rl:old><rl:value name='path'/>/<rl:value name='file' method='nosuffix'/>.svgz</rl:old>
+ <rl:new><rl:value name='path'/>/<rl:value name='prefix'/><rl:value name='file' method='nosuffix'/>.pdf</rl:new>
+ <rl:step>
+ texmfstart pstopdf --convert
+ <rl:value name='old'/>
+ <rl:value name='new'/>
+ </rl:step>
+ </rl:manipulator>
+
+ <rl:manipulator name='lowres' suffix='pdf'>
+ <rl:old><rl:value name='path'/>/<rl:value name='file'/></rl:old>
+ <rl:new><rl:value name='path'/>/<rl:value name='prefix'/><rl:value name='file'/></rl:new>
+ <rl:step>
+ texmfstart pstopdf --convert --method=4
+ --inputpath=<rl:value name='path'/>
+ --outputpath=<rl:value name='path'/>/<rl:value name='prefix'/>
+ <rl:value name='file'/>
+ </rl:step>
+ </rl:manipulator>
+
+ <rl:manipulator name='medres' suffix='pdf'>
+ <rl:old><rl:value name='path'/>/<rl:value name='file'/></rl:old>
+ <rl:new><rl:value name='path'/>/<rl:value name='prefix'/><rl:value name='file'/></rl:new>
+ <rl:step>
+ texmfstart pstopdf --convert --method=4
+ --inputpath=<rl:value name='path'/>
+ --outputpath=<rl:value name='path'/>/<rl:value name='prefix'/>
+ <rl:value name='file'/>
+ </rl:step>
+ </rl:manipulator>
+
+ <rl:manipulator name='pdf' suffix='gif'>
+ <rl:old><rl:value name='path'/>/<rl:value name='file' method='nosuffix'/>.gif</rl:old>
+ <rl:new><rl:value name='cache' default='.'/>/<rl:value name='file' method='nosuffix'/>.pdf</rl:new>
+ <rl:step>
+ texmfstart pstopdf --convert
+ --inputpath=<rl:value name='path'/>
+ --outputpath=<rl:value name='cache' default='.'/>
+ <rl:value name='file' method='nosuffix'/>.gif
+ </rl:step>
+ </rl:manipulator>
+
+</rl:manipulators>
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 3c45346ea3a..54e5d6f9789 100644
--- a/Master/texmf-dist/tex/context/base/s-abr-01.tex
+++ b/Master/texmf-dist/tex/context/base/s-abr-01.tex
@@ -33,6 +33,7 @@
\logo [BIBTEX] {bib\TeX}
\logo [BLUESKY] {BlueSky}
\logo [BSD] {bsd}
+\logo [BMP] {bmp}
\logo [CDROM] {cdrom}
\logo [CD] {cd}
\logo [CMR] {cmr}
@@ -81,8 +82,8 @@
\logo [FREEBSD] {FreeBSD}
\logo [FOXET] {foXet}
\logo [FTP] {ftp}
-\logo [GHOSTSCRIPT]{Ghost\-Script}
-\logo [GHOSTVIEW] {Ghost\-View}
+\logo [GHOSTSCRIPT]{Ghost\-script}
+\logo [GHOSTVIEW] {Ghost\-view}
\logo [GIF] {gif}
\logo [GNU] {gnu}
\logo [GS] {Ghost\-Script}
@@ -197,7 +198,7 @@
\logo [TUGNEWS] {Tug\-News}
\logo [TUG] {tug}
\logo [UNICODE] {Uni\-code}
-\logo [UNIX] {unix}
+\logo [UNIX] {Unix}
\logo [URI] {uri}
\logo [URL] {url}
\logo [USA] {usa}
diff --git a/Master/texmf-dist/tex/context/base/s-chi-00.tex b/Master/texmf-dist/tex/context/base/s-chi-00.tex
index bb41b5b05e1..add0b333b00 100644
--- a/Master/texmf-dist/tex/context/base/s-chi-00.tex
+++ b/Master/texmf-dist/tex/context/base/s-chi-00.tex
@@ -1,5 +1,5 @@
%D \module
-%D [ file=s-chi-00,
+%D [ file=s-chi-00,
%D version=1999.12.21,
%D title=\CONTEXT\ Style File,
%D subtitle=Basic Chinese Style,
@@ -12,17 +12,17 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\mainlanguage[cn]
+\input font-chi.tex % faster than \setupbodyfont[chi]
-\setupbodyfont[chi]
+\mainlanguage [cn]
\unprotect
-\setupsection [\v!sectionlevel-1] [\c!headconversion=\s!chinese]
-\setupsection [\v!sectionlevel-2] [\c!headconversion=\s!chinese]
-\setupsection [\v!sectionlevel-3] [\c!headconversion=\s!chinese]
+\setupsection [\s!section-1] [\c!headconversion=\s!chinese]
+\setupsection [\s!section-2] [\c!headconversion=\s!chinese]
+\setupsection [\s!section-3] [\c!headconversion=\s!chinese]
-\setupsection [\v!sectionlevel-2] [\v!appendix\c!conversion=]
+\setupsection [\s!section-2] [\v!appendix\c!conversion=]
\setuphead [\v!chapter] [\c!distance=1.25em]
\setuphead [\v!section] [\c!distance=1.25em]
@@ -50,4 +50,27 @@
\setuptyping[\c!tab=\v!no]
+%D This module (and font support) adapts to the \UTF\ regime, but you
+%D need to enable \UTF\ first!
+%D
+%D \starttyping
+%D \enableregime[utf] \usemodule[chi-00]
+%D
+%D \starttext
+%D
+%D 兡也包因沘氓侷柵苗孫孫財
+%D 崧淫設弼ç¶è·‘æ„窟榜蒸奭稽
+%D 霄瓢館縲擻鼕孃魔é‡ä½‰æ²Žå² 
+%D 狋垚柛胅娭涘罞åŸæƒˆç‰»èºå‚’
+%D 焱è酡廅滘絺赩塴榗箂踃å¬
+%D 澕蓴醊ç§èž—餟燱螬駸礑鎞瀧
+%D 鄿瀯騬醹躕鱕
+%D
+%D \blank
+%D
+%D Wang Lei is written as: 王磊
+%D
+%D \stoptext
+%D \stoptyping
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/s-jap-00.tex b/Master/texmf-dist/tex/context/base/s-jap-00.tex
new file mode 100644
index 00000000000..28cb6c2415a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-jap-00.tex
@@ -0,0 +1,23 @@
+%D \module
+%D [ file=s-jap-00,
+%D version=2006.01.19,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Basic Japanese Style,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D suggestions=Richard Gabriel,
+%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.
+
+\input font-jap.tex % faster than \setupbodyfont[jap]
+
+\mainlanguage [ja]
+
+\unprotect
+
+\setuptyping[\c!tab=\v!no]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/s-pre-01.tex b/Master/texmf-dist/tex/context/base/s-pre-01.tex
index 2cc8c6e359c..b86133fa66b 100644
--- a/Master/texmf-dist/tex/context/base/s-pre-01.tex
+++ b/Master/texmf-dist/tex/context/base/s-pre-01.tex
@@ -8,14 +8,14 @@
%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 environment can be used to typeset interactive
%D presentations. This module was first used at the 1997 \TUG\
%D meeting.
-\usemodule[pre-general]
+\usemodule[pre-general]
%D \macros
%D {language}
@@ -30,7 +30,7 @@
%D {setupbodyfont,setuplayout}
%D
%D For screen reading, a Lucida Bright font looks nice. We use
-%D a 14.4 point bodyfont for the main text, but switch back to
+%D a 14.4 point bodyfont for the main text, but switch back to
%D 12 points for ornaments.
\startmode[asintended] \setupbodyfont[lbr] \stopmode
@@ -69,7 +69,7 @@
[topspace=12pt,
header=0pt,
footer=0pt,
- height=402pt, % 450 - 12 - 15 - 12 - 12 + 3
+ height=402pt, % 450 - 12 - 15 - 12 - 12 + 3
bottomdistance=15pt,
bottom=12pt,
backspace=12pt,
@@ -115,7 +115,7 @@
%D
%D We did not enable interactive text support yet, so let's do
%D that now. We force page reference to circumvent problems
-%D with named destinations in buggy viewers.
+%D with named destinations in buggy viewers.
\setupinteraction
[page=yes,
@@ -137,8 +137,8 @@
rightoffset=-3pt]
\startinteractionmenu[bottom]
- \txt \InteractionBar \\
- \txt \InteractionButtons \\
+ \txt \InteractionBar \\
+ \txt \InteractionButtons \\
\stopinteractionmenu
%D \macros
@@ -166,7 +166,7 @@
\setupinteractionbar
[framecolor=white,rulethickness=1pt,
height=\bottomheight,strut=no]
-
+
\def\InteractionButtons%
{\interactionbuttons
[width=15em]
@@ -179,23 +179,23 @@
%D \macros
%D {StartTitlePage, TitlePage}
%D
-%D The titlepage is rather simple and can be typeset in two
-%D ways:
+%D The titlepage is rather simple and can be typeset in two
+%D ways:
%D
%D \starttyping
%D \StartTitlePage
-%D text \\ text \\ text
+%D text \\ text \\ text
%D \StopTitlepage
%D \stoptyping
%D
%D or more straightforward:
%D
%D \starttyping
-%D \TitlePage{text\\text\\text}
+%D \TitlePage{text\\text\\text}
%D \stoptyping
-%D
-%D The first alternative can be used for more complicated
-%D title pages.
+%D
+%D The first alternative can be used for more complicated
+%D title pages.
\def\StartTitlePage%
{\startstandardmakeup
@@ -236,8 +236,8 @@
%D {definehead}
%D
%D The commands \type{\Topic} and \type{\Subject} are defined
-%D as copies of head. We use \type{\Nopic} for internal
-%D purposes.
+%D as copies of head. We use \type{\Nopic} for internal
+%D purposes.
\definehead [Topic] [chapter]
\definehead [Subject] [section]
@@ -247,10 +247,10 @@
%D \macros
%D {setuphead}
%D
-%D Because chapters and sections do not make sense in
-%D presentations, we use our own command for typesetting the
-%D titles. Sectionnumbers are of course hidden from viewing.
-%D Each topic is followed by a list of subjects that belong
+%D Because chapters and sections do not make sense in
+%D presentations, we use our own command for typesetting the
+%D titles. Sectionnumbers are of course hidden from viewing.
+%D Each topic is followed by a list of subjects that belong
%D to the topic.
\setuphead
@@ -302,15 +302,15 @@
%D {\midaligned{#2}}
%D \stoptyping
%D
-%D But why should we complicate things when we can use
-%D alternative~\type{g}. The test is only needed if one
-%D does not automatically goes a new page with each subject.
+%D But why should we complicate things when we can use
+%D alternative~\type{g}. The test is only needed if one
+%D does not automatically goes a new page with each subject.
\def\PlaceSubjectList%
{\blank
- \determinelistcharacteristics[Subject]
+ \determinelistcharacteristics[Subject]
% \ifnum\utilitylistlength>0 \placelist[Subject] \fi}
- \doifmode{*list}{\placelist[Subject]}}
+ \doifmode{*list}{\placelist[Subject]}}
\setuplist
[Subject, Topic]
@@ -323,7 +323,7 @@
% %D {setuptexttexts}
% %D
% %D The topics will be listed in the right edge, using:
-%
+%
% \setuptexttexts
% [edge]
% [][\TopicList]
@@ -332,8 +332,8 @@
%D {setuplist, placelist,startinteractionmenu}
%D
%D The actual topic list is typeset using a \type{\vbox}. We
-%D have to specify \type{criteriumcriterium=all} because otherwise no
-%D list will be typeset. (By default lists are typeset
+%D have to specify \type{criteriumcriterium=all} because otherwise no
+%D list will be typeset. (By default lists are typeset
%D locally.)
\startinteractionmenu[right]
@@ -348,7 +348,7 @@
style=\setsmallbodyfont\bfx]
\stopinteractionmenu
-\def\Topics#1% temporary hack
+\def\Topics#1% temporary hack
{\Nopic{#1}
\placelist[Topic][criterium=all]}
@@ -357,12 +357,12 @@
%D \macros
%D {setuptexttexts, button}
-%D
+%D
%D During a presentation, we want to use the cursor to point to
%D parts of the text. Furthermore we want to be able to jump to
%D the next page, without the need to move the cursor on buttons.
%D Therefore we make the text part of the screen into an
-%D invisible button.
+%D invisible button.
\setuptexttexts
[\GotoNextPage][]
@@ -374,11 +374,31 @@
%D {setupsubpagenumber}
%D
%D The left bottom navigation bar shows the subpages, which will
-%D be counted by text. One can change this in the preentation
-%D itself by saying \type {[way=byTopic]}.
+%D be counted by text. One can change this in the preentation
+%D itself by saying \type {[way=byTopic]}.
\setupsubpagenumber
[way=bytext, % Topic,
state=start]
-\endinput
+\doifnotmode{demo}{\endinput}
+
+%D The (rather silly) demo section.
+
+\starttext
+
+\TitlePage{Title Page\\pre-original}
+
+\Topics{Some Nice Quotes}
+
+\Topic{A Few}
+
+\Subject{Knuth} \input knuth
+\Subject{Tufte} \input tufte
+
+\Topic{Some More}
+
+\Subject{Zapf} \input zapf
+\Subject{Bryson} \input bryson
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/s-pre-02.tex b/Master/texmf-dist/tex/context/base/s-pre-02.tex
index 4cd450f84a1..9df1fe3833c 100644
--- a/Master/texmf-dist/tex/context/base/s-pre-02.tex
+++ b/Master/texmf-dist/tex/context/base/s-pre-02.tex
@@ -8,12 +8,12 @@
%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 environment can be used to typeset interactive
-%D presentations. This module was first used at the 1998
-%D publishers conference of the European Portable Document
+%D presentations. This module was first used at the 1998
+%D publishers conference of the European Portable Document
%D Association (now merged into a graphics association).
\usemodule[pre-general]
@@ -21,8 +21,8 @@
%D \macros
%D {setupbodyfont, switchtobodyfont, setuplayout}
%D
-%D At \PRAGMA\ we prefer using the Lucida Bright fonts, but
-%D one can of course load another typeface.
+%D At \PRAGMA\ we prefer using the Lucida Bright fonts, but
+%D one can of course load another typeface.
\startmode[asintended] \setupbodyfont[lbr] \stopmode
@@ -34,7 +34,7 @@
%D \macros
%D {setuppapersize, setuplayout}
%D
-%D The papersize suits the screen dimensions. The layout is
+%D The papersize suits the screen dimensions. The layout is
%D rather simple. We use the whole width of the screen and only
%D have navigational tools at the bottom of the screen.
@@ -55,8 +55,8 @@
%D \macros
%D {setupwhitespace, setuptyping}
%D
-%D We don't have much height, so we use a more cramped
-%D spacing. Verbatim text looks better when indented.
+%D We don't have much height, so we use a more cramped
+%D spacing. Verbatim text looks better when indented.
%D
\setupwhitespace
@@ -69,7 +69,7 @@
%D {definecolor, setupcolors}
%D
%D Of course we enable color. We define some logical colors,
-%D of which most default to the same green shade.
+%D of which most default to the same green shade.
\definecolor [BackgroundColor] [r=.8, g=.8, b=.8]
\definecolor [OrnamentColor] [r= 0, g=.7, b=.4]
@@ -79,8 +79,8 @@
%D \macros
%D {setupinteraction, setupinteractionscreen}
-%D
-%D We still have to enable interaction mode. We go full
+%D
+%D We still have to enable interaction mode. We go full
%D screen!
\setupinteraction
@@ -103,31 +103,31 @@
%D \macros
%D {defineoverlay, setupbackgrounds}
-%D
-%D The navigational elements and the backgrounds are
+%D
+%D The navigational elements and the backgrounds are
%D provided by \METAPOST.
-%D
+%D
%D When \METAPOST\ is used, it makes sense to generate the
%D graphics at runtime. This is supported when one enables
%D system calls in the local \type {texmf.cnf} file and add the
%D switch \type {\runMPgraphicstrue} to the local file \type
-%D {cont-sys.tex}. When direct processing is disabled or not
-%D supported, \TEXEXEC\ will take care of graphic generation.
+%D {cont-sys.tex}. When direct processing is disabled or not
+%D supported, \TEXEXEC\ will take care of graphic generation.
\startuniqueMPgraphic{PageBackground}
fill unitsquare
- xyscaled(OverlayWidth,OverlayHeight)
- withcolor OverlayColor ;
+ xyscaled(OverlayWidth,OverlayHeight)
+ withcolor OverlayColor ;
draw unitsquare
- xyscaled(OverlayWidth,OverlayHeight)
+ xyscaled(OverlayWidth,OverlayHeight)
enlarged (-2*OverlayLineWidth)
withpen pencircle scaled OverlayLineWidth
- withcolor OverlayLineColor ;
+ withcolor OverlayLineColor ;
\stopuniqueMPgraphic
\defineoverlay
[PageBackground]
- [\uniqueMPgraphic{PageBackground}]
+ [\uniqueMPgraphic{PageBackground}]
\setupbackgrounds
[page]
@@ -139,15 +139,15 @@
%D \macros
%D {setuptexttexts}
%D
-%D By clicking on the text area, one goes to the next page.
-%D We hook this feature into the text backgrounds.
+%D By clicking on the text area, one goes to the next page.
+%D We hook this feature into the text backgrounds.
\startuniqueMPgraphic{TextBackground}
draw unitsquare
- xyscaled(OverlayWidth,OverlayHeight)
+ xyscaled(OverlayWidth,OverlayHeight)
enlarged (4*OverlayLineWidth)
withpen pencircle scaled OverlayLineWidth
- withcolor OverlayLineColor ;
+ withcolor OverlayLineColor ;
\stopuniqueMPgraphic
\defineoverlay
@@ -214,14 +214,14 @@
[menu=on]
\def\WhateverButton
- {\doifreferencefoundelse{Whatever}
- {\raw [Whatever] \uniqueMPgraphic{UpArrow} \\}
+ {\doifreferencefoundelse{Whatever}
+ {\raw [Whatever] \uniqueMPgraphic{UpArrow} \\}
{}}
\startinteractionmenu[bottom]
- \but [Topics] \\ % secret button
+ \but [Topics] \\ % secret button
\hfill
- \WhateverButton % user specific
+ \WhateverButton % user specific
\kern2\bottomheight
\raw [previouspage] \uniqueMPgraphic{LeftArrow} \\
\kern.5\bottomheight
@@ -253,23 +253,23 @@
%D \macros
%D {StartTitlePage, TitlePage}
%D
-%D The titlepage is rather simple and can be typeset in two
-%D ways:
+%D The titlepage is rather simple and can be typeset in two
+%D ways:
%D
%D \starttyping
%D \StartTitlePage
-%D text \\ text \\ text
+%D text \\ text \\ text
%D \StopTitlepage
%D \stoptyping
%D
%D or as one||liner:
%D
%D \starttyping
-%D \TitlePage{text\\text\\text}
+%D \TitlePage{text\\text\\text}
%D \stoptyping
-%D
-%D The first alternative can be used for more complicated
-%D title pages.
+%D
+%D The first alternative can be used for more complicated
+%D title pages.
\def\StartTitlePage%
{\startstandardmakeup
@@ -289,8 +289,8 @@
%D {definehead}
%D
%D The commands \type{\Topic} and \type{\Subject} are defined
-%D as copies of head. We use \type{\Nopic} for internal
-%D purposes.
+%D as copies of head. We use \type{\Nopic} for internal
+%D purposes.
\definehead [Topic] [chapter]
\definehead [Subject] [section]
@@ -323,8 +323,8 @@
%D \macros
%D {setuplist}
%D
-%D When found, the subject list is automatically placed
-%D after the topic head.
+%D When found, the subject list is automatically placed
+%D after the topic head.
\setuplist
[Topic,Subject]
@@ -337,7 +337,7 @@
[Topic]
[criterium=all]
-\def\Topics#1%
+\def\Topics#1%
{\determinelistcharacteristics[Topic]
\doifmode{*list}
{\Nopic[Topics]{#1}
@@ -349,7 +349,7 @@
[Subject]
[criterium=Topic]
-\def\Subjects%
+\def\Subjects%
{\determinelistcharacteristics[Subject]
\doifmode{*list}
{\placelist[Subject]}}
@@ -358,4 +358,24 @@
[Topic]
[after={\blank[3*medium]\Subjects}]
-\endinput
+\doifnotmode{demo}{\endinput}
+
+%D The (rather silly) demo section.
+
+\starttext
+
+\TitlePage{Title Page\\pre-green}
+
+\Topics{Some Nice Quotes}
+
+\Topic{A Few}
+
+\Subject{Knuth} \input knuth
+\Subject{Tufte} \input tufte
+
+\Topic{Some More}
+
+\Subject{Zapf} \input zapf
+\Subject{Bryson} \input bryson
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/s-pre-03.tex b/Master/texmf-dist/tex/context/base/s-pre-03.tex
index c7420ba3779..bdd7960c5a4 100644
--- a/Master/texmf-dist/tex/context/base/s-pre-03.tex
+++ b/Master/texmf-dist/tex/context/base/s-pre-03.tex
@@ -99,7 +99,7 @@
% path p; p := superellipse(r,t,l,b,.8) ;
% fill p withcolor \MPcolor{Backgroundcolor} ;
% draw p withcolor \MPcolor{OrnamentColor} ;
-% color contrastcolor ; contrastcolor = 2/3 * \MPcolor{OrnamentColor} ;
+% color contrastcolor ; contrastcolor = 2/3 * \MPcolor{OrnamentColor} ;
% if (pos>0) and (tot>0):
% pair pa ; pa := point 5 of p ;
% pair pb ; pb := point 7 of p ;
@@ -117,28 +117,28 @@
\startuseMPgraphic{PageShape}
StartPage ;
- path p ; pair pa, pb ; numeric len ; color contrastcolor ;
- fill Page withcolor \MPcolor {PageColor} ;
+ path p ; pair pa, pb ; numeric len ; color contrastcolor ;
+ fill Page withcolor \MPcolor {PageColor} ;
pickup pencircle rotated 45 xscaled 10pt yscaled 20pt ;
p := Page enlarged (-10pt,-15pt) superellipsed .8 ;
- p := p shifted (-1.5pt,0) ; % looks better
+ p := p shifted (-1.5pt,0) ; % looks better
fill p withcolor \MPcolor{BackgroundColor} ;
draw p withcolor \MPcolor{OrnamentColor} ;
- contrastcolor = 2/3 * \MPcolor{OrnamentColor} ;
+ contrastcolor = 2/3 * \MPcolor{OrnamentColor} ;
if (PageNumber>0) and (NOfPages>0):
draw point 5 of p withcolor contrastcolor ;
draw point 7 of p withcolor contrastcolor ;
len := 2/NOfPages ;
pa := point (5+len*PageNumber) of p ;
pb := point (5+len*(PageNumber-1)) of p ;
- draw (p cutafter pa) cutbefore pb
+ draw (p cutafter pa) cutbefore pb
withcolor contrastcolor ;
fi ;
StopPage ;
\stopuseMPgraphic
%D We use the viewer provided feature to go to the previous or
-%D next page.
+%D next page.
\defineoverlay[PrevButton][\overlaybutton{PreviousPage}]
\defineoverlay[NextButton][\overlaybutton{NextPage}]
@@ -151,11 +151,11 @@
[text][text]
[background=NextButton]
-% or using hard coded next/prev pages:
+% or using hard coded next/prev pages:
%
% \defineoverlay[PrevButton][\overlaybutton{previouspage}]
% \defineoverlay[NextButton][\overlaybutton{nextpage}]
-%
+%
% \setupbackgrounds[state=repeat]
% \setupbackground[text][text][background=NextButton]
%
@@ -234,4 +234,24 @@
\def\TitlePage#1%
{\StartTitlePage#1\StopTitlePage}
-\endinput
+\doifnotmode{demo}{\endinput}
+
+%D The (rather silly) demo section.
+
+\starttext
+
+\TitlePage{Title Page\\pre-funny}
+
+\Topics{Some Nice Quotes}
+
+\Topic{A Few}
+
+\Subject{Knuth} \input knuth
+\Subject{Tufte} \input tufte
+
+\Topic{Some More}
+
+\Subject{Zapf} \input zapf
+\Subject{Bryson} \input bryson
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/s-pre-04.tex b/Master/texmf-dist/tex/context/base/s-pre-04.tex
index 29b040a8b89..09cc79b72e8 100644
--- a/Master/texmf-dist/tex/context/base/s-pre-04.tex
+++ b/Master/texmf-dist/tex/context/base/s-pre-04.tex
@@ -8,17 +8,17 @@
%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.
-\usemodule[pre-general]
+\usemodule[pre-general]
%D \macros
%D {setupbodyfont}
%D
%D This is just another environment for typesetting interactive
%D presentations. I wrote this module on behalf of a course I
-%D gave for the United Kingdom \TeX\ users group.
+%D gave for the United Kingdom \TeX\ users group.
\setupbodyfont[ams,pos,14.4pt]
@@ -28,33 +28,33 @@
%D I started using dark blue for the navigational elements. In
%D that context, dark red is a logical choice for the contrast
%D color. While playing around with the navigational elements
-%D I decided to use the not so dominant color yellow for the
-%D status bar.
-%D
+%D I decided to use the not so dominant color yellow for the
+%D status bar.
+%D
%D A few days before I wrote this style, the recent acquisition
%D of Mondriaans last painting by the Dutch governement was a
%D hot topic in the dutch news scenary. Therefore I decided to
%D replace the rather dull title page by something more
%D colorful, in mondriaan colors, but far more random than any
-%D of his paintings. For consistence we remap the already
-%D defined primary colors.
+%D of his paintings. For consistence we remap the already
+%D defined primary colors.
\setupcolors [state=start]
-\definecolor [NoneColor] [s=.6]
+\definecolor [NoneColor] [s=.6]
\definecolor [GotoColor] [b=.6] \definecolor[blue] [GotoColor]
\definecolor [ExitColor] [r=.6] \definecolor[red] [ExitColor]
-\definecolor [JumpColor] [s=.6]
+\definecolor [JumpColor] [s=.6]
\definecolor [UserColor] [g=.6] \definecolor[green] [UserColor]
\definecolor [StepColor] [r=.6,g=.6] \definecolor[yellow][StepColor]
\definecolor [PageColor] [s=.80] \definecolor[gray] [PageColor]
-\definecolor [TextColor] [s=.90]
+\definecolor [TextColor] [s=.90]
%D \macros
%D {setuppapersize}
%D
-%D As usual, we take a screen oriented paper size:
+%D As usual, we take a screen oriented paper size:
\setuppapersize
[S6][S6]
@@ -62,9 +62,9 @@
%D \macros
%D {setuplayout,setupinteractionscreen}
%D
-%D The layout definition fits into this $600\times450$ point
+%D The layout definition fits into this $600\times450$ point
%D area, but the dimensions are somewhat diffused by the text
-%D background offset.
+%D background offset.
\setuplayout
[width=530pt,
@@ -85,10 +85,10 @@
%D \macros
%D {setupbackgrounds}
%D
-%D Both the page and the text area have a gray background.
-%D The \type {[text,text]} area also has an offset. Later we
+%D Both the page and the text area have a gray background.
+%D The \type {[text,text]} area also has an offset. Later we
%D will see that we have to compensate for that in the
-%D navigational areas.
+%D navigational areas.
\setupbackgrounds
[page]
@@ -104,19 +104,19 @@
%D \macros
%D {setupinteraction}
%D
-%D For convenient navigation, we turn on interaction.
+%D For convenient navigation, we turn on interaction.
\setupinteraction
[state=start,
menu=on,
- color=UserColor,
+ color=UserColor,
contrastcolor=NoneColor]
%D \macros
%D {setupsubpagenumber}
%D
-%D When navigating the document, we keep the title page out
-%D of sight, therefore we use sub page numbers.
+%D When navigating the document, we keep the title page out
+%D of sight, therefore we use sub page numbers.
\setupsubpagenumber
[state=start,
@@ -127,7 +127,7 @@
%D
%D There is only one interaction menu, located in the right
%D edge of the screen. Both offsets enlarge the edge by the
-%D same amount as the text background offset.
+%D same amount as the text background offset.
\setupinteractionmenu
[right]
@@ -146,10 +146,10 @@
%D start||stop alternative for setting the content. The macro
%D \type {\interactioncolor} expands into either the
%D interaction color or the contrast color, the latter only
-%D when no jump is possible.
+%D when no jump is possible.
\startinteractionmenu[right]
- \setupinteraction[color=GotoColor]
+ \setupinteraction[color=GotoColor]
\but [previoussubpage] \Triangle {90}\framedwidth\interactioncolor \\
\vskip10pt
\but [nextsubpage] \Triangle{270}\framedwidth\interactioncolor \\
@@ -162,11 +162,11 @@
%D \macros
%D {setupinteractionbar}
%D
-%D The interaction bar at the bottom is also larger than the
-%D normal width of the bottom area.
+%D The interaction bar at the bottom is also larger than the
+%D normal width of the bottom area.
\setupinteractionbar
- [alternative=f,
+ [alternative=f,
width=\textwidth,
height=\bottomheight,
distance=10pt,
@@ -176,29 +176,29 @@
%D \macros
%D {setupbottomtexts}
%D
-%D The bar is centered in the middle.
+%D The bar is centered in the middle.
-\setupbottomtexts
+\setupbottomtexts
[\interactionbar]
-%D We can exit viewing with a close button, located on the
-%D rightmost bottom area.
+%D We can exit viewing with a close button, located on the
+%D rightmost bottom area.
\def\CloseButton
{\button
[width=\rightedgewidth,height=\bottomheight,offset=overlay,
background=color,backgroundcolor=ExitColor,frame=off]
{}%
- [CloseDocument]}
+ [CloseDocument]}
\setupbottomtexts
[edge][][\CloseButton]
-%D \macros
+%D \macros
%D {definesymbol,setupitemize}
%D
-%D Because some prominent things are rectangular or triangular,
-%D we prefer some different symbols in itemizations:
+%D Because some prominent things are rectangular or triangular,
+%D we prefer some different symbols in itemizations:
\definesymbol[1][$\blacktriangleright$]
\definesymbol[2][$\blacktriangledown$]
@@ -245,11 +245,11 @@
%D \macros
%D {Topic, Nopic, Subject,
-%D definehead, setuphead}
+%D definehead, setuphead}
%D
-%D We use \type {\Topic} and \type {\Subject} instead of
-%D chapters and sections. The \type {\Nopic} alternative is
-%D meant for internal use.
+%D We use \type {\Topic} and \type {\Subject} instead of
+%D chapters and sections. The \type {\Nopic} alternative is
+%D meant for internal use.
\definehead [Topic] [chapter]
\definehead [Nopic] [title]
@@ -275,9 +275,9 @@
%D {Topics, Subjects,
%D setuplist, placelist, startcolumns}
%D
-%D This style is meant for the more large presentations, and
-%D therefore provided for a list of topics as well as local
-%D lists of subjects. When many topics are introduces, the
+%D This style is meant for the more large presentations, and
+%D therefore provided for a list of topics as well as local
+%D lists of subjects. When many topics are introduces, the
%D list is typeset in columns.
\setuplist
@@ -291,28 +291,28 @@
[Topic]
[criterium=all]
-\def\Topics#1%
+\def\Topics#1%
{\determinelistcharacteristics[Topic]
- \ifnum\utilitylistlength>0
+ \ifnum\utilitylistlength>0
\Nopic[Topics]{#1}
- \ifnum\utilitylistlength>12
+ \ifnum\utilitylistlength>12
\startcolumns
\placelist[Topic]
\stopcolumns
\else
\placelist[Topic]
- \fi
+ \fi
\fi}
-\def\Subjects%
+\def\Subjects%
{\placelist[Subject]}
-%D Last we define the overlays. Look at the way colors are
+%D Last we define the overlays. Look at the way colors are
%D linked into the macros.
\startMPinclusions
def triangle (expr wid, rot, col) =
- x1 := x3 := y1 := 0 ; x2 := y3 := wid ; y2 := .5y3 ;
+ x1 := x3 := y1 := 0 ; x2 := y3 := wid ; y2 := .5y3 ;
fill (z1--z2--z3--cycle) rotated rot withcolor col ;
currentpicture := currentpicture xysized (wid,wid) ;
enddef ;
@@ -331,27 +331,47 @@
\def\Triangle#1#2#3%
{\uniqueMPgraphic{triangle}{rotation=#1,width=#2,color=#3}}
-\startuseMPgraphic{title} % can be simplified with "randomized"
- color c ; path p ;
- for i=1 upto 250 :
- x0 := uniformdeviate \overlaywidth ;
+\startuseMPgraphic{title} % can be simplified with "randomized"
+ color c ; path p ;
+ for i=1 upto 250 :
+ x0 := uniformdeviate \overlaywidth ;
y0 := uniformdeviate \overlayheight ;
- sx := uniformdeviate 20 ;
+ sx := uniformdeviate 20 ;
sy := uniformdeviate 20 ;
- cc := round(uniformdeviate 2) ;
- if cc=0 : c := \MPcolor{GotoColor} fi ;
- if cc=1 : c := \MPcolor{ExitColor} fi ;
- if cc=2 : c := \MPcolor{StepColor} fi ;
- qq := round(uniformdeviate 1) ;
- if qq=0 :
+ cc := round(uniformdeviate 2) ;
+ if cc=0 : c := \MPcolor{GotoColor} fi ;
+ if cc=1 : c := \MPcolor{ExitColor} fi ;
+ if cc=2 : c := \MPcolor{StepColor} fi ;
+ qq := round(uniformdeviate 1) ;
+ if qq=0 :
p := unitsquare xscaled sx yscaled sy ;
else :
- rr := round(uniformdeviate 3) * 90 ;
- x1 := x3 := y1 := 0 ; x2 := y3 := sx; y2 := .5y3 ;
+ rr := round(uniformdeviate 3) * 90 ;
+ x1 := x3 := y1 := 0 ; x2 := y3 := sx; y2 := .5y3 ;
p := (z1--z2--z3--cycle) rotated rr ;
- fi ;
- fill p shifted z0 withcolor c ;
+ fi ;
+ fill p shifted z0 withcolor c ;
endfor ;
\stopuseMPgraphic
-\endinput
+\doifnotmode{demo}{\endinput}
+
+%D The (rather silly) demo section.
+
+\starttext
+
+\TitlePage{Title Page\\pre-colorfull}
+
+\Topics{Some Nice Quotes}
+
+\Topic{A Few}
+
+\Subject{Knuth} \input knuth
+\Subject{Tufte} \input tufte
+
+\Topic{Some More}
+
+\Subject{Zapf} \input zapf
+\Subject{Bryson} \input bryson
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/s-pre-05.tex b/Master/texmf-dist/tex/context/base/s-pre-05.tex
index f095ae09156..9b3ae89ff04 100644
--- a/Master/texmf-dist/tex/context/base/s-pre-05.tex
+++ b/Master/texmf-dist/tex/context/base/s-pre-05.tex
@@ -8,13 +8,13 @@
%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.
-\usemodule[pre-general]
+\usemodule[pre-general]
-%D As all styles sofar, this one has the same structuring
-%D commands.
+%D As all styles sofar, this one has the same structuring
+%D commands.
\startmode[asintended] \setupbodyfont[lbr] \stopmode
@@ -22,7 +22,7 @@
\setupcolors [state=start]
-\definecolor [BackgroundColor] [s=.95]
+\definecolor [BackgroundColor] [s=.95]
\definecolor [OrnamentColor] [r=.6,g=.7,b=.8]
\setuppapersize
@@ -68,7 +68,7 @@
color=OrnamentColor,
contrastcolor=OrnamentColor]
-%D Watch how we use a list alternative that matches the
+%D Watch how we use a list alternative that matches the
%D menu.
\setupinteractionmenu
@@ -77,7 +77,7 @@
style=smallbold,
frame=off,
offset=10pt,
- height=35pt,
+ height=35pt,
before=,
after=,
inbetween=\endgraf,
@@ -96,7 +96,7 @@
\setupinteractionmenu
[right]
[height=30pt]
- \but [CloseDocument] Close \\
+ \but [CloseDocument] Close \\
\stopinteractionmenu
\setupwhitespace
@@ -140,19 +140,19 @@
\def\TitlePage#1%
{\StartTitlePage#1\StopTitlePage}
-%D \macros
+%D \macros
%D {Topics,Subjects}
%D
-%D Since the lists are in the menu, we don't honor list
-%D placement macros.
+%D Since the lists are in the menu, we don't honor list
+%D placement macros.
\def\Topics#1{}
\def\Subjects{}
%D \macros
-%D {Topic, Nopic, Subject}
+%D {Topic, Nopic, Subject}
%D
-%D Since t his style is meant for rather flat structured
+%D Since t his style is meant for rather flat structured
%D documents, only \type {\Topic} makes sense.
\definehead [Topic] [chapter]
@@ -175,27 +175,27 @@
continue=no,
style=\tfa]
-%D We use only one kind of base graphic, which is sligthly
-%D tuned for the different usage.
+%D We use only one kind of base graphic, which is sligthly
+%D tuned for the different usage.
\startMPinclusions
- def random_hash_frame (expr width, height, offset, linewidth ) =
+ def random_hash_frame (expr width, height, offset, linewidth ) =
def delta = ((uniformdeviate .5offset) + .25offset) enddef ;
x1 := offset ; y1 := offset ; x2 := width-offset ; y2 := height-offset ;
- drawoptions(withpen pencircle scaled linewidth withcolor \MPcolor{BackgroundColor}) ;
+ drawoptions(withpen pencircle scaled linewidth withcolor \MPcolor{BackgroundColor}) ;
fill z1--(x2,y1)--z2--(x1,y2)--cycle ;
- drawoptions(withpen pencircle scaled linewidth withcolor \MPcolor{OrnamentColor}) ;
+ drawoptions(withpen pencircle scaled linewidth withcolor \MPcolor{OrnamentColor}) ;
draw (x1-delta,y1)--(x2+delta,y1) ;
draw (x2,y1-delta)--(x2,y2+delta) ;
draw (x2+delta,y2)--(x1-delta,y2) ;
draw (x1,y2+delta)--(x1,y1-delta) ;
- drawoptions();
+ drawoptions();
setbounds currentpicture to unitsquare xscaled width yscaled height ;
- enddef ;
+ enddef ;
\stopMPinclusions
\startuseMPgraphic{HashFrameA}
@@ -207,14 +207,34 @@
\stopuseMPgraphic
\startuseMPgraphic{TitleGraphic}
- for i=1 upto 300 :
- offset := uniformdeviate 10pt ;
- width := 2*offset + 30pt + uniformdeviate 30pt ;
- height := 2*offset + 10pt + uniformdeviate 10pt ;
- addto currentpicture also
- image(random_hash_frame(width,height,offset,1pt)) shifted
- (uniformdeviate OverlayWidth, uniformdeviate OverlayHeight) ;
- endfor ;
+ for i=1 upto 300 :
+ offset := uniformdeviate 10pt ;
+ width := 2*offset + 30pt + uniformdeviate 30pt ;
+ height := 2*offset + 10pt + uniformdeviate 10pt ;
+ addto currentpicture also
+ image(random_hash_frame(width,height,offset,1pt)) shifted
+ (uniformdeviate OverlayWidth, uniformdeviate OverlayHeight) ;
+ endfor ;
\stopuseMPgraphic
-\endinput
+\doifnotmode{demo}{\endinput}
+
+%D The (rather silly) demo section.
+
+\starttext
+
+\TitlePage{Title Page\\pre-fuzzy}
+
+\Topics{Some Nice Quotes}
+
+\Topic{A Few}
+
+\Subject{Knuth} \input knuth
+\Subject{Tufte} \input tufte
+
+\Topic{Some More}
+
+\Subject{Zapf} \input zapf
+\Subject{Bryson} \input bryson
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/s-pre-06.tex b/Master/texmf-dist/tex/context/base/s-pre-06.tex
index d3b99d9b77e..7a84323e934 100644
--- a/Master/texmf-dist/tex/context/base/s-pre-06.tex
+++ b/Master/texmf-dist/tex/context/base/s-pre-06.tex
@@ -27,7 +27,7 @@
\usemodule[pre-general]
-%D \macros
+%D \macros
%D {setupbodyfont}
%D
%D As said, we will use the Antikwa Torunska, and because we
@@ -36,7 +36,7 @@
\setupbodyfont
[ant,14.4pt]
-%D \macros
+%D \macros
%D {definecolor, setupcolors}
%D
%D Thus style only uses gray scales, but nevertheless we turn
@@ -49,7 +49,7 @@
\definecolor [ContrastColor] [s=.9]
\definecolor [InteractionColor] [s=.6]
-%D \macros
+%D \macros
%D {setuppapersize}
%D
%D As (nearly) always, we use a 600 pt times 450 pt screen
@@ -268,9 +268,9 @@
%D
%D We use a nested \type {\everypar}; everything in there
%D will be put in front of each paragraph. The nesting prevents
-%D the first paragraph from indenting. The struts give the
+%D the first paragraph from indenting. The struts give the
%D lines a decent height, which looks better inrelation to the
-%D next pages.
+%D next pages.
\def\StartTitlePage%
{\startstandardmakeup
@@ -292,4 +292,34 @@
\def\TitlePage#1%
{\StartTitlePage#1\StopTitlePage}
-\endinput
+\doifnotmode{demo}{\endinput}
+
+%D The (rather silly) demo section.
+
+\usemodule[pre-antikwa]
+
+\starttext
+
+\TitlePage{Title Page\\pre-polish}
+
+\Topics{Some Nice Lists}
+
+\Topic{Some Lists}
+
+\Subject{A list}
+
+\startitemize
+\item first
+\item second
+\stopitemize
+
+\Subject{A bigger list}
+
+\startitemize
+\item first
+\item second
+\item third
+\item fourth
+\stopitemize
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/s-pre-07.tex b/Master/texmf-dist/tex/context/base/s-pre-07.tex
index 65514403a0a..bf84971bbd3 100644
--- a/Master/texmf-dist/tex/context/base/s-pre-07.tex
+++ b/Master/texmf-dist/tex/context/base/s-pre-07.tex
@@ -16,12 +16,12 @@
%D This is just one way of implementing such a style. Today
%D we have more \METAPOST\ interfacing available, and
%D thereby moore tools and alternative ways to reach such a
-%D goal. I must admit that the main macro looks fuzzy. On
-%D the other hand, the presentation can look quite structured.
-%D
+%D goal. I must admit that the main macro looks fuzzy. On
+%D the other hand, the presentation can look quite structured.
+%D
%D \starttyping
%D \Topics{...}
-%D
+%D
%D \StartIdeas
%D \Topic{...}
%D \StartIdea ... \StopIdea
@@ -54,7 +54,7 @@
%D keep the random seed reasonable constant.
\setupsystem
- [random=big]
+ [random=big]
\setupcolors
[state=start]
@@ -193,4 +193,20 @@
\def\StopIdeas%
{}
-\endinput
+\doifnotmode{demo}{\endinput}
+
+%D The (rather silly) demo section.
+
+\starttext
+
+\Topics{This is about \unknown}
+
+\StartIdeas
+ \Topic{Some topic}
+ \StartIdea An idea \unknown \StopIdea
+ \StartIdea \unknown\ and another \StopIdea
+\StopIdeas
+
+\stoptext
+
+
diff --git a/Master/texmf-dist/tex/context/base/s-pre-13.tex b/Master/texmf-dist/tex/context/base/s-pre-13.tex
index a7b68dd69b9..6032f36d286 100644
--- a/Master/texmf-dist/tex/context/base/s-pre-13.tex
+++ b/Master/texmf-dist/tex/context/base/s-pre-13.tex
@@ -12,7 +12,7 @@
%C details.
%D This is again one of the \EUROTEX\ 99 styles. It's one of
-%D the quick and dirty styles supporting basic structuring.
+%D the quick and dirty styles supporting basic structuring.
\setuppapersize
[S6][S6]
@@ -27,14 +27,14 @@
topspace=2cm,
backspace=2cm]
-%D This style is meant to be used with lucida handwriting
-%D fonts. If you don't have that font, you may reconsider
-%D using this style.
+%D This style is meant to be used with lucida handwriting
+%D fonts. If you don't have that font, you may reconsider
+%D using this style.
\startmode[asintended] \setupbodyfont[lbr,hw] \stopmode
%D These colors will mostly be used in the graphics drawn by
-%D \METAPOST.
+%D \METAPOST.
\setupcolors
[state=start]
@@ -44,8 +44,8 @@
\definecolor[LineColor] [g=.4]
\definecolor[SymbolColor][r=.4]
-%D When interacting, we will use button shaped that are
-%D quite random and thereby regenerated for each instance.
+%D When interacting, we will use button shaped that are
+%D quite random and thereby regenerated for each instance.
\setupinteractionscreen
[option=max]
@@ -66,23 +66,23 @@
\startinteractionmenu[bottom]
\hfill
- \got [previouspage] \symbol[prevmark] \\
- \got [nextpage] \symbol[nextmark] \\
- \got [CloseDocument] \symbol[stopmark] \\
- \txt \tfd \SymbolColor \pagenumber \\
+ \got [previouspage] \symbol[prevmark] \\
+ \got [nextpage] \symbol[nextmark] \\
+ \got [CloseDocument] \symbol[stopmark] \\
+ \txt \tfd \SymbolColor \pagenumber \\
\stopinteractionmenu
%D When not processed at runtime, the itemmark graphics can
%D result in processing loops due to funny dimensions.
%D Therefore, from now on, the itemize macros limit the height
-%D and depth.
+%D and depth.
\definesymbol[itemmark][\useMPgraphic{itemmark}]
\definesymbol[stopmark][\useMPgraphic{stopmark}]
\definesymbol[nextmark][\useMPgraphic{nextmark}]
\definesymbol[prevmark][\useMPgraphic{prevmark}]
-%D Of course we have some backgrounds.
+%D Of course we have some backgrounds.
\defineoverlay [page] [\useMPgraphic{page}]
\defineoverlay [next] [\overlaybutton{forward}]
@@ -90,11 +90,11 @@
\setupbackgrounds
[page]
- [background={page,prev}]
+ [background={page,prev}]
\setupbackgrounds
[text]
- [background=next]
+ [background=next]
\setuphead
[chapter]
@@ -114,7 +114,7 @@
width=3\bodyfontsize]
\def\StartTitlePage%
- {\setupinteractionmenu[bottom][state=stop] % will be named page block
+ {\setupinteractionmenu[bottom][state=stop] % will be named page block
\startstandardmakeup
\setupalign[middle]
\def\\%
@@ -149,11 +149,11 @@
\def\Topics#1%
{\Nopic{#1}
\bgroup
- \setupinteraction
+ \setupinteraction
[color=,
contrastcolor=]
\determinelistcharacteristics[Topic]
- \ifnum\utilitylistlength>12
+ \ifnum\utilitylistlength>12
\startcolumns[n=2]
\placelist[Topic]
\stopcolumns
@@ -162,35 +162,35 @@
\fi
\egroup}
-%D We don't support another level of structuring.
+%D We don't support another level of structuring.
\let\Subject \Topic
\let\Subjects\relax
-%D Most of this style is \METAPOST\ definitions. We could
-%D have shared some code, but it would not on forehand make
-%D things more readable, so we stick to the following
-%D definitions.
+%D Most of this style is \METAPOST\ definitions. We could
+%D have shared some code, but it would not on forehand make
+%D things more readable, so we stick to the following
+%D definitions.
\startuseMPgraphic{page}
- width := \overlaywidth ;
- height := \overlayheight ;
+ width := \overlaywidth ;
+ height := \overlayheight ;
- d := 15 ; dd := d ; dd := 10 ;
+ d := 15 ; dd := d ; dd := 10 ;
- def fuzzy (expr p,dx,dy) =
+ def fuzzy (expr p,dx,dy) =
(xpart p +dx-uniformdeviate dx,ypart p+dy-uniformdeviate dy)
- enddef ;
+ enddef ;
- pair ll, lr, ur, ul ;
+ pair ll, lr, ur, ul ;
ll := (d,d) ;
lr := (width-d,d) ;
ur := (width-d,height-d) ;
ul := (d,height-d) ;
- path p, q, r, s ;
+ path p, q, r, s ;
p := ll.. for i=.1 step .1 until .9 : fuzzy (i[ll,lr],0,+dd).. endfor lr ;
q := lr.. for i=.1 step .1 until .9 : fuzzy (i[lr,ur],-dd,0).. endfor ur ;
@@ -201,27 +201,27 @@
fill p & q & r & s -- cycle withcolor \MPcolor{TextColor} ;
- color c ; c := \MPcolor{LineColor} ;
+ color c ; c := \MPcolor{LineColor} ;
- draw p withpen pencircle xscaled 20 yscaled 5 rotated 30 withcolor c ;
- draw q withpen pencircle xscaled 5 yscaled 20 rotated 30 withcolor c ;
- draw r withpen pencircle xscaled 20 yscaled 5 rotated 30 withcolor c ;
- draw s withpen pencircle xscaled 5 yscaled 20 rotated 30 withcolor c ;
+ draw p withpen pencircle xscaled 20 yscaled 5 rotated 30 withcolor c ;
+ draw q withpen pencircle xscaled 5 yscaled 20 rotated 30 withcolor c ;
+ draw r withpen pencircle xscaled 20 yscaled 5 rotated 30 withcolor c ;
+ draw s withpen pencircle xscaled 5 yscaled 20 rotated 30 withcolor c ;
\stopuseMPgraphic
\startuseMPgraphic{itemmark}
- width := BodyFontSize ; height := width/4 ;
+ width := BodyFontSize ; height := width/4 ;
maxheight := StrutHeight ; line := 3width/2 ;
- def fuzzy = -(height/4)+uniformdeviate (height/2) enddef ;
+ def fuzzy = -(height/4)+uniformdeviate (height/2) enddef ;
- draw
- ((0,0+fuzzy)--(width,height+fuzzy/2))
- shifted (line/2,0)
- withpen pencircle
- xscaled line yscaled (line/4)
- rotated (25+uniformdeviate 10) withcolor \MPcolor{SymbolColor} ;
+ draw
+ ((0,0+fuzzy)--(width,height+fuzzy/2))
+ shifted (line/2,0)
+ withpen pencircle
+ xscaled line yscaled (line/4)
+ rotated (25+uniformdeviate 10) withcolor \MPcolor{SymbolColor} ;
setbounds currentpicture to unitsquare xyscaled(width,maxheight) ;
\stopuseMPgraphic
@@ -229,15 +229,15 @@
\startuseMPgraphic{nextmark}
LoadPageState ; width := BottomHeight ; height := line := width/2 ;
- def fuzzy = -(height/8)+uniformdeviate (height/4) enddef ;
+ def fuzzy = -(height/8)+uniformdeviate (height/4) enddef ;
z1 = (0,0+fuzzy) ; z2 = (width,height/2+fuzzy/2) ; z3 = (0,height+fuzzy) ;
- draw
+ draw
(z1..{right}z2 & z2{left}..z3)
- withpen pencircle
- xscaled line yscaled (line/4)
- rotated 30 withcolor \MPcolor{SymbolColor} ;
+ withpen pencircle
+ xscaled line yscaled (line/4)
+ rotated 30 withcolor \MPcolor{SymbolColor} ;
setbounds currentpicture to unitsquare xyscaled(width,height) ;
\stopuseMPgraphic
@@ -245,15 +245,15 @@
\startuseMPgraphic{prevmark}
LoadPageState ; width := BottomHeight ; height := line := width/2 ;
- def fuzzy = -(height/8)+uniformdeviate (height/4) enddef ;
+ def fuzzy = -(height/8)+uniformdeviate (height/4) enddef ;
z1 = (width,0+fuzzy) ; z2 = (0,height/2+fuzzy/2) ; z3 = (width,height+fuzzy) ;
- draw
+ draw
(z1..{left}z2 & z2{right}..z3)
- withpen pencircle
- xscaled line yscaled (line/4)
- rotated 30 withcolor \MPcolor{SymbolColor} ;
+ withpen pencircle
+ xscaled line yscaled (line/4)
+ rotated 30 withcolor \MPcolor{SymbolColor} ;
setbounds currentpicture to unitsquare xyscaled(width,height) ;
\stopuseMPgraphic
@@ -261,7 +261,7 @@
\startuseMPgraphic{stopmark}
LoadPageState ; width := BottomHeight ; height := line := width/2 ;
- def fuzzy = -(height/8)+uniformdeviate (height/4) enddef ;
+ def fuzzy = -(height/8)+uniformdeviate (height/4) enddef ;
z1 = (0,0+fuzzy) ;
z2 = (width,height+fuzzy) ;
@@ -269,14 +269,34 @@
z4 = (0,height+fuzzy) ;
z5 = (width/2,height/2) ;
- drawoptions
- (withpen pencircle
- xscaled line yscaled (line/4)
- rotated 30 withcolor \MPcolor{SymbolColor}) ;
+ drawoptions
+ (withpen pencircle
+ xscaled line yscaled (line/4)
+ rotated 30 withcolor \MPcolor{SymbolColor}) ;
draw z1..{right}z5..z2 ; draw z3..{left}z5..z4 ;
setbounds currentpicture to unitsquare xyscaled(width,height) ;
\stopuseMPgraphic
-\endinput
+\doifnotmode{demo}{\endinput}
+
+%D The (rather silly) demo section.
+
+\starttext
+
+\TitlePage{Title Page\\pre-writing}
+
+\Topics{Some Nice Quotes}
+
+\Topic{A Few}
+
+\Subject{Knuth} \input knuth
+\Subject{Tufte} \input tufte
+
+\Topic{Some More}
+
+\Subject{Zapf} \input zapf
+\Subject{Bryson} \input bryson
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/s-pre-14.tex b/Master/texmf-dist/tex/context/base/s-pre-14.tex
index 7a777c27edf..f44117e7c9c 100644
--- a/Master/texmf-dist/tex/context/base/s-pre-14.tex
+++ b/Master/texmf-dist/tex/context/base/s-pre-14.tex
@@ -15,18 +15,18 @@
%D In the process of making a couple of simple styles for
%D \EUROTEX\ 99, I came to this one. The joke is in the
%D pagenumber. This style can be used for short presentations
-%D with much text.
+%D with much text.
\startmode[asintended] \setupbodyfont[lbr] \stopmode
\setupbodyfont[14.4pt]
-%D Since we expect text, we can best be very tolerant.
+%D Since we expect text, we can best be very tolerant.
-\setuptolerance
+\setuptolerance
[verytolerant,stretch]
-%D As most styles we choose a large screen page size.
+%D As most styles we choose a large screen page size.
\setuppapersize
[S6][S6]
@@ -42,8 +42,8 @@
topspace=1cm,
backspace=1cm]
-%D We only use two colors, named \type {One} and \type
-%D {Two}:
+%D We only use two colors, named \type {One} and \type
+%D {Two}:
\setupcolors
[state=start]
@@ -54,15 +54,15 @@
%D If you've looked at the demo file, you will have noticed
%D that the background consists of four pieces: two filled
%D rectangles and two half numbers. These are put on th epage
-%D using four overlays:
+%D using four overlays:
\setupbackgrounds
[page]
- [background={one,two,three,four}]
+ [background={one,two,three,four}]
%D When we code this in \TEX, we get the following
%D definitions. As an alternative we coudl have used layers
-%D but I'm afraid that it would not have led to less code.
+%D but I'm afraid that it would not have led to less code.
\defineoverlay
[one]
@@ -80,8 +80,8 @@
width=\overlaywidth,height=\overlayheight]
{}}}]
-%D We could have used the main backgroundcolor instead of
-%D overlay \type {one}.
+%D We could have used the main backgroundcolor instead of
+%D overlay \type {one}.
\definefont[NumberFont][RegularBold at 3cm]
@@ -123,7 +123,7 @@
\edef\overlaywidth{\the\scratchdimen}}
%D A much cleaner implementation is the following. If you hate
-%D \METAPOST, you can run this style in the specified mode:
+%D \METAPOST, you can run this style in the specified mode:
\startnotmode[no-metapost]
@@ -135,36 +135,36 @@
\startuseMPgraphic{number}
StartPage ;
- path Vage ; picture Left, Right ;
+ path Vage ; picture Left, Right ;
x1 = x2 = xpart (llcorner Field[Text][RightEdge] shifted (-RightEdgeDistance/2,0)) ;
y1 = ypart llcorner Page ;
y2 = ypart ulcorner Page ;
Vage := llcorner Page -- z1 -- z2 -- ulcorner Page -- cycle ;
fill Page withcolor \MPcolor {One} ;
fill Vage withcolor \MPcolor {Two} ;
- if PageNumber>0 :
+ if PageNumber>0 :
defaultfont := "\truefontname{RegularBold}" ;
- Left := Right := thelabel("\folio",origin) ysized 3cm ;
- clip Right to boundingbox Right shifted (bbwidth(Right)/2,0) ;
+ Left := Right := thelabel("\folio",origin) ysized 3cm ;
+ clip Right to boundingbox Right shifted (bbwidth(Right)/2,0) ;
draw Left shifted z1 shifted (0,2.25cm) withcolor \MPcolor {One} ;
draw Right shifted z1 shifted (0,2.25cm) withcolor \MPcolor {Two} ;
- fi ;
+ fi ;
StopPage ;
\stopuseMPgraphic
\stopnotmode
-%D We use the simple label typesetting present in \METAPOST\
-%D because digits are seldom kerned so real \TEX ing is not
-%D needed. As in the previous method, we let the graphics
-%D overlap so that we don't get white lines due to rounding
-%D problems in viewers.
-%D
+%D We use the simple label typesetting present in \METAPOST\
+%D because digits are seldom kerned so real \TEX ing is not
+%D needed. As in the previous method, we let the graphics
+%D overlap so that we don't get white lines due to rounding
+%D problems in viewers.
+%D
%D We put a button behind the text (this overlay is calculated
-%D each page).
+%D each page).
-\defineoverlay
- [nextpage]
+\defineoverlay
+ [nextpage]
[\overlaybutton{nextpage}]
\setupbackgrounds
@@ -183,7 +183,7 @@
[color=,
contrastcolor=]
-%D Next we define structuring commands.
+%D Next we define structuring commands.
\definehead[Topic] [chapter] \setuphead[Topic] [style=\bfc]
\definehead[Subject][section] \setuphead[Subject][style=\bfa]
@@ -193,12 +193,12 @@
[number=no,
after={\blank[big]}]
-%D Because we will provide a menu, we don't offer lists.
+%D Because we will provide a menu, we don't offer lists.
\let\Topics \gobbleoneargument
\let\Subjects\relax
-%D The table of contents goes to the right edge.
+%D The table of contents goes to the right edge.
\startinteractionmenu[right]
\setupinteraction
@@ -218,7 +218,7 @@
maxwidth=\rightedgewidth,
style=\bfa]
-%D We safe some space:
+%D We safe some space:
\setupwhitespace
[medium]
@@ -226,8 +226,8 @@
\setupblank
[medium]
-%D In the titlepage, we still use the \TEX\ overlays,
-%D so that we don't have to define a second graphic.
+%D In the titlepage, we still use the \TEX\ overlays,
+%D so that we don't have to define a second graphic.
\def\TitlePage#1%
{\StartTitlePage#1\StopTitlePage}
@@ -246,7 +246,7 @@
\stopstandardmakeup
\egroup}
-%D This is it.
+%D This is it.
\doifnotmode{demo}{\endinput}
@@ -259,6 +259,6 @@
\Topic{Reich} \input reich
\Topic{Zapf} \input zapf
\Topic{Materie} \input materie
-\Topic{Stork} \input stork
+%Topic{Stork} \input stork
\stoptext
diff --git a/Master/texmf-dist/tex/context/base/s-pre-30.tex b/Master/texmf-dist/tex/context/base/s-pre-30.tex
new file mode 100644
index 00000000000..2a3899c9290
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-pre-30.tex
@@ -0,0 +1,258 @@
+%D \module
+%D [ file=s-pre-30,
+%D version=2006.04.25,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Presentation Environment 30,
+%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.
+
+\usemodule[streams]
+
+\setuppapersize
+ [S6] [S6]
+
+\setupbodyfont
+ [12pt,tt]
+
+\definemeasure[bleed][6pt]
+
+\definecolor[maincolor-3][r=.5,g=.2,b=.2]
+\definecolor[maincolor-1][r=.2,g=.5,b=.2]
+\definecolor[maincolor-2][r=.2,g=.2,b=.5]
+
+\definecolor[pagecolor] [s=.5]
+\definecolor[resultcolor][s=1,t=.85,a=1]
+\definecolor[maincolor] [maincolor-3]
+
+\definecolorgroup
+ [maingroup]
+ [.5:.2:.2,
+ .2:.5:.2,
+ .2:.2:.5]
+
+\definecolorgroup
+ [resultgroup]
+ [1:.85:.85,
+ .85:1:.85,
+ .85:.85:1]
+
+\def\CurrentColor{1}
+
+\definecolor[maincolor] [maingroup:\CurrentColor]
+\definecolor[resultcolor][resultgroup:\CurrentColor]
+
+\def\NextColor{\ifnum\CurrentColor=3 \def\CurrentColor{1}\else\doglobal\increment\CurrentColor\fi}
+
+\setuplayout
+ [backspace=\measure{bleed},
+ topspace=30pt,
+ bottomdistance=\measure{bleed},
+ bottom=\dimexpr30pt-\measure{bleed}\relax,
+ header=0pt,
+ footer=0pt,
+ topdistance=\measure{bleed},
+ top=\dimexpr30pt-\measure{bleed}\relax,
+ width=middle,
+ height=middle]
+
+\setuptop
+ [before=\vfill,
+ after=\vfill,
+ strut=yes]
+
+\setupbackgrounds
+ [text]
+ [backgroundoffset=\measure{bleed},
+ background=color,
+ backgroundcolor=maincolor]
+
+\setupbackgrounds
+ [page]
+ [background=color,
+ backgroundcolor=pagecolor]
+
+\setupcolors
+ [state=start,
+ textcolor=white]
+
+\setuphead
+ [chapter]
+ [style=\ttd]
+
+\setuphead
+ [section]
+ [style=\ttd]
+
+\defineproperty
+ [result]
+ [layer]
+ [state=stop]
+
+\definelayer
+ [result]
+
+\setuplayer
+ [result]
+ [width=\textwidth,
+ height=\textheight]
+
+\setupbackgrounds
+ [text]
+ [background={color,toggle,foreground,result}]
+
+\setupinteraction
+ [state=start,
+ click=no,
+ menu=on,
+ color=white,
+ contrastcolor=white,
+ closepageaction=HideLayer{result},
+ openpageaction=HideLayer{result}]
+
+% We add a dummy color switch so that each page has at least one
+% transparency; else acrobat will render the pages differently
+% bug in 6 and 7).
+
+\startinteractionmenu[bottom]
+% \color[resultcolor]{ }%
+ \hfill
+ \got [content] content \\
+ \got [previouspage] previous \\
+ \got [nextpage] next \\
+ \got [ToggleLayer{result}] result \\
+ \got [CloseDocument] close \\
+\stopinteractionmenu
+
+\setuphead
+ [section]
+ [placehead=no,
+ incrementnumber=list]
+
+\setuplist
+ [section]
+ [alternative=f]
+
+\defineoverlay
+ [toggle]
+ [\overlaybutton{ToggleLayer{result}}]
+
+\definestreamlayer
+ [resultstream]
+
+\startsetups streamlayer:resultstream:flush
+ \setlayer
+ [result]
+ [preset=middlebottom,
+ hoffset=\measure{bleed},
+% voffset=-\measure{bleed}]
+ voffset=\measure{bleed}]
+ {\startproperty[result]%
+% \framed
+% [offset=overlay,
+% frame=off,
+% background=color,
+% backgroundoffset=1\dimexpr\measure{bleed}\relax,
+% backgroundcolor=maincolor]
+ {\framed
+ [offset=overlay,
+ frame=off,
+ foregroundcolor=maincolor,
+ background=color,
+ backgroundoffset=1\dimexpr\measure{bleed}\relax,
+ backgroundcolor=resultcolor]
+ {\tightlayer[\currentstreamlayer]}}
+ \stopproperty}
+\stopsetups
+
+\startsetups show-definition
+ \subject{definition}
+ \typebuffer
+ \getbuffer
+ \page
+\stopsetups
+
+\startsetups show-result
+ \startstreamlayer[resultstream]
+ \subject{result}
+ \getbuffer
+ \stopstreamlayer
+ \placestreamlayer[resultstream]
+ \page
+\stopsetups
+
+\startsetups show-usage
+ \subject{usage}
+ \typebuffer
+ \startstreamlayer[resultstream]
+ \subject{result}
+ \getbuffer
+ \stopstreamlayer
+ \placestreamlayer[resultstream]
+ \page
+\stopsetups
+
+\startsetups show-usage-lines
+ \subject{usage}
+ \typebuffer
+ \startstreamlayer[resultstream]
+ \subject{result}
+ \startlines
+ \getbuffer
+ \stoplines
+ \stopstreamlayer
+ \placestreamlayer[resultstream]
+ \page
+\stopsetups
+
+\startsetups show-contents
+ \startcolumns[n=3]
+ \placelist[section][criterium=text]
+ \stopcolumns
+ \pagereference[content]
+ \page
+ \NextColor
+\stopsetups
+
+\def\TitlePage#1%
+ {\title{#1}
+ \setups{show-contents}}
+
+\def\StartSample#1%
+ {\starttext
+ \page
+ \section{#1}
+ \setuptoptexts[][\processedfile\enspace:\enspace\lowercase{#1}]}
+
+\def\StopSample
+ {\page
+ \setuptoptexts[][]
+ \stoptext
+ \NextColor}
+
+\endinput
+
+\usemodule[pre-30]
+
+% \TitlePage{Howling to the moon}
+
+\StartSample{Basics}
+
+\startbuffer
+\lua{a = 1.5 ; b = 1.8 ; c = a*b ; tex.print(c) ;}
+
+\startlua
+ a = 1
+ b = 2
+ c = a*b
+ tex.print(c)
+\stoplua
+\stopbuffer
+
+\setups{show-usage}
+
+\StopSample
diff --git a/Master/texmf-dist/tex/context/base/s-pre-50.tex b/Master/texmf-dist/tex/context/base/s-pre-50.tex
index 0332001ab37..782f6aea102 100644
--- a/Master/texmf-dist/tex/context/base/s-pre-50.tex
+++ b/Master/texmf-dist/tex/context/base/s-pre-50.tex
@@ -8,29 +8,29 @@
%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 When my mailbox started to overflow with messages about
%D problems with the presentation step mechanism, I looked up
%D old presentaton, hacked a bit and cooked up an alternative
-%D that is less dependent on \PDF\ trickery.
+%D that is less dependent on \PDF\ trickery.
%D
-%D Consider it a cheap trick and prelude to a couple of new
-%D presentation styles. (At the time of writing this, I
-%D still have some 10 of those styles to clean up and
-%D document.) You can give it a try:
+%D Consider it a cheap trick and prelude to a couple of new
+%D presentation styles. (At the time of writing this, I
+%D still have some 10 of those styles to clean up and
+%D document.) You can give it a try:
%D
-%D \starttyping
-%D texexec --pdf --mode=demo s-pre-50
-%D \stoptyping
+%D \starttyping
+%D texexec --pdf --mode=demo s-pre-50
+%D \stoptyping
% Basic definitions.
\defineframedtext
[horizontal]
[width=\textwidth,
- frame=off,
+ frame=off,
strut=no,
height=fit,
align={right,lohi},
@@ -50,7 +50,7 @@
\setupcollector
[contribution]
[voffset=-.25\bodyfontsize]
-
+
\setupframedtexts
[horizontal]
[background=color,
@@ -59,7 +59,7 @@
\stopmode
-%D Structure and trick.
+%D Structure and trick.
\def\StartSteps
{\checkutilities}
@@ -74,7 +74,7 @@
\flushcollector[contribution]
\page}
-%D Trick.
+%D Trick. Nowadays we can use streams.
\installoutput\FlushStep
{\StartStep\unvbox\normalpagebox\StopStep}
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 baedffaa30b..bd6b6ae4f77 100644
--- a/Master/texmf-dist/tex/context/base/s-pre-60.tex
+++ b/Master/texmf-dist/tex/context/base/s-pre-60.tex
@@ -11,6 +11,16 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\startmode[paper]
+ \let\StartSteps\relax
+ \let\StopSteps \relax
+ \let\FlushStep \relax
+ \let\ResetStep \relax
+ \let\StartBusy\relax
+ \let\StopBusy \relax
+ \endinput
+\stopmode
+
\newcounter\StepCounter
\newcounter\StepMaximum
@@ -79,7 +89,7 @@
\def\StopBusy {\removeunwantedspaces\stopproperty}
\setupinteraction
- [openaction=SetupStepper,
+ [%openaction=SetupStepper,
closeaction=ResetStepper,
openpageaction=CheckStepper,
closepageaction=ResetStepper]
@@ -111,4 +121,23 @@
[symbol={attach-normal,attach-down},
textlayer=\StepLayer]
+%D Handy:
+
+\def\StartLocalSteps{\ResetStep}
+\def\StopLocalSteps {}
+
+\def\StartLocalStep {\NextStep\StartStep}
+\def\StopLocalStep {\StopStep}
+
+%D used as (given some definitions):
+%D
+%D \starttyping
+%D \StartLocalSteps
+%D \startcombination[both]
+%D {\StartLocalStep\placestreamlayer[left]\StopLocalStep} {}
+%D {\StartLocalStep\placestreamlayer[right]\StopLocalStep} {}
+%D \stopcombination
+%D \StopLocalSteps
+%D \stoptyping
+
\endinput
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 fd30624c308..c2040a0d935 100644
--- a/Master/texmf-dist/tex/context/base/s-pre-61.tex
+++ b/Master/texmf-dist/tex/context/base/s-pre-61.tex
@@ -30,14 +30,14 @@
\setuplayout
[topspace=10pt,
- header=40pt,
+ header=30pt,
headerdistance=20pt,
height=middle,
footerdistance=20pt,
footer=0pt,
- bottomdistance=10pt,
+ bottomdistance=20pt,
bottom=20pt,
- bottomspace=40pt,
+ bottomspace=50pt,
backspace=30pt,
width=middle]
@@ -123,7 +123,8 @@
enlarged 4pt
withcolor \MPcolor{pagecolor} ;
fill Field[Text][Text]
- topenlarged (TopSpace +4pt)
+ enlarged 10pt
+% topenlarged (HeaderHeight+HeaderDistance)
leftenlarged (BackSpace+4pt)
rightenlarged (CutSpace +4pt)
withcolor OverlayColor ;
@@ -136,6 +137,7 @@
enlarged 4pt
withcolor \MPcolor{pagecolor} ;
fill Field[Text][Text]
+ enlarged 10pt
leftenlarged (BackSpace+4pt)
rightenlarged (CutSpace+4pt)
withcolor OverlayColor ;
diff --git a/Master/texmf-dist/tex/context/base/s-pre-62.tex b/Master/texmf-dist/tex/context/base/s-pre-62.tex
new file mode 100644
index 00000000000..c3683cbfad6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-pre-62.tex
@@ -0,0 +1,210 @@
+%D \module
+%D [ file=s-pre-62,
+%D version=2005.03.04,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Presentation Environment 62,
+%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 Melior
+
+\usemodule[pre-60]
+
+\usetypescriptfile
+ [type-ghz]
+
+\definetypeface[mainface][rm][serif][melior] [default][encoding=texnansi]
+\definetypeface[mainface][tt][mono] [modern] [default][encoding=texnansi,rscale=1.05]
+\definetypeface[mainface][ss][serif][melior] [default][encoding=texnansi]
+\definetypeface[mainface][mm][math] [palatino][default][encoding=texnansi,rscale=0.95]
+
+\setupbodyfont
+ [mainface,14.4pt]
+
+\setuppapersize
+ [S6][S6]
+
+\setvariables[layout][dx=0,dy=1,nx=2,ny=2,step=64]
+
+\definemeasure[layoutwd][\dimexpr\paperwidth /\getvariable{layout}{step}\relax]
+\definemeasure[layoutht][\dimexpr\paperheight/\getvariable{layout}{step}\relax]
+
+\setuplayout
+ [ width=middle,
+ height=middle,
+ header=0pt,
+ footer=0pt,
+ margin=0pt,
+ backspace=5\measure{layoutwd},
+ topspace=5\measure{layoutht}]
+
+\setuplayout
+ [step]
+ [ backspace=\numexpr2+ \getvariable{layout}{dx}\relax\measure{layoutwd},
+ cutspace=\numexpr3+\getvariable{layout}{nx}-\getvariable{layout}{dx}\relax\measure{layoutwd},
+ topspace=\numexpr2+ \getvariable{layout}{dy}\relax\measure{layoutht},
+ bottomspace=\numexpr3+\getvariable{layout}{ny}-\getvariable{layout}{dy}\relax\measure{layoutht}]
+
+
+\definecolor[layout:left] [t=.5,a=1,b=1]
+\definecolor[layout:right] [t=.5,a=1,r=1]
+\definecolor[layout:top] [t=.5,a=1,g=1]
+\definecolor[layout:bottom][t=.5,a=1,y=1]
+\definecolor[layout:page] [s=.75]
+
+\definehspace[menu][\measure{layoutwd}]
+
+\setupinteraction
+ [state=start,
+ click=off,
+ style=,
+ color=interactioncolor,
+ contrastcolor=interactioncolor]
+
+\setupinteractionscreen
+ [option=max]
+
+\setupbuttons
+ [color=maincolor,
+ contrastcolor=maincolor,
+ style=\tf, % acceptable
+ height=2\measure{layoutht},
+ width=2\measure{layoutwd},
+ offset=overlay,
+ frame=off]
+
+\definecolor[interactioncolor][darkgray]
+\definecolor[maincolor] [lightgray]
+
+\setuptexttexts
+ []
+ [\vbox to \textheight{\vfill\hfill\setups{menu:content}}]
+
+\startsetups menu:content
+
+ \button{\symbol[firstpage]}[firstpage]
+ \hspace[menu]
+ \button{\symbol[previouspage]}[previouspage]
+ \hspace[menu]
+ \button{\StartBusy\symbol[PauseRendering]\StopBusy}[InvokeStepper]
+ \hspace[menu]
+ \button{\symbol[nextpage]}[nextpage]
+ \hspace[menu]
+ \button{\symbol[lastpage]}[lastpage]
+ \hspace[menu]
+ \button{\symbol[CloseDocument]}[CloseDocument]
+
+\stopsetups
+
+\startuseMPgraphic{page}{step}
+ StartPage ;
+ numeric dx, dy ; dx := PaperWidth/\MPvar{step} ; dy := PaperHeight/\MPvar{step} ;
+ fill Page withcolor .5white ;
+ fill
+ ulcorner Page -- urcorner Page --
+ urcorner Page shifted (0,-TopSpace+dy) -- ulcorner Page shifted (0,-TopSpace+dy) -- cycle
+ withcolor \MPcolor{layout:top} ;
+ fill
+ llcorner Page -- lrcorner Page --
+ lrcorner Page shifted (0,BottomSpace-dy) -- llcorner Page shifted (0,BottomSpace-dy) -- cycle
+ withcolor \MPcolor{layout:bottom} ;
+ fill
+ ulcorner Page -- llcorner Page --
+ llcorner Page shifted (BackSpace-dx,0) -- ulcorner Page shifted (BackSpace-dx,0) -- cycle
+ withcolor \MPcolor{layout:left} ;
+ fill
+ urcorner Page -- lrcorner Page --
+ lrcorner Page shifted (-CutSpace+dx,0) -- urcorner Page shifted (-CutSpace+dx,0) -- cycle
+ withcolor \MPcolor{layout:right} ;
+ fill Field[Text][Text] enlarged (dx,dy) withcolor white ;
+ fill Field[Text][Text] enlarged (dx,dy) withcolor \MPcolor{layout:page} ;
+ StopPage ;
+\stopuseMPgraphic
+
+\defineoverlay[page][\useMPgraphic{page}{step=\getvariable{layout}{step}}]
+
+\setupbackgrounds
+ [page]
+ [background=page]
+
+\setupcolors
+ [state=start]
+
+\startsetups nextstep
+ % pagebreak handlers are grouped, so we need to set global
+ \ifnum\getvariable{layout}{dx}=\getvariable{layout}{nx}\relax
+ \ifnum\getvariable{layout}{dy}=\getvariable{layout}{ny}\relax
+ \setxvariables[layout][dy=1]
+ \else
+ \setxvariables[layout][dy=\the\numexpr\getvariable{layout}{dy}+1\relax]
+ \fi
+ \setxvariables[layout][dx=1]
+ \else
+ \setxvariables[layout][dx=\the\numexpr\getvariable{layout}{dx}+1\relax]
+ \fi
+ % global anyway
+ \setuplayout[step]
+\stopsetups
+
+\definefontsynonym[MainTitleFont][SerifBold]
+
+\definefont[ChapterTitleFont][MainTitleFont sa 2]
+
+\appendtoks
+ \NormalizeFontHeight \TitleFont {\setstrut\strut\quad} {4\lineheight} {MainTitleFont}
+ \NormalizeFontHeight \SubTitleFont {\setstrut\strut\quad} {3\lineheight} {MainTitleFont}
+ \NormalizeFontHeight \ChapterNumberFont {XVI} {4\lineheight} {MainTitleFont}
+\to \everystarttext
+
+\setupsection
+ [section-2]
+ [bodypartconversion=Romannumerals]
+
+\installpagebreakhandler {step} {\setups{nextstep}}
+
+\definepagebreak[chapter][yes,step]
+
+\setuphead
+ [chapter]
+ [page=chapter,
+ command=\MyChapterCommand]
+
+\definehead[Topic][chapter]
+\definehead[Nopic][title]
+
+\setuphead[chapter,Topic,Nopic]
+ [numberstyle=\ChapterNumberFont,
+ textstyle=\ChapterTitleFont,
+ numbercolor=lightgray,
+ textcolor=darkgray]
+
+\def\MyChapterCommand#1#2%
+ {\hbox \bgroup % we need to nil the strut added by the headplacement
+ \setupframed[frame=off,lines=4,offset=overlay]%
+ \rlap{\hskip2\lineheight\framed{\setnostrut#1}}\framed{#2}%
+ \egroup}
+
+\setupitemize
+ [each]
+ [R,broad]
+ [stopper=,
+ color=lightgray]
+
+\def\doTitlePage#1#2#3%
+ {\startstandardmakeup[headerstate=high,textstate=stop]
+ \setupalign[middle]
+ \def\\{\def\\{\endgraf}\endgraf\vfil\ignorespaces#2}%
+ \startcolor[darkgray]
+ #1\setstrut\setupinterlinespace\vfil#3\vfil
+ \stopcolor
+ \stopstandardmakeup}
+
+\def\TitlePage {\doTitlePage\TitleFont\relax}
+\def\SubTitlePage{\doTitlePage\TitleFont\SubTitleFont}
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/s-pre-63.tex b/Master/texmf-dist/tex/context/base/s-pre-63.tex
new file mode 100644
index 00000000000..76de8b99186
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-pre-63.tex
@@ -0,0 +1,73 @@
+%D \module
+%D [ file=s-pre-63,
+%D version=2006.05.11,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Presentation Environment 63,
+%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.
+
+\usemodule[pre-61,streams]
+
+\definemeasure[textgap] [\dimexpr24pt\relax]
+
+\definemeasure[leftwidth] [\dimexpr.25\textwidth-.5\measure{textgap}\relax]
+\definemeasure[rightwidth][\dimexpr.75\textwidth-.5\measure{textgap}\relax]
+
+\definestreamlayer[left] [width=\measure{leftwidth}]
+\definestreamlayer[right][width=\measure{rightwidth}]
+
+\setupbodyfont[12pt]
+
+\definefont[LeftFont][Normal sa 3]
+
+\setupheader[style=\tfc,before=\vss,after=\vss]
+
+\startsetups streamlayer:left:settings
+ \hsize\measure{leftwidth}
+ \LeftFont
+ \setupinterlinespace
+\stopsetups
+
+\startsetups streamlayer:right:settings
+ \hsize\measure{rightwidth}
+\stopsetups
+
+\definecombination[both][distance=\measure{textgap},location=top]
+
+\startsetups place:both
+ \startcombination[both]
+ {\StartLocalStep\placestreamlayer[left]\StopLocalStep} {}
+ {\StartLocalStep\placestreamlayer[right]\StopLocalStep} {}
+ \stopcombination
+\stopsetups
+
+\def\StartPage {\page \StartLocalSteps}
+\def\StopPage {\StopLocalSteps \page}
+
+\def\StartLeft {\startstreamlayer[left]}
+\def\StartRight{\startstreamlayer[right]}
+
+\def\StopLeft {\stopstreamlayer}
+\def\StopRight {\stopstreamlayer}
+
+\def\StartPair {}
+\def\StopPair {\setups[place:both]}
+
+\doifnotmode {demo} {\endinput}
+
+\setupbodyfont[8pt] \definefont[BigFont][Normal sa 4]
+
+\starttext
+
+\StartPage
+ \StartPair \StartLeft ZAPF \StopLeft \StartRight \input zapf \StopRight \StopPair
+ \StartPair \StartLeft DAVIS \StopLeft \StartRight \input davis \StopRight \StopPair
+ \StartPair \StartLeft WARD \StopLeft \StartRight \input ward \StopRight \StopPair
+\StopPage
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/s-syn-01.tex b/Master/texmf-dist/tex/context/base/s-syn-01.tex
new file mode 100644
index 00000000000..d797be61e8f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-syn-01.tex
@@ -0,0 +1,54 @@
+%D \module
+%D [ file=s-syn-01,
+%D version=0000.00.00,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Preliminary Syntax Stuff,
+%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 needed for the \METAFUN\ manual (this module was
+%D called \type {p-syn-01} on my machine).
+
+\unprotect
+
+\def\Indent #1{\ifvmode\noindent\hbox to 2em{\hss#1}\else#1\fi}
+\def\Sugar #1{\ifhmode\unskip\unskip\unskip\fi\kern.25em{#1}\kern.25em\ignorespaces}
+\def\Something#1{\Sugar{\mathematics{\langle\hbox{#1}\rangle}}}
+\def\Lbrace {\Sugar{\tttf\leftargument}}
+\def\Rbrace {\Sugar{\tttf\rightargument}}
+\def\Or {\Sugar{\mathematics{\vert}}}
+\def\Optional #1{\Sugar{\mathematics{[\hbox{#1}]}}}
+\def\Means {\Sugar{\mathematics{\rightarrow}}}
+\def\Tex #1{\Sugar{\type{#1}}}
+\def\Literal #1{\Sugar{\type{#1}}}
+\def\Syntax #1{\strut\kern-.25em{#1}\kern-.25em}
+\def\Next {\crlf\hbox to 2em{}\nobreak}
+\def\Whatever #1{\Sugar{\mathematics{(\hbox{#1})}}}
+\def\Quote #1{\Sugar{\quote{#1}}}
+
+\def\Or {\Sugar{\Indent{\mathematics{\vert}}}}
+\def\Means {\Sugar{\Indent{\mathematics{\rightarrow}}}}
+
+\def\StartSyntax
+ {\goodbreak
+ \startlines
+ \catcode`\#=12
+ \let\L \Literal
+ \let\S \Something
+ \def\FL##1{\color[darkred]{\L{##1}}}
+ \def\FS##1{\S{\color[darkred]{##1}}}
+ \let\M \Means
+ \let\O \Or
+ \let\Q \Quote
+ \let\LB\Lbrace
+ \let\RB\Rbrace}
+
+\def\StopSyntax
+ {\stoplines}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/sort-def.tex b/Master/texmf-dist/tex/context/base/sort-def.tex
index e2496f19644..10dc31b14e4 100644
--- a/Master/texmf-dist/tex/context/base/sort-def.tex
+++ b/Master/texmf-dist/tex/context/base/sort-def.tex
@@ -31,6 +31,9 @@
\exportsortexpansion{eth} {}
\exportsortexpansion{Eth} {}
+\exportsortexpansion{dj} {dstroke}
+\exportsortexpansion{Dj} {Dstroke}
+
\exportsortexpansion{Acircumflex} {}
\exportsortexpansion{acircumflex} {}
\exportsortexpansion{Ccircumflex} {}
diff --git a/Master/texmf-dist/tex/context/base/sort-ini.tex b/Master/texmf-dist/tex/context/base/sort-ini.tex
index 84d32e2ff12..970cbff1f24 100644
--- a/Master/texmf-dist/tex/context/base/sort-ini.tex
+++ b/Master/texmf-dist/tex/context/base/sort-ini.tex
@@ -11,10 +11,16 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+% dodo: autokeyexpansion => igv utf: \setupregister[index][keyexpansion=yes]
+
%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
+
+\writestatus{loading}{Context Sorting Macros (ini)}
+
%D The sorting method is largely bases on the one used in the old version
%D of texutil but i've changed the interface a bit. It all boils down to
%D a bunch of substitutions. The reimplementation makes it easier to extend
@@ -68,6 +74,8 @@
\unprotect
+\newevery \everysavesortkeys \relax
+
\let\currentexportclass\empty
\def\exportsortaction#1#2#3%
@@ -84,17 +92,59 @@
{\exportsortexpansion{#1}{#2}%
\exportsortdivision {#2}{#1}}
-% Next we overload some macros defined in enco-ini and core-uti. This
-% will change.
+\def\exportutfsortexpansion#1#2#3%
+ {\bgroup
+ \edef\utfsorta{\string\unknownchar}%
+ \dostepwiserecurse{#2}{#3}\plusone
+ {\edef\utfsortb{\@EA\string\csname\doutfunihash{#1}{\recurselevel}\endcsname}%
+ \ifx\utfsortb\utfsorta \else
+ \edef\utfsortc{\numbertoutf{\numexpr#1*256+\recurselevel\relax}}%
+ \expanded{\exportsortshortcut{\utfsortc}{\utfsortb\space}}% space is really needed
+ \fi}%
+ \egroup}
+
+\def\savesortdefinitions
+ {\bgroup
+ \doifelse \currentregime {utf}
+ {\exportutfsortexpansion{0}{128}{255}%
+ \exportutfsortexpansion{1}{0}{255}}
+ {\def\defineactivecharacter##1 ##2%
+ {\expanded{\exportsortshortcut{\rawcharacter{##1}}}{##2}}%
+ \doifelse{\characterregime}\nocharacterregime
+ {\doifnot{\characterencoding}\nocharacterencoding % to be sure, autoregime
+ {\the\executeifdefined{\@reg@\characterencoding}\emptytoks}}%
+ {\the\executeifdefined{\@reg@\characterregime}\emptytoks}}%
+ \egroup
+ \readfile{\f!sortprefix def}\donothing\donothing % default
+ \global\let\savesortdefinitions\relax}
-\let\definesortkey\gobblefourarguments
+\def\savesortlanguage#1% language specifics
+ {\doifsomething{#1}
+ {\doifundefined{\f!sortprefix::#1}%
+ {\bgroup
+ \global\letvalue{\f!sortprefix::#1}\empty
+ \def\currentexportclass{#1}%
+ \enablemode[sortorder-#1]%
+ \readfile{\f!sortprefix lan}\donothing\donothing
+ \egroup}}}
+
+\prependtoks
+ \savesortdefinitions
+\to \everysavesortkeys
\def\savesortkeys
- {\globallet\savesortkeys\relax
- \enablemode[sortorder-\currentmainlanguage]%
- \readfile{\f!sortprefix new}\donothing\donothing % temporary hacks
- \readfile{\f!sortprefix def}\donothing\donothing % defaults
- \readfile{\f!sortprefix lan}\donothing\donothing}% language specifics
+ {\the\everysavesortkeys
+ \global\everysavesortkeys\emptytoks}
+
+% \defineregister[one]
+% \defineregister[two] \setupregister[two][language=cz]
+%
+% \starttext
+% test \one{one} test \one{two} test \one {\aacute} test \one{alpha} test \one{chow}
+% test \two{one} test \two{two} test \two {\aacute} test \two{alpha} test \two{chow}
+% \blank[3*big] \placeregister[one]
+% \blank[3*big] \placeregister[two]
+% \stoptext
% already done \prependtoks \savesortkeys \to \everystarttext
diff --git a/Master/texmf-dist/tex/context/base/sort-lan.tex b/Master/texmf-dist/tex/context/base/sort-lan.tex
index 60b0699acb9..ad5232b02c8 100644
--- a/Master/texmf-dist/tex/context/base/sort-lan.tex
+++ b/Master/texmf-dist/tex/context/base/sort-lan.tex
@@ -11,6 +11,15 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+% for testing:
+
+\startmode[sortorder-en]
+ \exportsortexpansion{aacute}{a+1}
+ \exportsortexpansion{Aacute}{A+2}
+ \exportsortexpansion{agrave}{a+1}
+ \exportsortexpansion{Agrave}{A+2}
+\stopmode
+
%D This module replaces existing sort key handling and is meant to be
%D used with the new texutil functionality. Here we define the language
%D specific sort rules.
@@ -19,6 +28,18 @@
%
% a-c, ccaron, cacute, d, dstroke, e-s, scaron, t-z, zcaron
+% \enableregime[utf]
+% \mainlanguage[sl]
+% \starttext
+% \ccaron\index{\ccaron\space 1}
+% \Ccaron\index{\Ccaron\space 1}
+% Ä\index{Ä 2}
+% Č\index{Č 2}
+% \v c\index{\v c 3}
+% \v C\index{\v C 3}
+% \placeindex
+% \stoptext
+
% \startmode[sortorder-sl]
% \exportsortexpansion {ccaron} {cz}
% \exportsortexpansion {cacute} {czz}
@@ -70,6 +91,36 @@
%
% a-z, aring, adiaeresis, odiaeresis
+% \mainlanguage[sv]
+% \starttext
+% a\index{a}
+% a\index{a}
+% z\index{z}
+% z\index{z}
+% q\index{q}
+% q\index{q}
+% å\index{å}
+% å\index{å}
+% å\index{å}
+% ä\index{ä}
+% ä\index{ä}
+% ä\index{ä}
+% ä\index{ä}
+% ö\index{ö}
+% ö\index{ö}
+% \aring\index{\aring}
+% \adiaeresis\index{\adiaeresis}
+% \odiaeresis\index{\odiaeresis}
+% A\index{A}
+% Å\index{Å}
+% Ä\index{Ä}
+% Ö\index{Ö}
+% \Aring\index{\Aring}
+% \Adiaeresis\index{\Adiaeresis}
+% \Odiaeresis\index{\Odiaeresis}
+% \placeindex
+% \stoptext
+
\startmode[sortorder-sv]
\exportsortrule {aring} {z+1}
\exportsortrule {adiaeresis} {z+2}
@@ -96,11 +147,57 @@
% czech
%
-% a-c ccaron d-
+% a) make a single group for: "a", "á", "A", "Á"
+% b) make a different two groups for: "c", "C" and "c", "C"
+% c) sorting rule: "A" < "Á" < "a" < "á" < "C" < "c" < "C" < "c"
+% d) sorting rule: "h" < "ch" < "i" ("c" < "h")
+
+\gdef\czsortdivisionch{ch}
+\gdef\czsortdivisionCh{Ch}
\startmode[sortorder-cz]
- \exportsortrule {ccaron} {c+1}
- \exportsortreduction {ch} {c}
+ \exportsortexpansion {aacute} {a+1}
+ \exportsortexpansion {Aacute} {A+1}
+ \exportsortexpansion {ccaron} {c+1}
+ \exportsortexpansion {Ccaron} {C+1}
+ \exportsortdivision {c+1} {ccaron}
+ \exportsortexpansion {dcaron} {d+1}
+ \exportsortexpansion {Dcaron} {D+1}
+ \exportsortdivision {d+1} {dcaron}
+ \exportsortexpansion {eacute} {e+1}
+ \exportsortexpansion {Eacute} {E+1}
+ \exportsortexpansion {ecaron} {e+2}
+ \exportsortexpansion {Ecaron} {E+2}
+ \exportsortreduction {ch} {h+1}
+ \exportsortexpansion {ch} {h+1}
+ \exportsortreduction {Ch} {H+1}
+ \exportsortexpansion {Ch} {H+1}
+ \exportsortdivision {h+1} {czsortdivisionch}
+ \exportsortexpansion {iacute} {i+1}
+ \exportsortexpansion {Iacute} {I+1}
+ \exportsortexpansion {ncaron} {n+1}
+ \exportsortexpansion {Ncaron} {N+1}
+ \exportsortdivision {n+1} {ncaron}
+ \exportsortexpansion {oacute} {o+1}
+ \exportsortexpansion {Oacute} {O+1}
+ \exportsortexpansion {rcaron} {r+1}
+ \exportsortexpansion {Rcaron} {R+1}
+ \exportsortdivision {r+1} {rcaron}
+ \exportsortexpansion {scaron} {s+1}
+ \exportsortexpansion {Scaron} {S+1}
+ \exportsortdivision {s+1} {scaron}
+ \exportsortexpansion {tcaron} {t+1}
+ \exportsortexpansion {Tcaron} {T+1}
+ \exportsortdivision {t+1} {tcaron}
+ \exportsortexpansion {uacute} {u+1}
+ \exportsortexpansion {Uacute} {U+1}
+ \exportsortexpansion {uring} {u+2}
+ \exportsortexpansion {Uring} {U+2}
+ \exportsortexpansion {yacute} {y+1}
+ \exportsortexpansion {Yacute} {Y+1}
+ \exportsortexpansion {zcaron} {z+1}
+ \exportsortexpansion {Zcaron} {Z+1}
+ \exportsortdivision {z+1} {zcaron}
\stopmode
\endinput
diff --git a/Master/texmf-dist/tex/context/base/spec-def.tex b/Master/texmf-dist/tex/context/base/spec-def.tex
index d24d257c708..62313585e6c 100644
--- a/Master/texmf-dist/tex/context/base/spec-def.tex
+++ b/Master/texmf-dist/tex/context/base/spec-def.tex
@@ -961,8 +961,10 @@
\defineoutput [dpx] [dpx]
\defineoutput [acrobat] [pdf,ps,tr]
-\defineoutput [xetex] [dvi,xtx]
-\defineoutput [xtx] [dvi,xtx]
+\defineoutput [xetex] [dpx]
+\defineoutput [xtx] [dpx]
+\defineoutput [xdv] [dvi,xtx]
+\defineoutput [xdv2pdf] [dvi,xtx]
%D Please let me know if we need more. From now on we default
%D to:
diff --git a/Master/texmf-dist/tex/context/base/spec-dpx.tex b/Master/texmf-dist/tex/context/base/spec-dpx.tex
index 161cee303fd..f317a388701 100644
--- a/Master/texmf-dist/tex/context/base/spec-dpx.tex
+++ b/Master/texmf-dist/tex/context/base/spec-dpx.tex
@@ -65,7 +65,7 @@
%D \type{"1 0 0 1 -x -y cm"}.
%D
%D 2. \type{pdf:literal direct #1} puts directly the given PDF commands
-%D #1 without changing the text matrix.
+%D \type {#1} without changing the text matrix.
%D
%D Literal \PDF\ inclusion is implemented as:
@@ -264,8 +264,7 @@
\def\assignPDFtransparency#1#2%
{\def\PDFtransparencyidentifier{/Tr#1}%
- %\def\PDFtransparencyreference{\PDFobjref{#2}}}
- \def\PDFtransparencyreference{@TR:#2}}
+ \def\PDFtransparencyreference{@TR:#2}} % todo: \PDFobjref{TR:#2}
\def\presetPDFtransparency#1#2%
{\initializePDFtransparency
@@ -273,12 +272,9 @@
\def\dopresetPDFtransparency#1#2%
{\global\advance\PDFcurrenttransparency \plusone
- %\immediate\pdfobj{\PDFtransparancydictionary{#1}{#2}{}}%
-% \special{pdf: object @TR:\the\PDFcurrenttransparency\space \PDFtransparancydictionary{#1}{#2}{}}%
\doPDFreserveDPXobject{TR:\the\PDFcurrenttransparency}{<< >>}%
\special{pdf:\doPDFcheckedDPXobject{TR:\the\PDFcurrenttransparency}\PDFtransparancydictionary{#1}{#2}{}}%
\edef\PDFtransparencyidentifier{/Tr\the\PDFcurrenttransparency}%
- %\edef\PDFtransparencyreference {\PDFobjref\pdflastobj}%
\edef\PDFtransparencyreference {@TR:\the\PDFcurrenttransparency}%
\setxvalue{\@@PDT#1:#2}%
{\noexpand\assignPDFtransparency{\the\PDFcurrenttransparency}{\the\PDFcurrenttransparency}}%
@@ -287,15 +283,11 @@
\PDFtransparencyreference\space}}
\def\initializePDFtransparency
- %{\immediate\pdfobj{\PDFtransparancydictionary{1}{1}{/AIS false}}%
-% {\special{pdf: object @TR:0 \PDFtransparancydictionary{1}{1}{/AIS false}}%
{\doPDFreserveDPXobject{TR:0}{<< >>}%
\special{pdf:\doPDFcheckedDPXobject{TR:0}\PDFtransparancydictionary{1}{1}{/AIS false}}%
\xdef\PDFtransparencyresetidentifier{/Tr0}%
- %\xdef\PDFtransparencyresetreference{\PDFobjref\pdflastobj}%
\xdef\PDFtransparencyresetreference{@TR:0}%
\setxvalue{\@@PDT0:0}%
- %{\noexpand\assignPDFtransparency{0}{\the\pdflastobj}}%
{\noexpand\assignPDFtransparency{0}{0}}%
\appendtoPDFdocumentextgstates
{\PDFtransparencyresetidentifier\space
@@ -404,35 +396,70 @@
% wd nextbox > #3 ivm offset
-\definespecial\dostartobject#1#2#3#4#5%
+% \definespecial\dostartobject#1#2#3#4#5%
+% {\bgroup
+% \dowithnextbox
+% {\dosetobjectreference{#1}{#2}{@#1::#2}%
+% \scratchdimen#3\edef\width {\the\scratchdimen\space}%
+% \scratchdimen#4\edef\height{\the\scratchdimen\space}%
+% \setbox\nextbox\vbox
+% {\special{pdf:bxobj @#1::#2 width \width height \height}%
+% % we need to compensate for the box offset (ugly, sigh)
+% \scratchdimen\nextboxht
+% \advance\scratchdimen\nextboxdp
+% \advance\scratchdimen-#4\relax
+% \nextboxdp\zeropoint
+% \nextboxht\zeropoint
+% \hbox to #3{\hss\lower.5\scratchdimen\box\nextbox\hss}%
+% \ifx\currentPDFresources\empty
+% \else
+% \special{pdf:put @resources <<\currentPDFresources>>}%
+% \global\let\currentPDFresources\empty
+% \fi
+% \special{pdf:exobj}}%
+% \smashbox\nextbox
+% \flushatshipout{\box\nextbox}%
+% \egroup}%
+% \hbox\bgroup}
+
+% \definespecial\dostopobject
+% {\egroup}
+
+\def\doDVIPDFMXstartobject#1#2#3#4#5#6%
{\bgroup
\dowithnextbox
- {\dosetobjectreference{#1}{#2}{@#1::#2}%
- \scratchdimen#3\edef\width {\the\scratchdimen\space}%
- \scratchdimen#4\edef\height{\the\scratchdimen\space}%
+ {\ifcase#1\or\dosetobjectreference{#2}{#3}{@#2::#3}\fi
+ \scratchdimen#4\edef\width {\the\scratchdimen\space}%
+ \scratchdimen#5\edef\height{\the\scratchdimen\space}%
\setbox\nextbox\vbox
- {\special{pdf:bxobj @#1::#2 width \width height \height}%
- % we need to compensate for the box offset (ugly, sigh)
- \scratchdimen\nextboxht
- \advance\scratchdimen\nextboxdp
- \advance\scratchdimen-#4\relax
- \nextboxdp\zeropoint
- \nextboxht\zeropoint
- \hbox to #3{\hss\lower.5\scratchdimen\box\nextbox\hss}%
+ {\special{pdf:bxobj @#2::#3 width \width height \height}%
+ % we need to compensate for the box offset (ugly, sigh)
+ \scratchdimen\nextboxht
+ \advance\scratchdimen\nextboxdp
+ \advance\scratchdimen-#5\relax
+ \nextboxdp\zeropoint
+ \nextboxht\zeropoint
+ \hbox to #4{\hss\lower.5\scratchdimen\box\nextbox\hss}%
\ifx\currentPDFresources\empty
\else
- \special{pdf:put @resources <<\currentPDFresources\the\pdfpageresources>>}%
+ \special{pdf:put @resources <<\currentPDFresources>>}%
\global\let\currentPDFresources\empty
\fi
\special{pdf:exobj}}%
- \smashbox\nextbox
- \flushatshipout{\box\nextbox}%
- \egroup}%
+ \smashbox\nextbox
+ \flushatshipout{\box\nextbox}%
+ \egroup}%
\hbox\bgroup}
-\definespecial\dostopobject
+\def\doDVIPDFMXstopobject
{\egroup}
+\definespecial\dostartobject#1#2#3#4#5%
+ {\doDVIPDFMXstartobject\plusone{#1}{#2}{#3}{#4}{#5}}
+
+\definespecial\dostopobject
+ {\doDVIPDFMXstopobject}
+
\definespecial\doinsertobject#1#2%
{\hbox
{\doPDFgetobjectreference{#1}{#2}\PDFobjectreference
@@ -753,9 +780,9 @@
{\vbox to \zeropoint
{\vss
\hbox to \zeropoint
- {\special{pdf:btrans matrix #1 #2 #3 #4 #5 #6}%
+ {\special{pdf:btrans matrix #1 #2 #3 #4 #5 #6}%
\rlap{\special{pdf:image width 1bp height 1bp (#7)}}
- \special{pdf:etrans}\hss}}}
+ \special{pdf:etrans}\hss}}}
{\message{[unknown figure #7]}}}
%D 5. Modified codes from \type{supp-pdf}
@@ -764,11 +791,21 @@
\newcounter\MPPDFcounter
-\def\setMPPDFobject#1#2%
- {\ifx\currentPDFresources\empty\else\doPDFpageresource{#1}\fi
- \def\getMPPDFobject{\box#2}}
+\newcounter\MPPDFobjectcounter
-\let\getMPPDFobject\relax
+\def\setMPPDFobject#1#2% resources boxnumber
+ {\doglobal\increment\MPPDFobjectcounter
+ \xdef\getMPPDFobject
+ {\vbox to \the\ht#2%
+ {\vss
+ \hbox to \the\wd#2%
+ {\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}}%
+ \box#2%
+ \doDVIPDFMXstopobject}
+
+\let\getMPPDFobject\gobbletwoarguments
\definespecial\doinsertMPfile#1%
{\doiffileelse{./#1}{\includeMPasPDF{./#1}}{\message{[MP #1]}}}
@@ -809,13 +846,17 @@
\vss\hbox to #4\scaledpoint{\hss\box\scratchbox\hss}\vss
\else
%\vss\box\scratchbox
- \vss\hbox to #4\scaledpoint{\box\scratchbox\hss}
+ \vss\hbox to #4\scaledpoint{\box\scratchbox\hss}%
\fi\fi}}%
\box\scratchbox
\elabelgroup}
%D 7. Copied codes from \type{spec-dvi}
+% coming pdftex versions will provide pos support in dvi mode (untested)
+
+% \ifnum\pdftexversion>140 .. \fi
+
\definespecial\dosetposition#1%
{\special{pos:pxy "#1"}}
@@ -828,11 +869,21 @@
\let\flushDVIpositionpapersize\relax
\definespecial\dosetpositionpapersize#1#2%
- {\xdef\flushDVIpositionpapersize%
+ {\xdef\flushDVIpositionpapersize
{\special{pos:papersize #1 #2}%
- \noexpand\installprogram{dvipos \jobname}%
+ \noexpand\installprogram{dvipos -o \jobname.tuo \jobname.dvi }%
\global\noexpand\let\noexpand\flushDVIpositionpapersize\relax}}
+\beginXETEX
+
+ \definespecial\dosetpositionpapersize#1#2%
+ {\xdef\flushDVIpositionpapersize
+ {\special{pos:papersize #1 #2}%
+ \noexpand\installprogram{dvipos -o \jobname.tuo \jobname.xdv }%
+ \global\noexpand\let\noexpand\flushDVIpositionpapersize\relax}}
+
+\endXETEX
+
\prependtoksonce \flushDVIpositionpapersize \to \everyshipout
\stopspecials
diff --git a/Master/texmf-dist/tex/context/base/spec-dvi.tex b/Master/texmf-dist/tex/context/base/spec-dvi.tex
index 5da86743c74..e13698cf394 100644
--- a/Master/texmf-dist/tex/context/base/spec-dvi.tex
+++ b/Master/texmf-dist/tex/context/base/spec-dvi.tex
@@ -21,6 +21,8 @@
%D Reuse of object is not supported by the \DVI\ format. We
%D therefore just duplicate them using boxes.
+\setjobsuffix{dvi} % can be overloaded in other spec's
+
\startspecials[tex]
\newbox\DVIobjects \newcounter\DVIobjectcounter
@@ -106,7 +108,7 @@
%
% \appendtoksonce
% \ifspecialbasedsettings
-% \ifpositioning\installprogram{dvipos \jobname}\fi
+% \ifpositioning\installprogram{dvipos -o \jobname.tuo \jobname.dvi}\fi
% \fi
% \to \everystoptext
%
@@ -115,7 +117,7 @@
\definespecial\dosetpositionpapersize#1#2%
{\xdef\flushDVIpositionpapersize%
{\special{pos:papersize #1 #2}%
- \noexpand\installprogram{dvipos \jobname}%
+ \noexpand\installprogram{dvipos -o \jobname.tuo \jobname.dvi }%
\global\noexpand\let\noexpand\flushDVIpositionpapersize\relax}}
\prependtoksonce \flushDVIpositionpapersize \to \everyshipout
diff --git a/Master/texmf-dist/tex/context/base/spec-fdf.tex b/Master/texmf-dist/tex/context/base/spec-fdf.tex
index 853dbb678a6..5f759941bc0 100644
--- a/Master/texmf-dist/tex/context/base/spec-fdf.tex
+++ b/Master/texmf-dist/tex/context/base/spec-fdf.tex
@@ -59,7 +59,14 @@
\newif\ifovercomePDFbugs \overcomePDFbugsfalse % dest sort problem / 3-
\newif\ifovercomePDFspace \overcomePDFspacetrue % dest sort problem / 3-
-\newif\ifovercomePDFpage \overcomePDFpagetrue % pdf spec change / 5+
+
+% 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
\chardef\safePDFcode=`-
@@ -399,6 +406,9 @@
\doPDFaddtocatalog{\currentPDFpagemode\currentPDFviewerprefs}%
\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)}%
\to \everyfirstshipout
\def\PDFversion{1.5}
@@ -453,13 +463,17 @@
\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 (#5)
- /ID (\jobname.#5) % needed for pdf/x
+ /ModDate (\!!stringa)
+ /ID (\jobname.\!!stringa) % needed for pdf/x
/Keywords (#6)}}%
\egroup}
@@ -653,7 +667,6 @@
\doifelsenothing{#3}% #1 = url
{\scratchcounter0#5\relax
\ifnum\scratchcounter>0
- \advance\scratchcounter \minusone % pdf starts numbering at zero
\doifelsenothing{#4}
{\let\PDFfile\empty}
{\expanded{\beforesplitstring#4}\at.\to\PDFfile
@@ -663,12 +676,18 @@
{\@EA\setreferencefilename\PDFfile.\locationfilesuffix\to\PDFfile
\edef\PDFfile{R /F (\PDFfile)\PDFgotonewwindow}}}%
\ifx\PDFfile\empty
- \ifovercomePDFpage % a named page ref
- \edef\PDFdestination{(page:\the\scratchcounter)}%
- \else % beware: optimizers remove this one
+ \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
+ \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}%
@@ -694,7 +713,7 @@
\let\lastfakedPDFpage\!!zerocount
\def\fakePDFpagedestination % as in pdf, we start numbering at zero
- {\iflocation \ifovercomePDFpage \ifarrangingpages \else
+ {\iflocation \ifarrangingpages \ifnum\overcomePDFpage=\plustwo \else
\ifnum\lastfakedPDFpage<\realpageno
\bgroup
\xdef\lastfakedPDFpage{\realfolio}%
@@ -973,8 +992,8 @@
\@EA\processallactionsinset\@EA
[#9]
[\v!controls=>\donetrue,
- \v!repeat=>\edef\pdf@@actions{\pdf@@actions /Mode /Repeat },
- \v!preview=>\edef\pdf@@options{\pdf@@options /Poster true }]%
+ \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 width #7 height #8 data
{/Subtype /Movie
diff --git a/Master/texmf-dist/tex/context/base/spec-ini.tex b/Master/texmf-dist/tex/context/base/spec-ini.tex
index c53fbbd5cee..8d867e9a1be 100644
--- a/Master/texmf-dist/tex/context/base/spec-ini.tex
+++ b/Master/texmf-dist/tex/context/base/spec-ini.tex
@@ -80,9 +80,9 @@
\stopmessages
\startmessages italian library: specials
- title: specialità
+ title: specialitø
1: -- caricato
- 2: non è permesso un annidamento maggiore --
+ 2: non ø permesso un annidamento maggiore --
3: -- reimpostato
4: il comando -- non esiste
5: caricamento del file di definizione --
@@ -112,6 +112,17 @@
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
@@ -133,13 +144,17 @@
\stopmessages
\startmessages norwegian library: interactions
- 21: -- kode satt inn / tilføyd
+ 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
@@ -167,6 +182,21 @@
%D output.
%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{dvi}
+
+\def\setjobsuffix#1%
+ {\resetsystemmode\jobsuffix
+ \edef\jobsuffix{#1}%
+ \setsystemmode\jobsuffix}
+
+%D \macros
%D {everyresetspecials}
%D
%D Now what will this one do? We'll see in a few lines.
@@ -393,10 +423,9 @@
{\doifdefinedelse{\@@specfil@@#1}
{\edef\currentspecialfile{\getvalue{\@@specfil@@#1}}}
{\edef\currentspecialfile{#1}}%
- \makeshortfilename[\f!specialprefix\currentspecialfile]%
- \showmessage\m!specials5\currentspecialfile
+ \makeshortfilename[\truefilename{\f!specialprefix\currentspecialfile}]%
\startreadingfile
- \readsysfile\shortfilename\donothing\donothing
+ \readsysfile\shortfilename{\showmessage\m!specials5\currentspecialfile}\donothing
\stopreadingfile
\showmessage\m!specials1\preloadedspecials}}
diff --git a/Master/texmf-dist/tex/context/base/spec-mis.tex b/Master/texmf-dist/tex/context/base/spec-mis.tex
index 0134c8bbc74..6bd7c699443 100644
--- a/Master/texmf-dist/tex/context/base/spec-mis.tex
+++ b/Master/texmf-dist/tex/context/base/spec-mis.tex
@@ -209,7 +209,7 @@
\long\def\preservePSpar#1\to#2%
{\bgroup
- \def\par{\rawcharacter{12}\rawcharacter{12}}%
+ \def\par{\rawcharacter{12}\rawcharacter{12}}% hm, should be one 13 but 12 ff is platform safe
\expanded{\egroup\noexpand\def\noexpand#2{#1}}}
%D \macros
diff --git a/Master/texmf-dist/tex/context/base/spec-tpd.tex b/Master/texmf-dist/tex/context/base/spec-tpd.tex
index 56fd9342cb6..c21139b03ce 100644
--- a/Master/texmf-dist/tex/context/base/spec-tpd.tex
+++ b/Master/texmf-dist/tex/context/base/spec-tpd.tex
@@ -93,13 +93,14 @@
\pdfvorigin=1 true in
\fi
-%D We default to 300 dots per inch image resolution.
+%D We default to 300 dots per inch image resolution and 600 dpi
+%D bitmap fonts (when asked for).
-\ifx\pdfimageresolution\undefined
- \newcount\pdfimageresolution
-\fi
+\ifx\pdfimageresolution\undefined \newcount\pdfimageresolution \fi
+\ifx\pdfpkresolution \undefined \newcount\pdfpkresolution \fi
\pdfimageresolution=300
+\pdfpkresolution =600
%D Another downward compatible hack:
@@ -241,7 +242,7 @@
%D nasty but needed
-\appendtoksonce \loadallfontmapfiles \to \everyPDFximage
+\appendtoksonce \loadallfontmapfiles \to \everyPDFximage % currently == \everyPDFxform
%D \macros
%D {doinsertfile,dogetnofinsertpages}
@@ -305,12 +306,19 @@
\definefileinsertion{tpd}{pdf}{\handlepdfimage}
\definefileinsertion{tpd}{png}{\handlepdfimage}
\definefileinsertion{tpd}{jpg}{\handlepdfimage}
-%definefileinsertion{tpd}{tif}{\handlepdfimage} % unstable
+\definefileinsertion{tpd}{jb2}{\handlepdfimage}
+
+% \definefileinsertion{tpd}{jpeg} {\handlepdfimage}
+% \definefileinsertion{tpd}{jbig2}{\handlepdfimage}
+
+%definefileinsertion{tpd}{tif}{\handlepdfimage} % unstable and gone
%D Experimental:
% \definefileinsertion{tpd}{svg}{\doPDFinsertsvg}
% \definefileinsertion{tpd}{svgz}{\doPDFinsertsvg}
+%
+% todo: no placeholder but manipulator of evt autorlx
\def\doPDFinsertsvg#1#2#3#4#5#6#7#8#9%
{\externalfigureplaceholder{#1}{#7}{#8}}
@@ -341,44 +349,45 @@
\ifnum\pdftexversion>13
-\def\checkpdfimagepagenumber#1%
- {\let\pdfimagepagenumber\empty
- \getfromcommacommand[#1][1]%
- \doifnumberelse\commalistelement
- {\ifcase\commalistelement\else
- \edef\pdfimagepagenumber{page \commalistelement}%
- %\message{(pdf image \pdfimagepagenumber)}%
- \fi}
- {}}
-
-\def\handlepdfimage#1#2#3#4#5#6#7#8#9%
- {\bgroup
- \the\everyPDFximage
- \doifvalidpdfimagefileelse{#1}
- {\checkpdfimagepagenumber{#9}%
- \immediate\pdfximage
- \ifdim#7>\zeropoint \!!width #7\fi
- \ifdim#8>\zeropoint \!!height #8\fi
- \pdfimagepagenumber
-\@@DriverImageBox
- {#1}%
- \xdef\PDFimagereference{\the\pdflastximage}%
- \xdef\nofinsertpages{\the\pdflastximagepages}%
- \pdfrefximage\pdflastximage}
- {\framed[\c!width=#7,\c!height=#8]{#1}}%
- \egroup}
+ \def\checkpdfimagepagenumber#1%
+ {\let\pdfimagepagenumber\empty
+ \getfromcommacommand[#1][1]%
+ \doifnumberelse\commalistelement
+ {\ifcase\commalistelement\else
+ \edef\pdfimagepagenumber{page \commalistelement}%
+ %\message{(pdf image \pdfimagepagenumber)}%
+ \fi}
+ {}}
+
+ \def\handlepdfimage#1#2#3#4#5#6#7#8#9%
+ {\bgroup
+ \the\everyPDFximage
+ \doifvalidpdfimagefileelse{#1}
+ {\checkpdfimagepagenumber{#9}%
+ %\pdfimmediateximage
+ \ifx\pdfimagepagenumber\empty\@EA\pdfimmediateximage\else\@EA\pdfximage\fi
+ \ifdim#7>\zeropoint \!!width #7\fi
+ \ifdim#8>\zeropoint \!!height #8\fi
+ \pdfimagepagenumber
+ \@@DriverImageBox
+ {#1}%
+ \xdef\PDFimagereference{\the\pdflastximage}%
+ \xdef\nofinsertpages{\the\pdflastximagepages}%
+ \pdfrefximage\pdflastximage}
+ {\framed[\c!width=#7,\c!height=#8]{#1}}%
+ \egroup}
\else
-\def\handlepdfimage#1#2#3#4#5#6#7#8#9%
- {\bgroup
- \doifvalidpdfimagefileelse{#1}
- {\pdfimage
- \ifdim#7>\zeropoint \!!width #7\fi
- \ifdim#8>\zeropoint \!!height #8\fi
- {#1}}%
- {\framed[\c!width=#7,\c!height=#8]{#1}}%
- \egroup}
+ \def\handlepdfimage#1#2#3#4#5#6#7#8#9%
+ {\bgroup
+ \doifvalidpdfimagefileelse{#1}
+ {\pdfimage
+ \ifdim#7>\zeropoint \!!width #7\fi
+ \ifdim#8>\zeropoint \!!height #8\fi
+ {#1}}%
+ {\framed[\c!width=#7,\c!height=#8]{#1}}%
+ \egroup}
\fi
@@ -439,70 +448,73 @@
% \fi
% \@@DriverImageBox}
+\def\pdfimmediateximage{\immediate\pdfximage}
+
\ifnum\pdftexversion>13
-\def\checkpdfimageattributes
- {\ifx\PDFfigurereference\empty
- \global\let\pdfimageattributes\empty
- \else
- \immediate\pdfobj
- {[ << /Image \PDFobjref\PDFfigurereference
- /DefaultForPrinting true >> ]}%
- \xdef\pdfimageattributes
- {attr {/Alternates \PDFobjref\pdflastobj}}%
- \fi}
-
-\global\let\PDFimagecolorreference\empty
-
-\def\checkpdfimagecolorspecs
- {\ifx\pdflastximagecolordepth \undefined
- \global\let\pdfimagecolorspecs\empty
- \else\ifx\PDFimagecolorreference\empty
- \global\let\pdfimagecolorspecs\empty
- \else
- \xdef\pdfimagecolorspecs{colorspace \PDFimagecolorreference\space}%
- \fi\fi
- \global\let\PDFimagecolorreference\empty}
-
-\def\dogetTPDfiguresize#1#2#3#4#5#6#7%
- {\ifmeasureTPDfiguresize
- #4\zeropoint
- #5\zeropoint
- \doifvalidpdfimagefileelse{#2}
- {\ifvoid\foundexternalfigure
- \donetrue
- \else\ifx\PDFfigurereference\empty
- \donetrue
- \else
- \doifinstringelse\filesuffix{\c!png,\c!jpg}\donetrue\donefalse
- \fi\fi}
- {\donefalse}%
- \ifdone
- \the\everyPDFximage
- \checkpdfimagepagenumber{#3}%
- \checkpdfimageattributes
- \checkpdfimagecolorspecs
- \global\setbox\foundexternalfigure\hbox
- {\immediate\pdfximage
- \pdfimageattributes
- \pdfimagecolorspecs
- \pdfimagepagenumber
- \@@DriverImageBox
- {#2}%
- \xdef\PDFimagereference{\the\pdflastximage}%
- \xdef\nofinsertpages{\the\pdflastximagepages}%
- \pdfrefximage\pdflastximage}%
- #6\wd\foundexternalfigure
- #7\ht\foundexternalfigure
- \global\let\PDFfigurereference\empty
- \global\let\PDFimageattributes\empty
+ \def\checkpdfimageattributes
+ {\ifx\PDFfigurereference\empty
+ \global\let\pdfimageattributes\empty
\else
- #6\zeropoint
- #7\zeropoint
- \fi
- \else
- #1{#2}{#3}{#4}{#5}{#6}{#7}% \normaldogetfiguresize...
- \fi}
+ \immediate\pdfobj
+ {[ << /Image \PDFobjref\PDFfigurereference
+ /DefaultForPrinting true >> ]}%
+ \xdef\pdfimageattributes
+ {attr {/Alternates \PDFobjref\pdflastobj}}%
+ \fi}
+
+ \global\let\PDFimagecolorreference\empty
+
+ \def\checkpdfimagecolorspecs
+ {\ifx\pdflastximagecolordepth \undefined
+ \global\let\pdfimagecolorspecs\empty
+ \else\ifx\PDFimagecolorreference\empty
+ \global\let\pdfimagecolorspecs\empty
+ \else
+ \xdef\pdfimagecolorspecs{colorspace \PDFimagecolorreference\space}%
+ \fi\fi
+ \global\let\PDFimagecolorreference\empty}
+
+ \def\dogetTPDfiguresize#1#2#3#4#5#6#7%
+ {\ifmeasureTPDfiguresize
+ #4\zeropoint
+ #5\zeropoint
+ \doifvalidpdfimagefileelse{#2}
+ {\ifvoid\foundexternalfigure
+ \donetrue
+ \else\ifx\PDFfigurereference\empty
+ \donetrue
+ \else
+ \doifinstringelse\filesuffix{\c!png,\c!jpg}\donetrue\donefalse
+ \fi\fi}
+ {\donefalse}%
+ \ifdone
+ \the\everyPDFximage
+ \checkpdfimagepagenumber{#3}%
+ \checkpdfimageattributes
+ \checkpdfimagecolorspecs
+ \global\setbox\foundexternalfigure\hbox
+ {\ifx\pdfimagepagenumber\empty\@EA\pdfimmediateximage\else\@EA\pdfximage\fi
+ %\pdfimmediateximage
+ \pdfimageattributes
+ \pdfimagecolorspecs
+ \pdfimagepagenumber
+ \@@DriverImageBox
+ {#2}%
+ \xdef\PDFimagereference{\the\pdflastximage}%
+ \xdef\nofinsertpages{\the\pdflastximagepages}%
+ \pdfrefximage\pdflastximage}%
+ #6\wd\foundexternalfigure
+ #7\ht\foundexternalfigure
+ \global\let\PDFfigurereference\empty
+ \global\let\PDFimageattributes\empty
+ \else
+ #6\zeropoint
+ #7\zeropoint
+ \fi
+ \else
+ #1{#2}{#3}{#4}{#5}{#6}{#7}% \normaldogetfiguresize...
+ \fi}
\else
@@ -1450,7 +1462,8 @@
\else
\def\setMPPDFobject#1#2% resources boxnumber
- {\immediate\pdfxform resources{#1}#2%
+ {\the\everyPDFxform
+ \immediate\pdfxform resources{#1}#2%
\edef\getMPPDFobject{\noexpand\pdfrefxform\the\pdflastxform}}
\fi
diff --git a/Master/texmf-dist/tex/context/base/spec-xtx.tex b/Master/texmf-dist/tex/context/base/spec-xtx.tex
index ea355abd7bb..ee71a60a2cf 100644
--- a/Master/texmf-dist/tex/context/base/spec-xtx.tex
+++ b/Master/texmf-dist/tex/context/base/spec-xtx.tex
@@ -1,4 +1,11 @@
-%D \module %D [ file=spec-xtx, %D version=2004.11.08, %D title=\CONTEXT\ Special Macros, %D subtitle=\XETEX\ support, %D author={Adam Lindsay \& Hans Hagen \& \unknown}, %D date=\currentdate, %D copyright={Adam Lindsay \& Hans Hagen}]
+%D \module
+%D [ file=spec-xtx,
+%D version=2004.11.08,
+%D title=\CONTEXT\ Special Macros,
+%D subtitle=\XETEX\ support,
+%D author={Adam Lindsay \& Hans Hagen \& \unknown},
+%D date=\currentdate,
+%D copyright={Adam Lindsay \& Hans Hagen}]
\unprotect
@@ -15,7 +22,7 @@
\definespecial\dostartrotation#1%
{\special{x:gsave}\special{x:rotate #1}}
-\definespecial\dostoprotation%
+\definespecial\dostoprotation
{\special{x:grestore}}
%D Scaling and mirroring are also fine.
@@ -23,13 +30,13 @@
\definespecial\dostartscaling#1#2%
{\special{x:gsave}\special{x:scale #1 #2}}
-\definespecial\dostopscaling%
+\definespecial\dostopscaling
{\special{x:grestore}}
-\definespecial\dostartmirroring%
+\definespecial\dostartmirroring
{\special{x:gsave}\special{x:scale -1 1}}
-\definespecial\dostopmirroring%
+\definespecial\dostopmirroring
{\special{x:grestore}}
%D Colors are done with the \DVIPDFMX\ color model, which are
@@ -37,11 +44,10 @@
%D Although hex colors were accommodated by Hans, we'll try the
%D more familiar \DVIPDFMX\ ones. One good side-effect of the
-%D previous approach
-%D was that it kept track of the color state (transparency
-%D in XeTeX is accomplished setting the color to an RGBA quadruple,
-%D rather than an RGB triple). So transparency will need another
-%D plan.
+%D previous approach was that it kept track of the color state
+%D (transparency in XeTeX is accomplished setting the color to
+%D an RGBA quadruple, rather than an RGB triple). So transparency
+%D will need another plan.
% \macros
% {dostarttransparency,dostoptransparency}
@@ -158,90 +164,4 @@
\stopspecials
-\protect
-
-%\endinput
-
-% FOR THE MOMENT HERE
-
-\ifx\dqfontquote\undefined \else \endinput \fi
-
-\unprotect
-
-% actually, we can use "" in pdftex> 1.20 as well
-
-\def\parsefontspec#1%
- {\xdef\somefontspec{#1\space}%
- \@EA\doparsefontspec\somefontspec\relax]% =>#1 \empty]
- \donoparsefontspec}
-
-\def\doparsefontspec#1%
- {\ifx"#1%
- \@EA\dodqparsefontspec
- \else\ifx'#1%
- \@EAEAEA\dosqparsefontspec
- \else
- \@EAEAEA\dodoparsefontspec
- \fi\fi#1}
-
-\def\dqfontquote{"}
-\def\sqfontquote{'}
-
-\def\dodqparsefontspec"#1"#2%
- {\def\somefontname{#1}%
- \let\somefontquote\dqfontquote
- \ifx#2\relax\@EA\setnaturalfontspec\else\@EA\setforcedfontspec\fi#2}
-
-\def\dosqparsefontspec'#1'#2%
- {\def\somefontname{#1}%
- \let\somefontquote\sqfontquote
- \ifx#2\relax\@EA\setnaturalfontspec\else\@EA\setforcedfontspec\fi#2}
-
-\def\dodoparsefontspec#1 #2%
- {\def\somefontname{#1}%
- \let\somefontquote\empty
- \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}
-
-\beginXETEX \font
-
-\def\donoparsefontspec % #1 == \cs
- {\edef\fontfile{\somefontquote\truefontname\somefontname\somefontquote}%
- \ifx\fontfile\s!unknown \let\fontfile\defaultfontfile \fi
- \edef\lastfontname{\fontfile\somefontspec}%
- \ifx\fontclass\empty
- \expandafter\definefontlocal
- \else
- \expandafter\definefontglobal
- \fi} % #1 == \cs
-
-\endXETEX
-
\protect \endinput
-
-\starttext
-
-\definedfont[{cmr10} at 40pt] test
-\definedfont['cmss10' at 40pt] test
-\definedfont["cmtt10" at 40pt] test
-
-\definedfont[{cmr10} at 40pt] test
-\definedfont['cmss10' at 40pt] test
-\definedfont["cmtt10" at 40pt] test
-
-% \definedfont["Gentium" at 40pt] test
-
-\stoptext
-
diff --git a/Master/texmf-dist/tex/context/base/supp-ali.tex b/Master/texmf-dist/tex/context/base/supp-ali.tex
index 3dc8848a39a..8727efbb271 100644
--- a/Master/texmf-dist/tex/context/base/supp-ali.tex
+++ b/Master/texmf-dist/tex/context/base/supp-ali.tex
@@ -147,8 +147,7 @@
\def\pushcharacteralign
{\ifundefined{@cac@\alignmentclass}%
- \doglobal
- \appendetoks\noexpand\do{\alignmentclass}\to\@@characteralignlst
+ \doglobal\appendetoks\noexpand\do{\alignmentclass}\to\@@characteralignlst
\fi
\setxvalue{@cac@\alignmentclass}{\noexpand\do
{\afterassignwidth}{\beforeassignwidth}{\alignmentcharacter}}}
@@ -161,7 +160,7 @@
\executeifdefined{@cac@\alignmentclass}\donothing}
\def\resetcharacteralign % does not work well nested
- {\def\do##1{\letbeundefined{@cac@##1}}%
+ {\def\do##1{\global\letbeundefined{@cac@##1}}% global !
\the\@@characteralignlst
\global\@@characteralignlst\emptytoks}
diff --git a/Master/texmf-dist/tex/context/base/supp-box.tex b/Master/texmf-dist/tex/context/base/supp-box.tex
index 4b451a6bfab..76c71c1994d 100644
--- a/Master/texmf-dist/tex/context/base/supp-box.tex
+++ b/Master/texmf-dist/tex/context/base/supp-box.tex
@@ -453,10 +453,13 @@
{\beginofshapebox
\unvbox\nextbox
\endofshapebox
- \global\count1\zerocount
- \reshapebox{\global\advance\count1\plusone}%
- \egroup\noflines\count1 }%
- \vbox}
+ % \global\count1\zerocount
+ % \reshapebox{\global\advance\count1\plusone}%
+ % \egroup\noflines\count1 }%
+ \scratchcounter\zerocount
+ \reshapebox{\global\advance\scratchcounter\plusone}%
+ \expandafter\egroup\expandafter\noflines\the\scratchcounter\relax
+ }\vbox}
%D \macros
%D {doiftextelse, doiftext}
@@ -1023,8 +1026,8 @@
\def\obeyedspace{\hskip\zeropoint\hbox to \onepoint{}\hskip\zeropoint}%
\let\obeyedline \obeyedspace
\ifcase-#1\or
- \def\next{#3}\scantokens\expandafter{\next}%
- % also ok: \scantokens{#3}%
+ \def\next{#3\relax}\scantokens\expandafter{\next}% relax catches lookahead problem
+ % also ok: \scantokens{#3}% % as in \hyphenatedword{spanish|?|}
\or
\readfile{#3}\donothing\donothing
\else
@@ -1802,7 +1805,7 @@
%D
%D \normalvbox
%D \bgroup
-%D \converthboxtovbox
+%D \convertvboxtohbox
%D \egroup
%D \stoptyping
%D
@@ -1878,6 +1881,26 @@
\setbox0\normalhbox{\box2\unhbox0}%
\repeat}
+% \def\makehboxofhboxes
+% {\setbox0\normalhbox{}%
+% \doloop % \doloop { .. \exitloop .. }
+% {% \dorecurse{3}{\unskip\unpenalty}% get rid of ... (better do this in a shapeloop)
+% \setbox2\lastbox
+% \ifhbox2
+% \setbox0\normalhbox{\box2\unhbox0}%
+% \else
+% \exitloop
+% \fi}}
+
+% \def\flushboxesonly % feed this into \makehboxofhboxes
+% {\dowithnextbox
+% {\beginofshapebox
+% \unvbox\nextbox
+% \endofshapebox
+% \doreshapebox{\box\shapebox}{}{}{}% get rid of penalties etc
+% \innerflushshapebox}
+% \vbox}
+
\def\removehboxes
{\setbox0\lastbox
\ifhbox0
diff --git a/Master/texmf-dist/tex/context/base/supp-fil.tex b/Master/texmf-dist/tex/context/base/supp-fil.tex
index cd0c48150e8..da4b595b844 100644
--- a/Master/texmf-dist/tex/context/base/supp-fil.tex
+++ b/Master/texmf-dist/tex/context/base/supp-fil.tex
@@ -509,7 +509,7 @@
{\sanitizefilename#1\to\readfilename
\checkfilename\readfilename
\ifcase\kindoffile
- \edef\locreadfilename{\pathplusfile\f!currentpath{#1}}%
+ \edef\readfilename{\pathplusfile\f!currentpath{#1}}%
\fi}
%D \macros
@@ -591,6 +591,8 @@
%D regards to active characters (german ", polish /,
%D french : and ;).
+%D We need to redo this: catcode sets and such
+
\def\startreadingfile% beter een every en \setnormalcatcodes
{\doglobal\increment\readingfilelevel
\setxvalue{\string\readingfilelevel::\readingfilelevel}%
@@ -615,11 +617,17 @@
\catcode`\\=\@@escape
\catcode`\{=\@@begingroup
\catcode`\}=\@@endgroup
- \catcode`\%=\@@comment}
+ \catcode`\%=\@@comment
+ \pushendofline
+ \restoreendofline}
\def\stopreadingfile
- {\getvalue{\string\readingfilelevel::\readingfilelevel}%
+ {\popendofline
+ \getvalue{\string\readingfilelevel::\readingfilelevel}%
\doglobal\decrement\readingfilelevel}
+
+\let\normalstartreadingfile\startreadingfile
+\let\normalstopreadingfile \stopreadingfile
%D \macros
%D {splitfilename}
diff --git a/Master/texmf-dist/tex/context/base/supp-fun.tex b/Master/texmf-dist/tex/context/base/supp-fun.tex
index 5f0700deb57..812323826ff 100644
--- a/Master/texmf-dist/tex/context/base/supp-fun.tex
+++ b/Master/texmf-dist/tex/context/base/supp-fun.tex
@@ -135,8 +135,9 @@
{\convertargument #7\to\asciia
\convertcommand \DroppedString\to\asciib
\ExpandBothAfter\doifinstringelse\asciia\asciib
- {\dontleavehmode
- \ifhmode\hskip-\parindent\fi
+ {\noindentation
+ \dontleavehmode
+ %\ifhmode\hskip-\parindent\fi % sensitive for context mechanism
\keeplinestogether{#6}%
\setbox0\hbox{\definedfont[#2 at #3]#1{#7}\hskip#4}%
\ifdim\dp0>\strutdp % one of those Q's , will be option
diff --git a/Master/texmf-dist/tex/context/base/supp-lan.tex b/Master/texmf-dist/tex/context/base/supp-lan.tex
index ebb47424c8f..83ab14df0d2 100644
--- a/Master/texmf-dist/tex/context/base/supp-lan.tex
+++ b/Master/texmf-dist/tex/context/base/supp-lan.tex
@@ -184,8 +184,8 @@
%D compound characters like |-| or || to be separated from the
%D words. \TEX\ hackers will recognise the next two macro's:
-\def\prewordbreak {\penalty10000\hskip0pt\relax}
-\def\postwordbreak {\penalty0\prewordbreak}
+\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
@@ -359,7 +359,7 @@
%D
%D \starttyping
%D \startlanguagespecifics[de]
-%D \installcompoundcharacter "a {\moveaccent{-.1ex}\"a\midworddiscretionary}
+%D \installcompoundcharacter "a {{\moveaccent{-.1ex}\"a\midworddiscretionary}}
%D \stoplanguagespecifics
%D \stoptyping
%D
@@ -507,11 +507,16 @@
\nextnextnext}
\def\checkbeforediscretionary
- {\setbox0\lastbox
- \ifdim\wd0=\zeropoint
- \let\postwordbreak\prewordbreak
- \fi
- \box0\relax}
+ {\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
@@ -604,8 +609,8 @@
{\uccode`'=`'\relax \uccode`~=`~\relax \uccode`_=`_\relax
\uccode`(=`(\relax \uccode`)=`)\relax \uccode`==`=\relax
\uccode`<=`<\relax \uccode`>=`>\relax
- \let\dotextmodediscretionary = \activedotextmodediscretionary
- \let\dododotextmodediscretionary = \activedododotextmodediscretionary}
+ \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
@@ -673,7 +678,7 @@
\allowbreak\postwordbreak
\egroup
\fi\fi\fi\fi\fi\fi\fi\fi\fi
- \nextnextnext}
+ \nextnextnext} % no lookahead in commands
%D Now we can safely do things like: \enableactivediscretionaries
%D
@@ -769,11 +774,12 @@
\allowbreak\postwordbreak
\egroup
\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
- \nextnextnext}
+ \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.
+%D install new functionality outside this module. We also
+%D support lookahead (over the egroup).
\def\@tmd@{@@tmd@@}
@@ -804,10 +810,14 @@
\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
- \nextnextnext} % can be \egroup so \aftergroup\ignorespaces
+ \fi\fi\fi
+ \nextnextnext} % lookahead in commands
\def\definetextmodediscretionary #1
{\convertargument#1\to\ascii
@@ -816,9 +826,6 @@
\definetextmodediscretionary {} % empty case, also handled in parser
{\prewordbreak\compoundhyphen\allowbreak\postwordbreak}
-\definetextmodediscretionary =
- {\prewordbreak\textmodediscretionary}
-
\definetextmodediscretionary ~
{\prewordbreak\discretionary{-}{}{\thinspace}\postwordbreak}
@@ -852,32 +859,41 @@
\definetextmodediscretionary >
{\endofsubsentencespacing\prewordbreak\endofsubsentence}
-\definetextmodediscretionary . % not yet definitive
- {\prewordbreak\midsentence\prewordbreak}
+% \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{:}:}
- %\space\aftergroup\ignorespaces}
\definetextmodediscretionary ;
{\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{;};}
- %\space\aftergroup\ignorespaces}
\definetextmodediscretionary ?
{\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{?}?}
- %\space\aftergroup\ignorespaces}
\definetextmodediscretionary !
{\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{!}!}
- %\space\aftergroup\ignorespaces}
\definetextmodediscretionary *
{\prewordbreak\discretionary{-}{}{\kern.05em}\prewordbreak}
+% spanish
+
+\definetextmodediscretionary ??
+ {\prewordbreak\questiondown}
+
+\definetextmodediscretionary !!
+ {\prewordbreak\exclamdown}
+
\ifx\hspaceamount\undefined
\def\hspaceamount#1#2{\kern.16667em}
@@ -898,6 +914,10 @@
%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%
{\convertargument#1\to\discretionarytoken
\let\textmodediscretionary\compoundhyphen
@@ -954,16 +974,16 @@
\def\@cc@{@cc@} % compound character
\def\@cs@{@cs@} % compound characters
-% \def\installcompoundcharacter #1#2#3 #4% {{#4}} keeps move local
+% \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}}%
+% \setvalue{\@cc@\string#1\string#2}{#4}%
% \else
-% \setvalue{\@cs@\string#1\string#2\string#3}{{#4}}%
+% \setvalue{\@cs@\string#1\string#2\string#3}{#4}%
% \fi
% \catcode`#1=\@@active
% \scratchcounter=\the\uccode`~
@@ -971,7 +991,7 @@
% \uppercase{\unexpanded\def~{\handlecompoundcharacter~}}%
% \uccode`~=\scratchcounter}
-\def\installcompoundcharacter #1#2#3 #4% {{#4}} keeps move local
+\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
@@ -984,7 +1004,7 @@
\@cc@\string#1\string#2%
\else
\@cs@\string#1\string#2\string#3%
- \fi\endcsname{{#4}}%
+ \fi\endcsname{#4}%
\catcode\thecompoundcharacter\@@active
\scratchcounter\uccode\activehackcode
\uccode\activehackcode\thecompoundcharacter
@@ -1187,7 +1207,7 @@
%D
%D The following macro is taken from plain \TEX.
-\def\nonbreakablespace{\penalty\!!tenthousand\ }
+\def\nonbreakablespace{\penalty\plustenthousand\ }
\let~\nonbreakablespace
@@ -1356,6 +1376,8 @@
\else
\prewordbreak\discretionary{}{##1{}{}}{##1{}{}}\prewordbreak
\fi}%
+ \def\splitanyway##1%
+ {\prewordbreak##1\prewordbreak}%
\def\flushurl%
{\savedurl\let\savedurl\empty}%
\def\\%
@@ -1429,7 +1451,13 @@
\def\scanurl#1%
{\advance\scratchcounter\plusone
- \ifx#1\~%
+ \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\#%
@@ -1447,27 +1475,27 @@
\flushurl\splitbefore\#%
\else\ifnum\catcode`#1=4
\flushurl\splitbefore\&%
- \else\if#1\lettertilde
+ \else\expandafter\if\string#1\lettertilde
\flushurl\splitbefore\~%
- \else\if#1\letterpercent
+ \else\expandafter\if\string#1\letterpercent
\flushurl\splitbefore\%%
- \else\if#1\letterunderscore
+ \else\expandafter\if\string#1\letterunderscore
\flushurl\splitbefore\_%
- \else\if#1\letterquestionmark
+ \else\expandafter\if\string#1\letterquestionmark
\flushurl\splitafter\letterquestionmark
- \else\if#1\letterat
+ \else\expandafter\if\string#1\letterat
\flushurl\splitafter\letterat
- \else\if#1\letterslash
+ \else\expandafter\if\string#1\letterslash
\edef\savedurl{\savedurl\letterslash}%
- \else\if#1+%
+ \else\expandafter\if\string#1+%
\flushurl\splitafter+%
- \else\if#1:%
+ \else\expandafter\if\string#1:%
\flushurl\splitafter:%
- \else\if#1.%
+ \else\expandafter\if\string#1.%
\flushurl\splitafter.%
- \else\if#1(%
+ \else\expandafter\if\string#1(%
\flushurl\splitbefore(%
- \else\if#1)%
+ \else\expandafter\if\string#1)%
\flushurl\splitafter)%
\else
\ifx\savedurl\empty\else
@@ -1475,15 +1503,15 @@
\let\savedurl\empty
\fi
\ifcase\urlhyphenmethod
- #1%
+ \string#1%
\else
\ifnum\scratchcounter>\plusthree % so, \http: will not break
- \edef\savedurl{#1}%
+ \edef\savedurl{\string#1}%
\else
- #1%
+ \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\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)]}
@@ -1494,6 +1522,12 @@
% \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:
diff --git a/Master/texmf-dist/tex/context/base/supp-mat.tex b/Master/texmf-dist/tex/context/base/supp-mat.tex
index 15ae7fdd8d0..5b2305f8b5f 100644
--- a/Master/texmf-dist/tex/context/base/supp-mat.tex
+++ b/Master/texmf-dist/tex/context/base/supp-mat.tex
@@ -45,21 +45,41 @@
%D
%D Which is implemented as:
-\def\mathematics#1{\relax\ifmmode#1\else$#1$\fi} % lookahead bug reported by brooks
+\long\def\mathematics#1{\relax\ifmmode#1\else $#1$\fi} % lookahead bug reported by brooks
+\long\def\displaymath#1{\relax\ifmmode#1\else$$#1$$\fi}
+\long\def\inlinemath #1{\relax\ifmmode#1\else $#1$\fi}
-\def\startmathmode
- {\ifmmode
+\let\stopmathmode\relax
+
+\def\startmathmode % cannot be used nested
+ {\relax\ifmmode
\let\stopmathmode\relax
\else
$\def\stopmathmode{$}% \let\stopmathmode=$
\fi}
+\def\startmathmode % nested variant
+ {\relax\ifmmode
+ \begingroup\let\stopmathmode\endgroup
+ \else
+ $\let\stopmathmode$%
+ \fi}
+
\def\nomathematics#1%
- {\ifmmode\hbox{#1}\else#1\fi}
+ {\relax\ifmmode\hbox{#1}\else#1\fi}
\let\math\mathematics
%D \macros
+%D {displaymathematics,inlinemathematics,automathematics}
+%D
+%D An example of usage of the following can be found in the MathML module:
+
+\long\def\displaymathematics#1{\relax\ifmmode#1\else\dostartformula{}#1\dostopformula\fi}
+ \let\inlinemathematics \mathematics
+ \def\automathematics {\relax\ifhmode\@EA\inlinemathematics\else\@EA\displaymathematics\fi}
+
+%D \macros
%D {dimension, nodimension}
%D
%D The next few macros are used for typesetting dimensions in
diff --git a/Master/texmf-dist/tex/context/base/supp-mis.tex b/Master/texmf-dist/tex/context/base/supp-mis.tex
index 51205dc1ef4..d2105e34cf7 100644
--- a/Master/texmf-dist/tex/context/base/supp-mis.tex
+++ b/Master/texmf-dist/tex/context/base/supp-mis.tex
@@ -11,8 +11,6 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D I will clean up this module (a la supp-pdf.tex preamble).
-
%D Some support modules are more or less independant. This
%D module, which is not part of plain \CONTEXT, provides the
%D missing macros and declarations of registers.
@@ -22,7 +20,23 @@
%D Because \LATEX\ has no safe package loading mechanism, we
%D need to take care of possible interference.
-\def\StartLatexHack % replace this by the one in supp-pdf
+% \def\StartLatexHack
+% {\edef\StopLatexHack
+% {\catcode`\noexpand/=\the\catcode`/
+% \catcode`\noexpand-=\the\catcode`-
+% \catcode`\noexpand:=\the\catcode`:
+% \catcode`\noexpand;=\the\catcode`;
+% \catcode`\noexpand"=\the\catcode`"
+% \catcode`\noexpand<=\the\catcode`<
+% \catcode`\noexpand>=\the\catcode`>}%
+% \catcode`/=12 \catcode`-=12
+% \catcode`:=12 \catcode`;=12
+% \catcode`"=12 \catcode`<=12 \catcode`>=12 }
+
+%D Adapted conform request from morten.hoegholm@latex-project.org,
+%D i.e. untested by me; using strings makes Babel more happy.
+
+\def\StartLatexHack
{\edef\StopLatexHack
{\catcode\string`\noexpand/=\the\catcode\string`/
\catcode\string`\noexpand-=\the\catcode\string`-
@@ -175,29 +189,20 @@
\newdimen\scratchdimen % 21
\fi
-\def\stripnewabove#1%
- {\ifnum10<9#1 #1\else\expandafter\stripnewabove\fi}%
-
-\def\newabove\csname#1\endcsname#2% \dimen \name
- {\csname#1\endcsname#2%
- \ifnum\expandafter\stripnewabove\meaning#2>20\else
- \newabove\csname#1\endcsname#2%
- \fi}
-
-\ifnocontextobject \scratchcounter \do \newabove \csname newcount\endcsname \scratchcounter \fi
-\ifnocontextobject \scratchtoks \do \newabove \csname newtoks\endcsname \scratchtoks \fi
-\ifnocontextobject \scratchdimen \do \newabove \csname newdimen\endcsname \scratchdimen \fi
-\ifnocontextobject \scratchskip \do \newabove \csname newskip\endcsname \scratchskip \fi
-\ifnocontextobject \scratchmuskip \do \newabove \csname newmuskip\endcsname \scratchmuskip \fi
-\ifnocontextobject \scratchbox \do \csname newbox\endcsname \scratchbox \fi
-\ifnocontextobject \scratchread \do \csname newread\endcsname \scratchread \fi
-\ifnocontextobject \scratchwrite \do \csname newwrite\endcsname \scratchwrite \fi
+\ifnocontextobject \scratchcounter \do \newcount \scratchcounter \fi
+\ifnocontextobject \scratchtoks \do \newtoks \scratchtoks \fi
+\ifnocontextobject \scratchdimen \do \newdimen \scratchdimen \fi
+\ifnocontextobject \scratchskip \do \newskip \scratchskip \fi
+\ifnocontextobject \scratchmuskip \do \newmuskip \scratchmuskip \fi
+\ifnocontextobject \scratchbox \do \newbox \scratchbox \fi
+\ifnocontextobject \scratchread \do \newread \scratchread \fi
+\ifnocontextobject \scratchwrite \do \newwrite \scratchwrite \fi
%D Watch out, in the past we ran into troubles with \type {\onepoint}
%D (and others) mening something different in \LATEX\ then here. In
%D such situations clashes are bound to happen. For this reason the
%D assignments are no inside the test. We try to catch those situations
-%D but we cannot keep ahead of the future.
+%D but we cannot keep ahead of teh future.
\ifnocontextobject \zeropoint \do \newdimen \zeropoint \zeropoint = 0pt \fi % else problems with dimen12
\ifnocontextobject \onepoint \do \newdimen \onepoint \onepoint = 1pt \fi
@@ -655,7 +660,7 @@
\def\dodohandletokens
{\ifx\next\end \else
- \docommand{\next}%
+ \docommando{\next}%
\expandafter\dohandletokens
\fi}
@@ -663,7 +668,7 @@
{\afterassignment\dodohandletokens\let\next= }
\long\def\handletokens#1\with#2%
- {\let\docommand=#2%
+ {\let\docommando=#2%
\dohandletokens#1\end}
\fi
diff --git a/Master/texmf-dist/tex/context/base/supp-mpe.tex b/Master/texmf-dist/tex/context/base/supp-mpe.tex
index f1d54f7533d..04ee0a81376 100644
--- a/Master/texmf-dist/tex/context/base/supp-mpe.tex
+++ b/Master/texmf-dist/tex/context/base/supp-mpe.tex
@@ -38,11 +38,7 @@
%D \chardef\makeMPintoPDFobject\plusone
%D \stoptyping
-\ifx\writestatus\undefined
- \immediate\write16{[Loading MPS to PDF extensions.]}
-\else
- \writestatus{loading}{Context Support Macros / MPS extensions}
-\fi
+\writestatus{loading}{MetaPost Special Extensions}
%D We implement extensions by using the \METAPOST\ special
%D mechanism. Opposite to \TEX's specials, the \METAPOST\ ones
@@ -421,11 +417,6 @@
\ifnum\MPrgbnumber\lastMPgvalue>10 % really needed
\scratchcounter\MPrgbnumber\lastMPbvalue
\edef\currentMPspecial{\the\scratchcounter}%
-\let\previousMPcolorspec\currentMPcolorspec
-\edef\currentMPcolorspec{\lastMPrvalue\lastMPgvalue\lastMPbvalue}%
-\ifx\previousMPcolorspec\currentMPcolorspec \else
- \revokeMPtransparencyspecial
-\fi
\ifnum\finiMPpath=2 % to outer level
\the\invokeMPspecials
\fi
diff --git a/Master/texmf-dist/tex/context/base/supp-mps.tex b/Master/texmf-dist/tex/context/base/supp-mps.tex
index 23e6ccc89d9..17d26d631ca 100644
--- a/Master/texmf-dist/tex/context/base/supp-mps.tex
+++ b/Master/texmf-dist/tex/context/base/supp-mps.tex
@@ -50,6 +50,8 @@
\bgroup \catcode`\%=\@@other \xdef\letterpercent{\string%} \egroup
+% todo : sort out ^^M, \par and ; mess
+
%D \macros
%D {startMPgraphic}
%D
@@ -196,24 +198,111 @@
%D passing them to \type{\MPinclusions}:
%D
%D \starttyping
+%D \startMPinclusions
+%D input mp-mine ;
+%D \stopMPinclusions
+%D \stoptyping
+%D
+%D \starttyping
%D \MPinclusions{input mp-mine}
%D \stoptyping
%D
+%D These commands reset their content each time. You can append
+%D code as follows:
+%D
+%D \starttyping
+%D \startMPinclusions[+]
+%D input mp-mine ;
+%D \stopMPinclusions
+%D \stoptyping
+%D
%D The token register \type {\MPinitializations} is expanded
%D before all other inclusions, the extensions are expanded
%D only once per run.
-\newtoks \MPinitializations % each graphic
+%D The next hack prevents too long lines:
+
+\long\def\runtimeobeyMPlines
+ {\ifx\rawcharacter\undefined
+ \let\obeyedline\space
+ \else
+ \obeylines
+ \ifx\systemendofline\undefined
+ \def\obeyedline{\rawcharacter{10}}%
+ \else
+ \let\obeyedline\systemendofline
+ \fi
+ \fi}
+
+\long\def\obeyMPlines % anyhow, we end up with ^^M's in the input
+ {\obeylines
+ \let\obeyedline\relax} % delay expansion
+
+\ifx\everydump\undefined
+ % maybe we're not using context
+\else
+ \appendtoks
+ \let\obeyMPlines\runtimeobeyMPlines
+ \to \everydump
+\fi
+
+%D We use two distinguished token registers:
+
\newtoks \MPextensions % once per run (can be multiple graphics)
+\newtoks \MPinitializations % each graphic
+
+\let\stopMPextensions \relax % so that we can use it in \expanded
+\let\stopMPinitializations\relax % so that we can use it in \expanded
+\let\stopMPinclusions \relax % so that we can use it in \expanded
+
+\def\startMPextensions % no text checking done here !
+ {\begingroup
+ \obeyMPlines
+ \dostartMPextensions}
+
+\def\dostartMPextensions#1\stopMPextensions
+ {\endgroup
+ \MPextensions\expandafter{\the\MPextensions#1}}
-\long\def\startMPinclusions#1\stopMPinclusions % document wide
- {\long\def\theMPinclusions
- {% \expanded !
- \@EA\expanded\@EA{\@EA\writeMPgraphic\@EA{\the\MPextensions;}}% new
- \writeMPgraphic{#1}}}
+\def\startMPinitializations % no text checking done here !
+ {\begingroup
+ \obeyMPlines
+ \dostartMPinitializations}
-\long\def\MPinclusions#1%
- {\startMPinclusions#1\stopMPinclusions}
+\def\dostartMPinitializations#1\stopMPinitializations
+ {\endgroup
+ \MPinitializations\expandafter{\the\MPinitializations#1}}
+
+\def\startMPinclusions
+ {\begingroup
+ \dosingleempty\dostartMPinclusions}
+
+\long\def\dostartMPinclusions
+ {\obeyMPlines
+ \dodostartMPinclusions}
+
+\long\def\dodostartMPinclusions[#1]#2\stopMPinclusions % document wide
+ {\endgroup
+ \doifelse{#1}{+}
+ {\@EA\long\@EA\def\@EA\theMPinclusions\@EA
+ {\theMPinclusions
+ \writeMPgraphic{#2}}}
+ {\long\def\theMPinclusions
+ {% \expanded !
+% \@EA\expanded\@EA{\@EA\writeMPgraphic\@EA{\the\MPextensions;}}% new
+ \writeMPgraphic{#2}}}}
+
+\def\MPinclusions
+ {\dosingleempty\doMPinclusions}
+
+\long\def\doMPinclusions[#1]#2%
+ {\startMPinclusions[#1]#2\stopMPinclusions}
+
+\def\theMPextensions
+ {\@EA\expanded\@EA{\@EA\writeMPgraphic\@EA{\the\MPextensions;}}}
+
+\def\theMPinitializations
+ {\@EA\expanded\@EA{\@EA\writeMPgraphic\@EA{\the\MPinitializations;}}}
\startMPinclusions \stopMPinclusions
@@ -227,7 +316,7 @@
\newwrite\MPwrite
-\newif\iflongMPlines
+\newif\iflongMPlines \longMPlinestrue % we now have \obeyMPlines
\ifx \overlaywidth \undefined \def \overlaywidth {4cm} \fi
\ifx \overlayheight \undefined \def \overlayheight {3cm} \fi
@@ -327,7 +416,8 @@
\bgroup
\let\par\space
\iflongMPlines
- \immediate\write\MPwrite{#1;}%
+ %\immediate\write\MPwrite{#1;}% oeps, ; invalid
+ \immediate\write\MPwrite{#1}%
\else
\long\edef\ascii{#1}%
\expandafter\flushMPgraphicline\ascii\empty;\relax;%
@@ -394,16 +484,27 @@
% \the\MPTEXgraphicchecks\relax % \relax is end condition!
% \fi}
+% \long\def\writecheckedMPgraphic#1%
+% {\ifforceMPTEXgraphic
+% \global\MPTEXgraphictrue
+% \else
+% \global\MPTEXgraphicfalse
+% \expandafter\convertargument#1\to\MPascii
+% \the\MPTEXgraphicchecks\relax % \relax is end condition!
+% \fi
+% \flushMPTEXgraphic % verbatimtex etc
+% \writeMPgraphic{#1}}
+
\long\def\writecheckedMPgraphic#1%
{\ifforceMPTEXgraphic
\global\MPTEXgraphictrue
\else
\global\MPTEXgraphicfalse
- \expandafter\convertargument#1\to\MPascii
+ \edef\ascii{#1}\convertcommand\ascii\to\MPascii
\the\MPTEXgraphicchecks\relax % \relax is end condition!
\fi
\flushMPTEXgraphic % verbatimtex etc
- \writeMPgraphic{#1}}
+ \writeMPgraphic{#1}} % potential optimization: pass \ascii
%D We could have used a kind of array approach using a
%D counter appended to \type {MPascii}, but this is an
@@ -434,6 +535,18 @@
%D \stopMPcode
%D \stoptyping
+%D A goodie for Mojca (the gnuplot wizzard):
+%D
+%D \starttyping
+%D \startMPcode
+%D draw fullcircle scaled 4cm ;
+%D draw \textext{$\sqrt{\frac{3}{2}^3}$} ;
+%D \stopMPcode
+%D \stoptyping
+
+\long\def\textext#1{\normalunexpanded{textext("#1")}} % or \detokenize
+
+
\def\flushMPTEXgraphic
{\ifMPTEXgraphic
\immediate\write\MPwrite{verbatimtex \the\everyMPTEXgraphic\space etex;}%
@@ -536,6 +649,17 @@
\let \} \letterclosebrace
\to \everyMPgraphic
+%D Not the best place but we need to make sure that no funny
+%D active characters creep in. Some day we will move this code.
+
+\ifx\disablediscretionaries\undefined
+ \let\disablediscretionaries\relax
+\fi
+
+\appendtoks
+ \disablediscretionaries
+\to \everyMPgraphic
+
\def\writeMPgraph
{\immediate\write\MPwrite{mpgraph:=\the\currentMPgraphic;}}
@@ -546,64 +670,6 @@
\fi
\endTEX
-% buggy (at least in collected graphics, lazy expansion)
-%
-% \def\startwritingMPgraphic
-% {\blabelgroup
-% \global\advance\nofMPgraphics 1
-% \ifMPrun \else
-% \allocateMPslot\currentMPgraphic
-% \fi
-% \enableincludeMPgraphics
-% \xdef\MPgraphic{\the\currentMPgraphic}%
-% \the\everyMPgraphic
-% \ifrunMPgraphics
-% \openMPgraphicfile1{runtime}%
-% % no reset here !
-% \theMPinclusions
-% \else
-% \openMPgraphicfile0{collected}%
-% % reset here ! global added (due to adding \blabelgroup)
-% \theMPinclusions
-% \global\let\theMPinclusions\relax
-% \fi
-% \flushMPTEXgraphic
-% \ifMPrun \else
-% \immediate\write\MPwrite{let mprunend = end ;}%
-% \immediate\write\MPwrite{beginfig(\the\currentMPgraphic);}%
-% \fi
-% \globallet\flushMPgraphics\closeMPgraphicfiles % \dodostopwritingMPgraphic
-% \globallet\stopwritingMPgraphic=\dostopwritingMPgraphic}
-
-% \def\startwritingMPgraphic
-% {\blabelgroup
-% \global\advance\nofMPgraphics 1
-% \ifMPrun \else
-% \allocateMPslot\currentMPgraphic
-% \fi
-% \enableincludeMPgraphics
-% \xdef\MPgraphic{\the\currentMPgraphic}%
-% \the\everyMPgraphic
-% \ifrunMPgraphics
-% \openMPgraphicfile1{runtime}%
-% % no reset here !
-% \theMPinclusions
-% \@EA\expanded\@EA{\@EA\writeMPgraphic\@EA{\the\MPinitializations;}}%
-% \else
-% \openMPgraphicfile0{collected}%
-% % reset here ! global added (due to adding \blabelgroup)
-% \theMPinclusions
-% \global\let\theMPinclusions\relax
-% \fi
-% \flushMPTEXgraphic
-% \ifMPrun \else
-% \immediate\write\MPwrite{let mprunend = end ;}%
-% \immediate\write\MPwrite{beginfig(\the\currentMPgraphic);}%
-% \@EA\expanded\@EA{\@EA\writeMPgraphic\@EA{\the\MPinitializations;}}%
-% \fi
-% \globallet\flushMPgraphics\closeMPgraphicfiles % \dodostopwritingMPgraphic
-% \globallet\stopwritingMPgraphic=\dostopwritingMPgraphic}
-
\def\startwritingMPgraphic
{\blabelgroup
@@ -618,21 +684,26 @@
\ifrunMPgraphics
\openMPgraphicfile1{runtime}%
% no reset here !
+ \theMPextensions
\theMPinclusions
- \@EA\expanded\@EA{\@EA\writeMPgraphic\@EA{\the\MPinitializations;}}%
+% \theMPinitializations
\else
\openMPgraphicfile0{collected}%
% reset here ! global added (due to adding \blabelgroup)
+ \theMPextensions
\theMPinclusions
+ \global\let\theMPextensions\relax
\global\let\theMPinclusions\relax
\fi
- %\flushMPTEXgraphic
- \ifMPrun \else
+ \theMPinitializations % always
+ \ifMPrun
+% \theMPinitializations
+ \else
\immediate\write\MPwrite{let mprunend = end ;}%
\immediate\write\MPwrite{beginfig(\the\currentMPgraphic);}%
- \ifrunMPgraphics \else
- \@EA\expanded\@EA{\@EA\writeMPgraphic\@EA{\the\MPinitializations;}}%
- \fi
+% \ifrunMPgraphics \else
+% \theMPinitializations
+% \fi
\fi
\globallet\flushMPgraphics\closeMPgraphicfiles % \dodostopwritingMPgraphic
\globallet\stopwritingMPgraphic\dostopwritingMPgraphic}
@@ -656,7 +727,7 @@
\fi
\@EA\let\@EA\MPwrite\csname\@@MPG\@@MPG\MPgraphicfile\endcsname
\ifdone
- \immediate\openout\MPwrite=\MPgraphicfile.mp
+ \immediate\openout\MPwrite\MPgraphicfile.mp\relax
\ifx\MPinputtranslation\empty\else
\immediate\write\MPwrite{\MPinputtranslation}%
\immediate\write\MPwrite{verbatimtex \MPinputtranslation etex ;}%
@@ -852,6 +923,18 @@
\newcount\MPobjectcounter
+% \def\douseMPbox#1%
+% {\global\advance\MPobjectcounter\plusone
+% \setobject{MP}{\number\MPobjectcounter}\vbox
+% {\forgetall
+% \loadMPgraphic{\MPgraphicfile.\the\currentMPgraphic}{}%
+% \deallocateMPslot\currentMPgraphic
+% \placeMPgraphic}%
+% \setxvalue{#1}{\noexpand\getobject{MP}{\number\MPobjectcounter}}}
+%
+% The next one saves the boundingbox. This helps positioning reused
+% graphics in layers.
+
\def\douseMPbox#1%
{\global\advance\MPobjectcounter\plusone
\setobject{MP}{\number\MPobjectcounter}\vbox
@@ -859,7 +942,15 @@
\loadMPgraphic{\MPgraphicfile.\the\currentMPgraphic}{}%
\deallocateMPslot\currentMPgraphic
\placeMPgraphic}%
- \setxvalue{#1}{\noexpand\getobject{MP}{\number\MPobjectcounter}}}
+ \setxvalue{#1}%
+ {\noexpand\dodouseMPbox{\number\MPobjectcounter}{\MPllx}{\MPlly}{\MPurx}{\MPury}}}
+
+\def\dodouseMPbox#1#2#3#4#5% space delimiting would save some tokens
+ {\xdef\MPllx{#2}% but it's not worth the effort and looks
+ \xdef\MPlly{#3}% ugly as well
+ \xdef\MPurx{#4}%
+ \xdef\MPury{#5}%
+ \getobject{MP}{#1}}
\def\nouseMPbox#1%
{\setxvalue{#1}%
@@ -899,6 +990,8 @@
\getvalue{\@@MPG#1}%
\elabelgroup}
+\let\stopreusableMPgraphic \relax % so that we can use it in \expanded
+
%D \macros
%D {startuseMPgraphic,useMPgraphic}
%D
@@ -922,18 +1015,29 @@
\deallocateMPslot\currentMPgraphic
\egroup}
-\long\def\startuseMPgraphic#1#2\stopuseMPgraphic
+\long\def\startuseMPgraphic
{\blabelgroup
- \long\setgvalue{\@@MPG#1}{\handleuseMPgraphic{#1}{#2}}%
+ \obeyMPlines
+ \dostartuseMPgraphic}
+
+\long\def\dostartuseMPgraphic#1#2\stopuseMPgraphic
+ {\long\setgvalue{\@@MPG#1}{\handleuseMPgraphic{#1}{#2}}%
\elabelgroup}
-\long\def\startusableMPgraphic#1#2\stopusableMPgraphic % dummy
+\long\def\startusableMPgraphic
{\blabelgroup
- \long\setgvalue{\@@MPG#1}{\handleuseMPgraphic{#1}{#2}}%
+ \obeyMPlines
+ \dostartusableMPgraphic}
+
+\long\def\dostartusableMPgraphic#1#2\stopusableMPgraphic
+ {\long\setgvalue{\@@MPG#1}{\handleuseMPgraphic{#1}{#2}}%
\elabelgroup}
\let\useMPgraphic=\reuseMPgraphic
+\let\stopuseMPgraphic \relax % so that we can use it in \expanded
+\let\stopusableMPgraphic \relax % so that we can use it in \expanded
+
%D \macros
%D {doifMPgraphicelse}
%D
@@ -1014,22 +1118,24 @@
\def\executesystemcommand#1{\immediate\write18{#1}}
\fi
+\ifx\TEXEXECcommand \undefined \def\TEXEXECcommand{texmfstart texexec} \fi
+
\ifx\undefined\executeMetaPost
\ifx\undefined\interactionmode \chardef\interactionmode=255 \fi
\def\MPOSTbatchswitch {-int=batchmode}
\def\MPOSTnonstopswitch {-int=nonstopmode}
- \def\MPOSTformatswitch {-progname=mpost -mem=}
+ \def\MPOSTformatswitch {-progname=metafun -mem=}
\def\MPOSTdriver {dvips}
- \def\executeMPOST#1%
+ \def\executeMPOST#1% direct call
{mpost
\ifcase\interactionmode\MPOSTbatchswitch\or\MPOSTnonstopswitch\fi
\space\ifuseMETAFUNformat \MPOSTformatswitch metafun \fi #1}
- \def\executeMPTEX#1%
- {texexec
+ \def\executeMPTEX#1% slower, due to nested texexec call
+ {\TEXEXECcommand\space
--batch \ifcase\interactionmode --logfile='mptex.log' \fi
--output=\MPOSTdriver\space
\ifuseMETAFUNformat --mpformat=metafun \fi --mptex --nomp --once #1}
@@ -1156,7 +1262,7 @@
\bgroup
\message{[MP fonts #1]}%
%\uncatcodespecials
- \endlinechar=-1
+ \endlinechar\minusone
\setMPspecials
\obeyMPspecials
\setbox\scratchbox\hbox
@@ -1406,18 +1512,18 @@
\endlinechar\minusone
\uncatcodespecials
\donefalse
- \immediate\openout\scratchwrite=\convertMPcolorpath\convertMPcolorfile
+ \immediate\openout\scratchwrite\convertMPcolorpath\convertMPcolorfile\relax
\doprocessfile\scratchread{#1}\handleMPcolor
\immediate\closeout\scratchwrite
\ifdone
- \immediate\openout\scratchwrite=\convertMPcolorpath#1\relax
+ \immediate\openout\scratchwrite\convertMPcolorpath#1\relax
\doprocessfile\scratchread{\convertMPcolorpath \convertMPcolorfile}\handleMPcopy
\immediate\closeout\scratchwrite
\message{done]}%
\else
\message{not needed]}%
\fi
- \immediate\openout\scratchwrite=\convertMPcolorpath\convertMPcolorfile
+ \immediate\openout\scratchwrite\convertMPcolorpath\convertMPcolorfile
\immediate\closeout\scratchwrite
\fi
\egroup}
@@ -1640,7 +1746,7 @@
\def\getMPdrawing
{\ifMPdrawingdone
\expandafter\startMPgraphic\MPdrawingdata\stopMPgraphic
- \loadcurrentMPgraphic\empty
+ \loadcurrentMPgraphic{}%
\deallocateMPslot\currentMPgraphic
\placeMPgraphic
\fi}
@@ -1858,7 +1964,57 @@
%D
%D this automatically places the graphic
-\long\def\startMPcode#1\stopMPcode
- {\startuseMPgraphic{@@}#1\stopuseMPgraphic\useMPgraphic{@@}}
+\long\def\startMPcode
+ {\begingroup
+ \obeyMPlines
+ \dostartMPcode}
+
+\long\def\dostartMPcode#1\stopMPcode
+ {\startuseMPgraphic{@@}#1\stopuseMPgraphic
+ \useMPgraphic{@@}%
+ \endgroup}
+
+\let\stopMPcode \relax % so that we can use it in \expanded
+
+%D \macros
+%D {startstaticMPgraphic}
+%D
+%D Dedicated to Aditya Mahajan. See meta-ini for usage.
+
+\long\def\startstaticMPgraphic#1#2\stopstaticMPgraphic
+ {\bgroup
+ \setMPrandomseedfalse
+ \def\MPgraphicfile{#1}% no \jobname here
+ \let\allocateMPslot \gobbleoneargument
+ \let\deallocateMPslot\gobbleoneargument
+ \let\runMPgraphic \gobbleoneargument
+ \runMPgraphicstrue
+ \enableincludeMPgraphics
+ \currentMPgraphic\plusone % hack, else no close
+ \startMPgraphic#2\stopMPgraphic
+ \executeMPgraphicfile
+ \egroup}
+
+
+\ifx\doifmode\undefined
+ \def\executeMPgraphicfile
+ {\executesystemcommand
+ {texmfstart --ifchanged=\MPgraphicfile.mp
+ texexec --mpgraphic \MPgraphicfile.mp}}
+\else
+ \def\executeMPgraphicfile
+ {\doifmode{*\v!first}{\executesystemcommand
+ {texmfstart --ifchanged=\MPgraphicfile.mp
+ texexec --mpgraphic \MPgraphicfile.mp}}}
+\fi
+
+%D Special for \XETEX\ (problem with newlines). This will go
+%D away once the version supporting \type {--8bit} is
+%D widespread.
+
+\beginXETEX
+ \let\obeyMPlines\relax
+ \longMPlinesfalse % alas
+\endXETEX
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/supp-mrk.tex b/Master/texmf-dist/tex/context/base/supp-mrk.tex
index 0cab213c489..eb03b5251f0 100644
--- a/Master/texmf-dist/tex/context/base/supp-mrk.tex
+++ b/Master/texmf-dist/tex/context/base/supp-mrk.tex
@@ -411,9 +411,11 @@
\normalmarks#1{#2}}
\def\setnormalmark#1#2% using a tok prevents unwanted expansion in mark
- {\scratchtoks{#2}%
+ {\begingroup % don't ask why, but grouping is needed
+ \scratchtoks{#2}% in order to to mess up scratchtoks
\@EA\xdef\csname\@@crk\string#1\endcsname{\the\scratchtoks}%
- \normalmarks#1{\the\scratchtoks}} % one level expansion
+ \normalmarks#1{\the\scratchtoks}% one level expansion
+ \endgroup}
\def\checktopmark#1%
{%\writestatus{marks}{checking \string#1}\wait
diff --git a/Master/texmf-dist/tex/context/base/supp-pdf.tex b/Master/texmf-dist/tex/context/base/supp-pdf.tex
index 5197e564d7f..656a8f6fbce 100644
--- a/Master/texmf-dist/tex/context/base/supp-pdf.tex
+++ b/Master/texmf-dist/tex/context/base/supp-pdf.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=supp-pdf,
-%D version=2006.09.02, % 2004.12.16,
+%D version=2004.12.16,
%D title=\CONTEXT\ Support Macros,
%D subtitle=\METAPOST\ to \PDF\ conversion,
%D author=Hans Hagen \& others (see text),
@@ -11,142 +11,6 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\ifx\writestatus\undefined
- \immediate\write16{[Loading MPS to PDF converter (version 2006.09.02).]}
-\else
- \writestatus{loading}{Context Support Macros / PDF}
-\fi
-
-%D This module is not optimized because it is used outside
-%D \CONTEXT\ and we cannot forsee what interference will take
-%D place. We no longer load supp-mis. I got too tired of
-%D keeping track of interferences with non \CONTEXT\ usage so
-%D I moved the necessary code in here and use a derived version
-%D in \CONTEXT. When I have the time I will clean up some of the
-%D code that is of no use for non||\CONTEXT\ users.
-
-\ifx\contextversion\undefined
-
- \chardef\mptopdfstoredatcode\catcode`\@
-
- \catcode\string`@=11
-
- \def\unprotect
- {\let\@@mpstopdf@@unprotect \unprotect
- \let\@@mpstopdf@@protect \protect
- \edef\protect
- {\noexpand \let \noexpand \protect \noexpand \@@mpstopdf@@protect
- \noexpand \let \noexpand \unprotect \noexpand \@@mpstopdf@@unprotect
- % context specific
- \catcode\string`\noexpand @=\the\catcode\string`@
- \catcode\string`\noexpand !=\the\catcode\string`!
- \catcode\string`\noexpand ?=\the\catcode\string`?
- % latex specific
- \catcode\string`\noexpand /=\the\catcode\string`/
- \catcode\string`\noexpand -=\the\catcode\string`-
- \catcode\string`\noexpand :=\the\catcode\string`:
- \catcode\string`\noexpand ;=\the\catcode\string`;
- \catcode\string`\noexpand "=\the\catcode\string`"
- \catcode\string`\noexpand <=\the\catcode\string`<
- \catcode\string`\noexpand >=\the\catcode\string`>
- \catcode\string`\noexpand `=\the\catcode\string``}
- \catcode\string`@=11 \catcode\string`!=11 \catcode\string`?=11
- \catcode\string`/=12 \catcode\string`-=12
- \catcode\string`:=12 \catcode\string`;=12
- \catcode\string`>=12 \catcode\string`<=12
- \catcode\string`"=12 \catcode\string``=12 }
-
- \def\defineMPtoPDFfallbacks
- {% shortcuts
- \chardef\@@escape 0
- \chardef\@@begingroup 1
- \chardef\@@endgroup 2
- \chardef\@@endofline 5
- \chardef\@@ignore 9
- \chardef\@@space 10
- \chardef\@@letter 11
- \chardef\@@other 12
- \chardef\@@active 13
- \chardef\@@comment 14
- % placeholders
- \ifx\withoutpt \undefined \let\withoutpt \@@mptopdf@@withoutpt \fi
- \ifx\twodigitrounding \undefined \let\twodigitrounding \@@mptopdf@@twodigitrounding \fi
- \ifx\forgetall \undefined \let\forgetall \@@mptopdf@@forgetall \fi
- \ifx\uncatcodespecials \undefined \let\uncatcodespecials \@@mptopdf@@uncatcodespecials \fi
- \ifx\setnaturalcatcodes\undefined \let\setnaturalcatcodes\@@mptopdf@@setnaturalcatcodes \fi
- \ifx\dospecials \undefined \let\dospecials \@@mptopdf@@dospecials \fi}
-
- \def\@@mptopdf@@forgetall
- {\parskip0pt\leftskip0pt\parindent0pt\everypar{}}
-
- \def\@@mptopdf@@twodigitrounding#1%
- {#1}%
-
- \def\@@mptopdf@@uncatcodespecials
- {\def\do##1{\catcode`##1=\@@other}\dospecials
- \catcode`\ =\@@space
- \catcode`\^^L=\@@ignore
- \catcode`\^^M=\@@endofline
- \catcode`\^^?=\@@ignore}
-
- \def\@@mptopdf@@setnaturalcatcodes
- {\catcode`\!=\@@other \catcode`\?=\@@other \catcode`\@=\@@other
- \catcode`\#=\@@other \catcode`\&=\@@other \catcode`\|=\@@other
- \catcode`\$=\@@other \catcode`\^=\@@other \catcode`\_=\@@other
- \catcode`\*=\@@other \catcode`\/=\@@other
- \catcode`\-=\@@other \catcode`+=\@@other
- \catcode`\==\@@other \catcode`\<=\@@other \catcode`\>=\@@other
- \catcode`\"=\@@other \catcode`\'=\@@other \catcode`\`=\@@other
- \catcode`\:=\@@other \catcode`\;=\@@other
- \catcode`\,=\@@other \catcode`\.=\@@other \catcode`\~=\@@other
- \catcode`\(=\@@other \catcode`\)=\@@other
- \catcode`\{=\@@other \catcode`\}=\@@other
- \catcode`\\=\@@other \catcode`\%=\@@other}
-
- \def\@@mptopdf@@dospecials
- {\do\ \do\\\do\{\do\}\do\$%
- \do\#\do\^\do\_\do\&\do\%%
- \do\~\do\^^A\do\^^K}
-
- {
- \catcode`\.=12
- \catcode`\p=12
- \catcode`\t=12
- \gdef\@@MPTOPDF@@WITHOUTPT#1pt{#1}
- }
-
- \def\@@mptopdf@@withoutpt#1%
- {\expandafter\@@MPTOPDF@@WITHOUTPT#1}
-
-% \def\@@mptopdf@@newabove#1#2% \dimen \name
-% {#1#2%
-% \ifnum\expandafter\gobblesixarguments\meaning#2>20\else
-% \expandafter\@@mptopdf@@newabove\expandafter#1\expandafter#2%
-% \fi}
-
- \def\@@mptopdf@@stripnewabove#1%
- {\ifnum10<9#1 #1\else\expandafter\@@mptopdf@@stripnewabove\fi}%
-
- \def\@@mptopdf@@newabove\csname#1\endcsname#2% \dimen \name
- {\csname#1\endcsname#2%
- \ifnum\expandafter\@@mptopdf@@stripnewabove\meaning#2>20\else
- \@@mptopdf@@newabove\csname#1\endcsname#2%
- \fi}
-
- \@@mptopdf@@newabove \csname newcount\endcsname \scratchcounter
- \@@mptopdf@@newabove \csname newdimen\endcsname \scratchdimen
- \csname newbox\endcsname \scratchbox
-
- \expandafter \newif \csname ifdone\endcsname
-
- \catcode`\@=\mptopdfstoredatcode
-
-\else
-
- \let\defineMPtoPDFfallbacks\relax
-
-\fi
-
%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
@@ -161,10 +25,23 @@
%D his initials. (We keep the old code around because it's a
%D nice illustration on how a module like this evolves.)
-%D Beware, we cannot use \zeropoint here since it may be
-%D defined in the range \dimen 0 - 20 which we happen to use
-%D as scratch registers; inside context we may consider
-%D using dedicated registers.
+% Beware, we cannot use \zeropoint here since it may be
+% defined in the range \dimen 0 - 20 which we happen to use
+% as scratch registers; inside context we may consider
+% using dedicated registers.
+
+% fails: ( ) vect10 9.96265 fshow % \040\040\040\040
+%
+% some optimizations are possible, but we need to be generic
+
+%D First we take care of non||\CONTEXT\ use (newlines needed,
+%D expandafter not -).
+
+\ifx \undefined \writestatus \input supp-mis.tex \relax \fi
+
+\ifx \undefined \convertMPtoPDF \else \expandafter \endinput \fi
+
+\ifx \undefined \StartLatexHack \else \StartLatexHack \fi
%D This module handles some \PDF\ conversion and insertions
%D topics. By default, the macros use the \PDFTEX\ primitive
@@ -172,6 +49,8 @@
%D default engine for \TEX\ distributions, we need a more complex
%D test.
+\writestatus{loading}{Context Support Macros / PDF (2004.03.26)}
+
\unprotect
\ifx\PDFcode\undefined
@@ -190,7 +69,7 @@
%D First we define a handy constant:
-\bgroup \defineMPtoPDFfallbacks \catcode`\%=\@@other \xdef\letterpercent{\string%} \egroup
+\bgroup \catcode`\%=\@@other \xdef\letterpercent{\string%} \egroup
%D \macros
%D {pdfimage,pdfimages,pdfclippedimage}
@@ -215,6 +94,12 @@
%D \pdfclippedimage <optional dimensions> {file} {l} {r} {t} {b}
%D \stoptyping
+% \ifx\pdftexversion\undefined % no \m!systems for the sake of latex
+% \writestatus{systems}{Why not use pdf(e)TeX binaries?}
+% \protect
+% \expandafter\endinput
+% \fi
+
\ifx\pdftexversion\undefined \else \ifnum\pdftexversion>13
\def\pdfimage#1#%
@@ -229,8 +114,11 @@
\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}%
+ \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}
@@ -277,12 +165,218 @@
\fi \fi
+%D \macros
+%D {convertPDFtoPDF}
+%D
+%D \PDFTEX\ supports verbatim inclusion of \PDF\ code. The
+%D following macro takes care of inserting externally defined
+%D illustrations in \PDF\ format. According to a suggestion
+%D Tanmoy Bhattacharya posted to the \PDFTEX\ mailing list, we
+%D first skip lines until \type{stream} is reached and then
+%D copy lines until \type{endstream} is encountered. This
+%D scheme only works with vectorized graphics in which no
+%D indirect references to objects are used. Bitmaps also don't
+%D work. Interpreting their specifications is beyond the
+%D current implementation.
+%D
+%D \starttyping
+%D \convertPDFtoPDF
+%D {filename}
+%D {x scale} {y scale}
+%D {x offset } {y offset}
+%D {width} {height}
+%D \stoptyping
+%D
+%D When the scales are set to~1, the last last four values
+%D are the same as the bounding box, e.g.
+%D
+%D \starttyping
+%D \convertPDFtoPDF{mp-pra-1.pdf} {1} {1}{-1bp}{-1bp}{398bp}{398bp}
+%D \convertPDFtoPDF{mp-pra-1.pdf}{.5}{.5} {0bp} {0bp}{199bp}{199bp}
+%D \stoptyping
+%D
+%D Keep in mind, that this kind of copying only works for
+%D pure and valid pdf code (without fonts).
+
+%D The scanning and copying is straightforward and quite fast.
+%D To speed up things we use two constants.
+
+\def\@@PDFstream@@ {stream}
+\def\@@PDFendstream@@ {endstream}
+
+%D \macros
+%D {PDFmediaboxprefered}
+%D
+%D If needed, the macros can scan for the mediabox that
+%D specifies the dimensions and offsets of the graphic. When
+%D we say:
+%D
+%D \starttyping
+%D \PDFmediaboxpreferedtrue
+%D \stoptyping
+%D
+%D the mediabox present in the file superseded the user
+%D specified, already scaled and calculated offset and
+%D dimensions. Beware: the user supplied values are not the
+%D bounding box ones!
+
+%D This code has become obsolete.
+
+% \newif\ifPDFmediaboxprefered
+
+\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=#2bp\dimen2=-\dimen2 % \dimen2=-#2bp also works since tex handles --
+ \dimen4=#3bp\dimen4=-\dimen4 % \dimen4=-#3bp also works since tex handles --
+ \dimen6=#4bp\advance\dimen6 \dimen2
+ \dimen8=#5bp\advance\dimen8 \dimen4
+ \setPDFboundingbox{\dimen2}{\dimen4}{\dimen6}{\dimen8}\PDFxscale\PDFyscale}
+
+% \def\checkPDFmediabox#1/MediaBox#2#3\done
+% {\ifx#2\relax \else
+% \message{mediabox}%
+% \setPDFmediabox#2#3\done
+% \fi}
+
+%D We use the general macro \type{\doprocessfile} and feed this
+%D with a line handling macro that changes it's behavior when
+%D the stream operators are encountered.
+
+% \def\handlePDFline
+% {\ifx\@@PDFstream@@\fileline
+% \let\doprocessPDFline\copyPDFobject
+% \startPDFtoPDF
+% \else\ifPDFmediaboxprefered
+% \expandafter\checkPDFmediabox\fileline/MediaBox\relax\done
+% \fi\fi}
+
+% \def\copyPDFobject
+% {\ifx\@@PDFendstream@@\fileline
+% \ifPDFmediaboxprefered
+% \let\doprocessPDFline\findPDFmediabox
+% \else
+% \let\doprocessPDFline\relax
+% \fi
+% \else
+% \advance\scratchcounter 1
+% \PDFcode{\fileline}%
+% \fi}
+
+% \def\findPDFmediabox
+% {\expandafter\checkPDFmediabox\fileline/MediaBox\relax\done}
+
%D The main conversion macro wraps the \PDF\ codes in a box
%D that is output as an object. The graphics are embedded
%D in~\type{q} and~\type{Q} and are scaled and positioned using
%D one transform call (\type{cm}). This saves some additional
%D scaling.
+%D \starttyping
+%D \def\startPDFtoPDF%
+%D {\setbox0=\vbox\bgroup
+%D \message{[PDF to PDF \PDFfilename}%
+%D \forgetall
+%D \scratchcounter=0
+%D \let\stopPDFtoPDF=\dostopPDFtoPDF}
+%D
+%D \def\dostopPDFtoPDF%
+%D {\ifnum\scratchcounter<0 \scratchcounter=1 \fi
+%D \message{(\the\scratchcounter\space lines)]}%
+%D \egroup
+%D \wd0=\PDFwidth
+%D \vbox to \PDFheight
+%D {\forgetall
+%D \vfill
+%D \PDFcode{q}%
+%D \PDFcode{1 0 0 1 \PDFxoffset\space \PDFyoffset\space cm}%
+%D \PDFcode{\PDFxscale\space 0 0 \PDFyscale\space 0 0 cm}%
+%D \box0
+%D \PDFcode{Q}}}
+%D
+%D \def\stopPDFtoPDF%
+%D {\message{[PDF to PDF \PDFfilename\space not found]}}
+%D
+%D \def\convertPDFtoPDF#1#2#3#4#5#6#7%
+%D {\bgroup
+%D \def\PDFfilename{#1}%
+%D \def\PDFxscale {#2}%
+%D \def\PDFyscale {#3}%
+%D \setPDFboundingbox{#4}{#5}{#6}{#7}{1}{1}%
+%D \uncatcodespecials
+%D \endlinechar=-1
+%D \let\doprocessPDFline=\handlePDFline
+%D \doprocessfile\scratchread\PDFfilename\doprocessPDFline
+%D \stopPDFtoPDF
+%D \egroup}
+
+\def\convertPDFtoPDF#1#2#3#4#5#6#7%
+ {\message{[PDF to PDF use \string\PDFcode instead]}%
+ \vbox{use the direct method instead}}
+
+%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}
+
%D \macros
%D {convertMPtoPDF}
%D
@@ -411,17 +505,17 @@
\def\@@MP{@@MP}
\def\setMPargument% #1%
- {\advance\nofMParguments 1
+ {\advance\nofMParguments \plusone
\expandafter\def
\csname\@@MP\the\nofMPsegments\the\nofMParguments\endcsname} % {#1}
\def\letMPargument
- {\advance\nofMParguments 1
+ {\advance\nofMParguments \plusone
\expandafter\let
\csname\@@MP\the\nofMPsegments\the\nofMParguments\endcsname}
\def\setMPsequence#1 %
- {\advance\nofMParguments 1
+ {\advance\nofMParguments \plusone
\expandafter\def
\csname\@@MP\the\nofMPsegments\the\nofMParguments\endcsname{#1}%
\handleMPsequence}
@@ -433,12 +527,12 @@
{\csname\@@MP\the\nofMPsegments\number#1\endcsname}
\def\dogMPa#1%
- {\expandafter\expandafter\expandafter\do\csname\@@MP0\number#1\endcsname}
+ {\@EAEAEA\do\csname\@@MP0\number#1\endcsname}
\def\setMPkeyword#1 %
{\expandafter\def\csname\@@MP\the\nofMPsegments0\endcsname{#1}%
- \advance\nofMPsegments 1
- \nofMParguments0}
+ \advance\nofMPsegments \plusone
+ \nofMParguments\zerocount}
\def\getMPkeyword% #1%
{\csname\@@MP\the\nofMPsegments0\endcsname} % {\csname\@@MP#10\endcsname}
@@ -455,7 +549,7 @@
%D when dealing with comments.
\def\doresetMPstack
- {\nofMParguments0}
+ {\nofMParguments\zerocount}
\def\resetMPstack
{\let\handleMPgraphic\handleMPendgraphic
@@ -503,7 +597,6 @@
%D when needed we either ignore or obey them
\bgroup
-\defineMPtoPDFfallbacks
\catcode`\|=\@@comment
\catcode`\%=\@@active
\catcode`\[=\@@active
@@ -560,7 +653,6 @@
%D that we cannot change the catcodes in between.
\bgroup
-\defineMPtoPDFfallbacks
\catcode`\%=\@@active
\gdef\startMPscanning{\let%=\startMPconversion}
\egroup
@@ -588,15 +680,17 @@
%D speed up the conversion by handling the \type{path}
%D seperately.
+\def\@EAEAEA{\expandafter\expandafter\expandafter} % to be sure
+
\def\dohandleMPsequence#1%
{\ifdone
\ifcase\lccode`#1\relax
- \expandafter\expandafter\expandafter\dohandleMPsequenceA
+ \@EAEAEA\dohandleMPsequenceA
\else
- \expandafter\expandafter\expandafter\dohandleMPsequenceB
+ \@EAEAEA\dohandleMPsequenceB
\fi
\else
- \expandafter\dohandleMPsequenceC
+ \@EA\dohandleMPsequenceC
\fi#1}
%\def\dohandleMPsequenceA#1 %
@@ -756,20 +850,20 @@
{\ifnum#1>\currentMPboundingbox
\xdef\MPllx{#2}\xdef\MPlly{#3}%
\xdef\MPurx{#4}\xdef\MPury{#5}%
- \dimen0=#2pt
+ \dimen0=#2\onepoint
\dimen0=-\MPxscale\dimen0
- \dimen2=#3pt
+ \dimen2=#3\onepoint
\dimen2=-\MPyscale\dimen2
\xdef\MPxoffset{\withoutpt\the\dimen0}%
\xdef\MPyoffset{\withoutpt\the\dimen2}%
- \dimen0=#2bp
+ \dimen0=#2\onebasepoint
\dimen0=-\dimen0
- \dimen2=#3bp
+ \dimen2=#3\onebasepoint
\dimen2=-\dimen2
- \advance\dimen0 #4bp
+ \advance\dimen0 #4\onebasepoint
\dimen0=\MPxscale\dimen0
\xdef\MPwidth{\the\dimen0}%
- \advance\dimen2 #5bp
+ \advance\dimen2 #5\onebasepoint
\xdef\MPyshift{\the\dimen2}% unscaled
\dimen2=\MPyscale\dimen2
\xdef\MPheight{\the\dimen2}%
@@ -779,7 +873,7 @@
\let\handleMPsequence\dohandleMPsequence
\let\next\handleMPsequence
\ifskipemptyMPgraphic
- \ifdim\MPheight=0pt\relax\ifdim\MPwidth=0pt\relax
+ \ifdim\MPheight=\zeropoint\relax\ifdim\MPwidth=\zeropoint\relax
\def\next{\endinput\finishMPgraphic}%
\fi\fi
\fi
@@ -837,31 +931,31 @@
\let\ \relax % mp breaks long lines and appends a \
\edef\size{\gMPa\nofMParguments}%
\ifx\size\PSnfont % round font size (to pt)
- \advance\nofMParguments -1
- \expandafter\scratchdimen\gMPa\nofMParguments pt\relax
- \ifdim\scratchdimen<1pt
+ \advance\nofMParguments \minusone
+ \expandafter\scratchdimen\gMPa\nofMParguments\onepoint\relax
+ \ifdim\scratchdimen<\onepoint
\def\size{1pt}%
\else
- \advance\scratchdimen .5pt
+ \advance\scratchdimen .5\onepoint
\def\size##1.##2\relax{\def\size{##1pt}}%
\expandafter\size\the\scratchdimen\relax
\fi
\else
\edef\size{\size bp}%
\fi
- \advance\nofMParguments -1
+ \advance\nofMParguments \minusone
%\font\temp=\gMPa\nofMParguments\space at \size
\let\temp\relax % to be sure
\setMPfshowfont{\gMPa\nofMParguments}\size
- \advance\nofMParguments -1
+ \advance\nofMParguments \minusone
\temp
\MPfshowcommand
- {\ifnum\nofMParguments=1
+ {\ifnum\nofMParguments=\plusone
\def\do(##1){##1}%
\dogMPa1%
\else
% we need to catch ( a ) (a a a) (\123 \123 \123) etc
- \scratchcounter1
+ \scratchcounter\plusone
\def\dodo##1% Andreas Fieger's bug: (\304...)
{\edef\!!stringa{##1\empty\empty}% and another one: ( 11) -> \ifx 11
\ifx\!!stringa\MPspacechar\MPspacechar\else\expandafter##1\fi}%
@@ -869,7 +963,7 @@
\dogMPa\scratchcounter\MPspacechar
\let\do\relax
\loop
- \advance\scratchcounter 1
+ \advance\scratchcounter \plusone
\ifnum\scratchcounter<\nofMParguments\relax
\gMPa\scratchcounter\MPspacechar
\repeat
@@ -877,11 +971,25 @@
\dogMPa\scratchcounter
\fi
\unskip}}%
+ %
+ % this fails in some versions of pdftex
+ %
+ % \dimen0=\lastMPmoveY bp
+ % \advance\dimen0 by \ht0
+ % \ScaledPointsToBigPoints{\number\dimen0}\lastMPmoveY
+ % \PDFcode{n q 1 0 0 1 \lastMPmoveX\space\lastMPmoveY\space cm}%
+ % \dimen0=\ht0
+ % \advance\dimen0 by \dp0
+ % \box0
+ % \vskip-\dimen0
+ % \PDFcode{Q}%
+ % \egroup}
+ %
\setbox\scratchbox\hbox
- {\hskip\lastMPmoveX bp\raise\lastMPmoveY bp\box\scratchbox}%
- \ht\scratchbox0pt%
- \dp\scratchbox0pt%
- \wd\scratchbox0pt%
+ {\hskip\lastMPmoveX\onebasepoint\raise\lastMPmoveY\onebasepoint\box\scratchbox}%
+ \ht\scratchbox\zeropoint
+ \dp\scratchbox\zeropoint
+ \wd\scratchbox\zeropoint
\box\scratchbox
\egroup}
@@ -923,11 +1031,11 @@
{\bgroup
\ignoreMPspecials
\def\somestring{[}%
- \scratchcounter1
+ \scratchcounter\plusone
\loop
\ifnum\scratchcounter<\nofMParguments
\edef\somestring{\somestring\space\gMPa\scratchcounter}%
- \advance\scratchcounter 1
+ \advance\scratchcounter \plusone
\repeat
\edef\somestring{\somestring]\gMPa\scratchcounter\space d}%
\PDFcode{\somestring}%
@@ -961,7 +1069,7 @@
%D so we can use this one to trigger setting the linewidth.
\def\handleMPdtransform
- {\ifdim\gMPa1 pt>0pt
+ {\ifdim\gMPa1\onepoint>\zeropoint
\PDFcode{\gMPa1 w}%
\def\next##1 ##2 ##3 ##4 ##5 ##6 {\handleMPsequence}%
\else
@@ -1005,7 +1113,7 @@
\let\closeMPpath\relax
\let\flushMPpath\flushnormalMPpath
\resetMPstack
- \nofMPsegments1
+ \nofMPsegments\plusone
\let\handleMPsequence\dohandleMPpath
\dohandleMPpath}
@@ -1051,19 +1159,19 @@
% \def\flushnormalMPpath
% {\scratchcounter\nofMPsegments
-% \nofMPsegments 1
+% \nofMPsegments\plusone
% \loop
% \flushnormalMPsegment
-% \advance\nofMPsegments 1
+% \advance\nofMPsegments \plusone
% \ifnum\nofMPsegments<\scratchcounter
% \repeat}
%
% \def\flushconcatMPpath
% {\scratchcounter\nofMPsegments
-% \nofMPsegments 1
+% \nofMPsegments\plusone
% \loop
% \flushconcatMPsegment
-% \advance\nofMPsegments 1
+% \advance\nofMPsegments \plusone
% \ifnum\nofMPsegments<\scratchcounter
% \repeat}
%
@@ -1071,14 +1179,14 @@
\def\doflushsomeMPpath
{\dodoflushsomeMPpath
- \advance\nofMPsegments 1
+ \advance\nofMPsegments \plusone
\ifnum\nofMPsegments<\scratchcounter
\expandafter\doflushsomeMPpath
\fi}
\def\flushsomeMPpath
{\scratchcounter\nofMPsegments
- \nofMPsegments 1
+ \nofMPsegments\plusone
\doflushsomeMPpath}
\def\flushnormalMPpath{\let\dodoflushsomeMPpath\flushnormalMPsegment\flushsomeMPpath}
@@ -1116,7 +1224,7 @@
%OLD \def\doMPreducedimen#1
%OLD {\count0\MPconcatfactor
-%OLD \advance\dimen#1 \ifdim\dimen#1>0pt .5\else -.5\fi\count0
+%OLD \advance\dimen#1 \ifdim\dimen#1>\zeropoint .5\else -.5\fi\count0
%OLD \divide\dimen#1 \count0\relax}
%OLD % too inaccurate (see old pragma logo)
@@ -1126,7 +1234,7 @@
%OLD \divide\dimen#1 \count0\relax}
%OLD \def\doMPreducedimen#1
-%OLD {\advance\dimen#1 \ifdim\dimen#1>0pt .5\else -.5\fi\MPconcatfactor
+%OLD {\advance\dimen#1 \ifdim\dimen#1>\zeropoint .5\else -.5\fi\MPconcatfactor
%OLD \divide\dimen#1 \MPconcatfactor}
%D The transformation code is rewritten by Daniel H. Luecking who
@@ -1150,13 +1258,13 @@
\newdimen\MPscratchDim % will be assigned global
\def\MPadjustdimen % sets \MPscratchDim and \MPscratchCnt
- {\MPscratchCnt0
+ {\MPscratchCnt\zerocount
\doMPadjustdimen}
\def\doMPadjustdimen
- {\ifdim\MPscratchDim>1pt
+ {\ifdim\MPscratchDim>\onepoint
\divide\MPscratchDim 2
- \advance\MPscratchCnt 1
+ \advance\MPscratchCnt \plusone
\expandafter\doMPadjustdimen
\fi}
@@ -1184,14 +1292,14 @@
\def\doMPreadjustdimen
{\ifnum\MPscratchCnt>2
\divide\scratchdimen 2
- \advance\MPscratchCnt -1
+ \advance\MPscratchCnt \minusone
\expandafter\doMPreadjustdimen
\fi}
\def\MPreciprocaldeterminant
{\scratchdimen\withoutpt\the\dimen0 \dimen6 % s_x*s_y
\advance\scratchdimen - \withoutpt\the\dimen2 \dimen4 % s_x*s_y - r_x*r_y
- \ifdim\scratchdimen<0pt % we need a positive dimension
+ \ifdim\scratchdimen<\zeropoint % we need a positive dimension
\scratchdimen-\scratchdimen % for \MPadjustdimen (?)
\doMPreciprocal
\scratchdimen-\scratchdimen
@@ -1205,7 +1313,7 @@
% todo: dimexpr
\def\doMPreciprocal % replace \scratchdimen with its reciprocal
- {\ifdim\scratchdimen=1pt \else
+ {\ifdim\scratchdimen=\onepoint \else
\MPadjustdimen
\scratchcounter\MPnumerator
\divide\scratchcounter\scratchdimen
@@ -1214,20 +1322,20 @@
\fi}
%OLD \def\presetMPconcat
-%OLD {\dimen 0=\gMPs1pt \doMPreducedimen 0 % r_x
-%OLD \dimen 2=\gMPs2pt \doMPreducedimen 2 % s_x
-%OLD \dimen 4=\gMPs3pt \doMPreducedimen 4 % s_y
-%OLD \dimen 6=\gMPs4pt \doMPreducedimen 6 % r_y
-%OLD \dimen 8=\gMPs5pt \doMPreducedimen 8 % t_x
-%OLD \dimen10=\gMPs6pt \doMPreducedimen10 } % t_y
+%OLD {\dimen 0=\gMPs1\onepoint \doMPreducedimen 0 % r_x
+%OLD \dimen 2=\gMPs2\onepoint \doMPreducedimen 2 % s_x
+%OLD \dimen 4=\gMPs3\onepoint \doMPreducedimen 4 % s_y
+%OLD \dimen 6=\gMPs4\onepoint \doMPreducedimen 6 % r_y
+%OLD \dimen 8=\gMPs5\onepoint \doMPreducedimen 8 % t_x
+%OLD \dimen10=\gMPs6\onepoint \doMPreducedimen10 } % t_y
%OLD
%OLD \def\presetMPscale
-%OLD {\dimen 0=\gMPs1pt \doMPreducedimen 0
-%OLD \dimen 2=0pt
-%OLD \dimen 4=0pt
-%OLD \dimen 6=\gMPs2pt \doMPreducedimen 6
-%OLD \dimen 8=0pt
-%OLD \dimen10=0pt}
+%OLD {\dimen 0=\gMPs1\onepoint \doMPreducedimen 0
+%OLD \dimen 2 \zeropoint
+%OLD \dimen 4 \zeropoint
+%OLD \dimen 6=\gMPs2\onepoint \doMPreducedimen 6
+%OLD \dimen 8 \zeropoint
+%OLD \dimen10 \zeropoint}
\def\cleanupMPconcat
{\ignoreMPspecials
@@ -1236,24 +1344,24 @@
\keepMPspecials}
\def\presetMPconcat
- {\dimen 0=\gMPs1pt % s_x
- \dimen 2=\gMPs2pt % r_x
- \dimen 4=\gMPs3pt % r_y
- \dimen 6=\gMPs4pt % s_y
- \dimen 8=\gMPs5pt % t_x
- \dimen10=\gMPs6pt} % t_y
+ {\dimen 0=\gMPs1\onepoint % s_x
+ \dimen 2=\gMPs2\onepoint % r_x
+ \dimen 4=\gMPs3\onepoint % r_y
+ \dimen 6=\gMPs4\onepoint % s_y
+ \dimen 8=\gMPs5\onepoint % t_x
+ \dimen10=\gMPs6\onepoint} % t_y
\def\presetMPscale
- {\dimen 0=\gMPs1pt
- \dimen 2=0pt
- \dimen 4=0pt
- \dimen 6=\gMPs2pt
- \dimen 8=0pt
- \dimen10=0pt}
+ {\dimen 0=\gMPs1\onepoint
+ \dimen 2 \zeropoint
+ \dimen 4 \zeropoint
+ \dimen 6=\gMPs2\onepoint
+ \dimen 8 \zeropoint
+ \dimen10 \zeropoint}
\def\noMPtranslate % use this one grouped
- {\dimen 8=0pt % t_x
- \dimen10=0pt} % t_y
+ {\dimen 8 \zeropoint % t_x
+ \dimen10 \zeropoint} % t_y
%D \starttyping
%D \def\doMPconcat#1#2#3#4%
@@ -1429,18 +1537,18 @@
%OLD {\dimen12=#1pt % p_x
%OLD \dimen14=#3pt % p_y
%OLD %
-%OLD \chardef\MPfactor0
+%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\MPfactor1
+%OLD \chardef\MPfactor\plusone
%OLD \fi\fi
%OLD \fi\fi
%OLD \fi\fi
%OLD \fi\fi
%OLD \ifcase\MPfactor % spurious 0 removed
-%OLD \chardef\MPfactor1
+%OLD \chardef\MPfactor\plusone
%OLD \ifdim\dimen12<\MPcriteriumA\ifdim\dimen12>-\MPcriteriumA
%OLD \ifdim\dimen14<\MPcriteriumA\ifdim\dimen14>-\MPcriteriumA
%OLD \chardef\MPfactor16
@@ -1482,8 +1590,8 @@
%OLD \multiply \dimen20 \dimen10
%OLD \advance \dimen12 -\dimen20
%OLD %
-%OLD \ifdim\dimen16=1pt \else
-%OLD \ifdim\dimen16>\MPconcatfactor 1pt \relax
+%OLD \ifdim\dimen16=\onepoint \else
+%OLD \ifdim\dimen16>\MPconcatfactor \onepoint \relax
%OLD \doMPreducedimen16
%OLD \divide \dimen18 \dimen16 \doMPexpanddimen18
%OLD \divide \dimen12 \dimen16 \doMPexpanddimen12
@@ -1513,8 +1621,8 @@
%D If this should ever cause problems, the scale factors can be reduced.
% \def\doMPconcat#1#2#3#4%
-% {\dimen12=#1pt % p_x % #1pt
-% \dimen14=#3pt % p_y % #3pt
+% {\dimen12=#1pt % p_x % #1\onepoint
+% \dimen14=#3pt % p_y % #3\onepoint
% \advance\dimen12 -\dimen8 % p_x - t_x
% \advance\dimen14 -\dimen10 % p_y - t_y
% \dimen18=\withoutpt\the\dimen6 \dimen12 % s_y(p_x - t_x)
@@ -1528,8 +1636,8 @@
% \edef#4{\withoutpt\the\dimen14}} % p_y^\prime
\def\doMPconcat#1#2#3#4%
- {\dimen12=#1pt % p_x % #1pt
- \dimen14=#3pt % p_y % #3pt
+ {\dimen12=#1pt % p_x % #1\onepoint
+ \dimen14=#3pt % p_y % #3\onepoint
\advance\dimen12 -\dimen8 % p_x - t_x
\advance\dimen14 -\dimen10 % p_y - t_y
\dimen18=\withoutpt\the\dimen6 \dimen12 % s_y(p_x - t_x)
@@ -1809,7 +1917,7 @@
\fi
\let\handleMPsequence\dohandleMPsequence
\resetMPstack
- \nofMPsegments0
+ \nofMPsegments\zerocount
\handleMPsequence}
%D The following \METAPOST\ code is quite valid but, when
@@ -1828,7 +1936,7 @@
{\ifcase\finiMPpath
\ifnum\nofMPsegments<3 % n is one ahead
\message{omitting zero clip path}%
- \nofMPsegments0
+ \nofMPsegments\zerocount
\fi
\fi}
@@ -1851,9 +1959,9 @@
\def\dohandleMPpath#1%
{\ifcase\lccode`#1\relax
- \expandafter\dohandleMPpathA
+ \@EA\dohandleMPpathA
\else
- \expandafter\dohandleMPpathB
+ \@EA\dohandleMPpathB
\fi#1}
%\def\dohandleMPpathA#1 %
@@ -1947,11 +2055,10 @@
\def\convertMPtoPDF % #1#2#3%
{\bgroup
- \defineMPtoPDFfallbacks
\ifx\pdfdecimaldigits\undefined\else \pdfdecimaldigits=5 \fi % new
\setbox\scratchbox\vbox\bgroup
- \xdef\MPheight{0pt}%
- \xdef\MPwidth {0pt}%
+ \xdef\MPheight{\zeropoint}%
+ \xdef\MPwidth {\zeropoint}%
\forgetall
\offinterlineskip
\startMPresources
@@ -1967,7 +2074,15 @@
\let\setMPextensions\relax
\def\doprocessMPtoPDFfile#1#2#3% file xscale yscale
- {\setMPspecials
+ {% the following line is needed for latex where onepoint is not
+ % onepoint but a number (maxdimen); some day i'll make a latex
+ % variant of this file so that i no longer have to deal with such
+ % issues; then i'll also speed up this module using a few context
+ % tricks
+ %
+ \let\onepoint\onerealpoint
+ %
+ \setMPspecials
\setMPextensions
\the\everyMPtoPDFconversion
\catcode`\^^M=\@@endofline
@@ -1977,16 +2092,65 @@
\xdef\MPyscale{#3}%
\xdef\MPxoffset{0}%
\xdef\MPyoffset{0}%
- \xdef\MPyshift{0pt}%
+ \xdef\MPyshift{\zeropoint}%
\donefalse
\let\handleMPsequence\dohandleMPsequence
\message{[MP to PDF]}% was: [MP to PDF #1] but there is a (#1) anyway
\input#1\relax}
+% strange rounding/clip in pdftex/viewer
+%
+% \def\finishMPgraphic
+% {\stopMPresources
+% \egroup
+% \ifx\pdftexversion\undefined\else\ifnum\pdftexversion<14 % for the moment
+% \chardef\makeMPintoPDFobject=0
+% \fi\fi
+% \ifcase\makeMPintoPDFobject\or\or\ifx\currentPDFresources\empty\else
+% \chardef\makeMPintoPDFobject=1
+% \fi\fi
+% \setbox\scratchbox=\vbox
+% {\forgetall
+% \hbox
+% {\PDFcode{q \MPxscale\space 0 0 \MPyscale\space \MPxoffset\space \MPyoffset\space cm}%
+% \lower\MPyshift\box\scratchbox % unscaled shift
+% \PDFcode{Q}}}%
+% \ht\scratchbox\MPheight
+% \wd\scratchbox\MPwidth
+% \dp\scratchbox\zeropoint
+% \ifcase\makeMPintoPDFobject
+% \box\scratchbox
+% \or
+% \immediate\pdfxform resources{\currentPDFresources}\scratchbox
+% \xdef\lastPDFMPobject{\the\pdflastxform}%
+% \pdfrefxform\lastPDFMPobject
+% \global\let\currentPDFresources\empty
+% \else
+% \box\scratchbox
+% \fi
+% \egroup}
+%
+% funny clip in viewer
+%
+% \setbox\scratchbox=\vbox
+% {\forgetall
+% \dimen0=\MPllx bp
+% \dimen2=\MPlly bp
+% \setbox\scratchbox=\hbox{\hskip-\dimen0\raise-\dimen2\box\scratchbox}%
+% \ht\scratchbox=\zeropoint
+% \dp\scratchbox=\zeropoint
+% \wd\scratchbox=\zeropoint
+% \hbox
+% {\PDFcode{q \MPxscale\space 0 0 \MPyscale\space 0 0 cm}%
+% \lower\MPshift\box\scratchbox
+% \PDFcode{Q}}}%
+
+% \let\PDFMPformoffset\zeropoint
+
\def\PDFMPformoffset
- {\ifx\objectoffset\undefined0pt\else\objectoffset\fi}
+ {\ifx\objectoffset\undefined\zeropoint\else\objectoffset\fi}
-\chardef\blackoutMPgraphic0 % in ConTeXt 1
+\chardef\blackoutMPgraphic\zerocount % in ConTeXt \plusone
\def\finishMPgraphic
{\stopMPresources
@@ -2000,7 +2164,7 @@
\PDFcode{Q}}}%
\ht\scratchbox\MPheight
\wd\scratchbox\MPwidth
- \dp\scratchbox0pt\relax
+ \dp\scratchbox\zeropoint\relax
\dopackageMPgraphic\scratchbox
\egroup
\endinput}
@@ -2010,28 +2174,28 @@
\def\dopackageMPgraphic#1% #1 = boxregister
{%\ifx\pdfxform\undefined
- % \chardef\makeMPintoPDFobject0 % no pdftex at all
+ % \chardef\makeMPintoPDFobject\zerocount % no pdftex at all
%\else\ifx\pdftexversion\undefined
- % \chardef\makeMPintoPDFobject0 % no pdftex at all
+ % \chardef\makeMPintoPDFobject\zerocount % no pdftex at all
%\else\ifnum\pdftexversion<14
- % \chardef\makeMPintoPDFobject0 % no resource support
+ % \chardef\makeMPintoPDFobject\zerocount % no resource support
%\else
% % keep the default value
%\fi\fi\fi
\ifcase\makeMPintoPDFobject\or\or\ifx\currentPDFresources\empty\else
% an existing value of 2 signals object support (set elsewhere)
- \chardef\makeMPintoPDFobject1
+ \chardef\makeMPintoPDFobject\plusone
\fi\fi
\ifcase\makeMPintoPDFobject
\box#1%
\or
\scratchdimen\PDFMPformoffset\relax
- \ifdim\scratchdimen>0pt % compensate for error
+ \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>0pt % compensate for error
+ \ifdim\scratchdimen>\zeropoint % compensate for error
\vbox to \MPheight
{\forgetall\vss\hbox to \MPwidth{\hss\getMPPDFobject\hss}\vss}%
\else
@@ -2098,4 +2262,6 @@
%D does all the calculations. Converting other \POSTSCRIPT\
%D files would drive both me and \TEX\ crazy.
+\ifx\undefined\StopLatexHack \else \StopLatexHack \fi
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/supp-ran.tex b/Master/texmf-dist/tex/context/base/supp-ran.tex
index 1266c0e0f34..8c76ab443f6 100644
--- a/Master/texmf-dist/tex/context/base/supp-ran.tex
+++ b/Master/texmf-dist/tex/context/base/supp-ran.tex
@@ -52,14 +52,6 @@
{\writestatus{loading}{Donald Arseneau's 'random.tex' (found)}}
{\writestatus{loading}{Donald Arseneau's 'random.tex' (not found)}}
- % avoid scratch dimens 0 and 2 (already recoded in third-ran)
- %
- % \def\setrandim#1#2#3% dimen register, minimum length, maximum length
- % {\scratchdimen#2\edef\!!stringa{\number\scratchdimen}%
- % \scratchdimen#3\edef\!!stringb{\number\scratchdimen}%
- % \setrannum\ranval\!!stringa\!!stringb
- % #1\ranval\s!sp\relax}
-
\fi
\ifx\nextrandom\undefined
@@ -73,18 +65,6 @@
\let\nextrandom\relax
-% \def\getrandomdimen #1#2#3{\scratchdimen #2\relax#1\scratchdimen }
-% \def\getrandomcount #1#2#3{\scratchcounter#2\relax#1\scratchcounter}
-% \def\getrandomnumber#1#2#3{\edef#1{0}}
-% \def\getrandomfloat #1#2#3{\edef#1{0}}
-% \unexpanded\def\setrandomseed #1{}
-% \unexpanded\def\getrandomseed #1{\edef#1{0}}
-
-% \chardef\randomseedfrozen\zerocount
-
-% \def\freezerandomseed {\global\chardef\randomseedfrozen\plusone }
-% \def\defrostrandomseed{\global\chardef\randomseedfrozen\zerocount}
-
\fi
\ifx\nextrandom\undefined \endinput \fi
@@ -165,9 +145,14 @@
\edef#1{\withoutpt\the\scratchdimen}}
\unexpanded \def\setrandomseed#1%
- {\randomi#1\relax}
+ {\global\randomi#1\relax} % global added
\unexpanded \def\getrandomseed#1%
{\edef#1{\number\randomi}}
+\def\getnewrandomseed#1%
+ {\setrandomseed\minusone % signals thrd-ran to auto reseed
+ \nextrandom % this signal is needed for the
+ #1\randomi} % pseudo randomizer (see: third-ran)
+
\endinput
diff --git a/Master/texmf-dist/tex/context/base/supp-vis.tex b/Master/texmf-dist/tex/context/base/supp-vis.tex
index 384bcd4401c..efe47751fe2 100644
--- a/Master/texmf-dist/tex/context/base/supp-vis.tex
+++ b/Master/texmf-dist/tex/context/base/supp-vis.tex
@@ -1742,8 +1742,11 @@
%D For those who want to manipulate the visual cues in detail,
%D we have grouped them.
+\newif\ifshowingcomposition % see later why we need this
+
\def\showfils
- {\let\hss \ruledhss
+ {\showingcompositiontrue
+ \let\hss \ruledhss
\let\hfil \ruledhfil
\let\hfill \ruledhfill
\let\hfilneg \ruledhfilneg
@@ -1767,7 +1770,8 @@
\let\vfillneg \normalvfillneg}
\def\showboxes
- {\baselineruletrue
+ {\showingcompositiontrue
+ \baselineruletrue
\let\hbox \ruledhbox
\let\vbox \ruledvbox
\let\vtop \ruledvtop
@@ -1780,7 +1784,8 @@
\let\vcenter \normalvcenter}
\def\showskips
- {\let\hskip \ruledhskip
+ {\showingcompositiontrue
+ \let\hskip \ruledhskip
\let\vskip \ruledvskip
\let\kern \ruledkern
\let\mskip \ruledmskip
@@ -1798,7 +1803,8 @@
\let\vglue \normalvglue}
\def\showpenalties
- {\let\penalty \ruledpenalty}
+ {\showingcompositiontrue
+ \let\penalty \ruledpenalty}
\def\dontshowpenalties
{\let\penalty \normalpenalty}
@@ -1863,10 +1869,10 @@
%D
%D Beware, it's a macro not a \DIMENSION.
-\ifx\korpsgrootte\undefined
+\ifx\bodyfontsize\undefined
\edef\defaulttestrulewidth{\the\testrulewidth}
\else
- \def\defaulttestrulewidth{.02\korpsgrootte} % still dutch
+ \def\defaulttestrulewidth{.02\bodyfontsize} % still dutch
\fi
\def\showmakeup
diff --git a/Master/texmf-dist/tex/context/base/symb-cow.tex b/Master/texmf-dist/tex/context/base/symb-cow.tex
new file mode 100644
index 00000000000..6fd32a53517
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/symb-cow.tex
@@ -0,0 +1,113 @@
+%D \module
+%D [ file=symb-cow,
+%D version=2006.06.23,
+%D title=\CONTEXT\ Symbol Libraries,
+%D subtitle=Cow 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.
+
+\loadmapfile[koeieletters.map]
+
+\definefontsynonym [Cows] [koeielett]
+\definefontsynonym [CowsContour] [koeielett-contour]
+\definefontsynonym [CowsLogo] [koeielogos]
+\definefontsynonym [CowsLogoContour] [koeielogos-contour]
+
+\definecolor [lsky] [r=.6,g=.6,b=1]
+\definecolor [dsky] [r=.1,g=.1,b=1]
+\definecolor [lground] [r=.3,g=.9,b=.3]
+\definecolor [dground] [r=0,g=.5,b=0]
+\definecolor [cspots] [r=.33,g=.1,b=0]
+
+\definecolor [tlsky] [t=.5,a=1,r=.6,g=.6,b=1]
+\definecolor [tdsky] [t=.5,a=1,r=.1,g=.1,b=1]
+\definecolor [tlground] [t=.5,a=1,r=.3,g=.9,b=.3]
+\definecolor [tdground] [t=.5,a=1,r=0,g=.5,b=0]
+\definecolor [tcspots] [t=.5,a=1,r=.33,g=.1,b=0]
+
+\definepalet
+ [cow]
+ [normal=lground,
+ contour=dground,
+ sky=lsky]
+
+\def\CowNormal#1%
+ {\dontleavehmode\hbox{\color[cow:normal]{\getglyph{Cows}{#1}}}}
+
+\def\ScaledCowNormal#1#2%
+ {\dontleavehmode\hbox{\color[cow:normal]{\definedfont[Cows sa #1]#2}}}
+
+\def\ScaledCowOverlay#1#2%
+ {\dontleavehmode\hbox
+ {\color[cow:contour]{\hsmash{\definedfont[CowsContour sa #1]#2}}%
+ \color[cow:normal] {\definedfont[Cows sa #1]#2}}}
+
+\def\CowOverlay#1%
+ {\dontleavehmode\hbox
+ {\color[cow:contour]{\hsmash{\getglyph{CowsContour}{#1}}}%
+ \color[cow:normal] {\getglyph{Cows} {#1}}}}
+
+\def\CowContour#1%
+ {\dontleavehmode\hbox
+ {\color[cow:contour]{\hsmash{\getglyph{CowsLogoContour}{#1}}}%
+ \color[cow:normal] {\getglyph{CowsLogo} {#1}}}}
+
+\def\CowLogo#1%
+ {\getglyph{CowsLogo}{\char#1\relax}}
+
+\startsymbolset[cownormal]
+
+\definesymbol[CowPragma] [\CowLogo{1}]
+\definesymbol[CowConTeXt] [\CowLogo{2}]
+\definesymbol[CowConTeXtComplete][\CowLogo{3}]
+\definesymbol[CowConTeXtShadow] [\CowLogo{4}]
+\definesymbol[CowConTeXtContour] [\CowLogo{5}]
+\definesymbol[CowConTeXtOutline] [\CowLogo{6}]
+\definesymbol[CowConTeXtDots] [\CowLogo{7}]
+\definesymbol[CowMP] [\CowLogo{8}]
+\definesymbol[CowMPComplete] [\CowLogo{9}]
+\definesymbol[CowTeX] [\CowLogo{10}]
+\definesymbol[CowTeXComplete] [\CowLogo{11}]
+\definesymbol[CowBoo] [\CowLogo{12}]
+\definesymbol[CowCow] [\CowLogo{13}]
+\definesymbol[CowExampleComplete][\CowLogo{14}]
+\definesymbol[CowFoxetComplete] [\CowLogo{15}]
+\definesymbol[CowMetafun] [\CowLogo{16}]
+\definesymbol[CowMetafunComplete][\CowLogo{17}]
+\definesymbol[CowTEX] [\CowLogo{18}]
+\definesymbol[CowTeX] [\CowLogo{18}]
+\definesymbol[CowWiki] [\CowLogo{19}]
+
+\stopsymbolset
+
+\startsymbolset[cowcontour]
+
+\definesymbol[CowPragma] [\CowContour{1}]
+\definesymbol[CowConTeXt] [\CowContour{2}]
+\definesymbol[CowConTeXtComplete][\CowContour{3}]
+\definesymbol[CowConTeXtShadow] [\CowContour{4}]
+\definesymbol[CowConTeXtContour] [\CowContour{5}]
+\definesymbol[CowConTeXtOutline] [\CowContour{6}]
+\definesymbol[CowConTeXtDots] [\CowContour{7}]
+\definesymbol[CowMP] [\CowContour{8}]
+\definesymbol[CowMPComplete] [\CowContour{9}]
+\definesymbol[CowTeX] [\CowContour{10}]
+\definesymbol[CowTeXComplete] [\CowContour{11}]
+\definesymbol[CowBoo] [\CowContour{12}]
+\definesymbol[CowCow] [\CowContour{13}]
+\definesymbol[CowExampleComplete][\CowContour{14}]
+\definesymbol[CowFoxetComplete] [\CowContour{15}]
+\definesymbol[CowMetafun] [\CowContour{16}]
+\definesymbol[CowMetafunComplete][\CowContour{17}]
+\definesymbol[CowTEX] [\CowContour{18}]
+\definesymbol[CowTeX] [\CowContour{18}]
+\definesymbol[CowWiki] [\CowContour{19}]
+
+\stopsymbolset
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/symb-glm.tex b/Master/texmf-dist/tex/context/base/symb-glm.tex
index cd7c05dbda2..63ac4ed2664 100644
--- a/Master/texmf-dist/tex/context/base/symb-glm.tex
+++ b/Master/texmf-dist/tex/context/base/symb-glm.tex
@@ -14,6 +14,7 @@
%D Watch the \type {x} before the local symbols.
\loadmapfile [ec-public-lm.map]
+% \loadmapfile [ec-lm.map]
% this used to be:
%
diff --git a/Master/texmf-dist/tex/context/base/symb-ini.tex b/Master/texmf-dist/tex/context/base/symb-ini.tex
index 496292c5799..a3a9048b82b 100644
--- a/Master/texmf-dist/tex/context/base/symb-ini.tex
+++ b/Master/texmf-dist/tex/context/base/symb-ini.tex
@@ -54,6 +54,11 @@
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
@@ -135,7 +140,24 @@
% \fi
% \fi}
-\def\dosymbol[#1][#2]%
+% 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}%
@@ -291,10 +313,11 @@
%D \showsetup{usesymbols}
\def\dousesymbols#1%
- {\makeshortfilename[\f!symbolprefix#1]%
- \showmessage\m!symbols1{#1}%
+ {\makeshortfilename[\truefilename{\f!symbolprefix#1}]%
\startreadingfile
- \readsysfile\shortfilename\donothing\donothing
+ \readsysfile\shortfilename
+ {\showmessage\m!symbols1{#1}}
+ \donothing
\stopreadingfile}
\def\usesymbols[#1]%
diff --git a/Master/texmf-dist/tex/context/base/symb-was.tex b/Master/texmf-dist/tex/context/base/symb-was.tex
new file mode 100644
index 00000000000..ba261730618
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/symb-was.tex
@@ -0,0 +1,205 @@
+%D \module
+%D [ file=symb-was,
+%D version=2005.10.15,
+%D title=\CONTEXT\ Symbol Libraries,
+%D subtitle=Roland Waldi's Symbols (wasy-2),
+%D author=Henning Hraban Ramm,
+%D date=\currentdate,
+%D copyright={public domain}]
+%C
+%C This module is in the public domain.
+
+%D This module implements the Roland Waldi Symbole font
+%D (wasy). The names are derived from the \LATEX\ package
+%D \type {wasysym} by Axel Kielhorn. The symbols are
+%D available as Type~1 font and are included in \TEX\ distributions.
+%D
+%D This symbol font offers basic sets of astronomical, astrological,
+%D geometrical, musical and general symbols, plus those needed
+%D for the APL programming language and some more.
+%D This module leaves out most of the math stuff, such as operators
+%D and integrals.
+%D
+%D The font was designed by Robert Waldi and is in the public domain.
+%D The PS Type 1 fonts are by Taco Hoekwater, \hyphenatedurl
+%D {taco.hoekwater@wkap.nl}, and also in the public domain.
+%D The wasysym \LATEX\ package is (c) Axel Kielhorn, \hyphenatedurl
+%D {A.Kielhorn@web.de}, under the LaTeX Project Public License.
+%D This stuff lives in \hyphenatedurl {http://dante.ctan.org/CTAN/fonts/wasy2/}.
+%D
+%D This \CONTEXT\ module is by Henning Hraban Ramm, \hyphenatedurl
+%D {hraban@fiee.net}, given to the public domain as far as allowed
+%D (some parts are copied from the \LATEX\ package).
+
+%D Slightly patched by HH.
+
+\loadmapfile[original-wasy.map]
+
+% there are also fonts for 6, 7, 8, 9 pt; how can we access these automatically?
+% how about the bold wasy font?
+
+\definefontsynonym [WaldiSymbol] [wasy10]
+\definefontsynonym [WaldiSymbolBold] [wasyb10]
+
+\def\WaldiSymbol#1{\getglyph{WaldiSymbol}{\char#1}}
+
+\def\wasy@over#1#2{{\setbox0\hbox{$#2$}\hbox to \wd0{\hss$#1$\hss}\kern-\wd0\box0}}
+
+% general symbols
+
+\startsymbolset [wasy general]
+ \definesymbol [male] [\WaldiSymbol {26}]
+ \definesymbol [female] [\WaldiSymbol {25}]
+ \definesymbol [currency] [\WaldiSymbol {27}]
+ \definesymbol [cent] [\WaldiSymbol{103}]
+ \definesymbol [lozenge] [\WaldiSymbol {53}]
+ \definesymbol [kreuz] [\WaldiSymbol {54}]
+ \definesymbol [smiley] [\WaldiSymbol {44}]
+ \definesymbol [blacksmiley] [\WaldiSymbol {45}]
+ \definesymbol [frownie] [\WaldiSymbol {47}]
+ \definesymbol [sun] [\WaldiSymbol {46}]
+ \definesymbol [checked] [\WaldiSymbol {8}]
+ \definesymbol [brokenvert] [\WaldiSymbol{124}]
+ \definesymbol [diameter] [\WaldiSymbol {31}]
+ \definesymbol [invdiameter] [\WaldiSymbol {21}]
+ \definesymbol [phone] [\WaldiSymbol {7}]
+ \definesymbol [recorder] [\WaldiSymbol {6}]
+ \definesymbol [clock] [\WaldiSymbol {28}]
+ \definesymbol [permil] [\WaldiSymbol{104}]
+ \definesymbol [bell] [\WaldiSymbol {10}]
+ \definesymbol [ataribox] [\WaldiSymbol{109}]
+ \definesymbol [pointer] [\WaldiSymbol {9}]
+ \definesymbol [lightning] [\WaldiSymbol {18}]
+ \definesymbol [agemO] [\WaldiSymbol {48}]
+\stopsymbolset
+
+\startsymbolset [wasy music]
+ \definesymbol [eighthnote] [\WaldiSymbol{11}]
+ \definesymbol [quarternote] [\WaldiSymbol{12}]
+ \definesymbol [halfnote] [\WaldiSymbol{13}]
+ \definesymbol [fullnote] [\WaldiSymbol{14}]
+ \definesymbol [twonotes] [\WaldiSymbol{15}]
+\stopsymbolset
+
+\startsymbolset [wasy astronomy]
+ \definesymbol [ascnode] [\WaldiSymbol{19}]
+ \definesymbol [descnode] [\WaldiSymbol{20}]
+ \definesymbol [astrosun] [\mathematics{\odot}]
+ \definesymbol [sun] [\WaldiSymbol{46}] % additional
+ \definesymbol [newmoon] [\WaldiSymbol{32}]
+ \definesymbol [fullmoon] [\WaldiSymbol{35}]
+ \definesymbol [rightmoon] [\WaldiSymbol{37}]
+ \definesymbol [leftmoon] [\WaldiSymbol{36}]
+ \definesymbol [vernal] [\WaldiSymbol{23}]
+ \definesymbol [mercury] [\WaldiSymbol{39}]
+ \definesymbol [mars] [\dontleavehmode\lower.2ex\hbox{\WaldiSymbol{26}}]
+ \definesymbol [saturn] [\WaldiSymbol{89}]
+ \definesymbol [neptune] [\WaldiSymbol{91}]
+ \definesymbol [earth] [\dontleavehmode\lower.3ex\hbox{\WaldiSymbol{38}}]
+ \definesymbol [venus] [\dontleavehmode\raise.2ex\hbox{\WaldiSymbol{25}}]
+ \definesymbol [jupiter] [\WaldiSymbol{88}]
+ \definesymbol [uranus] [\WaldiSymbol{90}]
+ \definesymbol [pluto] [\WaldiSymbol{92}]
+\stopsymbolset
+
+\startsymbolset [wasy astrology]
+ \definesymbol [conjunction] [\WaldiSymbol {86}]
+ \definesymbol [opposition] [\WaldiSymbol {87}]
+ \definesymbol [aries] [\WaldiSymbol {23}]
+ \definesymbol [libra] [\WaldiSymbol {97}]
+ \definesymbol [taurus] [\WaldiSymbol {93}]
+ \definesymbol [scorpio] [\WaldiSymbol {98}]
+ \definesymbol [gemini] [\WaldiSymbol {94}]
+ \definesymbol [sagittarius] [\WaldiSymbol {99}]
+ \definesymbol [cancer] [\WaldiSymbol {95}]
+ \definesymbol [capricornus] [\WaldiSymbol{100}]
+ \definesymbol [leo] [\WaldiSymbol {19}]
+ \definesymbol [aquarius] [\WaldiSymbol{101}]
+ \definesymbol [virgo] [\WaldiSymbol {96}]
+ \definesymbol [pisces] [\WaldiSymbol{102}]
+\stopsymbolset
+
+\startsymbolset [wasy geometry]
+ \definesymbol [fivestar] [\WaldiSymbol {69}] % HHR additional
+ \definesymbol [hexstar] [\WaldiSymbol {65}]
+ \definesymbol [varhexstar] [\WaldiSymbol {66}]
+ \definesymbol [davidsstar] [\WaldiSymbol {67}]
+ \definesymbol [Circle] [\WaldiSymbol {35}]
+ \definesymbol [CIRCLE] [\WaldiSymbol {32}]
+ \definesymbol [Leftcircle] [\WaldiSymbol {73}]
+ \definesymbol [LEFTCIRCLE] [\WaldiSymbol {71}]
+ \definesymbol [Rightcircle] [\WaldiSymbol {74}]
+ \definesymbol [RIGHTCIRCLE] [\WaldiSymbol {72}]
+ \definesymbol [LEFTcircle] [\dontleavehmode\hbox to \zeropoint{\WaldiSymbol{71}\hss}\WaldiSymbol{35}]
+ \definesymbol [RIGHTcircle] [\dontleavehmode\hbox to \zeropoint{\WaldiSymbol{72}\hss}\WaldiSymbol{35}]
+ \definesymbol [LEFTarrow] [\WaldiSymbol {16}]
+ \definesymbol [RIGHTarrow] [\WaldiSymbol {17}]
+ \definesymbol [UParrow] [\WaldiSymbol {75}]
+ \definesymbol [DOWNarrow] [\WaldiSymbol {76}]
+ \definesymbol [Box] [\WaldiSymbol {32}]
+ \definesymbol [APLbox] [\WaldiSymbol{126}]
+ \definesymbol [XBox] [\WaldiSymbol {52}]
+ \definesymbol [Bowtie] [\WaldiSymbol {49}]
+ \definesymbol [Diamond] [\WaldiSymbol {51}]
+ \definesymbol [octagon] [\WaldiSymbol {56}]
+ \definesymbol [hexagon] [\WaldiSymbol {55}]
+ \definesymbol [varhexagon] [\WaldiSymbol {57}]
+ \definesymbol [pentagon] [\WaldiSymbol {68}]
+ \definesymbol [pentastar] [\dontleavehmode\hbox to \zeropoint{\WaldiSymbol{68}\hss}\lower.04em\hbox{\WaldiSymbol{69}}] % HHR additional
+\stopsymbolset
+
+\startsymbolset [wasy physics]
+ \definesymbol [varangle] [\WaldiSymbol{30}]
+ \definesymbol [invneg] [\WaldiSymbol{24}]
+ \definesymbol [leftturn] [\WaldiSymbol{34}]
+ \definesymbol [rightturn] [\WaldiSymbol{33}]
+ \definesymbol [diameter] [\WaldiSymbol{31}]
+ \definesymbol [invdiameter] [\WaldiSymbol{21}] % additional
+ \definesymbol [therefore] [\WaldiSymbol {5}]
+ \definesymbol [AC] [\mbox{\kern.05em\WaldiSymbol{58}\kern.05em}]
+ \definesymbol [HF] [\dontleavehmode
+ \lower.09em\hbox to \zeropoint{\kern.05em\WaldiSymbol{58}\hss}%
+ \raise.09em\hbox{\kern.05em\WaldiSymbol{58}\kern.05em}]
+ \definesymbol [VHF] [\WaldiSymbol{64}]
+ \definesymbol [photon] [\hbox{\WaldiSymbol{58}\WaldiSymbol{58}\WaldiSymbol{58}\WaldiSymbol{58}}]
+ \definesymbol [gluon] [\hbox{\WaldiSymbol{80}\WaldiSymbol{80}\WaldiSymbol{80}\WaldiSymbol{80}\WaldiSymbol{80}\WaldiSymbol{80}}]
+\stopsymbolset
+
+\startsymbolset [wasy apl]
+ \definesymbol [APLup] [\WaldiSymbol{0}]
+ \definesymbol [APLdown] [\WaldiSymbol{70}]
+ \definesymbol [APLbox] [\WaldiSymbol{126}]
+ \definesymbol [APLinv] [\dontleavehmode\hbox to \zeropoint{$\div$\hss}\WaldiSymbol{126}]
+ \definesymbol [APLleftarrowbox] [\WaldiSymbol{112}]
+ \definesymbol [APLrightarrowbox][\WaldiSymbol{113}]
+ \definesymbol [APLuparrowbox] [\WaldiSymbol{110}]
+ \definesymbol [APLdownarrowbox] [\WaldiSymbol{111}]
+ \definesymbol [APLinput] [\WaldiSymbol{125}]
+ \definesymbol [APLminus] [\dontleavehmode\raise.7ex\hbox{$-$}]
+ \definesymbol [APLlog] [\WaldiSymbol{22}]
+ \definesymbol [APLstar] [\WaldiSymbol{69}]
+ \definesymbol [APLcomment] [\WaldiSymbol{127}]
+ \definesymbol [notslash] [\wasy@over{/}{-}]
+ \definesymbol [notbackslash] [\wasy@over{\backslash}{-}]
+ %
+ %definesymbol [APLvert] [\WaldiSymbol{}]
+ %definesymbol [APLnot] [\WaldiSymbol{}]
+ %definesymbol [APLcirc] [\WaldiSymbol{}]
+ %
+ % HH: messy, best define all combinations (todo)
+ %
+ \def\APLnot #1{\wasy@over{\sim }{#1}}
+ \def\APLcirc#1{\wasy@over{\circ}{#1}}
+ \def\APLvert#1{\wasy@over{\vert}{#1}}
+ %
+\stopsymbolset
+
+%D \showsymbolset[wasy general]
+%D \showsymbolset[wasy music]
+%D \showsymbolset[wasy astronomy]
+%D \showsymbolset[wasy astrology]
+%D \showsymbolset[wasy geometry]
+%D \showsymbolset[wasy physics]
+%D \showsymbolset[wasy apl]
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-con.tex b/Master/texmf-dist/tex/context/base/syst-con.tex
index a9e04921f5f..cbef0dedc26 100644
--- a/Master/texmf-dist/tex/context/base/syst-con.tex
+++ b/Master/texmf-dist/tex/context/base/syst-con.tex
@@ -192,7 +192,7 @@
\dorecurse{255}
{\lccode`a=\recurselevel
- \lowercase{\xdef\rawcharacter{\rawcharacter a\or}}}
+ \lowercase{\xdef\rawcharacter{\rawcharacter \string a\or}}} % string is needed for XeTeX
\@EA\gdef\@EA\rawcharacter\@EA#\@EA1\@EA
{\@EA\ifcase\@EA#\@EA1\rawcharacter\fi}
@@ -207,5 +207,54 @@
\def\threedigits#1%
{\ifnum#1<10 00\else\ifnum#1<100 0\fi\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
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-etx.tex b/Master/texmf-dist/tex/context/base/syst-etx.tex
index 55837b02ff1..e2770cfe976 100644
--- a/Master/texmf-dist/tex/context/base/syst-etx.tex
+++ b/Master/texmf-dist/tex/context/base/syst-etx.tex
@@ -230,7 +230,7 @@
\chardef\@@insallocation=32
-%D However, there's a bug in \ETEX\ versions smaller that 2.2,
+%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
diff --git a/Master/texmf-dist/tex/context/base/syst-ext.tex b/Master/texmf-dist/tex/context/base/syst-ext.tex
index 51376ce78c7..82e6bc2e77c 100644
--- a/Master/texmf-dist/tex/context/base/syst-ext.tex
+++ b/Master/texmf-dist/tex/context/base/syst-ext.tex
@@ -394,9 +394,21 @@
%D \stoptyping
%D
%D This expands to \type{\ifsomething}.
+%D
+%D \starttyping
+%D \def\strippedcsname
+%D {\expandafter\gobbleoneargument\string}
+%D \stoptyping
+%D
+%D Slower but better:
+
+{\catcode`.=\@@escape .catcode`.\ 12 .xdef.letterbackslash{.string\}} % hack
\def\strippedcsname
- {\expandafter\gobbleoneargument\string}
+ {\expandafter\dostrippedcsname\string}
+
+\def\dostrippedcsname#1%
+ {\if\noexpand#1\letterbackslash\else#1\fi}
%D \macros
%D {savenormalmeaning}
@@ -1139,11 +1151,35 @@
\long\def\convertcommand#1\to#2%
{\dodoglobal\edef#2{\convertedcommand#1}}
+\long\def\defconvertedargument#1#2% less sensitive for \to
+ {\long\def#1{#2}% saves a restore
+ \dodoglobal\edef#1{\convertedcommand#1}}
+
+\long\def\defconvertedcommand#1#2% less sensitive for \to
+ {\dodoglobal\edef#1{\convertedcommand#2}}
+
\endTEX
\def\convertvalue#1\to
{\expandafter\convertcommand\csname#1\endcsname\to}
+\def\defconvertvalue#1#2% less sensitive for \to
+ {\@EA\defconvertcommand\@EA#1\csname#2\endcsname}
+
+%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%
+ {\convertargument#2\to\asciiafter
+ \@EA#1\@EA{\asciiafter}}
+
%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}.
@@ -1160,7 +1196,13 @@
% {\@EA\dodoglobal\@EA\edef\@EA#2\@EA{\@EA\detokenize\@EA{#1}}}
\long\def\convertcommand#1\to#2%
- {\dodoglobal\edef#2{\@EA\detokenize\@EA{#1}}}
+ {\dodoglobal\edef#2{\@EA\detokenize\@EA{#1}}} % hm, only second is also ok
+
+\long\def\defconvertedargument#1#2% less sensitive for \to
+ {\dodoglobal\edef#1{\detokenize{#2}}}
+
+\long\def\defconvertedcommand#1#2% less sensitive for \to
+ {\dodoglobal\edef#1{\detokenize\@EA{#2}}}
\endETEX
@@ -1619,6 +1661,14 @@
\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}
@@ -1670,6 +1720,10 @@
{\doifnextcharelse\bgroup
{\HandleGroup{#1}{#2}}{\HandleNoGroup{#1}{#2}}}
+\long\unexpanded\def\simplegroupedcommand#1#2%
+ {\doifnextcharelse\bgroup
+ {\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
@@ -2352,7 +2406,7 @@
\def\resetcounter#1%
{\letgvalue{#1}\zerocountervalue}
-\def\setcounter#1#2%
+\def\setcounter#1#2% or: \setxvalue{#1}{\number#2}
{\scratchcounter#2%
\setxvalue{#1}{\the\scratchcounter}}
@@ -2546,7 +2600,7 @@
%D A first application of the two routines defined above is:
%D
%D \starttyping
-%D \removesubstringtest-\from first-last\to\nothyphenated
+%D \removesubstring-\from first-last\to\nothyphenated
%D \stoptyping
%D
%D Which in terms of \TEX\ looks like:
@@ -2677,6 +2731,19 @@
{\rawdoifinsetelse{#1}#2\resetglobal
{\dodoglobal\edef#2{#1\ifx#2\empty\else,#2\fi}}}
+\def\robustdoifinsetelse#1#2%
+ {\expanded{\convertargument#1}\to\!!stringa
+ \expanded{\convertargument#2}\to\!!stringb
+ \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}%
@@ -3428,6 +3495,19 @@
%D As we can see below, spaces following a control sequence are
%D to enclosed in \type{{}}.
+% keep this one:
+%
+% \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}
+%
+% the following is better (comes from syst-loc):
+
\def\stripcharacter#1\from#2\to#3%
{\def\dostripcharacter##1#1##2\end
{\edef\!!strippedstring{\!!strippedstring##1}%
@@ -3725,18 +3805,16 @@
%D \processlist(){=>}\docommando(a=>b=>c=>d)
%D \stoptyping
-\def\processlist#1#2#3#4%
+\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\ifx\blankspace####2%
- #4{####1}%
\else
#4{####1####2}%
- \fi\fi\fi
+ \fi\fi
\dodoprocesslist}%
\expandafter\dodoprocesslist\gobbleoneargument##1#3#2#3}%
\def\dodoprocesslist#1%
@@ -3952,6 +4030,15 @@
\setbox\@@dlhbox\hbox{\mathsurround\zeropoint\everymath\emptytoks$ $}\unhbox\@@dlhbox
\fi \fi}
+% Also ok, but more sensitive to lookahead expansion is:
+%
+% \def\dontleavehmode{\ifvmode \indent \fi}
+%
+% which assumes indent is kept unchanged. Protecting the macro is only
+% possible in etex (watch out: \unexpanded in context is eq to \protected).
+%
+% \unexpanded \def\dontleavehmode{\ifvmode \indent \fi} % functional spec TH
+
%D But, if you run a recent version of \TEX, we can use the new
%D primitive:
@@ -4626,65 +4713,71 @@
%D I'll implement this when I'm in \quotation {writing dirty
%D macros mood}.
+\def\dofilterfromstr#1#2% max n
+ {\ifcase#1\or
+ \ifcase#2\or
+ \strippedcsname\firstofoneargument
+ \else
+ \strippedcsname\gobbleoneargument
+ \fi
+ \or
+ \ifcase#2\or
+ \strippedcsname\firstoftwoarguments
+ \or
+ \strippedcsname\secondoftwoarguments
+ \else
+ \strippedcsname\gobbletwoarguments
+ \fi
+ \or
+ \ifcase#2\or
+ \strippedcsname\firstofthreearguments
+ \or
+ \strippedcsname\secondofthreearguments
+ \or
+ \strippedcsname\thirdofthreearguments
+ \else
+ \strippedcsname\gobblethreearguments
+ \fi
+ \or
+ \ifcase#2\or
+ \strippedcsname\firstoffourarguments
+ \or
+ \strippedcsname\secondoffourarguments
+ \or
+ \strippedcsname\thirdoffourarguments
+ \or
+ \strippedcsname\fourthoffourarguments
+ \else
+ \strippedcsname\gobblefourarguments
+ \fi
+ \or
+ \ifcase#2\or
+ \strippedcsname\firstoffivearguments
+ \or
+ \strippedcsname\secondoffivearguments
+ \or
+ \strippedcsname\thirdoffivearguments
+ \or
+ \strippedcsname\fourthoffivearguments
+ \or
+ \strippedcsname\fifthoffivearguments
+ \else
+ \strippedcsname\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
- \ifcase#2\or
- \ifcase#3\or
- \strippedcsname\firstofoneargument
- \else
- \strippedcsname\gobbleoneargument
- \fi
- \or
- \ifcase#3\or
- \strippedcsname\firstoftwoarguments
- \or
- \strippedcsname\secondoftwoarguments
- \else
- \strippedcsname\gobbletwoarguments
- \fi
- \or
- \ifcase#3\or
- \strippedcsname\firstofthreearguments
- \or
- \strippedcsname\secondofthreearguments
- \or
- \strippedcsname\thirdofthreearguments
- \else
- \strippedcsname\gobblethreearguments
- \fi
- \or
- \ifcase#3\or
- \strippedcsname\firstoffourarguments
- \or
- \strippedcsname\secondoffourarguments
- \or
- \strippedcsname\thirdoffourarguments
- \or
- \strippedcsname\fourthoffourarguments
- \else
- \strippedcsname\gobblefourarguments
- \fi
- \or
- \ifcase#3\or
- \strippedcsname\firstoffivearguments
- \or
- \strippedcsname\secondoffivearguments
- \or
- \strippedcsname\thirdoffivearguments
- \or
- \strippedcsname\fourthoffivearguments
- \or
- \strippedcsname\fifthoffivearguments
- \else
- \strippedcsname\gobblefivearguments
- \fi
- \fi
+ \dofilterfromstr{#2}{#3}%
\fi
\endcsname\csname#1\endcsname}
+\def\filterfromnext#1#2% max n {..}{..}{..}{..}
+ {\csname\dofilterfromstr{#1}{#2}\endcsname}
+
%D \macros
%D {definemeasure}
%D
diff --git a/Master/texmf-dist/tex/context/base/syst-gen.tex b/Master/texmf-dist/tex/context/base/syst-gen.tex
index 25e5390afd1..71e156b629b 100644
--- a/Master/texmf-dist/tex/context/base/syst-gen.tex
+++ b/Master/texmf-dist/tex/context/base/syst-gen.tex
@@ -13,6 +13,7 @@
% nagaan : \ifinstringelse in syst-ext.tex
% do => p! dodo pp! dododo ppp!
+% todo: \donetrue etc local maken
%D The following macros are responsible for the interaction
%D with \CONTEXT. These macros have proven their use. These
@@ -345,6 +346,7 @@
\dimendef\!!dimenh=14 %skipdef\!!skipc=4
\dimendef\!!dimeni=16 %skipdef\!!skipd=6
\dimendef\!!dimenj=18 %skipdef\!!skipe=8
+ \dimendef\!!dimenk=20 %skipdef\!!skipf=10
\let\!!stringa=\empty \let\!!stringb=\empty \let\!!stringc=\empty
\let\!!stringd=\empty \let\!!stringe=\empty \let\!!stringf=\empty
@@ -403,7 +405,9 @@
%D \type{\unprotect}, one can use \type{\@EA} as equivalent
%D of \type{\expandafter}.
-\let\@EA =\expandafter
+\let\@NX\noexpand
+\let\@EA\expandafter
+
\def\@EAEA {\expandafter\expandafter}
\def\@EAEAEA{\expandafter\expandafter\expandafter}
@@ -441,7 +445,7 @@
\newtoks\everysafeexpanded
-\long\def\safeexpanded#1%
+\long\def\safeexpanded#1% why the \noexpand
{\begingroup
\the\everysafeexpanded\long\xdef\@@expanded{\noexpand#1}%
\endgroup
@@ -2243,7 +2247,7 @@
{\let\expandedaction\noexpandedaction}
%D \macros
-%D {getfirstcharacter,firstcharacter, doiffirstcharacter}
+%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
@@ -2257,12 +2261,13 @@
%D complicated arguments, for instance arguments that
%D consist of two or more expandable tokens.
-\def\dogetfirstcharacter#1#2\\%
- {\def\firstcharacter{#1}}
+\def\dogetfirstcharacter#1#2\relax
+ {\def\firstcharacter{#1}%
+ \def\remainingcharacters{#2}}
\def\getfirstcharacter#1%
{\edef\!!stringa{#1}%
- \expandafter\dogetfirstcharacter\!!stringa\\}
+ \expandafter\dogetfirstcharacter\!!stringa\relax}
\def\doiffirstcharelse#1#2% char string
% kort (maar onleesbaar)
@@ -2537,7 +2542,7 @@
%D Even more important is that this alternative is fully
%D expandable!
-\long\def\doifnumberelse#1%
+\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
@@ -3001,6 +3006,112 @@
\def\doeassign [#1][#2]{\p!doassign\dosetevalue #1\@relax@#2==\empty\@relax@}
\def\undoassign[#1][#2]{\p!doassign\doresetvalue#1\@relax@#2==\empty\@relax@}
+%D When someone asked on the mailing list if it's possible to
+%D use the current value of a parameter, Taco posted a small module. His
+%D method had the disadvantage of making all assignments expanded and thereby
+%D fragile. The following alternative uses a prefix.
+
+%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.
+
+\let\currentvalue\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}}
+
+\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}}
+
+\endTEX
+
+\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}}
+
+\endETEX
+
+%D We default to:
+
+\let\p!doassign\p!n!doassign
+
+%D And set:
+
+\let\currentvalue\empty
+
+%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
@@ -3145,9 +3256,9 @@
\def\p!dogetcommalistsize#1%
{\advance\commalistcounter\plusone}
-\def\getcommalistsize[#1]%
+\def\getcommalistsize#1]% don't loose [{#1}]
{\commalistcounter\zerocount
- \processcommalist[#1]\p!dogetcommalistsize % was [{#1}]
+ \processcommalist#1]\p!dogetcommalistsize % was [{#1}]
\edef\commalistsize{\the\commalistcounter}}
\def\getcommacommandsize[#1]%
@@ -3694,40 +3805,31 @@
%D Now a whole bunch of variables like \type{\@@xxalfavariable}
%D and \type{\@@xxbetavariable} is defined.
-\def\dosingleargumentwithset#1%
- {\def\dodosinglewithset[##1]%
- {\def\dododosinglewithset####1%
- {#1[####1]}%
- \processcommalist[##1]\dododosinglewithset}%
- \dosingleargument\dodosinglewithset}%
+% \def\dosingleargumentwithset#1%
+% {\def\dodosinglewithset[##1]%
+% {\def\dododosinglewithset####1{#1[####1]}%
+% \processcommalist[##1]\dododosinglewithset}%
+% \dosingleargument\dodosinglewithset}%
\def\dodoublewithset#1#2%
{\def\dododoublewithset[##1][##2]%
- {\doifnot{##1}{}
- {\def\dodododoublewithset####1%
- {#2[####1][##2]}%
+ {\doifsomething{##1}
+ {\def\dodododoublewithset####1{#2[####1][##2]}%
\processcommalist[##1]\dodododoublewithset}}%
- #1\dododoublewithset}%
-
-\def\dodoubleemptywithset%
- {\dodoublewithset\dodoubleempty}
+ #1\dododoublewithset}
-\def\dodoubleargumentwithset%
- {\dodoublewithset\dodoubleargument}
+\def\dodoubleemptywithset {\dodoublewithset\dodoubleempty}
+\def\dodoubleargumentwithset{\dodoublewithset\dodoubleargument}
\def\dotriplewithset#1#2%
{\def\dodotriplewithset[##1][##2][##3]%
- {\doifnot{##1}{}
- {\def\dododotriplewithset####1%
- {#2[####1][##2][##3]}%
+ {\doifsomething{##1}
+ {\def\dododotriplewithset####1{#2[####1][##2][##3]}%
\processcommalist[##1]\dododotriplewithset}}%
- #1\dodotriplewithset}%
+ #1\dodotriplewithset}
-\def\dotripleemptywithset%
- {\dotriplewithset\dotripleempty}
-
-\def\dotripleargumentwithset%
- {\dotriplewithset\dotripleargument}
+\def\dotripleemptywithset {\dotriplewithset\dotripleempty}
+\def\dotripleargumentwithset{\dotriplewithset\dotripleargument}
%D \macros
%D {strippedcsname}
@@ -4003,76 +4105,74 @@
%D \type {\if} and friends, in practice we will use a
%D slightly more complicated macro.
-\let\normalif \if
-\let\normalifx \ifx
-\let\normalifnum \ifnum
-\let\normalifdim \ifdim
-\let\normalifcat \ifcat
-\let\normalifcase \ifcase
-\let\normalifcsname \ifcsname
-\let\normalifhmode \ifhmode
-\let\normalifvmode \ifvmode
-\let\normalor \or
-\let\normalelse \else
-\let\normalfi \fi
+\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
+ {\let\if \relax
+ \let\ifcat \relax
+ \let\ifnum \relax
+ \let\ifdim \relax
+ \let\ifodd \relax
+ \let\ifvmode \relax
+ \let\ifhmode \relax
+ \let\ifmmode \relax
+ \let\ifinner \relax
+ \let\ifvoid \relax
+ \let\ifhbox \relax
+ \let\ifvbox \relax
+ \let\ifx \relax
+ \let\ifeof \relax
+ \let\iftrue \relax
+ \let\iffalse \relax
+ \let\ifcase \relax
+ \let\ifdefined \relax
+ \let\ifcsname \relax
+ \let\iffontchar \relax
+ \let\ifincsname \relax
+ \let\ifprimitive\relax
+ \let\ifabsnum \relax
+ \let\ifabsdim \relax
+ \let\else \relax
+ \let\or \relax
+ \let\fi \relax}
\def\beginrobusttest
{\begingroup
- \let\if \relax
- \let\ifx \relax
- \let\ifnum \relax
- \let\ifdim \relax
- \let\ifcat \relax
- \let\ifcase \relax
- \let\ifcsname\relax
- \let\or \relax
- \let\else \relax
- \let\fi \relax}
+ \the\everyrobusttest}
\let\endrobusttest\endgroup
-% \def\dogetgroupargument#1#2%
-% {\def\nextnextargument%
-% {\normalifx\nextargument\bgroup
-% \endrobusttest
-% \let\expectedarguments\noexpectedarguments
-% \def\nextargument{#1\dodogetargument}%
-% %\normalelse\normalifx\nextargument\lineending % this can be an option
-% % \def\nextargument{\begingroup\def\\ {\endgroup\dogetgroupargument#1#2}\\}%
-% %\normalelse\normalifx\nextargument\blankspace % but may never be default
-% % \def\nextargument{\begingroup\def\\ {\endgroup\dogetgroupargument#1#2}\\}%
-% \normalelse
-% \endrobusttest
-% \ifnum\expectedarguments>\noexpectedarguments
-% \showargumenterror{\number\expectedarguments}{\number\inputlineno}%
-% \fi
-% \let\expectedarguments\noexpectedarguments
-% \def\nextargument{#2\dodogetargument{}}%
-% \normalfi%\normalfi\normalfi % so let's get rid of it
-% \nextargument}%
-% \beginrobusttest
-% \futurelet\nextargument\nextnextargument}
-
-% \def\dogetgroupargument#1#2%
-% {\def\nextnextargument%
-% {\normalifx\nextargument\bgroup
-% \endrobusttest
-% \noshowargumenterror
-% \def\nextargument{#1\dodogetargument}%
-% %\normalelse\normalifx\nextargument\lineending % this can be an option
-% % \def\nextargument{\begingroup\def\\ {\endgroup\dogetgroupargument#1#2}\\}%
-% %\normalelse\normalifx\nextargument\blankspace % but may never be default
-% % \def\nextargument{\begingroup\def\\ {\endgroup\dogetgroupargument#1#2}\\}%
-% \normalelse
-% \endrobusttest
-% \doshowargumenterror
-% \def\nextargument{#2\dodogetargument{}}%
-% \normalfi%\normalfi\normalfi % so let's get rid of it
-% \nextargument}%
-% \beginrobusttest
-% \futurelet\nextargument\nextnextargument}
-
-% we need to use an \ifcase in order to honor the \normal...
+%D We can add additional definitions later when we have defined
+%D \type {\appendtoks}.
\def \permitspacesbetweengroups{\chardef\@@permitspacesbetweengroups=0 }
\def\dontpermitspacesbetweengroups{\chardef\@@permitspacesbetweengroups=1 }
@@ -4279,11 +4379,16 @@
\chardef\statuswidth=15
\chardef\statuswrite=16
-\def\writestring
- {\immediate\write\statuswrite}
+\newtoks\everywritestring
+
+\def\writestring#1%
+ {\begingroup
+ \the\everywritestring
+ \immediate\write\statuswrite{#1}%
+ \endgroup}
\def\writeline
- {\writestring{}}
+ {\immediate\write\statuswrite{}}
%D First we present the normal \TEX\ variant, later we will
%D show the \ETEX-way.
@@ -4312,7 +4417,6 @@
\space\space\space\space\space\space\space
\space\space\space\space\space\space\space
\space\space\space\space\space\space\end
- %\expanded{\writestring{\the\scratchtoks\space:\space#2}}%
\@EA\writestring\@EA{\the\scratchtoks\space:\space#2}%
\endgroup}
diff --git a/Master/texmf-dist/tex/context/base/syst-new.tex b/Master/texmf-dist/tex/context/base/syst-new.tex
index 0172745bf4b..6112b6f6f83 100644
--- a/Master/texmf-dist/tex/context/base/syst-new.tex
+++ b/Master/texmf-dist/tex/context/base/syst-new.tex
@@ -820,4 +820,63 @@
\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
+
+\beginETEX \numexpr
+
+\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}
+
+\endETEX
+
+\beginTEX
+
+\def\uncompresslist[#1]%
+ {\def\uncompressedlist{#1}}
+
+\endTEX
+
+%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}
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-pln.tex b/Master/texmf-dist/tex/context/base/syst-pln.tex
index e60a736444d..4259eb04ee2 100644
--- a/Master/texmf-dist/tex/context/base/syst-pln.tex
+++ b/Master/texmf-dist/tex/context/base/syst-pln.tex
@@ -374,21 +374,15 @@
%D Extra dimension parameters.
-\newskip \bigskipamount
-\newdimen \jot
-\newskip \medskipamount
-\newskip \normalbaselineskip
-\newskip \normallineskip
-\newdimen \normallineskiplimit
-\newskip \smallskipamount
-
-\bigskipamount = 12pt plus 4pt minus 4pt
-\jot = 3pt
-\medskipamount = 6pt plus 2pt minus 2pt
-\normalbaselineskip = 12pt
-\normallineskip = 1pt
-\normallineskiplimit = 0pt
-\smallskipamount = 3pt plus 1pt minus 1pt
+\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:
@@ -595,7 +589,7 @@
{\advance\leftskip \parindent
\advance\rightskip\parindent}
-%D Useful, used too, but sometimes dangerous:
+%D Useful, used too, but sometimes dangerous:
\def\leavevmode{\unhbox\voidb@x}
diff --git a/Master/texmf-dist/tex/context/base/syst-xtx.tex b/Master/texmf-dist/tex/context/base/syst-xtx.tex
index 7466725c769..af6d6e8dffd 100644
--- a/Master/texmf-dist/tex/context/base/syst-xtx.tex
+++ b/Master/texmf-dist/tex/context/base/syst-xtx.tex
@@ -24,10 +24,19 @@
\immediate\openin\scratchread=xplain.tex \ifeof\scratchread
% no initialization file
\else
- \input xplain.tex
+ \input xplain.tex\relax
\fi
\else
- \input unicode-letters.tex
+ \input unicode-letters.tex\relax
+ % begin of patch (turkish patterns need this)
+ \begingroup
+ \catcode`\{=1 \catcode`\}=2 \catcode`\#=6
+ \def\C #1 #2 #3 {\global\uccode"#1="#2 \global\lccode"#1="#3 } % case mappings (non-letter)
+ \def\L #1 #2 #3 {\global\catcode"#1=11 \C #1 #2 #3 } % letter with case mappings
+ \L 201C 201C 201C
+ \L 201D 201D 201D
+ \endgroup
+ % end of patch
\fi
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/type-akb.tex b/Master/texmf-dist/tex/context/base/type-akb.tex
index b49a8f25f8f..7c02144d5b2 100644
--- a/Master/texmf-dist/tex/context/base/type-akb.tex
+++ b/Master/texmf-dist/tex/context/base/type-akb.tex
@@ -89,8 +89,9 @@
\stoptypescript
-\starttypescript [adobekb] [ec]
+\starttypescript [adobekb,berry] [ec]
+\loadmapfile[8r-base.map]
\loadmapfile[ec-base.map]
\definefontsynonym [ec-utmr8a] [ptmr8t] [encoding=ec]
@@ -149,7 +150,7 @@
% the following fonts are normally not present on tex live
-\starttypescript [adobekb] [texnansi]
+\starttypescript [adobekb,berry] [texnansi]
\loadmapfile[texnansi-base.map]
@@ -207,6 +208,46 @@
\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 53a178d6e24..5f10bb95ee6 100644
--- a/Master/texmf-dist/tex/context/base/type-buy.tex
+++ b/Master/texmf-dist/tex/context/base/type-buy.tex
@@ -111,16 +111,16 @@
\definefontsynonym [MathItalic] [LucidaNewMath-AltDemiItalic]
\definefontsynonym [MathSymbol] [LucidaNewMath-Symbol-Demi]
\definefontsynonym [MathAlpha] [LucidaNewMath-Arrows-Demi]
- \definefontsynonym [MathBeta] [LucidaNewMath-DemiBold]
+ \definefontsynonym [MathBeta] [LucidaNewMath-Demi]
\stoptypescript
\starttypescript [bfmath] [lucida] [name]
- \definefontsynonym [MathRomanBold] [LucidaNewMath-Demibold]
+ \definefontsynonym [MathRomanBold] [LucidaNewMath-Demi]
\definefontsynonym [MathExtensionBold] [LucidaNewMath-Extension]
\definefontsynonym [MathItalicBold] [LucidaNewMath-AltDemiItalic]
\definefontsynonym [MathSymbolBold] [LucidaNewMath-Symbol-Demi]
\definefontsynonym [MathAlphaBold] [LucidaNewMath-Arrows-Demi]
- \definefontsynonym [MathBetaBold] [LucidaNewMath-DemiBold] % ??
+ \definefontsynonym [MathBetaBold] [LucidaNewMath-Demi]
\stoptypescript
\starttypescript [handwriting] [lucida] [name]
@@ -172,7 +172,7 @@
\definefontsynonym [LucidaNewMath-AltDemiItalic] [lbmdo]
\definefontsynonym [LucidaNewMath-Arrows-Demi] [lbmad]
\definefontsynonym [LucidaNewMath-Extension] [lbme]
- \definefontsynonym [LucidaNewMath-DemiBold] [lbmd]
+ \definefontsynonym [LucidaNewMath-Demi] [lbmd]
\definefontsynonym [LucidaNewMath-DemiItalic] [lbmdi]
\definefontsynonym [LucidaNewMath-Symbol-Demi] [lbmsd]
\stoptypescript
@@ -887,7 +887,6 @@
\stoptypescript
-
\stoptypescriptcollection
\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-cow.tex b/Master/texmf-dist/tex/context/base/type-cow.tex
new file mode 100644
index 00000000000..027f6b6b7bd
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/type-cow.tex
@@ -0,0 +1,83 @@
+%D \module
+%D [ file=type-cow,
+%D version=2006.06.23,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Cow Fonts,
+%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 The cow fonts are a project of Duane Bibby, Hans Hagen and Taco
+%D Hoekwater.
+
+\starttypescriptcollection[cow]
+
+\starttypescript [math,serif] [cow,sheep] [default]
+ \setups[font:fallback:serif]
+ \usemathcollection[cow]
+ \loadmapfile[koeieletters.map]
+ \definefontsynonym [Serif] [Cows] [encoding=\typescriptthree]
+ \definefontsynonym [SerifContour] [CowsContour] [encoding=\typescriptthree]
+ \definefontsynonym [SerifLogo] [CowsLogo] [encoding=\typescriptthree]
+ \definefontsynonym [SerifLogoContour][CowsLogoContour] [encoding=\typescriptthree]
+ \definefontsynonym [MathRoman] [CowsMathRoman] [encoding=\typescriptthree]
+ \definefontsynonym [MathItalic] [CowsMathItalic] [encoding=\typescriptthree]
+ \definefontsynonym [MathSymbol] [CowsMathSymbol] [encoding=\typescriptthree]
+ \definefontsynonym [MathExtension] [CowsMathExtensions][encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [math,serif] [sheep] [default]
+ \setups[font:fallback:serif]
+ \usemathcollection[cow]
+ \loadmapfile[koeieletters.map]
+ \definefontsynonym [Serif] [Sheep] [encoding=\typescriptthree]
+ \definefontsynonym [SerifContour] [SheepContour] [encoding=\typescriptthree]
+ \definefontsynonym [SerifLogo] [SheepLogo] [encoding=\typescriptthree]
+ \definefontsynonym [SerifLogoContour][SheepLogoContour] [encoding=\typescriptthree]
+ \definefontsynonym [MathRoman] [SheepMathRoman] [encoding=\typescriptthree]
+ \definefontsynonym [MathItalic] [SheepMathItalic] [encoding=\typescriptthree]
+ \definefontsynonym [MathSymbol] [SheepMathSymbol] [encoding=\typescriptthree]
+ \definefontsynonym [MathExtension] [SheepMathExtensions][encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [all] [cow,sheep] [default]
+ \definefontsynonym [Cows] [koeielett]
+ \definefontsynonym [CowsContour] [koeielett-contour]
+ \definefontsynonym [CowsLogo] [koeielogos]
+ \definefontsynonym [CowsLogoContour] [koeielogos-contour]
+ \definefontsynonym [CowsMathRoman] [koeielett]
+ \definefontsynonym [CowsMathItalic] [koeieletter-mi]
+ \definefontsynonym [CowsMathSymbol] [koeieletter-sy]
+ \definefontsynonym [CowsMathExtensions][koeieletter-ex]
+\stoptypescript
+
+\starttypescript [all] [sheep] [default]
+ \definefontsynonym [Sheep] [koeielett]
+ \definefontsynonym [SheepContour] [koeielett-contour]
+ \definefontsynonym [SheepLogo] [koeielogos]
+ \definefontsynonym [SheepLogoContour] [koeielogos-contour]
+ \definefontsynonym [SheepMathRoman] [koeielettx]
+ \definefontsynonym [SheepMathItalic] [koeieletter-mi]
+ \definefontsynonym [SheepMathSymbol] [koeieletter-syx]
+ \definefontsynonym [SheepMathExtensions][koeieletter-ex]
+\stoptypescript
+
+\starttypescript [cow] [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]
+\stoptypescript
+
+\starttypescript [sheep] [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]
+\stoptypescript
+
+\stoptypescriptcollection
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-dis.tex b/Master/texmf-dist/tex/context/base/type-dis.tex
index c4cbd6f96c1..55bee181b12 100644
--- a/Master/texmf-dist/tex/context/base/type-dis.tex
+++ b/Master/texmf-dist/tex/context/base/type-dis.tex
@@ -11,57 +11,14 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D Unfortunately not all latin modern metrics ship the way we like:
-%D
-%D Some day I will replace cmr10 etc by their full names.
+%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.
-\starttypescriptcollection[distributed fonts]
-
-\starttypescript[all][modern,latin-modern][all]
-
- % fallbacks, no math in latin modern
-
- \definefontsynonym[lmbsy10] [cmbsy10]
- \definefontsynonym[lmbsy5] [cmbsy5]
- \definefontsynonym[lmbsy6] [cmbsy7]
- \definefontsynonym[lmbsy7] [cmbsy7]
- \definefontsynonym[lmbsy8] [cmbsy7]
- \definefontsynonym[lmbsy9] [cmbsy10]
- \definefontsynonym[lmdunh10][cmdunh10]
- \definefontsynonym[lmex10] [cmex10]
- \definefontsynonym[lmex7] [cmex10]
- \definefontsynonym[lmex8] [cmex10]
- \definefontsynonym[lmex9] [cmex10]
- \definefontsynonym[lmff10] [cmff10]
- \definefontsynonym[lmfi10] [cmfi10]
- \definefontsynonym[lmfib8] [cmfib8]
- \definefontsynonym[lmmi10] [cmmi10]
- \definefontsynonym[lmmi12] [cmmi12]
- \definefontsynonym[lmmi5] [cmmi5]
- \definefontsynonym[lmmi6] [cmmi6]
- \definefontsynonym[lmmi7] [cmmi7]
- \definefontsynonym[lmmi8] [cmmi8]
- \definefontsynonym[lmmi9] [cmmi9]
- \definefontsynonym[lmmib10] [cmmib10]
- \definefontsynonym[lmmib5] [cmmib5]
- \definefontsynonym[lmmib6] [cmmib7]
- \definefontsynonym[lmmib7] [cmmib7]
- \definefontsynonym[lmmib8] [cmmib7]
- \definefontsynonym[lmmib9] [cmmib10]
- \definefontsynonym[lmsy10] [cmsy10]
- \definefontsynonym[lmsy5] [cmsy5]
- \definefontsynonym[lmsy6] [cmsy6]
- \definefontsynonym[lmsy7] [cmsy7]
- \definefontsynonym[lmsy8] [cmsy8]
- \definefontsynonym[lmsy9] [cmsy9]
- \definefontsynonym[lmtex10] [cmtex10]
- \definefontsynonym[lmtex8] [cmtex8]
- \definefontsynonym[lmtex9] [cmtex9]
-
-\stoptypescript
+\endinput
-%D For those who want to use the existing tfm and vf files we
-%D provide:
+\starttypescriptcollection[distributed fonts]
\starttypescript [berry] [8r]
diff --git a/Master/texmf-dist/tex/context/base/type-enc.tex b/Master/texmf-dist/tex/context/base/type-enc.tex
index af6c6974629..435affba740 100644
--- a/Master/texmf-dist/tex/context/base/type-enc.tex
+++ b/Master/texmf-dist/tex/context/base/type-enc.tex
@@ -507,10 +507,10 @@
\starttypescript [sans] [modern,computer-modern,latin-modern] % [default]
\definefontsynonym [ComputerModernSans] [LMSans-Regular]
- \definefontsynonym [ComputerModernSans-Italic] [LMSans-Italic]
+ \definefontsynonym [ComputerModernSans-Italic] [LMSans-Oblique]
\definefontsynonym [ComputerModernSans-Slanted] [LMSans-Oblique]
\definefontsynonym [ComputerModernSans-Bold] [LMSans-Bold]
- \definefontsynonym [ComputerModernSans-BoldItalic] [LMSans-BoldItalic]
+ \definefontsynonym [ComputerModernSans-BoldItalic] [LMSans-BoldOblique]
\definefontsynonym [ComputerModernSans-BoldSlanted] [LMSans-BoldOblique]
\definefontsynonym [ComputerModernSans-Caps] [LMSans-Regular] % [LMSans-CapsRegular]
\definefontsynonym [ComputerModernSans-CapsSlanted] [LMSans-Oblique] % [LMSans-CapsOblique]
@@ -555,6 +555,44 @@
\definefontsynonym [ComputerModernMath-Symbol-Bold] [cmbsy10]
\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}rm1000] [encoding=\typescriptthree]
+% \definefontsynonym [ComputerModern-Slanted] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+% \definefontsynonym [ComputerModern-Bold] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+% \definefontsynonym [ComputerModern-BoldItalic] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+% \definefontsynonym [ComputerModern-BoldSlanted] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+% \definefontsynonym [ComputerModern-Caps] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+% \definefontsynonym [ComputerModern-CapsSlanted] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+% \stoptypescript
+
+% \starttypescript [serif] [computer-modern] [t2a,t2b,t2c,x2]
+% \definefontsynonym [ComputerModernSans] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+% \definefontsynonym [ComputerModernSans-Italic] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+% \definefontsynonym [ComputerModernSans-Slanted] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+% \definefontsynonym [ComputerModernSans-Bold] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+% \definefontsynonym [ComputerModernSans-BoldItalic] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+% \definefontsynonym [ComputerModernSans-BoldSlanted] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+% \definefontsynonym [ComputerModernSans-Caps] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+% \definefontsynonym [ComputerModernSans-CapsSlanted] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+% \stoptypescript
+
+% \starttypescript [modo] [computer-modern] [t2a,t2b,t2c,x2]
+% \definefontsynonym [ComputerModernMono] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+% \definefontsynonym [ComputerModernMono-Italic] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+% \definefontsynonym [ComputerModernMono-Slanted] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+% \definefontsynonym [ComputerModernMono-Bold] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+% \definefontsynonym [ComputerModernMono-BoldItalic] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+% \definefontsynonym [ComputerModernMono-BoldSlanted] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+% \definefontsynonym [ComputerModernMono-Caps] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+% \definefontsynonym [ComputerModernMono-CapsSlanted] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+% \stoptypescript
+
% Computer Concrete (AMS)
\starttypescript [serif] [concrete] [default]
@@ -820,30 +858,30 @@
\starttypescript [math] [antykwa-torunska] [default]
\definefontsynonym [AntykwaTorunska-Math-Letters-Regular] [rm-anttr]
- \definefontsynonym [AntykwaTorunska-Math-Letters-RegularItalic] [mi-anttr]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-Regular] [sy-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-anttl]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-Light] [sy-anttl]
- \definefontsynonym [AntykwaTorunska-Math-Extension-Light] [ex-anttr] % [ex-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-anttcr]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-CondRegular] [sy-anttcr]
- \definefontsynonym [AntykwaTorunska-Math-Extension-CondRegular] [ex-anttr]
+ \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-anttcl]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-CondLight] [sy-anttcl]
- \definefontsynonym [AntykwaTorunska-Math-Extension-CondLight] [ex-anttr] % [ex-anttl]
+ \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)
@@ -859,38 +897,78 @@
% maybe this will change in Iwona-Math-Letters and Iwona-Math-Letters-Italic
-\starttypescript [sans] [iwona,iwona-light,iwona-medium] [texnansi,ec,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]
+\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-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-iwonali]
- \definefontsynonym [Iwona-Math-Extension-Light] [ex-iwonal]
+ \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-iwonami]
- \definefontsynonym [Iwona-Math-Extension-Medium] [ex-iwonam]
+ \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)
@@ -911,22 +989,22 @@
\starttypescript [math] [kurier] [default]
\definefontsynonym [Kurier-Math-Letters-Regular] [rm-kurierr]
\definefontsynonym [Kurier-Math-Letters-RegularItalic] [mi-kurierri]
- \definefontsynonym [Kurier-Math-Symbols-Regular] [sy-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-kurierli]
- \definefontsynonym [Kurier-Math-Extension-Light] [ex-kurierl]
+ \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-kuriermi]
- \definefontsynonym [Kurier-Math-Extension-medium] [ex-kurierm]
+ \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)
diff --git a/Master/texmf-dist/tex/context/base/type-exa.tex b/Master/texmf-dist/tex/context/base/type-exa.tex
index d08b565f477..123e2cb4daa 100644
--- a/Master/texmf-dist/tex/context/base/type-exa.tex
+++ b/Master/texmf-dist/tex/context/base/type-exa.tex
@@ -168,40 +168,7 @@
\stoptypescript
-% \starttypescript [serif] [hanging] [pure,normal]
-%
-% \setupfontsynonym [Serif] [handling=\typescriptthree]
-% \setupfontsynonym [SerifBold] [handling=\typescriptthree bold]
-% \setupfontsynonym [SerifSlanted] [handling=\typescriptthree slanted]
-% \setupfontsynonym [SerifItalic] [handling=\typescriptthree italic]
-% \setupfontsynonym [SerifBoldSlanted] [handling=\typescriptthree boldslanted]
-% \setupfontsynonym [SerifBoldItalic] [handling=\typescriptthree bolditalic]
-%
-% \stoptypescript
-%
-% \starttypescript [sans] [hanging] [pure,normal]
-%
-% \setupfontsynonym [Sans] [handling=\typescriptthree]
-% \setupfontsynonym [SansBold] [handling=\typescriptthree bold]
-% \setupfontsynonym [SansSlanted] [handling=\typescriptthree slanted]
-% \setupfontsynonym [SansItalic] [handling=\typescriptthree italic]
-% \setupfontsynonym [SansBoldSlanted] [handling=\typescriptthree boldslanted]
-% \setupfontsynonym [SansBoldItalic] [handling=\typescriptthree bolditalic]
-%
-% \stoptypescript
-%
-% \starttypescript [mono] [hanging] [pure,normal]
-%
-% \setupfontsynonym [Mono] [handling=\typescriptthree]
-% \setupfontsynonym [MonoBold] [handling=\typescriptthree bold]
-% \setupfontsynonym [MonoSlanted] [handling=\typescriptthree slanted]
-% \setupfontsynonym [MonoItalic] [handling=\typescriptthree italic]
-% \setupfontsynonym [MonoBoldSlanted] [handling=\typescriptthree boldslanted]
-% \setupfontsynonym [MonoBoldItalic] [handling=\typescriptthree bolditalic]
-%
-% \stoptypescript
-
-\starttypescript [serif,sans,mono] [handling,hanging,hz] [pure,normal,hz,quality]
+\starttypescript [serif,sans,mono] [handling,hanging] [pure,normal]
\setupfontsynonym [\typescriptprefix\typescriptone ] [handling=\typescriptthree]
\setupfontsynonym [\typescriptprefix\typescriptone Bold] [handling=\typescriptthree bold]
@@ -212,6 +179,29 @@
\stoptypescript
+\starttypescript [serif,sans,mono] [handling,hz] [hz,quality,highquality]
+
+ \setupfontsynonym [\typescriptprefix\typescriptone ] [handling=\typescriptthree]
+ \setupfontsynonym [\typescriptprefix\typescriptone Bold] [handling=\typescriptthree]
+ \setupfontsynonym [\typescriptprefix\typescriptone Slanted] [handling=\typescriptthree]
+ \setupfontsynonym [\typescriptprefix\typescriptone Italic] [handling=\typescriptthree]
+ \setupfontsynonym [\typescriptprefix\typescriptone BoldSlanted] [handling=\typescriptthree]
+ \setupfontsynonym [\typescriptprefix\typescriptone BoldItalic] [handling=\typescriptthree]
+
+\stoptypescript
+
+
+\starttypescript [serif,sans,mono] [handling] [noligs,prespacing,flexspacing]
+
+ \setupfontsynonym [\typescriptprefix\typescriptone ] [handling=\typescriptthree]
+ \setupfontsynonym [\typescriptprefix\typescriptone Bold] [handling=\typescriptthree]
+ \setupfontsynonym [\typescriptprefix\typescriptone Slanted] [handling=\typescriptthree]
+ \setupfontsynonym [\typescriptprefix\typescriptone Italic] [handling=\typescriptthree]
+ \setupfontsynonym [\typescriptprefix\typescriptone BoldSlanted] [handling=\typescriptthree]
+ \setupfontsynonym [\typescriptprefix\typescriptone BoldItalic] [handling=\typescriptthree]
+
+\stoptypescript
+
% handy
\starttypescript [serif] [simple] [name] % bad, will be changed but in sycn with manuals that use it
@@ -239,7 +229,7 @@
\stoptypescript
-\starttypescript [antykwa-torunska] [texnansi,ec,8r,uc]
+\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]
@@ -248,6 +238,17 @@
\stoptypescript
+\starttypescript [iwona,iwona-light,iwona-heavy,iwona-medium] [texnansi,ec,8r,uc,t2a]
+
+ % todo: rscale
+
+ \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]
+
+\stoptypescript
+
\stoptypescriptcollection
\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-ghz.tex b/Master/texmf-dist/tex/context/base/type-ghz.tex
index 23f71d58378..318e6d596ed 100644
--- a/Master/texmf-dist/tex/context/base/type-ghz.tex
+++ b/Master/texmf-dist/tex/context/base/type-ghz.tex
@@ -1,8 +1,27 @@
-% run texfont from currentpath with the fonts on subpath fontsite/500
-
-% texfont --en=texnansi --ve=linotype --co=optima type-ghz.dat
-% texfont --en=texnansi --ve=linotype --co=optima-nova type-ghz.dat
-% texfont --en=texnansi --ve=linotype --co=palatino type-ghz.dat
+%D \module
+%D [ file=type-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.
+
+% \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]
@@ -66,28 +85,131 @@
% optima nova
+% see antykwa, we could define variants for light and osf
+
+\starttypescript[optima-nova][texnansi,ec] % will change to more narrow tt
+ \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.125]
+ \definetypeface[optima][mm][mono][latin-modern][default][encoding=\typescripttwo,rscale=1.125]
+ \quittypescriptscanning
+\stoptypescript
+
\starttypescript [sans] [optima-nova] [name]
\definefontsynonym [Sans] [OptimaNovaLT-Regular]
\definefontsynonym [SansItalic] [OptimaNovaLT-Italic]
- \definefontsynonym [SansBold] [OptimaLT-Bold]
- \definefontsynonym [SansBoldItalic] [OptimaLT-BoldItalic]
- \definefontsynonym [SansSlanted] [SansItalic]
- \definefontsynonym [SansBoldSlanted] [SansBoldItalic]
- \definefontsynonym [SansCaps] [Sans]
+ \definefontsynonym [SansBold] [OptimaNovaLT-Bold]
+ \definefontsynonym [SansBoldItalic] [OptimaNovaLT-BoldItalic]
+ \definefontsynonym [SansSlanted] [OptimaNovaLT-Italic]
+ \definefontsynonym [SansBoldSlanted] [OptimaNovaLT-BoldItalic]
+ \definefontsynonym [SansCaps] [OptimaNovaLT-RegularSC]
+
+ \definefontvariant [Serif][osf][OsF]
+ \definefontvariant [Serif][sc][Caps]
+
+ \definefontsynonym [SansOsF] [OptimaNovaLT-RegularOsF]
+ \definefontsynonym [SansItalicOsF] [OptimaNovaLT-ItalicOsF]
+ \definefontsynonym [SansBoldOsF] [OptimaNovaLT-BoldOsF]
+ \definefontsynonym [SansBoldItalicOsF] [OptimaNovaLT-BoldItalicOsF]
+ \definefontsynonym [SansSlantedOsF] [OptimaNovaLT-ItalicOsF]
+ \definefontsynonym [SansBoldSlantedOsF] [OptimaNovaLT-BoldItalicOsF]
+ \definefontsynonym [SansCapsOsF] [OptimaNovaLT-RegularSC]
+
+ \definefontsynonym [SansCaps] [OptimaNovaLT-RegularSC]
+ \definefontsynonym [SansItalicCaps] [OptimaNovaLT-ItalicSC ]
+ \definefontsynonym [SansBoldCaps] [OptimaNovaLT-BoldSC]
+ \definefontsynonym [SansBoldItalicCaps] [OptimaNovaLT-BoldItalicSC]
+ \definefontsynonym [SansSlantedCaps] [OptimaNovaLT-ItalicSC]
+ \definefontsynonym [SansBoldSlantedCaps] [OptimaNovaLT-BoldItalicSC]
+ \definefontsynonym [SansCapsCaps] [OptimaNovaLT-RegularSC]
+
+\stoptypescript
+
+\starttypescript [sans] [optima-nova-os] [name]
+
+ \definefontsynonym [Sans] [OptimaNovaLT-RegularOsF]
+ \definefontsynonym [SansItalic] [OptimaNovaLT-ItalicOsF]
+ \definefontsynonym [SansBold] [OptimaNovaLT-BoldOsF]
+ \definefontsynonym [SansBoldItalic] [OptimaNovaLT-BoldItalicOsF]
+ \definefontsynonym [SansSlanted] [OptimaNovaLT-ItalicOsF]
+ \definefontsynonym [SansBoldSlanted] [OptimaNovaLT-BoldItalicOsF]
+ \definefontsynonym [SansCaps] [OptimaNovaLT-RegularSC]
+
+\stoptypescript
+
+\starttypescript [sans] [optima-nova-light] [name] % may change
+
+ \definefontsynonym [Sans] [OptimaNovaLT-Light]
+ \definefontsynonym [SansItalic] [OptimaNovaLT-LightItalic]
+ \definefontsynonym [SansBold] [OptimaNovaLT-Medium]
+ \definefontsynonym [SansBoldItalic] [OptimaNovaLT-MediumItalic]
+ \definefontsynonym [SansSlanted] [OptimaNovaLT-LightItalic]
+ \definefontsynonym [SansBoldSlanted] [OptimaNovaLT-MediumItalic]
+ \definefontsynonym [SansCaps] [OptimaNovaLT-LightSC]
+
+\stoptypescript
+
+\starttypescript [sans] [optima-nova-medium] [name] % may change
+
+ \definefontsynonym [Sans] [OptimaNovaLT-Medium]
+ \definefontsynonym [SansItalic] [OptimaNovaLT-MediumItalic]
+ \definefontsynonym [SansBold] [OptimaNovaLT-Heavy]
+ \definefontsynonym [SansBoldItalic] [OptimaNovaLT-HeavyItalic]
+ \definefontsynonym [SansSlanted] [OptimaNovaLT-MediumItalic]
+ \definefontsynonym [SansBoldSlanted] [OptimaNovaLT-HeavyItalic]
+ \definefontsynonym [SansCaps] [OptimaNovaLT-MediumSC]
\stoptypescript
-\starttypescript [sans] [optima-nova] [texnansi,ec,8r]
+\starttypescript [sans] [optima-nova,optima-nova-light,optima-nova-medium,optima-nova-os] [texnansi,ec,8r]
\loadmapfile[\typescriptthree-linotype-optima-nova.map]
- \definefontsynonym [OptimaNovaLT-Regular] [\typescriptthree-lt55483] [encoding=\typescriptthree]
- \definefontsynonym [OptimaNovaLT-Italic] [\typescriptthree-lt55486] [encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-Light] [\typescriptthree-lt55476][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-LightSC] [\typescriptthree-lt55477][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-LightOsF] [\typescriptthree-lt55478][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-LightItalic] [\typescriptthree-lt55479][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-LightItalicSC] [\typescriptthree-lt55480][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-LightItalicOsF] [\typescriptthree-lt55481][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-LightCond] [\typescriptthree-lt55482][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-Regular] [\typescriptthree-lt55483][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-RegularSC] [\typescriptthree-lt55484][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-RegularOsF] [\typescriptthree-lt55485][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-Italic] [\typescriptthree-lt55486][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-ItalicSC] [\typescriptthree-lt55487][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-ItalicOsF] [\typescriptthree-lt55488][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-Condensed] [\typescriptthree-lt55489][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-Medium] [\typescriptthree-lt55490][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-MediumSC] [\typescriptthree-lt55491][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-MediumOsF] [\typescriptthree-lt55492][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-MediumItalic] [\typescriptthree-lt55493][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-MediumItalicSC] [\typescriptthree-lt55494][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-MediumItalicOsF][\typescriptthree-lt55495][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-MediumCond] [\typescriptthree-lt55496][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-TitlingInitials][\typescriptthree-lt55497][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-Demi] [\typescriptthree-lt55498][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-DemiSC] [\typescriptthree-lt55499][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-DemiOsF] [\typescriptthree-lt55500][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-DemiItalic] [\typescriptthree-lt55501][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-DemiItalicSC] [\typescriptthree-lt55502][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-DemiItalicOsF] [\typescriptthree-lt55503][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-DemiCond] [\typescriptthree-lt55504][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-Bold] [\typescriptthree-lt55505][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-BoldSC] [\typescriptthree-lt55506][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-BoldOsF] [\typescriptthree-lt55507][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-BoldItalic] [\typescriptthree-lt55508][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-BoldItalicSC] [\typescriptthree-lt55509][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-BoldItalicOsF] [\typescriptthree-lt55510][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-BoldCond] [\typescriptthree-lt55511][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-Heavy] [\typescriptthree-lt55512][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-HeavyItalic] [\typescriptthree-lt55513][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-Black] [\typescriptthree-lt55514][encoding=\typescriptthree]
+ \definefontsynonym[OptimaNovaLT-BlackItalic] [\typescriptthree-lt55515][encoding=\typescriptthree]
\stoptypescript
-\starttypescript [map] [optima-nova] [texnansi,ec,8r]
+\starttypescript [map] [optima-nova,optima-nova-light,optima-nova-medium,optima-nova-os] [texnansi,ec,8r]
\loadmapfile[\typescriptthree-linotype-optima-nova.map]
\stoptypescript
@@ -99,11 +221,10 @@
\definefontsynonym [SerifItalic] [PalatinoLT-Italic]
\definefontsynonym [SerifBold] [PalatinoLT-Bold]
\definefontsynonym [SerifBoldItalic] [PalatinoLT-BoldItalic]
-
\definefontsynonym [SerifSlanted] [SerifItalic]
\definefontsynonym [SerifBoldSlanted] [SerifBoldItalic]
- \definefontsynonym [SerifCaps] [Palatino-SC]
+ \definefontsynonym [SerifCaps] [PalatinoSC]
\stoptypescript
@@ -126,7 +247,7 @@
\definefontsynonym[Palatino-BoldOsF] [\typescriptthree-pobos] [encoding=\typescriptthree]
\definefontsynonym[Palatino-ItalicOsF] [\typescriptthree-poios] [encoding=\typescriptthree]
- \definefontsynonym[Palatino-SC] [\typescriptthree-posc] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoSC] [\typescriptthree-posc] [encoding=\typescriptthree]
\stoptypescript
@@ -134,7 +255,137 @@
\loadmapfile[\typescriptthree-linotype-palatino.map]
\stoptypescript
-\stoptypescriptcollection
+% palatino nova
+
+\starttypescript [serif] [palatino-nova] [name]
+
+ \definefontsynonym [Serif] [PalatinoNova-Regular]
+ \definefontsynonym [SerifItalic] [PalatinoNova-Italic]
+ \definefontsynonym [SerifBold] [PalatinoNova-Bold]
+ \definefontsynonym [SerifBoldItalic] [PalatinoNova-BoldItalic]
+ \definefontsynonym [SerifSlanted] [PalatinoNova-Italic]
+ \definefontsynonym [SerifBoldSlanted] [PalatinoNova-BoldItalic]
+ \definefontsynonym [SerifCaps] [PalatinoNova-RegularSC]
+
+ \definefontvariant [Serif][sc][Caps]
+
+ \definefontsynonym [SerifCaps] [PalatinoNova-RegularSC]
+ \definefontsynonym [SerifItalicCaps] [PalatinoNova-ItalicSC]
+ \definefontsynonym [SerifBoldCaps] [PalatinoNova-BoldSC]
+ \definefontsynonym [SerifBoldItalicCaps] [PalatinoNova-BoldItalicSC]
+ \definefontsynonym [SerifSlantedCaps] [PalatinoNova-ItalicSC]
+ \definefontsynonym [SerifBoldSlantedCaps] [PalatinoNova-BoldItalicSC]
+ \definefontsynonym [SerifCapsCaps] [PalatinoNova-RegularSC]
+
+\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] [PalatinoNova-Regular]
+ \definefontsynonym [SerifBoldSlanted] [PalatinoNova-Italic]
+ \definefontsynonym [SerifCaps] [PalatinoNova-LightSC]
+
+\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] [PalatinoNova-Bold]
+ \definefontsynonym [SerifBoldSlanted] [PalatinoNova-BoldItalic]
+ \definefontsynonym [SerifCaps] [PalatinoNova-MediumSC]
+
+\stoptypescript
+
+\starttypescript [serif] [palatino-nova,palatino-nova-light,palatino-nova-medium] [texnansi,ec,8r]
+
+ \loadmapfile[\typescriptthree-linotype-palatino-nova.map]
+
+ \definefontsynonym[PalatinoNova-Light] [\typescriptthree-PalatinoNova-Light] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-LightItalic] [\typescriptthree-PalatinoNova-LightItalic] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-Regular] [\typescriptthree-PalatinoNova-Regular] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-Italic] [\typescriptthree-PalatinoNova-Italic] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-Medium] [\typescriptthree-PalatinoNova-Medium] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-MediumItalic][\typescriptthree-PalatinoNova-MediumItalic][encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-Bold] [\typescriptthree-PalatinoNova-Bold] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-BoldItalic] [\typescriptthree-PalatinoNova-BoldItalic] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-Imperial] [\typescriptthree-PalatinoNova-Imperial] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-Titling] [\typescriptthree-PalatinoNova-Titling] [encoding=\typescriptthree]
+
+ \loadmapfile[\typescriptthree-sc-linotype-palatino-nova.map]
+
+ \definefontsynonym[PalatinoNova-LightSC] [\typescriptthree-sc-PalatinoNova-Light] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-LightItalicSC] [\typescriptthree-sc-PalatinoNova-LightItalic] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-RegularSC] [\typescriptthree-sc-PalatinoNova-Regular] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-ItalicSC] [\typescriptthree-sc-PalatinoNova-Italic] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-MediumSC] [\typescriptthree-sc-PalatinoNova-Medium] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-MediumItalicSC][\typescriptthree-sc-PalatinoNova-MediumItalic][encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-BoldSC] [\typescriptthree-sc-PalatinoNova-Bold] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-BoldItalicSC] [\typescriptthree-sc-PalatinoNova-BoldItalic] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-ImperialSC] [\typescriptthree-sc-PalatinoNova-Imperial] [encoding=\typescriptthree]
+ \definefontsynonym[PalatinoNova-TitlingSC] [\typescriptthree-sc-PalatinoNova-Titling] [encoding=\typescriptthree]
+
+\stoptypescript
+
+\starttypescript [map] [palatino-nova,palatino-nova-light,palatino-nova-medium] [texnansi,ec,8r]
+ \loadmapfile[\typescriptthree-linotype-palatino-nova.map]
+ \loadmapfile[\typescriptthree-sc-linotype-palatino-nova.map]
+% \loadmapfile[\typescriptthree-os-linotype-palatino-nova.map]
+\stoptypescript
+
+% aldusnova
+
+\starttypescript [serif] [aldus-nova] [name]
+
+ \definefontsynonym [Serif] [AldusNova-Book]
+ \definefontsynonym [SerifItalic] [AldusNova-BookItalic]
+ \definefontsynonym [SerifBold] [AldusNova-Bold]
+ \definefontsynonym [SerifBoldItalic] [AldusNova-BoldItalic]
+ \definefontsynonym [SerifSlanted] [AldusNova-BookItalic]
+ \definefontsynonym [SerifBoldSlanted] [AldusNova-BoldItalic]
+ \definefontsynonym [SerifCaps] [AldusNova-BookSC]
+
+ \definefontvariant [Serif][sc][Caps]
+
+ \definefontsynonym [SerifCaps] [AldusNova-BookSC]
+ \definefontsynonym [SerifItalicCaps] [AldusNova-BookItalicSC]
+ \definefontsynonym [SerifBoldCaps] [AldusNova-BoldSC]
+ \definefontsynonym [SerifBoldItalicCaps] [AldusNova-BoldItalicSC]
+ \definefontsynonym [SerifSlantedCaps] [AldusNova-BookItalicSC]
+ \definefontsynonym [SerifBoldSlantedCaps] [AldusNova-BoldItalicSC]
+ \definefontsynonym [SerifCapsCaps] [AldusNova-BookSC]
+
+\stoptypescript
+
+\starttypescript [serif] [aldus-nova] [texnansi,ec,8r]
+
+ \loadmapfile[\typescriptthree-linotype-aldus-nova.map]
+
+ \definefontsynonym[AldusNova-Book] [\typescriptthree-AldusNova-Book] [encoding=\typescriptthree]
+ \definefontsynonym[AldusNova-BookItalic] [\typescriptthree-AldusNova-BookItalic] [encoding=\typescriptthree]
+ \definefontsynonym[AldusNova-Bold] [\typescriptthree-AldusNova-Bold] [encoding=\typescriptthree]
+ \definefontsynonym[AldusNova-BoldItalic] [\typescriptthree-AldusNova-BoldItalic] [encoding=\typescriptthree]
+
+ \loadmapfile[\typescriptthree-sc-linotype-aldus-nova.map]
+
+ \definefontsynonym[AldusNova-BookSC] [\typescriptthree-sc-AldusNova-Book] [encoding=\typescriptthree]
+ \definefontsynonym[AldusNova-BookItalicSC] [\typescriptthree-sc-AldusNova-BookItalic] [encoding=\typescriptthree]
+ \definefontsynonym[AldusNova-BoldSC] [\typescriptthree-sc-AldusNova-Bold] [encoding=\typescriptthree]
+ \definefontsynonym[AldusNova-BoldItalicSC] [\typescriptthree-sc-AldusNova-BoldItalic] [encoding=\typescriptthree]
+
+\stoptypescript
+
+\starttypescript [map] [aldus-nova] [texnansi,ec,8r]
+ \loadmapfile[\typescriptthree-linotype-aldus-nova.map]
+ \loadmapfile[\typescriptthree-sc-linotype-aldus-nova.map]
+\stoptypescript
+
% melior
@@ -169,5 +420,6 @@
\loadmapfile[\typescriptthree-linotype-melior.map]
\stoptypescript
+\stoptypescriptcollection
\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-gyr.tex b/Master/texmf-dist/tex/context/base/type-gyr.tex
new file mode 100644
index 00000000000..b5063201d1f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/type-gyr.tex
@@ -0,0 +1,36 @@
+%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.
+
+\starttypescriptcollection[gyre]
+
+% TeXGyrePagella
+%
+% qplr TeXGyrePagella-Regular
+% qplri TeXGyrePagella-Italic
+% qplb TeXGyrePagella-Bold
+% qplbi TeXGyrePagella-BoldItalic
+
+\starttypescript [serif] [palatino] [texnansi,ec,8r,t5,qx]
+ \loadmapfile[\typescriptthree-qpl.map]
+
+ \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-Slanted] [Palatino-Italic]
+ \definefontsynonym [Palatino-BoldSlanted] [Palatino-BoldItalic]
+ \definefontsynonym [Palatino-Caps] [Palatino]
+\stoptypescript
+
+\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/base/type-ini.tex b/Master/texmf-dist/tex/context/base/type-ini.tex
index f551c886197..16de327411e 100644
--- a/Master/texmf-dist/tex/context/base/type-ini.tex
+++ b/Master/texmf-dist/tex/context/base/type-ini.tex
@@ -84,7 +84,7 @@
\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
+%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
@@ -382,7 +382,7 @@
\def\loadmapfile[#1]%
{\expanded{\processcommalist[#1]}\loadthemapfile}
-% too soon, no driver known, \ifproductionrun \loadallfontmapfiles \fi}
+% too soon, no driver known, \ifproductionrun \loadallfontmapfiles \fi
% temp hack, will become just \addto
@@ -462,6 +462,9 @@
% 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
+
% \appendtoks \loadallfontmapfiles \to \everyPDFximage
% \appendtoks \loadallfontmapfiles \to \everystarttext
% \appendtoks \loadallfontmapfiles \to \everybeforepagebody
@@ -535,48 +538,21 @@
\def\typefaceencoding{\defaultencoding}
-% \def\dodefinetypeface[#1][#2][#3][#4][#5][#6]%
-% {\dododefinetypeface[#1][#2]%
-% \iffifthargument % sixth is optional
-% % \getparameters[\??ts][rscale=1,\s!encoding=\defaultencoding,#6]
-% % we need to expand since in #6 there can be a \typescripttwo
-% \expanded{\getparameters[\??ts][\s!rscale=1,\s!encoding=\defaultencoding,#6]}%
-% % toch niet \expanded{\getparameters[\??ts][\s!rscale=1,\s!encoding=\s!default,#6]}%
-% \pushmacro\relativefontsize
-% \pushmacro\typefaceencoding
-% \pushmacro\fontclass
-% \let\relativefontsize\@@tsrscale
-% \let\typefaceencoding\@@tsencoding
-% \setcurrentfontclass{#1}
-% \saverelativefontsize{#2}{\relativefontsize}% fall back
-% %\writestatus{typeface}{[#1] [#2] [#3] [#4]}
-% \writestatus\m!fonts{[#1] [#2] [#3] [#4] / \typefaceencoding}%
-% %\usetypescript[map][\typefaceencoding]% latest versions of pdftex can load after first page
-% \usetypescript[#3,map][#4][name,default,\typefaceencoding,special]% is default needed
-% \usetypescript[#3][#5][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}
-
% we can use \rawgetparameters or \rawgeteparameters
\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,#6]}% \geteparameters
+ \expanded{\getparameters[\??ts][\s!rscale=\plusone,\s!encoding=\defaultencoding,\s!text=,#6]}% \geteparameters
\pushmacro\relativefontsize
\pushmacro\typefaceencoding
\pushmacro\fontclass
\let\relativefontsize\@@tsrscale
\let\typefaceencoding\@@tsencoding
\setcurrentfontclass{#1}%
- \saverelativefontsize{#2}{\relativefontsize}% fall back
+ \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
%\usetypescript[map][\typefaceencoding]% latest versions of pdftex can load after first page
\usetypescript[#3,\t!map][#4][\t!name,\t!default,\typefaceencoding,\t!special]% is default needed
@@ -621,6 +597,30 @@
\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 \starttyping
+
+\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}
+ {\def\docommand##1{\setevalue{#1-##1}{#3}}%
+ \processcommalist[#2]\docommand}}}
+
+%D This hook sinto the font mechanism with:
+
+\def\checkfontclass#1%
+ {\edef\fontclass{\executeifdefined{\fontclass-#1}{\fontclass}}}
+
%D For backward compatibility we reimplement the font file
%D loading macro.
diff --git a/Master/texmf-dist/tex/context/base/type-map.tex b/Master/texmf-dist/tex/context/base/type-map.tex
index 2c87d8ad2ba..d6d8e2fcbef 100644
--- a/Master/texmf-dist/tex/context/base/type-map.tex
+++ b/Master/texmf-dist/tex/context/base/type-map.tex
@@ -24,7 +24,7 @@
\loadmapfile[t5-base.map]
\stoptypescript
-\starttypescript [map] [base] [all]
+\starttypescript [map] [base,euler,ams] [all]
\loadmapfile[original-ams-base.map]
% \loadmapfile[original-ams-cmr.map]
\loadmapfile[original-ams-euler.map]
@@ -63,8 +63,13 @@
% 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]
-% \loadmapfile[lm-\typescriptthree.map] % maybe some day
+ % 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
\stoptypescript
% \usetypescript [map] [latin-modern-os] [ec] % lm is loaded under ec regime
@@ -86,36 +91,56 @@
\loadmapfile[\typescriptthree-bitstrea-charter.map]
\stoptypescript
-% \starttypescript [map] [antykwa-torunska] [ec,texnansi,t5,8r]
-% \loadmapfile[\typescriptthree-public-antt.map]
+% \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[\typescriptthree-antt.map]
- \loadmapfile[rm-antt.map]
- \loadmapfile[mi-antt.map]
- \loadmapfile[sy-antt.map]
- \loadmapfile[ex-antt.map]
+ \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[\typescriptthree-iwona.map]
- \loadmapfile[rm-iwona.map]
- \loadmapfile[mi-iwona.map]
- \loadmapfile[sy-iwona.map]
- \loadmapfile[ex-iwona.map]
-\stoptypescript
+ \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[\typescriptthree-kurier.map]
- \loadmapfile[rm-kurier.map]
- \loadmapfile[mi-kurier.map]
- \loadmapfile[sy-kurier.map]
- \loadmapfile[ex-kurier.map]
+ \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]
diff --git a/Master/texmf-dist/tex/context/base/type-pre.tex b/Master/texmf-dist/tex/context/base/type-pre.tex
index dd7feb443b4..ad2109a65ca 100644
--- a/Master/texmf-dist/tex/context/base/type-pre.tex
+++ b/Master/texmf-dist/tex/context/base/type-pre.tex
@@ -244,6 +244,7 @@
\starttypescriptcollection[special scripts]
\starttypescript[chi] \readfile{\f!fontprefix chi}\donothing\donothing \stoptypescript
+ \starttypescript[jap] \readfile{\f!fontprefix jap}\donothing\donothing \stoptypescript
\starttypescript[arb] \readfile{\f!fontprefix arb}\donothing\donothing \stoptypescript
\starttypescript[heb] \readfile{\f!fontprefix heb}\donothing\donothing \stoptypescript
diff --git a/Master/texmf-dist/tex/context/base/type-syn.tex b/Master/texmf-dist/tex/context/base/type-syn.tex
index 3f642e4bffc..0470622fb41 100644
--- a/Master/texmf-dist/tex/context/base/type-syn.tex
+++ b/Master/texmf-dist/tex/context/base/type-syn.tex
@@ -452,26 +452,142 @@
\starttypescript [sans] [iwona-light] [name]
\setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Light] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [Iwona-LightItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [Iwona-Medium] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [Iwona-MediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [Sans] [Iwona-Light] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-LightItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-Medium] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-MediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansCaps] [Iwona-CapsLight] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsLightItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsMedium] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsMediumItalic] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [iwona-light-caps] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CapsLight] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-CapsLightItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-CapsMedium] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-CapsMediumItalic] [encoding=\typescriptthree]
\stoptypescript
\starttypescript [sans] [iwona] [name]
\setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Regular] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [Iwona-RegularItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [Iwona-Bold] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [Iwona-BoldItalic] [encoding=\typescriptthree]
+ \definefontsynonym [Sans] [Iwona-Regular] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-RegularItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-Bold] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-BoldItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansCaps] [Iwona-CapsRegular] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsRegularItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsBold] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsBoldItalic] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [iwona-caps] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CapsRegular] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-CapsRegularItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-CapsBold] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-CapsBoldItalic] [encoding=\typescriptthree]
\stoptypescript
\starttypescript [sans] [iwona-medium] [name]
\setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Medium] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [Iwona-MediumItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [Iwona-Heavy] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [Iwona-HeavyItalic] [encoding=\typescriptthree]
+ \definefontsynonym [Sans] [Iwona-Medium] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-MediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-Heavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-HeavyItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansCaps] [Iwona-CapsHeavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsMediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavyItalic] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [iwona-medium-caps] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CapsHeavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-CapsMediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-CapsHeavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-CapsHeavyItalic] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [iwona-heavy] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-Heavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-HeavyItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-Heavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-HeavyItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansCaps] [Iwona-CapsHeavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsHeavyItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavyItalic] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [iwona-heavy-caps] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [SansCaps] [Iwona-CapsHeavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsHeavyItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavyItalic] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [iwona-light-cond] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CondLight] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-CondLightItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-CondMedium] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondMediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansCaps] [Iwona-CondCapsLight] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalicCaps] [Iwona-CondCapsLightItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldCaps] [Iwona-CondCapsMedium] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CondCapsMediumItalic] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [iwona-light-cond-caps] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CondCapsLight] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-CondCapsLightItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-CondCapsMedium] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondCapsMediumItalic] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [iwona-cond] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CondRegular] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-CondRegularItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-CondBold] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondBoldItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansCaps] [Iwona-CondCapsRegular] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalicCaps] [Iwona-CondCapsRegularItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldCaps] [Iwona-CondCapsBold] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CondCapsBoldItalic] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [iwona-cond-caps] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CondCapsRegular] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-CondCapsRegularItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-CondCapsBold] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondCapsBoldItalic] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [iwona-medium-cond] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CondMedium] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-CondMediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-CondHeavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondHeavyItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansCaps] [Iwona-CondCapsHeavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalicCaps] [Iwona-CondCapsMediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldCaps] [Iwona-CondCapsHeavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CondCapsHeavyItalic] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [iwona-medium-cond-caps] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CondCapsHeavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [Iwona-CondCapsMediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [Iwona-CondCapsHeavy] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondCapsHeavyItalic] [encoding=\typescriptthree]
\stoptypescript
\starttypescript [math] [iwona-light] [name]
@@ -495,6 +611,13 @@
\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]
diff --git a/Master/texmf-dist/tex/context/base/unic-002.tex b/Master/texmf-dist/tex/context/base/unic-002.tex
index bd9e3468637..ae7deb12a92 100644
--- a/Master/texmf-dist/tex/context/base/unic-002.tex
+++ b/Master/texmf-dist/tex/context/base/unic-002.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=unic-002,
-%D version=2002.12.03,
+%D version=2006.08.02,
%D title=\CONTEXT\ \UNICODE\ Macros,
%D subtitle=Vector 2,
%D author=Hans Hagen,
@@ -14,18 +14,91 @@
\unprotect
\startunicodevector 2
+ \expandafter\strippedcsname
+ \ifcase\numexpr#1\relax
+ \Adoublegrave \or
+ \adoublegrave \or
+ \Ainvertedbreve \or
+ \ainvertedbreve \or
+ \Edoublegrave \or
+ \edoublegrave \or
+ \Einvertedbreve \or
+ \einvertedbreve \or
+ \Idoublegrave \or
+ \idoublegrave \or
+ \Iinvertedbreve \or
+ \iinvertedbreve \or
+ \Odoublegrave \or
+ \odoublegrave \or
+ \Oinvertedbreve \or
+ \oinvertedbreve \or
+ \Rdoublegrave \or
+ \rdoublegrave \or
+ \Rinvertedbreve \or
+ \rinvertedbreve \or
+ \Udoublegrave \or
+ \udoublegrave \or
+ \Uinvertedbreve \or
+ \uinvertedbreve \or
+ \Scommaaccent \or
+ \scommaaccent \or
+ \Tcommaaccent \or
+ \tcommaaccent \or
+ \unknownchar \or % Yogh
+ \unknownchar \or % yogh
+ \Hcaron \or
+ \hcaron \or
+ \unknownchar \or % n with long right leg
+ \dcurl \or
+ \unknownchar \or % Ou
+ \unknownchar \or % ou
+ \Zhook \or
+ \zhook \or
+ \Adotaccent \or
+ \adotaccent \or
+ \Ecedilla \or
+ \ecedilla \or
+ \Odiaeresismacron \or
+ \odiaeresismacron \or
+ \Otildemacron \or
+ \otildemacron \or
+ \Odotaccent \or
+ \odotaccent \or
+ \Odotaccentmacron \or
+ \odotaccentmacron \or
+ \Ymacron \or
+ \ymacron \or
+ \lcurl \or
+ \ncurl \or
+ \tcurl \or
+ \dotlessj \or
+ \unknownchar \or % db digraph
+ \unknownchar \or % qp digraph
+ \Astroke \or
+ \Cstroke \or
+ \cstroke \or
+ \Lbar \else
+ \ifcase\numexpr#1-83\relax
+ \bhook \or
+ \unknownchar \or % open o
+ \ccurl \or
+ \dtail \or
+ \dhook \or
+ \unknownchar \or % reversed e
+ \schwa \or
+ \schwahook \else
\ifcase\numexpr#1-198\relax
- \strippedcsname \textcircumflex \or
- \strippedcsname \textcaron \else
+ \textcircumflex \or
+ \textcaron \else
\ifcase\numexpr#1-216\relax
- \strippedcsname \textbreve \or
- \strippedcsname \textdotaccent \or
- \strippedcsname \unknownchar \or
- \strippedcsname \textogonek \or
- \strippedcsname \texttilde \or
- \strippedcsname \texthungarumlaut \else
- \strippedcsname \unknownchar
- \fi\fi
+ \textbreve \or
+ \textdotaccent \or
+ \textring \or
+ \textogonek \or
+ \texttilde \or
+ \texthungarumlaut \else
+ \unknownchar
+ \fi\fi\fi\fi
\stopunicodevector
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/unic-032.tex b/Master/texmf-dist/tex/context/base/unic-032.tex
index 42fea9de320..32c25e4e26e 100644
--- a/Master/texmf-dist/tex/context/base/unic-032.tex
+++ b/Master/texmf-dist/tex/context/base/unic-032.tex
@@ -1,9 +1,9 @@
%D \module
%D [ file=unic-032,
-%D version=2002.12.03,
+%D version=2006.03.30,
%D title=\CONTEXT\ \UNICODE\ Macros,
%D subtitle=Vector 32,
-%D author=Hans Hagen,
+%D author={Hans Hagen \& Taco Hoekwater},
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
@@ -13,126 +13,266 @@
\unprotect
-% U+2027 HYPHENATION POINT
-% U+2028 LINE SEPARATOR
-% U+2029 PARAGRAPH SEPARATOR
-% U+202A LEFT-TO-RIGHT EMBEDDING
-% U+202B RIGHT-TO-LEFT EMBEDDING
-% U+202C POP DIRECTIONAL FORMATTING
-% U+202D LEFT-TO-RIGHT OVERRIDE
-% U+202E RIGHT-TO-LEFT OVERRIDE
-% U+202F NARROW NO-BREAK SPACE
-% U+2030 PER MILLE SIGN
-% U+2031 PER TEN THOUSAND SIGN
-% U+2032 PRIME
-% U+2033 DOUBLE PRIME
-% U+2034 TRIPLE PRIME
-% U+2035 REVERSED PRIME
-% U+2036 REVERSED DOUBLE PRIME
-% U+2037 REVERSED TRIPLE PRIME
-% U+2038 CARET
-
-% U+203B REFERENCE MARK
-% U+203C DOUBLE EXCLAMATION MARK
-% U+203D INTERROBANG
-% U+203E OVERLINE
-% U+203F UNDERTIE
-% U+2040 CHARACTER TIE
-% U+2041 CARET INSERTION POINT
-% U+2042 ASTERISM
-% U+2043 HYPHEN BULLET
-% U+2044 FRACTION SLASH
-% U+2045 LEFT SQUARE BRACKET WITH QUILL
-% U+2046 RIGHT SQUARE BRACKET WITH QUILL
-% U+2047 DOUBLE QUESTION MARK
-% U+2048 QUESTION EXCLAMATION MARK
-% U+2049 EXCLAMATION QUESTION MARK
-% U+204A TIRONIAN SIGN ET
-% U+204B REVERSED PILCROW SIGN
-% U+204C BLACK LEFTWARDS BULLET
-% U+204D BLACK RIGHTWARDS BULLET
-% U+204E LOW ASTERISK
-% U+204F REVERSED SEMICOLON
-% U+2050 CLOSE UP
-% U+2051 TWO ASTERISKS ALIGNED VERTICALLY
-% U+2052 COMMERCIAL MINUS SIGN
-% U+2053 SWUNG DASH
-% U+2054 INVERTED UNDERTIE
-% U+2057 QUADRUPLE PRIME
-% U+205F MEDIUM MATHEMATICAL SPACE
-% U+2060 WORD JOINER
-% U+2061 FUNCTION APPLICATION
-% U+2062 INVISIBLE TIMES
-% U+2063 INVISIBLE SEPARATOR
-% U+206A INHIBIT SYMMETRIC SWAPPING
-% U+206B ACTIVATE SYMMETRIC SWAPPING
-% U+206C INHIBIT ARABIC FORM SHAPING
-% U+206D ACTIVATE ARABIC FORM SHAPING
-% U+206E NATIONAL DIGIT SHAPES
-% U+206F NOMINAL DIGIT SHAPES
-
-\ifx\undefined\zerowidthspace \unexpanded\def\zerowidthspace{\kern\zeropoint} \fi
-
\startunicodevector 32
+ \expandafter\strippedcsname
\ifcase\numexpr#1\relax
- \strippedcsname \enspace \or % U+2000 EN QUAD
- \strippedcsname \emspace \or % U+2001 EM QUAD
- \strippedcsname \enspace \or % U+2002 EN SPACE
- \strippedcsname \emspace \or % U+2003 EM SPACE
- \strippedcsname \unknownchar \or % U+2004 THREE-PER-EM SPACE
- \strippedcsname \unknownchar \or % U+2005 FOUR-PER-EM SPACE
- \strippedcsname \unknownchar \or % U+2006 SIX-PER-EM SPACE
- \strippedcsname \unknownchar \or % U+2007 FIGURE SPACE
- \strippedcsname \unknownchar \or % U+2008 PUNCTUATION SPACE
- \strippedcsname \unknownchar \or % U+2009 THIN SPACE
- \strippedcsname \unknownchar \or % U+200A HAIR SPACE
- \strippedcsname \zerowidthspace \or % U+200B ZERO WIDTH SPACE
- \strippedcsname \unknownchar \or % U+200C ZERO WIDTH NON-JOINER
- \strippedcsname \unknownchar \or % U+200D ZERO WIDTH JOINER
- \strippedcsname \unknownchar \or % U+200E LEFT-TO-RIGHT MARK
- \strippedcsname \unknownchar \or % U+200F RIGHT-TO-LEFT MARK
- \strippedcsname \breakinghyphen \or % U+2010 HYPHEN
- \strippedcsname \nonbreakinghyphen\or % U+2011 NON-BREAKING HYPHEN
- \strippedcsname \textminus \or % U+2012 FIGURE DASH
- \strippedcsname \endash \or % U+2013 EN DASH
- \strippedcsname \emdash \or % U+2014 EM DASH
- \strippedcsname \unknownchar \or % U+2015 HORIZONTAL BAR
- \strippedcsname \unknownchar \or % U+2016 DOUBLE VERTICAL LINE
- \strippedcsname \unknownchar \or % U+2017 DOUBLE LOW LINE
- \strippedcsname \quoteleft \or % U+2018 LEFT SINGLE QUOTATION MARK
- \strippedcsname \quoteright \or % U+2019 RIGHT SINGLE QUOTATION MARK
- \strippedcsname \quotesinglebase \or % U+201A SINGLE LOW-9 QUOTATION MARK
- \strippedcsname \unknownchar \or % U+201B SINGLE HIGH-REVERSED-9 QUOTATION MARK
- \strippedcsname \quotedblleft \or % U+201C LEFT DOUBLE QUOTATION MARK
- \strippedcsname \quotedblright \or % U+201D RIGHT DOUBLE QUOTATION MARK
- \strippedcsname \quotedblbase \or % U+201E DOUBLE LOW-9 QUOTATION MARK
- \strippedcsname \unknownchar \or % U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK
- \strippedcsname \textdag \or % U+2020 DAGGER
- \strippedcsname \textddag \or % U+2021 DOUBLE DAGGER
- \strippedcsname \textbullet \or % U+2022 BULLET
- \strippedcsname \unknownchar \or % U+2023 TRIANGULAR BULLET
- \strippedcsname \unknownchar \or % U+2024 ONE DOT LEADER
- \strippedcsname \unknownchar \or % U+2025 TWO DOT LEADER
- \strippedcsname \periods \else % U+2026 HORIZONTAL ELLIPSIS % was: \textellipsis
- \ifcase\numexpr#1-48\relax
- \strippedcsname \perthousand \or % U+2030 PER MILLE SIGN
- \strippedcsname \unknownchar \or % U+2031 PER TEN THOUSAND SIGN
- \strippedcsname \prime \or % U+2032 PRIME
- \strippedcsname \doubleprime \or % U+2033 DOUBLE PRIME
- \strippedcsname \tripleprime \else % U+2034 TRIPLE PRIME
- \ifcase\numexpr#1-57\relax
- \strippedcsname \guilsingleleft \or % U+2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
- \strippedcsname \guilsingleright \else % U+203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
- \ifcase\numexpr#1-95\relax
- \strippedcsname \thickspace \or % U+205F MEDIUM MATHEMATICAL SPACE
- \strippedcsname \unknownchar \or %
- \strippedcsname \unknownchar \or % U+2061 FUNCTION APPLICATION
- \strippedcsname \times \or % U+2062 INVISIBLE TIMES
- \strippedcsname \unknownchar \else % U+2063 INVISIBLE COMMA
- \ifcase\numexpr#1-172\relax
- \strippedcsname \texteuro \else
- \strippedcsname \unknownchar
- \fi\fi\fi\fi\fi
+ \enspace \or % U+2000 EN QUAD
+ \emspace \or % U+2001 EM QUAD
+ \enspace \or % U+2002 EN SPACE
+ \emspace \or % U+2003 EM SPACE
+ \unic@threeperemspace \or % U+2004 THREE-PER-EM SPACE
+ \unic@fourperemspace \or % U+2005 FOUR-PER-EM SPACE
+ \unic@sixperemspace \or % U+2006 SIX-PER-EM SPACE
+ \unic@figurespace \or % U+2007 FIGURE SPACE
+ \unmic@punctiationspace \or % U+2008 PUNCTUATION SPACE
+ \thinspace \or % U+2009 THIN SPACE
+ \unic@hairspace \or % U+200A HAIR SPACE
+ \unic@zerowidthspace \or % U+200B ZERO WIDTH SPACE
+ \unic@zerowidthnonjoiner \or % U+200C ZERO WIDTH NON-JOINER
+ \unic@zerowidthjoiner \or % U+200D ZERO WIDTH JOINER
+ \unknownchar \or % U+200E LEFT-TO-RIGHT MARK
+ \unknownchar \or % U+200F RIGHT-TO-LEFT MARK
+ \breakinghyphen \or % U+2010 HYPHEN
+ \nonbreakinghyphen \or % U+2011 NON-BREAKING HYPHEN
+ \endash \or % U+2012 FIGURE DASH
+ \endash \or % U+2013 EN DASH
+ \emdash \or % U+2014 EM DASH
+ \emdash \or % U+2015 HORIZONTAL BAR
+ \unic@doubleverticalline \or % U+2016 DOUBLE VERTICAL LINE
+ \unic@doublelowline \or % U+2017 DOUBLE LOW LINE
+ \quoteleft \or % U+2018 LEFT SINGLE QUOTATION MARK
+ \quoteright \or % U+2019 RIGHT SINGLE QUOTATION MARK
+ \quotesinglebase \or % U+201A SINGLE LOW-9 QUOTATION MARK
+ \unic@quoteleftreversed \or % U+201B SINGLE HIGH-REVERSED-9 QUOTATION MARK
+ \quotedblleft \or % U+201C LEFT DOUBLE QUOTATION MARK
+ \quotedblright \or % U+201D RIGHT DOUBLE QUOTATION MARK
+ \quotedblbase \or % U+201E DOUBLE LOW-9 QUOTATION MARK
+ \unic@quotedblleftreversed \or % U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+ \textdag \or % U+2020 DAGGER
+ \textddag \or % U+2021 DOUBLE DAGGER
+ \textbullet \or % U+2022 BULLET
+ \blacktriangleright \or % U+2023 TRIANGULAR BULLET
+ \unic@onedotleader \or % U+2024 ONE DOT LEADER
+ \unic@twodotleader \or % U+2025 TWO DOT LEADER
+ \periods \or % U+2026 HORIZONTAL ELLIPSIS % was: \textellipsis
+ \unic@hyphenationpoint \or % U+2027 HYPHENATION POINT
+ \crlf \or % U+2028 LINE SEPARATOR
+ \endgraf \or % U+2029 PARAGRAPH SEPARATOR
+ \unknownchar \or % U+202A LEFT-TO-RIGHT EMBEDDING
+ \unknownchar \or % U+202B RIGHT-TO-LEFT EMBEDDING
+ \unknownchar \or % U+202C POP DIRECTIONAL FORMATTING
+ \unknownchar \or % U+202D LEFT-TO-RIGHT OVERRIDE
+ \unknownchar \or % U+202E RIGHT-TO-LEFT OVERRIDE
+ \ \or % U+202F NARROW NO-BREAK SPACE
+ \perthousand \or % U+2030 PER MILLE SIGN
+ \unknownchar \or % U+2031 PER TEN THOUSAND SIGN
+ \prime \or % U+2032 PRIME
+ \unic@doubleprime \or % U+2033 DOUBLE PRIME
+ \unic@tripleprime \or % U+2034 TRIPLE PRIME
+ \backprime \or % U+2035 REVERSED PRIME
+ \unic@reverseddoubleprime \or % U+2036 REVERSED DOUBLE PRIME
+ \unic@reversedtripleprime \or % U+2037 REVERSED TRIPLE PRIME
+ \unknownchar \or % U+2038 CARET
+ \guilsingleleft \or % U+2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ \guilsingleright \or % U+203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ \unknownchar \or % U+203B REFERENCE MARK
+ \unic@doubleexclamationmark \or % U+203C DOUBLE EXCLAMATION MARK
+ \unknownchar \or % U+203D INTERROBANG
+ \unknownchar \or % U+203E OVERLINE
+ \unknownchar \or % U+203F UNDERTIE
+ \unknownchar \or % U+2040 CHARACTER TIE
+ \unknownchar \or % U+2041 CARET INSERTION POINT
+ \unknownchar \or % U+2042 ASTERISM
+ \unknownchar \or % U+2043 HYPHEN BULLET
+ \unic@fractionslash \or % U+2044 FRACTION SLASH
+ \unknownchar \or % U+2045 LEFT SQUARE BRACKET WITH QUILL
+ \unknownchar \or % U+2046 RIGHT SQUARE BRACKET WITH QUILL
+ \unic@doublequestionmark \or % U+2047 DOUBLE QUESTION MARK
+ \unic@exclamationquestionmark\or % U+2048 QUESTION EXCLAMATION MARK
+ \unic@questionexclamationmark\or % U+2049 EXCLAMATION QUESTION MARK
+ \unknownchar \or % U+204A TIRONIAN SIGN ET
+ \unic@reversedpilcrowsign \or % U+204B REVERSED PILCROW SIGN
+ \unknownchar \or % U+204C BLACK LEFTWARDS BULLET
+ \unknownchar \or % U+204D BLACK RIGHTWARDS BULLET
+ \unic@lowasterisk \or % U+204E LOW ASTERISK
+ \unic@reversedsemicolon \or % U+204F REVERSED SEMICOLON
+ \unknownchar \or % U+2050 CLOSE UP
+ \unknownchar \or % U+2051 TWO ASTERISKS ALIGNED VERTICALLY
+ \unknownchar \or % U+2052 COMMERCIAL MINUS SIGN
+ \unknownchar \or % U+2053 SWUNG DASH
+ \unknownchar \or % U+2054 INVERTED UNDERTIE
+ \unknownchar \or % U+2055 FLOWER PUNCTUATION MARK
+ \unknownchar \or % U+2056 THREE DOT PUNCTUATION
+ \unknownchar \or % U+2057 QUADRUPLE PRIME
+ \unknownchar \or % U+2058 FOUR DOT PUNCTUATION
+ \unknownchar \or % U+2059 FIVE DOT PUNCTUATION
+ \unknownchar \or % U+205A TWO DOT PUNCTUATION
+ \unknownchar \or % U+205B FOUR DOT MARK
+ \unknownchar \or % U+205C DOTTED CROSS
+ \unknownchar \or % U+205D TRICOLON
+ \unknownchar \or % U+205E VERTICAL FOUR DOTS
+ \thickspace \or % U+205F MEDIUM MATHEMATICAL SPACE
+ \relax \or % U+2060 WORD JOINER
+ \unic@functionapplication \or % U+2061 FUNCTION APPLICATION
+ \unic@invisibletimes \or % U+2062 INVISIBLE TIMES
+ \unic@invisibleseparator \or % U+2063 INVISIBLE SEPARATOR (COMMA)
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \relax \or % U+206A INHIBIT SYMMETRIC SWAPPING
+ \relax \or % U+206B ACTIVATE SYMMETRIC SWAPPING
+ \relax \or % U+206C INHIBIT ARABIC FORM SHAPING
+ \relax \or % U+206D ACTIVATE ARABIC FORM SHAPING
+ \relax \or % U+206E NATIONAL DIGIT SHAPES
+ \relax \or % U+206F NOMINAL DIGIT SHAPES
+ \unic@superscriptzero \or % U+2070 SUPERSCRIPT ZERO
+ \unic@superscripti \or % U+2071 SUPERSCRIPT LATIN SMALL LETTER I
+ \unknownchar \or % U+2072 <reserved>
+ \unknownchar \or % U+2073 <reserved>
+ \unic@superscriptfour \or % U+2074 SUPERSCRIPT FOUR
+ \unic@superscriptfive \or % U+2075 SUPERSCRIPT FIVE
+ \unic@superscriptsix \or % U+2076 SUPERSCRIPT SIX
+ \unic@superscriptseven \or % U+2077 SUPERSCRIPT SEVEN
+ \unic@superscripteight \or % U+2078 SUPERSCRIPT EIGHT
+ \unic@superscriptnine \or % U+2079 SUPERSCRIPT NINE
+ \unic@superscriptplus \or % U+207A SUPERSCRIPT PLUS SIGN
+ \unic@superscriptminus \or % U+207B SUPERSCRIPT MINUS
+ \unic@superscriptequals \or % U+207C SUPERSCRIPT EQUALS SIGN
+ \unic@superscriptleft \or % U+207D SUPERSCRIPT LEFT PARENTHESIS
+ \unic@superscriptright \or % U+207E SUPERSCRIPT RIGHT PARENTHESIS
+ \unic@superscriptn \or % U+207F SUBSCRIPT LATIN SMALL LETTER N
+ \unic@subscriptzero \or % U+2080 SUBSCRIPT ZERO
+ \unic@subscriptone \or % U+2081 SUBSCRIPT ONE
+ \unic@subscripttwo \or % U+2082 SUBSCRIPT TWO
+ \unic@subscriptthree \or % U+2083 SUBSCRIPT THREE
+ \unic@subscriptfour \or % U+2084 SUBSCRIPT FOUR
+ \unic@subscriptfive \or % U+2085 SUBSCRIPT FIVE
+ \unic@subscriptsix \or % U+2086 SUBSCRIPT SIX
+ \unic@subscriptseven \or % U+2087 SUBSCRIPT SEVEN
+ \unic@subscripteight \or % U+2088 SUBSCRIPT EIGHT
+ \unic@subscriptnine \or % U+2089 SUBSCRIPT NINE
+ \unic@subscriptplus \or % U+208A SUBSCRIPT PLUS SIGN
+ \unic@subscriptminus \or % U+208B SUBSCRIPT MINUS
+ \unic@subscriptequals \or % U+208C SUBSCRIPT EQUALS SIGN
+ \unic@subscriptleft \or % U+208D SUBSCRIPT LEFT PARENTHESIS
+ \unic@subscriptright \or % U+208E SUBSCRIPT RIGHT PARENTHESIS
+ \unknownchar \or %
+ \unic@subscripta \or % U+2090 LATIN SUBSCRIPT SMALL LETTER A
+ \unic@subscripte \or % U+2091 LATIN SUBSCRIPT SMALL LETTER E
+ \unic@subscripto \or % U+2092 LATIN SUBSCRIPT SMALL LETTER O
+ \unic@subscriptx \or % U+2093 LATIN SUBSCRIPT SMALL LETTER X
+ \unic@subscriptschwa \or % U+2094 LATIN SUBSCRIPT SMALL LETTER SCHWA
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or % U+20A0 EURO-CURRENCY SIGN
+ \unknownchar \or % U+20A1 COLON SIGN
+ \unknownchar \or % U+20A2 CRUZEIRO SIGN
+ \unknownchar \or % U+20A3 FRENCH FRANC SIGN
+ \unknownchar \or % U+20A4 LIRA SIGN
+ \unknownchar \or % U+20A5 MILL SIGN
+ \unknownchar \or % U+20A6 NAIRA SIGN
+ \unknownchar \or % U+20A7 PESETA SIGN
+ \unknownchar \or % U+20A8 RUPEE SIGN
+ \unknownchar \or % U+20A9 WON SIGN
+ \unknownchar \or % U+20AA NEW SHEQEL SIGN
+ \textdong \or % U+20AB DONG SIGN
+ \texteuro \or % U+20AC EURO SIGN
+ \unknownchar \or % U+20AD KIP SIGN
+ \unknownchar \or % U+20AE TUGRIK SIGN
+ \unknownchar \or % U+20AF DRACHMA SIGN
+ \unknownchar \or % U+20B0 GERMAN PENNY SIGN
+ \unknownchar \or % U+20B1 PESO SIGN
+ \unknownchar \or % U+20B2 GUARANI SIGN
+ \unknownchar \or % U+20B3 AUSTRAL SIGN
+ \unknownchar \or % U+20B4 HRYVNIA SIGN
+ \unknownchar \or % U+20B5 CEDI SIGN
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or % U+20D0 COMBINING LEFT HARPOON ABOVE
+ \unknownchar \or % U+20D1 COMBINING RIGHT HARPOON ABOVE
+ \unknownchar \or % U+20D2 COMBINING LONG VERTICAL LINE OVERLAY
+ \unknownchar \or % U+20D3 COMBINING SHORT VERTICAL LINE OVERLAY
+ \unknownchar \or % U+20D4 COMBINING ANTICLOCKWISE ARROW ABOVE
+ \unknownchar \or % U+20D5 COMBINING CLOCKWISE ARROW ABOVE
+ \unknownchar \or % U+20D6 COMBINING LEFT ARROW ABOVE
+ \unknownchar \or % U+20D7 COMBINING RIGHT ARROW ABOVE
+ \unknownchar \or % U+20D8 COMBINING RING OVERLAY
+ \unknownchar \or % U+20D9 COMBINING CLOCKWISE RING OVERLAY
+ \unknownchar \or % U+20DA COMBINING ANTICLOCKWISE RING OVERLAY
+ \unknownchar \or % U+20DB COMBINING THREE DOTS ABOVE
+ \unknownchar \or % U+20DC COMBINING FOUR DOTS ABOVE
+ \unknownchar \or % U+20DD COMBINING ENCLOSING CIRCLE
+ \unknownchar \or % U+20DE COMBINING ENCLOSING SQUARE
+ \unknownchar \or % U+20DF COMBINING ENCLOSING DIAMOND
+ \unknownchar \or % U+20E0 COMBINING ENCLOSING CIRCLE BACKSLASH
+ \unknownchar \or % U+20E1 COMBINING LEFT RIGHT ARROW ABOVE
+ \unknownchar \or % U+20E2 COMBINING ENCLOSING SCREEN
+ \unknownchar \or % U+20E3 COMBINING ENCLOSING KEYCAP
+ \unknownchar \or % U+20E4 COMBINING ENCLOSING UPWARD POINTING TRIANGLE
+ \unknownchar \or % U+20E5 COMBINING REVERSE SOLIDUS OVERLAY
+ \unknownchar \or % U+20E6 COMBINING DOUBLE VERTICAL STROKE OVERLAY
+ \unknownchar \or % U+20E7 COMBINING ANNUITY SYMBOL
+ \unknownchar \or % U+20E8 COMBINING TRIPLE UNDERDOT
+ \unknownchar \or % U+20E9 COMBINING WIDE BRIDGE ABOVE
+ \unknownchar \or % U+20EA COMBINING LEFTWARDS ARROW OVERLAY
+ \unknownchar \or % U+20EB COMBINING LONG DOUBLE SOLIDUS OVERLAY
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \else %
+ \unknownchar \fi
\stopunicodevector
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/unic-033.tex b/Master/texmf-dist/tex/context/base/unic-033.tex
index 632285a0e2a..91311a029d1 100644
--- a/Master/texmf-dist/tex/context/base/unic-033.tex
+++ b/Master/texmf-dist/tex/context/base/unic-033.tex
@@ -1,9 +1,9 @@
%D \module
%D [ file=unic-033,
-%D version=2005.06.11,
+%D version=2006.03.29,
%D title=\CONTEXT\ \UNICODE\ Macros,
%D subtitle=Vector 33,
-%D author={Nikolai Weibull \& Hans Hagen},
+%D author={Nikolai Weibull \& Hans Hagen \& Taco Hoekwater},
%D date=\currentdate,
%D copyright={PRAGMA / Nikolai Weibull}]
@@ -11,119 +11,263 @@
\startunicodevector 33
\expandafter\strippedcsname
- \ifcase\numexpr#1-144\relax
- \leftarrow \or % LEFTWARDS ARROW
- \uparrow \or % UPWARDS ARROW
- \rightarrow \or % RIGHTWARDS ARROW
- \downarrow \or % DOWNWARDS ARROW
- \leftrightarrow \or % LEFT RIGHT ARROW
- \updownarrow \or % UP DOWN ARROW
- \nwarrow \or % NORTH WEST ARROW
- \nearrow \or % NORTH EAST ARROW
- \searrow \or % SOUTH EAST ARROW
- \swarrow \or % SOUTH WEST ARROW
- \nleftarrow \or % LEFTWARDS ARROW WITH STROKE
- \nrightarrow \or % RIGHTWARDS ARROW WITH STROKE
- \unknownchar \or % LEFTWARDS WAVE ARROW
- \unknownchar \or % RIGHTWARDS WAVE ARROW
- \twoheadedleftarrow \or % LEFTWARDS TWO HEADED ARROW
- \unknownchar \or % UPWARDS TWO HEADED ARROW
- \twoheadedrightarrow \or % RIGHTWARDS TWO HEADED ARROW
- \unknownchar \or % DOWNWARDS TWO HEADED ARROW
- \leftarrowtail \or % LEFTWARDS ARROW WITH TAIL
- \rightarrowtail \or % RIGHTWARDS ARROW WITH TAIL
- \mapsfrom \or % LEFTWARDS ARROW FROM BAR
- \unknownchar \or % UPWARDS ARROW FROM BAR
- \mapsto \or % RIGHTWARDS ARROW FROM BAR
- \unknownchar \or % DOWNWARDS ARROW FROM BAR
- \unknownchar \or % UP DOWN ARROW WITH BASE
- \hookleftarrow \or % LEFTWARDS ARROW WITH HOOK
- \hookrightarrow \or % RIGHTWARDS ARROW WITH HOOK
- \loopleftarrow \or % LEFTWARDS ARROW WITH LOOP
- \looprightarrow \or % RIGHTWARDS ARROW WITH LOOP
- \unknownchar \or % LEFT RIGHT WAVE ARROW
- \nleftrightarrow \or % LEFT RIGHT ARROW WITH STROKE
- \lightning \or % DOWNWARDS ZIGZAG ARROW
- \Lsh \or % UPWARDS ARROW WITH TIP LEFTWARDS
- \Rsh \or % UPWARDS ARROW WITH TIP RIGHTWARDS
- \unknownchar \or % DOWNWARDS ARROW WITH TIP LEFTWARDS
- \unknownchar \or % DOWNWARDS ARROW WITH TIP RIGHTWARDS
- \unknownchar \or % RIGHTWARDS ARROW WITH CORNER DOWNWARDS
- \unknownchar \or % DOWNWARDS ARROW WITH CORNER LEFTWARDS
- \curveleftarrow \or % ANTICLOCKWISE TOP SEMICIRCLE ARROW
- \curverightarrow \or % CLOCKWISE TOP SEMICIRCLE ARROW
- \unknownchar \or % NORTH WEST ARROW TO LONG BAR
- \unknownchar \or % LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
- \circlearrowleft \or % ANTICLOCKWISE OPEN CIRCLE ARROW
- \circlearrowright \or % CLOCKWISE OPEN CIRCLE ARROW
- \leftharpoonup \or % LEFTWARDS HARPOON WITH BARB UPWARDS
- \leftharpoondown \or % LEFTWARDS HARPOON WITH BARB DOWNWARDS
- \upharpoonright \or % UPWARDS HARPOON WITH BARB RIGHTWARDS
- \upharpoonleft \or % UPWARDS HARPOON WITH BARB LEFTWARDS
- \rightharpoonup \or % RIGHTWARDS HARPOON WITH BARB UPWARDS
- \rightharpoondown \or % RIGHTWARDS HARPOON WITH BARB DOWNWARDS
- \downharpoonright \or % DOWNWARDS HARPOON WITH BARB RIGHTWARDS
- \downharpoonleft \or % DOWNWARDS HARPOON WITH BARB LEFTWARDS
- \rightleftarrows \or % RIGHTWARDS ARROW OVER LEFTWARDS ARROW
- \unknownchar \or % UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
- \leftrightarrows \or % LEFTWARDS ARROW OVER RIGHTWARDS ARROW
- \leftleftarrows \or % LEFTWARDS PAIRED ARROWS
- \upuparrows \or % UPWARDS PAIRED ARROWS
- \rightrightarrows \or % RIGHTWARDS PAIRED ARROWS
- \downdownarrows \or % DOWNWARDS PAIRED ARROWS
- \leftrightharpoons \or % LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
- \rightleftharpoons \or % RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
- \nLeftarrow \or % LEFTWARDS DOUBLE ARROW WITH STROKE
- \nLeftrightarrow \or % LEFT RIGHT DOUBLE ARROW WITH STROKE
- \nRightarrow \or % RIGHTWARDS DOUBLE ARROW WITH STROKE
- \Leftarrow \or % LEFTWARDS DOUBLE ARROW
- \Uparrow \or % UPWARDS DOUBLE ARROW
- \Rightarrow \or % RIGHTWARDS DOUBLE ARROW
- \Downarrow \or % DOWNWARDS DOUBLE ARROW
- \Leftrightarrow \or % LEFT RIGHT DOUBLE ARROW
- \Updownarrow \or % UP DOWN DOUBLE ARROW
- \unknownchar \or % NORTH WEST DOUBLE ARROW
- \unknownchar \or % NORTH EAST DOUBLE ARROW
- \unknownchar \or % SOUTH EAST DOUBLE ARROW
- \unknownchar \or % SOUTH WEST DOUBLE ARROW
- \Lleftarrow \or % LEFTWARDS TRIPLE ARROW
- \unknownchar \or % RIGHTWARDS TRIPLE ARROW
- \leftsquidarrow \or % LEFTWARDS SQUIGGLE ARROW
- \rightsquidarrow \or % RIGHTWARDS SQUIGGLE ARROW
- \unknownchar \or % UPWARDS ARROW WITH DOUBLE STROKE
- \unknownchar \or % DOWNWARDS ARROW WITH DOUBLE STROKE
- \dashleftarrow \or % LEFTWARDS DASHED ARROW
- \unknownchar \or % UPWARDS DASHED ARROW
- \dashrightarrow \or % RIGHTWARDS DASHED ARROW
- \unknownchar \or % DOWNWARDS DASHED ARROW
- \unic@leftarrowtobar \or % LEFTWARDS ARROW TO BAR
- \unknownchar \or % RIGHTWARDS ARROW TO BAR
- \unknownchar \or % LEFTWARDS WHITE ARROW
- \unknownchar \or % UPWARDS WHITE ARROW
- \unknownchar \or % RIGHTWARDS WHITE ARROW
- \unknownchar \or % DOWNWARDS WHITE ARROW
- \unknownchar \or % UPWARDS WHITE ARROW FROM BAR
- \unknownchar \or % UPWARDS WHITE ARROW ON PEDESTAL
- \unknownchar \or % UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR
- \unknownchar \or % UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR
- \unknownchar \or % UPWARDS WHITE DOUBLE ARROW
- \unknownchar \or % UPWARDS WHITE DOUBLE ARROW ON PEDESTAL
- \unknownchar \or % RIGHTWARDS WHITE ARROW FROM WALL
- \unknownchar \or % NORTH WEST ARROW TO CORNER
- \unknownchar \or % SOUTH EAST ARROW TO CORNER
- \unknownchar \or % UP DOWN WHITE ARROW
- \unknownchar \or % RIGHT ARROW WITH SMALL CIRCLE
- \unknownchar \or % DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
- \unknownchar \or % THREE RIGHTWARDS ARROWS
- \unknownchar \or % LEFTWARDS ARROW WITH VERTICAL STROKE
- \unknownchar \or % RIGHTWARDS ARROW WITH VERTICAL STROKE
- \unknownchar \or % LEFT RIGHT ARROW WITH VERTICAL STROKE
- \unknownchar \or % LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE
- \unknownchar \or % RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE
- \unknownchar \or % LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE
- \leftarrowtriangle \or % LEFTWARDS OPEN-HEADED ARROW
- \rightarrowtriangle \or % RIGHTWARDS OPEN-HEADED ARROW
- \leftrightarrowtriangle\else % LEFT RIGHT OPEN-HEADED ARROW
+ \ifcase\numexpr#1\relax
+ \unic@accountof \or % 2100 ACCOUNT OF
+ \unic@addressedtothesubject \or % 2101 ADDRESSED TO THE SUBJECT
+ \unic@doublestruckC \or % 2102 DOUBLE-STRUCK CAPITAL C
+ \unic@degreecelsius \or % 2103 DEGREE CELSIUS
+ \unic@centrelinesymbol \or % 2104 CENTRE LINE SYMBOL
+ \unic@careof \or % 2105 CARE OF
+ \unic@cadauna \or % 2106 CADA UNA
+ \unic@eulerconstant \or % 2107 EULER CONSTANT
+ \unic@scruple \or % 2108 SCRUPLE
+ \unic@degreefahrenheit \or % 2109 DEGREE FAHRENHEIT
+ \unic@scriptg \or % 210A SCRIPT SMALL G
+ \unic@scriptH \or % 210B SCRIPT CAPITAL H
+ \unic@blackletterH \or % 210C BLACK-LETTER CAPITAL H
+ \unic@doublestruckH \or % 210D DOUBLE-STRUCK CAPITAL H
+ \unic@planckconstant \or % 210E PLANCK CONSTANT
+ \unic@planckconstantovertwopi \or % 210F PLANCK CONSTANT OVER TWO PI
+ \unic@scriptI \or % 2110 SCRIPT CAPITAL I
+ \unic@blackletterI \or % 2111 BLACK-LETTER CAPITAL I
+ \unic@scriptL \or % 2112 SCRIPT CAPITAL L
+ \unic@scriptl \or % 2113 SCRIPT SMALL L
+ \unic@lbbarsymbol \or % 2114 L B BAR SYMBOL
+ \unic@doublestruckN \or % 2115 DOUBLE-STRUCK CAPITAL N
+ \unic@numerosign \or % 2116 NUMERO SIGN
+ \unic@soundrecordingcopyright \or % 2117 SOUND RECORDING COPYRIGHT
+ \unic@scriptP \or % 2118 SCRIPT CAPITAL P
+ \unic@doublestruckP \or % 2119 DOUBLE-STRUCK CAPITAL P
+ \unic@doublestruckQ \or % 211A DOUBLE-STRUCK CAPITAL Q
+ \unic@scriptR \or % 211B SCRIPT CAPITAL R
+ \unic@blackletterR \or % 211C BLACK-LETTER CAPITAL R
+ \unic@doublestruckR \or % 211D DOUBLE-STRUCK CAPITAL R
+ \unic@prescriptiontake \or % 211E PRESCRIPTION TAKE
+ \unic@response \or % 211F RESPONSE
+ \unic@servicemark \or % 2120 SERVICE MARK
+ \unic@telephonesign \or % 2121 TELEPHONE SIGN
+ \unic@trademarksign \or % 2122 TRADE MARK SIGN
+ \unic@versickle \or % 2123 VERSICLE
+ \unic@doublestruckZ \or % 2124 DOUBLE-STRUCK CAPITAL Z
+ \unic@ouncesign \or % 2125 OUNCE SIGN
+ \unic@ohmsign \or % 2126 OHM SIGN
+ \unic@invertedohmsign \or % 2127 INVERTED OHM SIGN
+ \unic@blackletterZ \or % 2128 BLACK-LETTER CAPITAL Z
+ \unic@turnedgreekletteriota \or % 2129 TURNED GREEK SMALL LETTER IOTA
+ \unic@kelvinsign \or % 212A KELVIN SIGN
+ \unic@angstromsign \or % 212B ANGSTROM SIGN
+ \unic@scriptB \or % 212C SCRIPT CAPITAL B
+ \unic@blackletterC \or % 212D BLACK-LETTER CAPITAL C
+ \unic@estimatedsymbol \or % 212E ESTIMATED SYMBOL
+ \unic@scripte \or % 212F SCRIPT SMALL E
+ \unic@scriptE \or % 2130 SCRIPT CAPITAL E
+ \unic@scriptF \or % 2131 SCRIPT CAPITAL F
+ \unic@turnedF \or % 2132 TURNED CAPITAL F
+ \unic@scriptM \or % 2133 SCRIPT CAPITAL M
+ \unic@scripto \or % 2134 SCRIPT SMALL O
+ \aleph \or % 2135 ALEF SYMBOL
+ \beth \or % 2136 BET SYMBOL
+ \gimel \or % 2137 GIMEL SYMBOL
+ \daleth \or % 2138 DALET SYMBOL
+ \unic@informationsource \or % 2139 INFORMATION SOURCE
+ \unic@rotatedQ \or % 213A ROTATED CAPITAL Q
+ \unic@facsimilesign \or % 213B FACSIMILE SIGN
+ \unic@doublestruckpi \or % 213C DOUBLE-STRUCK SMALL PI
+ \unic@doublestruckgamma \or % 213D DOUBLE-STRUCK SMALL GAMMA
+ \unic@doublestruckGamma \or % 213E DOUBLE-STRUCK CAPITAL GAMMA
+ \unic@doublestruckPi \or % 213F DOUBLE-STRUCK CAPITAL PI
+ \unic@doublestrucknarysummation \or % 2140 DOUBLE-STRUCK N-ARY SUMMATION
+ \unic@turnedsansserifG \or % 2141 TURNED SANS-SERIF CAPITAL G
+ \unic@turnedsansserifL \or % 2142 TURNED SANS-SERIF CAPITAL L
+ \unic@reversedsansserifL \or % 2143 REVERSED SANS-SERIF CAPITAL L
+ \unic@turnedsansserifY \or % 2144 TURNED SANS-SERIF CAPITAL Y
+ \unic@doublestruckitalicD \or % 2145 DOUBLE-STRUCK ITALIC CAPITAL D
+ \unic@doublestruckitalicd \or % 2146 DOUBLE-STRUCK ITALIC SMALL D
+ \unic@doublestruckitalice \or % 2147 DOUBLE-STRUCK ITALIC SMALL E
+ \unic@doublestruckitalici \or % 2148 DOUBLE-STRUCK ITALIC SMALL I
+ \unic@doublestruckitalicj \or % 2149 DOUBLE-STRUCK ITALIC SMALL J
+ \unic@propertyline \or % 214A PROPERTY LINE
+ \unic@turnedampersand \or % 214B TURNED AMPERSAND
+ \unic@persign \or % 214C PER SIGN
+ \unknownchar \or % 214D
+ \unknownchar \or % 214E
+ \unknownchar \or % 214F
+ \unknownchar \or % 2150
+ \unknownchar \or % 2151
+ \unknownchar \or % 2152
+ \unic@fractiononethird \or % 2153 VULGAR FRACTION ONE THIRD
+ \unic@fractiontwothirds \or % 2154 VULGAR FRACTION TWO THIRDS
+ \unic@fractiononefifth \or % 2155 VULGAR FRACTION ONE FIFTH
+ \unic@fractiontwofifths \or % 2156 VULGAR FRACTION TWO FIFTHS
+ \unic@fractionthreefifths \or % 2157 VULGAR FRACTION THREE FIFTHS
+ \unic@fractionfourfifths \or % 2158 VULGAR FRACTION FOUR FIFTHS
+ \unic@fractiononesixth \or % 2159 VULGAR FRACTION ONE SIXTH
+ \unic@fractionfivesixths \or % 215A VULGAR FRACTION FIVE SIXTHS
+ \unic@fractiononeeighth \or % 215B VULGAR FRACTION ONE EIGHTH
+ \unic@fractionthreeeighths \or % 215C VULGAR FRACTION THREE EIGHTHS
+ \unic@fractionfiveeighths \or % 215D VULGAR FRACTION FIVE EIGHTHS
+ \unic@fractionseveneighths \or % 215E VULGAR FRACTION SEVEN EIGHTHS
+ \unic@fractionnumeratorone \or % 215F FRACTION NUMERATOR ONE
+ \unic@romannumeralOne \or % 2160 ROMAN NUMERAL ONE
+ \unic@romannumeralTwo \or % 2161 ROMAN NUMERAL TWO
+ \unic@romannumeralThree \or % 2162 ROMAN NUMERAL THREE
+ \unic@romannumeralFour \or % 2163 ROMAN NUMERAL FOUR
+ \unic@romannumeralFive \or % 2164 ROMAN NUMERAL FIVE
+ \unic@romannumeralSix \or % 2165 ROMAN NUMERAL SIX
+ \unic@romannumeralSeven \or % 2166 ROMAN NUMERAL SEVEN
+ \unic@romannumeralEight \or % 2167 ROMAN NUMERAL EIGHT
+ \unic@romannumeralNine \or % 2168 ROMAN NUMERAL NINE
+ \unic@romannumeralTen \or % 2169 ROMAN NUMERAL TEN
+ \unic@romannumeralEleven \or % 216A ROMAN NUMERAL ELEVEN
+ \unic@romannumeralTwelve \or % 216B ROMAN NUMERAL TWELVE
+ \unic@romannumeralFifty \or % 216C ROMAN NUMERAL FIFTY
+ \unic@romannumeralOnehundred \or % 216D ROMAN NUMERAL ONE HUNDRED
+ \unic@romannumeralFivehundred \or % 216E ROMAN NUMERAL FIVE HUNDRED
+ \unic@romannumeralOnethousand \or % 216F ROMAN NUMERAL ONE THOUSAND
+ \unic@romannumeralone \or % 2170 SMALL ROMAN NUMERAL ONE
+ \unic@romannumeraltwo \or % 2171 SMALL ROMAN NUMERAL TWO
+ \unic@romannumeralthree \or % 2172 SMALL ROMAN NUMERAL THREE
+ \unic@romannumeralfour \or % 2173 SMALL ROMAN NUMERAL FOUR
+ \unic@romannumeralfive \or % 2174 SMALL ROMAN NUMERAL FIVE
+ \unic@romannumeralsix \or % 2175 SMALL ROMAN NUMERAL SIX
+ \unic@romannumeralseven \or % 2176 SMALL ROMAN NUMERAL SEVEN
+ \unic@romannumeraleight \or % 2177 SMALL ROMAN NUMERAL EIGHT
+ \unic@romannumeralnine \or % 2178 SMALL ROMAN NUMERAL NINE
+ \unic@romannumeralten \or % 2179 SMALL ROMAN NUMERAL TEN
+ \unic@romannumeraleleven \or % 217A SMALL ROMAN NUMERAL ELEVEN
+ \unic@romannumeraltwelve \or % 217B SMALL ROMAN NUMERAL TWELVE
+ \unic@romannumeralfifty \or % 217C SMALL ROMAN NUMERAL FIFTY
+ \unic@romannumeralonehundred \or % 217D SMALL ROMAN NUMERAL ONE HUNDRED
+ \unic@romannumeralfivehundred \or % 217E SMALL ROMAN NUMERAL FIVE HUNDRED
+ \unic@romannumeralonethousand \or % 217F SMALL ROMAN NUMERAL ONE THOUSAND
+ \unic@romannumeralonethousandCD \or % 2180 ROMAN NUMERAL ONE THOUSAND C D
+ \unic@romannumeralfivethousand \or % 2181 ROMAN NUMERAL FIVE THOUSAND
+ \unic@romannumeraltenthousand \or % 2182 ROMAN NUMERAL TEN THOUSAND
+ \unic@romannumeralreversedonehundred\or % 2183 ROMAN NUMERAL REVERSED ONE HUNDRED
+ \unknownchar \or % 2184
+ \unknownchar \or % 2185
+ \unknownchar \or % 2186
+ \unknownchar \or % 2187
+ \unknownchar \or % 2188
+ \unknownchar \or % 2189
+ \unknownchar \or % 218A
+ \unknownchar \or % 218B
+ \unknownchar \or % 218C
+ \unknownchar \or % 218D
+ \unknownchar \or % 218E
+ \unknownchar \or % 218F
+ \leftarrow \or % LEFTWARDS ARROW
+ \uparrow \or % UPWARDS ARROW
+ \rightarrow \or % RIGHTWARDS ARROW
+ \downarrow \or % DOWNWARDS ARROW
+ \leftrightarrow \or % LEFT RIGHT ARROW
+ \updownarrow \or % UP DOWN ARROW
+ \nwarrow \or % NORTH WEST ARROW
+ \nearrow \or % NORTH EAST ARROW
+ \searrow \or % SOUTH EAST ARROW
+ \swarrow \or % SOUTH WEST ARROW
+ \nleftarrow \or % LEFTWARDS ARROW WITH STROKE
+ \nrightarrow \or % RIGHTWARDS ARROW WITH STROKE
+ \unknownchar \or % LEFTWARDS WAVE ARROW
+ \unknownchar \or % RIGHTWARDS WAVE ARROW
+ \twoheadedleftarrow \or % LEFTWARDS TWO HEADED ARROW
+ \unknownchar \or % UPWARDS TWO HEADED ARROW
+ \twoheadedrightarrow \or % RIGHTWARDS TWO HEADED ARROW
+ \unknownchar \or % DOWNWARDS TWO HEADED ARROW
+ \leftarrowtail \or % LEFTWARDS ARROW WITH TAIL
+ \rightarrowtail \or % RIGHTWARDS ARROW WITH TAIL
+ \mapsfrom \or % LEFTWARDS ARROW FROM BAR
+ \unknownchar \or % UPWARDS ARROW FROM BAR
+ \mapsto \or % RIGHTWARDS ARROW FROM BAR
+ \unknownchar \or % DOWNWARDS ARROW FROM BAR
+ \unknownchar \or % UP DOWN ARROW WITH BASE
+ \hookleftarrow \or % LEFTWARDS ARROW WITH HOOK
+ \hookrightarrow \or % RIGHTWARDS ARROW WITH HOOK
+ \loopleftarrow \or % LEFTWARDS ARROW WITH LOOP
+ \looprightarrow \or % RIGHTWARDS ARROW WITH LOOP
+ \unknownchar \or % LEFT RIGHT WAVE ARROW
+ \nleftrightarrow \or % LEFT RIGHT ARROW WITH STROKE
+ \lightning \or % DOWNWARDS ZIGZAG ARROW
+ \Lsh \or % UPWARDS ARROW WITH TIP LEFTWARDS
+ \Rsh \or % UPWARDS ARROW WITH TIP RIGHTWARDS
+ \unknownchar \or % DOWNWARDS ARROW WITH TIP LEFTWARDS
+ \unknownchar \or % DOWNWARDS ARROW WITH TIP RIGHTWARDS
+ \unknownchar \or % RIGHTWARDS ARROW WITH CORNER DOWNWARDS
+ \unknownchar \or % DOWNWARDS ARROW WITH CORNER LEFTWARDS
+ \curveleftarrow \or % ANTICLOCKWISE TOP SEMICIRCLE ARROW
+ \curverightarrow \or % CLOCKWISE TOP SEMICIRCLE ARROW
+ \unknownchar \or % NORTH WEST ARROW TO LONG BAR
+ \unknownchar \or % LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
+ \circlearrowleft \or % ANTICLOCKWISE OPEN CIRCLE ARROW
+ \circlearrowright \or % CLOCKWISE OPEN CIRCLE ARROW
+ \leftharpoonup \or % LEFTWARDS HARPOON WITH BARB UPWARDS
+ \leftharpoondown \or % LEFTWARDS HARPOON WITH BARB DOWNWARDS
+ \upharpoonright \or % UPWARDS HARPOON WITH BARB RIGHTWARDS
+ \upharpoonleft \or % UPWARDS HARPOON WITH BARB LEFTWARDS
+ \rightharpoonup \or % RIGHTWARDS HARPOON WITH BARB UPWARDS
+ \rightharpoondown \or % RIGHTWARDS HARPOON WITH BARB DOWNWARDS
+ \downharpoonright \or % DOWNWARDS HARPOON WITH BARB RIGHTWARDS
+ \downharpoonleft \or % DOWNWARDS HARPOON WITH BARB LEFTWARDS
+ \rightleftarrows \or % RIGHTWARDS ARROW OVER LEFTWARDS ARROW
+ \unknownchar \or % UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
+ \leftrightarrows \or % LEFTWARDS ARROW OVER RIGHTWARDS ARROW
+ \leftleftarrows \or % LEFTWARDS PAIRED ARROWS
+ \upuparrows \or % UPWARDS PAIRED ARROWS
+ \rightrightarrows \or % RIGHTWARDS PAIRED ARROWS
+ \downdownarrows \or % DOWNWARDS PAIRED ARROWS
+ \leftrightharpoons \or % LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
+ \rightleftharpoons \or % RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
+ \nLeftarrow \or % LEFTWARDS DOUBLE ARROW WITH STROKE
+ \nLeftrightarrow \or % LEFT RIGHT DOUBLE ARROW WITH STROKE
+ \nRightarrow \or % RIGHTWARDS DOUBLE ARROW WITH STROKE
+ \Leftarrow \or % LEFTWARDS DOUBLE ARROW
+ \Uparrow \or % UPWARDS DOUBLE ARROW
+ \Rightarrow \or % RIGHTWARDS DOUBLE ARROW
+ \Downarrow \or % DOWNWARDS DOUBLE ARROW
+ \Leftrightarrow \or % LEFT RIGHT DOUBLE ARROW
+ \Updownarrow \or % UP DOWN DOUBLE ARROW
+ \unknownchar \or % NORTH WEST DOUBLE ARROW
+ \unknownchar \or % NORTH EAST DOUBLE ARROW
+ \unknownchar \or % SOUTH EAST DOUBLE ARROW
+ \unknownchar \or % SOUTH WEST DOUBLE ARROW
+ \Lleftarrow \or % LEFTWARDS TRIPLE ARROW
+ \unknownchar \or % RIGHTWARDS TRIPLE ARROW
+ \leftsquidarrow \or % LEFTWARDS SQUIGGLE ARROW
+ \rightsquidarrow \or % RIGHTWARDS SQUIGGLE ARROW
+ \unknownchar \or % UPWARDS ARROW WITH DOUBLE STROKE
+ \unknownchar \or % DOWNWARDS ARROW WITH DOUBLE STROKE
+ \dashleftarrow \or % LEFTWARDS DASHED ARROW
+ \unknownchar \or % UPWARDS DASHED ARROW
+ \dashrightarrow \or % RIGHTWARDS DASHED ARROW
+ \unknownchar \or % DOWNWARDS DASHED ARROW
+ \unic@leftarrowtobar \or % LEFTWARDS ARROW TO BAR
+ \unknownchar \or % RIGHTWARDS ARROW TO BAR
+ \unknownchar \or % LEFTWARDS WHITE ARROW
+ \unknownchar \or % UPWARDS WHITE ARROW
+ \unknownchar \or % RIGHTWARDS WHITE ARROW
+ \unknownchar \or % DOWNWARDS WHITE ARROW
+ \unknownchar \or % UPWARDS WHITE ARROW FROM BAR
+ \unknownchar \or % UPWARDS WHITE ARROW ON PEDESTAL
+ \unknownchar \or % UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR
+ \unknownchar \or % UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR
+ \unknownchar \or % UPWARDS WHITE DOUBLE ARROW
+ \unknownchar \or % UPWARDS WHITE DOUBLE ARROW ON PEDESTAL
+ \unknownchar \or % RIGHTWARDS WHITE ARROW FROM WALL
+ \unknownchar \or % NORTH WEST ARROW TO CORNER
+ \unknownchar \or % SOUTH EAST ARROW TO CORNER
+ \unknownchar \or % UP DOWN WHITE ARROW
+ \unknownchar \or % RIGHT ARROW WITH SMALL CIRCLE
+ \unknownchar \or % DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
+ \unknownchar \or % THREE RIGHTWARDS ARROWS
+ \unknownchar \or % LEFTWARDS ARROW WITH VERTICAL STROKE
+ \unknownchar \or % RIGHTWARDS ARROW WITH VERTICAL STROKE
+ \unknownchar \or % LEFT RIGHT ARROW WITH VERTICAL STROKE
+ \unknownchar \or % LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE
+ \unknownchar \or % RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE
+ \unknownchar \or % LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE
+ \leftarrowtriangle \or % LEFTWARDS OPEN-HEADED ARROW
+ \rightarrowtriangle \or % RIGHTWARDS OPEN-HEADED ARROW
+ \leftrightarrowtriangle \else % LEFT RIGHT OPEN-HEADED ARROW
\unknowncharacter
\fi
\stopunicodevector
diff --git a/Master/texmf-dist/tex/context/base/unic-037.tex b/Master/texmf-dist/tex/context/base/unic-037.tex
new file mode 100644
index 00000000000..87f655a6810
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/unic-037.tex
@@ -0,0 +1,278 @@
+%D \module
+%D [ file=unic-037,
+%D version=2006.02.13,
+%D title=\CONTEXT\ \UNICODE\ Macros,
+%D subtitle=Vector 37,
+%D author=Luigi Scarso,
+%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
+
+\startunicodevector 37
+ \expandafter\strippedcsname
+ \ifcase\numexpr #1+1\relax\or %%
+ \UnicodeLightHorizontal\or
+ \UnicodeHeavyHorizontal\or
+ \UnicodeLightVertical\or
+ \UnicodeHeavyVertical\or
+ \UnicodeLightTripleDashHorizontal\or
+ \UnicodeHeavyTripleDashHorizontal\or
+ \UnicodeLightTripleDashVertical\or
+ \UnicodeHeavyTripleDashVertical\or
+ \UnicodeLightQuadrupleDashHorizontal\or
+ \UnicodeHeavyQuadrupleDashHorizontal\or
+ \UnicodeLightQuadrupleDashVertical\or
+ \UnicodeHeavyQuadrupleDashVertical\or
+ \UnicodeLightDownAndRight\or
+ \UnicodeDownLightAndRightHeavy\or
+ \UnicodeDownHeavyAndRightLight\or
+ \UnicodeHeavyDownAndRight\or
+ \UnicodeLightDownAndLeft\or
+ \UnicodeDownLightAndLeftHeavy\or
+ \UnicodeDownHeavyAndLeftLight\or
+ \UnicodeHeavyDownAndLeft\or
+ \UnicodeLightUpAndRight\or
+ \UnicodeUpLightAndRightHeavy\or
+ \UnicodeUpHeavyAndRightLight\or
+ \UnicodeHeavyUpAndRight\or
+ \UnicodeLightUpAndLeft\or
+ \UnicodeUpLightAndLeftHeavy\or
+ \UnicodeUpHeavyAndLeftLight\or
+ \UnicodeHeavyUpAndLeft\or
+ \UnicodeLightVerticalAndRight\or
+ \UnicodeVerticalLightAndRightHeavy\or
+ \UnicodeUpHeavyAndRightDownLight\or
+ \UnicodeDownHeavyAndRightUpLight\or
+ \UnicodeVerticalHeavyAndRightLight\or
+ \UnicodeDownLightAndRightUpHeavy\or
+ \UnicodeUpLightAndRightDownHeavy\or
+ \UnicodeHeavyVerticalAndRight\or
+ \UnicodeLightVerticalAndLeft\or
+ \UnicodeVerticalLightAndLeftHeavy\or
+ \UnicodeUpHeavyAndLeftDownLight\or
+ \UnicodeDownHeavyAndLeftUpLight\or
+ \UnicodeVerticalHeavyAndLeftLight\or
+ \UnicodeDownLightAndLeftUpHeavy\or
+ \UnicodeUpLightAndLeftDownHeavy\or
+ \UnicodeHeavyVerticalAndLeft\or
+ \UnicodeLightDownAndHorizontal\or
+ \UnicodeLeftHeavyAndRightDownLight\or
+ \UnicodeRightHeavyAndLeftDownLight\or
+ \UnicodeDownLightAndHorizontalHeavy\or
+ \UnicodeDownHeavyAndHorizontalLight\or
+ \UnicodeRightLightAndLeftDownHeavy\or
+ \UnicodeLeftLightAndRightDownHeavy\or
+ \UnicodeHeavyDownAndHorizontal\or
+ \UnicodeLightUpAndHorizontal\or
+ \UnicodeLeftHeavyAndRightUpLight\or
+ \UnicodeRightHeavyAndLeftUpLight\or
+ \UnicodeUpLightAndHorizontalHeavy\or
+ \UnicodeUpHeavyAndHorizontalLight\or
+ \UnicodeRightLightAndLeftUpHeavy\or
+ \UnicodeLeftLightAndRightUpHeavy\or
+ \UnicodeHeavyUpAndHorizontal\or
+ \UnicodeLightVerticalAndHorizontal\or
+ \UnicodeLeftHeavyAndRightVerticalLight\or
+ \UnicodeRightHeavyAndLeftVerticalLight\or
+ \UnicodeVerticalLightAndHorizontalHeavy\or
+ \UnicodeUpHeavyAndDownHorizontalLight\or
+ \UnicodeDownHeavyAndUpHorizontalLight\or
+ \UnicodeVerticalHeavyAndHorizontalLight\or
+ \UnicodeLeftUpHeavyAndRightDownLight\or
+ \UnicodeRightUpHeavyAndLeftDownLight\or
+ \UnicodeLeftDownHeavyAndRightUpLight\or
+ \UnicodeRightDownHeavyAndLeftUpLight\or
+ \UnicodeDownLightAndUpHorizontalHeavy\or
+ \UnicodeUpLightAndDownHorizontalHeavy\or
+ \UnicodeRightLightAndLeftVerticalHeavy\or
+ \UnicodeLeftLightAndRightVerticalHeavy\or
+ \UnicodeHeavyVerticalAndHorizontal\or
+ \UnicodeLightDoubleDashHorizontal\or
+ \UnicodeHeavyDoubleDashHorizontal\or
+ \UnicodeLightDoubleDashVertical\or
+ \UnicodeHeavyDoubleDashVertical\or
+ \UnicodeDoubleHorizontal\or
+ \UnicodeDoubleVertical\or
+ \UnicodeDownSingleAndRightDouble\or
+ \UnicodeDownDoubleAndRightSingle\or
+ \UnicodeDoubleDownAndRight\or
+ \UnicodeDownSingleAndLeftDouble\or
+ \UnicodeDownDoubleAndLeftSingle\or
+ \UnicodeDoubleDownAndLeft\or
+ \UnicodeUpSingleAndRightDouble\or
+ \UnicodeUpDoubleAndRightSingle\or
+ \UnicodeDoubleUpAndRight\or
+ \UnicodeUpSingleAndLeftDouble\or
+ \UnicodeUpDoubleAndLeftSingle\or
+ \UnicodeDoubleUpAndLeft\or
+ \UnicodeVerticalSingleAndRightDouble\or
+ \UnicodeVerticalDoubleAndRightSingle\or
+ \UnicodeDoubleVerticalAndRight\or
+ \UnicodeVerticalSingleAndLeftDouble\or
+ \UnicodeVerticalDoubleAndLeftSingle\or
+ \UnicodeDoubleVerticalAndLeft\or
+ \UnicodeDownSingleAndHorizontalDouble\or
+ \UnicodeDownDoubleAndHorizontalSingle\or
+ \UnicodeDoubleDownAndHorizontal\or
+ \UnicodeUpSingleAndHorizontalDouble\or
+ \UnicodeUpDoubleAndHorizontalSingle\or
+ \UnicodeDoubleUpAndHorizontal\or
+ \UnicodeVerticalSingleAndHorizontalDouble\or
+ \UnicodeVerticalDoubleAndHorizontalSingle\or
+ \UnicodeDoubleVerticalAndHorizontal\or
+ \UnicodeLightArcDownAndRight\or
+ \UnicodeLightArcDownAndLeft\or
+ \UnicodeLightArcUpAndLeft\or
+ \UnicodeLightArcUpAndRight\or
+ \UnicodeLightDiagonalUpperRightToLowerLeft\or
+ \UnicodeLightDiagonalUpperLeftToLowerRight\or
+ \UnicodeLightDiagonalCross\or
+ \UnicodeLightLeft\or
+ \UnicodeLightUp\or
+ \UnicodeLightRight\or
+ \UnicodeLightDown\or
+ \UnicodeHeavyLeft\or
+ \UnicodeHeavyUp\or
+ \UnicodeHeavyRight\or
+ \UnicodeHeavyDown\or
+ \UnicodeLightLeftAndHeavyRight\or
+ \UnicodeLightUpAndHeavyDown\or
+ \UnicodeHeavyLeftAndLightRight\or
+ \UnicodeHeavyUpAndLightDown\or
+ \UnicodeUpperHalfBlock\or
+ \UnicodeLowerOneEighthBlock\or
+ \UnicodeLowerOneQuarterBlock\or
+ \UnicodeLowerThreeEighthsBlock\or
+ \UnicodeLowerHalfBlock\or
+ \UnicodeLowerFiveEighthsBlock\or
+ \UnicodeLowerThreeQuartersBlock\or
+ \UnicodeLowerSevenEighthsBlock\or
+ \UnicodeFullBlock\or
+ \UnicodeLeftSevenEighthsBlock\or
+ \UnicodeLeftThreeQuartersBlock\or
+ \UnicodeLeftFiveEighthsBlock\or
+ \UnicodeLeftHalfBlock\or
+ \UnicodeLeftThreeEighthsBlock\or
+ \UnicodeLeftOneQuarterBlock\or
+ \UnicodeLeftOneEighthBlock\or
+ \UnicodeRightHalfBlock\or
+ \UnicodeLightShade\or
+ \UnicodeMediumShade\or
+ \UnicodeDarkShade\or
+ \UnicodeUpperOneEighthBlock\or
+ \UnicodeRightOneEighthBlock\or
+ \UnicodeQuadrantLowerLeft\or
+ \UnicodeQuadrantLowerRight\or
+ \UnicodeQuadrantUpperLeft\or
+ \UnicodeQuadrantUpperLeftAndLowerLeftAndLowerRight\or
+ \UnicodeQuadrantUpperLeftAndLowerRight\or
+ \UnicodeQuadrantUpperLeftAndUpperRightandLowerLeft\or
+ \UnicodeQuadrantUpperLeftAndUpperRightAndLowerRight\or
+ \UnicodeQuadrantUpperRight\or
+ \UnicodeQuadrantUpperRightAndLowerLeft\or
+ \UnicodeQuadrantUpperRightAndLowerLeftAndLowerRight\or
+ \UnicodeBlackSquare\or
+ \UnicodeWhiteSquare\or
+ \UnicodeWhiteSquareWithRoundedCorners\or
+ \UnicodeWhiteSquareContainingBlackSmallSquare\or
+ \UnicodeSquareWithHorizontalFill\or
+ \UnicodeSquareWithVerticalFill\or
+ \UnicodeSquareWithOrthogonalCrosshatchFill\or
+ \UnicodeSquareWithUpperLeftToLowerRightFill\or
+ \UnicodeSquareWithUpperRightToLowerLeftFill\or
+ \UnicodeSquareWithDiagonalCrosshatchFill\or
+ \UnicodeBlackSmallSquare\or
+ \UnicodeWhiteSmallSquare\or
+ \UnicodeBlackRectangle\or
+ \UnicodeWhiteRectangle\or
+ \UnicodeBlackVerticalRectangle\or
+ \UnicodeWhiteVerticalRectangle\or
+ \UnicodeBlackParallelogram\or
+ \UnicodeWhiteParallelogram\or
+ \UnicodeBlackUpPointingTriangle\or
+ \UnicodeWhiteUpPointingTriangle\or
+ \UnicodeBlackUpPointingSmallTriangle\or
+ \UnicodeWhiteUpPointingSmallTriangle\or
+ \UnicodeBlackRightPointingTriangle\or
+ \UnicodeWhiteRightPointingTriangle\or
+ \UnicodeBlackRightPointingSmallTriangle\or
+ \UnicodeWhiteRightPointingSmallTriangle\or
+ \UnicodeBlackRightPointingPointer\or
+ \UnicodeWhiteRightPointingPointer\or
+ \UnicodeBlackDownPointingTriangle\or
+ \UnicodeWhiteDownPointingTriangle\or
+ \UnicodeBlackDownPointingSmallTriangle\or
+ \UnicodeWhiteDownPointingSmallTriangle\or
+ \UnicodeBlackLeftPointingTriangle\or
+ \UnicodeWhiteLeftPointingTriangle\or
+ \UnicodeBlackLeftPointingSmallTriangle\or
+ \UnicodeWhiteLeftPointingSmallTriangle\or
+ \UnicodeBlackLeftPointingPointer\or
+ \UnicodeWhiteLeftPointingPointer\or
+ \UnicodeBlackDiamond\or
+ \UnicodeWhiteDiamond\or
+ \UnicodeWhiteDiamondContainingBlackSmallDiamond\or
+ \UnicodeFisheye\or
+ \UnicodeLozenge\or
+ \UnicodeWhiteCircle\or
+ \UnicodeDottedCircle\or
+ \UnicodeCircleWithVerticalFill\or
+ \UnicodeBullseye\or
+ \UnicodeBlackCircle\or
+ \UnicodeCircleWithLeftHalfBlack\or
+ \UnicodeCircleWithRightHalfBlack\or
+ \UnicodeCircleWithLowerHalfBlack\or
+ \UnicodeCircleWithUpperHalfBlack\or
+ \UnicodeCircleWithUpperRightQuadrantBlack\or
+ \UnicodeCircleWithAllButUpperLeftQuadrantBlack\or
+ \UnicodeLeftHalfBlackCircle\or
+ \UnicodeRightHalfBlackCircle\or
+ \UnicodeInverseBullet\or
+ \UnicodeInverseWhiteCircle\or
+ \UnicodeUpperHalfInverseWhiteCircle\or
+ \UnicodeLowerHalfInverseWhiteCircle\or
+ \UnicodeUpperLeftQuadrantCircularArc\or
+ \UnicodeUpperRightQuadrantCircularArc\or
+ \UnicodeLowerRightQuadrantCircularArc\or
+ \UnicodeLowerLeftQuadrantCircularArc\or
+ \UnicodeUpperHalfCircle\or
+ \UnicodeLowerHalfCircle\or
+ \UnicodeBlackLowerRightTriangle\or
+ \UnicodeBlackLowerLeftTriangle\or
+ \UnicodeBlackUpperLeftTriangle\or
+ \UnicodeBlackUpperRightTriangle\or
+ \UnicodeWhiteBullet\or
+ \UnicodeSquareWithLeftHalfBlack\or
+ \UnicodeSquareWithRightHalfBlack\or
+ \UnicodeSquareWithUpperLeftDiagonalHalfBlack\or
+ \UnicodeSquareWithLowerRightDiagonalHalfBlack\or
+ \UnicodeWhiteSquareWithVerticalBisectingLine\or
+ \UnicodeWhiteUpPointingTriangleWithDot\or
+ \UnicodeUpPointingTriangleWithLeftHalfBlack\or
+ \UnicodeUpPointingTriangleWithRightHalfBlack\or
+ \UnicodeLargeCircle\or
+ \UnicodeWhiteSquareWithUpperLeftQuadrant\or
+ \UnicodeWhiteSquareWithLowerLeftQuadrant\or
+ \UnicodeWhiteSquareWithLowerRightQuadrant\or
+ \UnicodeWhiteSquareWithUpperRightQuadrant\or
+ \UnicodeWhiteCircleWithUpperLeftQuadrant\or
+ \UnicodeWhiteCircleWithLowerLeftQuadrant\or
+ \UnicodeWhiteCircleWithLowerRightQuadrant\or
+ \UnicodeWhiteCircleWithUpperRightQuadrant\or
+ \UnicodeUpperLeftTriangle\or
+ \UnicodeUpperRightTriangle\or
+ \UnicodeLowerLeftTriangle\or
+ \UnicodeWhiteMediumSquare\or
+ \UnicodeBlackMediumSquare\or
+ \UnicodeWhiteMediumSmallSquare\or
+ \UnicodeBlackMediumSmallSquare\or
+ \UnicodeLowerRightTriangle\else%
+ \unknownchar\fi
+\stopunicodevector
+\protect \endinput
+
diff --git a/Master/texmf-dist/tex/context/base/unic-251.tex b/Master/texmf-dist/tex/context/base/unic-251.tex
new file mode 100644
index 00000000000..150ade4561f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/unic-251.tex
@@ -0,0 +1,34 @@
+%D \module
+%D [ file=unic-251,
+%D version=2006.04.20,
+%D title=\CONTEXT\ \UNICODE\ Macros,
+%D subtitle=Vector 251,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE]
+
+\unprotect
+
+\def\ffligature {ff}
+\def\filigature {fi}
+\def\flligature {fl}
+\def\ffiligature {ffi}
+\def\fflligature {ffl}
+\def\ftligature {ft}
+\def\stligature {st}
+
+\startunicodevector 251
+ \expandafter\strippedcsname
+ \ifcase\numexpr#1\relax
+ \ffligature \or % LATIN SMALL LIGATURE FF
+ \filigature \or % LATIN SMALL LIGATURE FI
+ \flligature \or % LATIN SMALL LIGATURE FL
+ \ffiligature \or % LATIN SMALL LIGATURE FFI
+ \fflligature \or % LATIN SMALL LIGATURE FFL
+ \ftligature \or % LATIN SMALL LIGATURE FT
+ \stligature \else % LATIN SMALL LIGATURE ST
+ \unknownchar
+ \fi
+\stopunicodevector
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/unic-cjk.tex b/Master/texmf-dist/tex/context/base/unic-cjk.tex
new file mode 100644
index 00000000000..2835e6cf147
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/unic-cjk.tex
@@ -0,0 +1,16 @@
+%D \module
+%D [ file=unic-cjk,
+%D version=2005.12.14,
+%D title=\CONTEXT\ \UNICODE\ Macros,
+%D subtitle=CJK Vectors,
+%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.
+
+\dostepwiserecurse{40}{159}{1}{\expanded{\defineunicodecommand {\recurselevel}} {\lookaheaduchar}}
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/unic-exp.tex b/Master/texmf-dist/tex/context/base/unic-exp.tex
index 17bdaef0602..6ed2ef38d22 100644
--- a/Master/texmf-dist/tex/context/base/unic-exp.tex
+++ b/Master/texmf-dist/tex/context/base/unic-exp.tex
@@ -51,31 +51,29 @@
%D For this purpose, we need to redefine the resolver.
\def\doutfunihash#1#2%
- {\ifcsname\@@univector\@@univector\number#1\endcsname
- \csname\@@univector\@@univector\number#1\endcsname{\utfmod{#2}}%
- \else\ifcsname\@@univector\number#1\endcsname
- \csname\@@univector#1\endcsname{\utfmod{#2}}%
- \else
- \@@unknownchar
- \fi\fi}
+ {\csname \@@univector
+ \ifcsname\@@univector\@@univector#1\endcsname \@@univector#1\else
+ \ifcsname\@@univector #1\endcsname #1\else
+ \s!unknown\fi\fi
+ \endcsname{\utfmod{#2}}}
+
+\setvalue{\@@univector\s!unknown}#1%
+ {\@@unknownchar}
+
+\def\doutfunihashglyph#1#2#3% div mod raw
+ {\csname utf!\ifnum#3<\utf@i1\else
+ \ifcsname\@@unicommand#1\endcsname2\else
+ \ifcsname\@@univector\@@univector#1\endcsname3\else
+ \ifcsname\@@univector #1\endcsname4\else
+ 5\fi\fi\fi\fi !\endcsname{#1}{#2}}
-% or:
-%
-% \def\doutfunihash#1#2%
-% {\csname
-% \ifcsname\@@univector\@@univector\number#1\endcsname
-% \@@univector\@@univector\number#1%
-% \else\ifcsname\@@univector\number#1\endcsname
-% \@@univector#1%
-% \else
-% \strippedcsname\noutfunihash
-% \fi\fi
-% \endcsname{\utfmod{#2}}}
-%
-% \def\noutfunihash#1%
-% {\unknowncharacter}
+\setvalue{utf!1!}#1{\unicodeasciicharacter} % {#2}
+\setvalue{utf!2!}#1{\csname\@@unicommand#1\endcsname} % {#2}
+\setvalue{utf!3!}#1#2{\csname\csname\@@univector\@@univector#1\endcsname{#2}\endcsname} % watch the nested csname; it's a speed up
+\setvalue{utf!4!}#1#2{\csname\csname\@@univector#1\endcsname{#2}\endcsname} % watch the nested csname; it's a speed up
+\setvalue{utf!5!}#1#2{\unicodeunknowncharacter}
-\let\utfunihash\utfunihashglyph
+% \let\utfunihash\utfunihashglyph
%D Let's use it:
diff --git a/Master/texmf-dist/tex/context/base/unic-ini.tex b/Master/texmf-dist/tex/context/base/unic-ini.tex
index 1881eceb2f4..00651384f57 100644
--- a/Master/texmf-dist/tex/context/base/unic-ini.tex
+++ b/Master/texmf-dist/tex/context/base/unic-ini.tex
@@ -22,6 +22,18 @@
\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
@@ -218,6 +230,8 @@
%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}}
@@ -230,11 +244,29 @@
{\@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
@@ -401,11 +433,59 @@
\@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 Now we can say:
+%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
@@ -455,7 +535,8 @@
\def\douseunicodevector#1%
{\ifundefined{\@@univector#1}%
- \readsysfile{\f!unicprefix\threedigits{#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}
@@ -535,7 +616,7 @@
\def\unidiv{0} \def\unimod{0}
-\chardef\utfunihashmode=0 % 0=hash glyph 1=font glyph
+\chardef\utfunihashmode=0 % 0=hash glyph / 1=font glyph
\def\utfunifontglyph#1%
{\xdef\unidiv{\number\utfdiv{#1}}%
@@ -579,7 +660,6 @@
\def\utfunihashcommand
{\ifcase\utfunihashmode
- % \@EA\@EAEAEA\@EA\string\@EA\utfunihashglyph
\@EA\utfunihushcommand
\else
\@EA\utfunifontcommand
@@ -652,6 +732,9 @@
\endTEX
+\def\uchartoutf#1#2%
+ {\expandafter\numbertoutf\expandafter{\the\numexpr#1*256+#2\relax}}
+
%D Goodies:
\fetchruntimecommand \showunicodevector {\f!unicprefix\s!run}
@@ -660,8 +743,14 @@
%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,32,33,34,39] \useregime[utf]
+\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.tex
index 49b8b6d968d..b8e154fd45d 100644
--- a/Master/texmf-dist/tex/context/base/unic-run.tex
+++ b/Master/texmf-dist/tex/context/base/unic-run.tex
@@ -28,7 +28,7 @@
\dostepwiserecurse{0}{15}{1}{\unicodechar{\numexpr#1*256+#2+\recurselevel*16\relax}\VL}%
\AR}
-\gdef\showunicodevector#1%
+\gdef\showunicodevector[#1]%
{\starttable[|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|]
\NC\NC\dostepwiserecurse{0}{15}{1}{\ttx\uchexnumber\recurselevel\NC}\AR
\DC\DL[16]\DR
@@ -42,17 +42,17 @@
%D \chardef\utfunicodetracer=0
%D \chardef\utfunicodetracer=7
%D
-%D \showunicodevector{000}
-%D \showunicodevector{001}
-%D \showunicodevector{002}
-%D \showunicodevector{003}
-%D \showunicodevector{004}
-%D \showunicodevector{005}
-%D \showunicodevector{030}
-%D \showunicodevector{031}
-%D \showunicodevector{032}
-%D \showunicodevector{033}
-%D \showunicodevector{034}
+%D \showunicodevector[000]
+%D \showunicodevector[001]
+%D \showunicodevector[002]
+%D \showunicodevector[003]
+%D \showunicodevector[004]
+%D \showunicodevector[005]
+%D \showunicodevector[030]
+%D \showunicodevector[031]
+%D \showunicodevector[032]
+%D \showunicodevector[033]
+%D \showunicodevector[034]
%D \stoptyping
%D \macros
@@ -66,7 +66,7 @@
\dostepwiserecurse{0}{15}{1}
{\bTD
\edef\entrypoint{\the\numexpr#1*256+#2+##1*16\relax}%
- \chardef\utfunicodetracer0{\dontleavehmode \strut\unicodechar\entrypoint\endgraf}%
+ \chardef\utfunicodetracer0{\dontleavehmode \strut\unicodechar\entrypoint\endgraf}%
\tt
\chardef\utfunicodetracer7{\dontleavehmode\txx\strut\unicodechar\entrypoint\endgraf}%
\chardef\utfunicodetracer3{\dontleavehmode\txx\strut\unicodechar\entrypoint\endgraf}%
@@ -75,8 +75,9 @@
\bTD\uchexnumber{#2}\eTD
\eTR}
-\gdef\showunicodetable#1%
+\gdef\showunicodetable[#1]%
{\vbox\bgroup
+ \setupcolors[\c!state=\v!start]%
\setupTABLE[\c!background=\v!screen,\c!backgroundscreen=.90,\c!frame=\v!off,\c!frameoffset=0pt,\c!width=8em,\c!height=6em]%
\setupTABLE[c] [\v!each] [\c!align={middle,lohi}]%
\setupTABLE[c] [\v!first][\c!background=\v!screen,\c!backgroundscreen=.85,\c!style=\tt\tfa]%
diff --git a/Master/texmf-dist/tex/context/base/verb-c.tex b/Master/texmf-dist/tex/context/base/verb-c.tex
new file mode 100644
index 00000000000..d2f708a8d7f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/verb-c.tex
@@ -0,0 +1,484 @@
+%D \module
+%D [ file=verb-c,
+%D version=2006.04.17,
+%D title=\CONTEXT\ Verbatim Macros,
+%D subtitle=Pretty C Verbatim,
+%D author=Nikolai Weibull,
+%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 Support Macros / Pretty C Verbatim}
+
+% HH:
+%
+% - extra !!pretty definitions moved to verb-ini
+% - added a c!
+% - did a few small cosmetic things
+
+\unprotect
+
+\doglobal\newif\ifinCsingle
+\doglobal\newif\ifinCdouble
+\doglobal\newif\ifinCcomment
+\doglobal\newif\ifinCsinglelinecomment
+\doglobal\newif\ifinCmultilinecomment
+\doglobal\newif\ifcontinueCsinglelinecomment
+
+\gdef\Csetcontrols
+ {\saveprettycontrols
+ \def\obeyedspace
+ {\endCtypesix
+ \oldobeyedspace}%
+ \def\flushrestofverbatimline
+ {\endCtypesix
+ \ifinCsinglelinecomment
+ \ifcontinueCsinglelinecomment
+ \continueCsinglelinecommentfalse
+ \else
+ \tttf
+ \endofpretty
+ \global\inCsinglelinecommentfalse
+ \global\inCcommentfalse
+ \fi
+ \fi}%
+ \def\obeyedline
+ {\oldobeyedline}%
+ \let\obeytabs\ignoretabs}
+
+\gdef\setupprettyCtype
+ {\def\prettyidentifier{C}%
+ \Csetvariables
+ \Csetcontrols
+ \Csethandlers
+ \Csetspecials
+ \Csetdiagnostics}
+
+\gdef\Csetvariables
+ {\global\inCsinglefalse
+ \global\inCdoublefalse
+ \global\inCcommentfalse
+ \global\continueCsinglelinecommentfalse
+ \global\naturaltextexttrue
+ \global\let\Csequence\empty
+ \global\let\Cprefix\empty}
+
+% TODO: should handle -> as well
+
+\gdef\Csetspecials
+ {\setpretty`\{=10 \setpretty`\}=10
+ \setpretty`\$=20 \setpretty`\@=20
+ \setpretty`\[=30 \setpretty`\]=30 \setpretty`\(=30 \setpretty`\)=30
+ \setpretty`\==30 \setpretty`\~=30 \setpretty`\<=30 \setpretty`\>=30
+ \setpretty`\%=30
+ \setpretty`\-=41 \setpretty`\+=41
+ \setpretty`\|=41 \setpretty`\`=41 \setpretty`\!=41 \setpretty`\?=41
+ \setpretty`\^=41 \setpretty`\&=41
+ \setpretty`\/=43 \setpretty`\*=44
+ \setpretty`\#=45
+ \setpretty`\\=50
+ \setpretty`\1=61 \setpretty`\2=61 \setpretty`\3=61 \setpretty`\4=61 \setpretty`\5=61
+ \setpretty`\6=61 \setpretty`\7=61 \setpretty`\8=61 \setpretty`\9=61 \setpretty`\0=61
+ \setpretty`\A=62 \setpretty`\B=62 \setpretty`\C=62 \setpretty`\D=62 \setpretty`\E=62
+ \setpretty`\F=62 \setpretty`\G=62 \setpretty`\H=62 \setpretty`\I=62 \setpretty`\J=62
+ \setpretty`\K=62 \setpretty`\L=62 \setpretty`\M=62 \setpretty`\N=62 \setpretty`\O=62
+ \setpretty`\P=62 \setpretty`\Q=62 \setpretty`\R=62 \setpretty`\S=62 \setpretty`\T=62
+ \setpretty`\U=62 \setpretty`\V=62 \setpretty`\W=62 \setpretty`\X=62 \setpretty`\Y=62
+ \setpretty`\Z=62
+ \setpretty`\a=62 \setpretty`\b=62 \setpretty`\c=62 \setpretty`\d=62 \setpretty`\e=62
+ \setpretty`\f=62 \setpretty`\g=62 \setpretty`\h=62 \setpretty`\i=62 \setpretty`\j=62
+ \setpretty`\k=62 \setpretty`\l=62 \setpretty`\m=62 \setpretty`\n=62 \setpretty`\o=62
+ \setpretty`\p=62 \setpretty`\q=62 \setpretty`\r=62 \setpretty`\s=62 \setpretty`\t=62
+ \setpretty`\u=62 \setpretty`\v=62 \setpretty`\w=62 \setpretty`\x=62 \setpretty`\y=62
+ \setpretty`\z=62
+ \setpretty`\_=62
+ \setpretty`\;=70 \setpretty`\:=70 \setpretty`\,=70 \setpretty`\.=70
+ \setpretty`\'=80
+ \setpretty`\"=90 }
+
+\gdef\Csethandlers
+ {\installprettyhandler 10 \Ctypeone
+ \installprettyhandler 20 \Ctypetwo
+ \installprettyhandler 30 \Ctypethree
+ \installprettyhandler 41 \Ctypefourone
+ \installprettyhandler 43 \Ctypefourthree
+ \installprettyhandler 44 \Ctypefourfour
+ \installprettyhandler 45 \Ctypefourfive
+ \installprettyhandler 50 \Ctypefive
+ \installprettyhandler 61 \Ctypesixone
+ \installprettyhandler 62 \Ctypesixtwo
+ \installprettyhandler 70 \Ctypeseven
+ \installprettyhandler 80 \Ctypeeight
+ \installprettyhandler 90 \Ctypenine}
+
+\gdef\Ctypeone#1%
+ {\ifinCdouble
+ \ifinCcomment
+ \endCtypesix
+ \getpretty{#1}%
+ \else\ifx\Cprefix\empty
+ \endCtypesix
+ \getpretty{#1}%
+ \else
+ \endCtypesix
+ \xdef\Cprefix{\getpretty{#1}}%
+ \beginofpretty[\!!prettyone]\getpretty{#1}\endofpretty
+ \fi\fi
+ \else
+ \endCtypesix
+ \ifinCcomment
+ \getpretty{#1}%
+ \else\ifinCsingle
+ \getpretty{#1}%
+ \else
+ \beginofpretty[\!!prettyone]\getpretty{#1}\endofpretty
+ \fi\fi
+ \fi}
+
+\gdef\Ctypetwo#1%
+ {\endCtypesix
+ \getpretty{#1}}
+
+\gdef\Ctypethree#1%
+ {\endCtypesix
+ \ifinCcomment
+ \getpretty{#1}%
+ \else\ifinCsingle
+ \getpretty{#1}%
+ \else\ifinCdouble
+ \getprettydata{#1}%
+ \ifx\Cprefix\empty
+ \getpretty{#1}%
+ \else
+ \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty
+ \fi
+ \else
+ \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty
+ \fi\fi\fi}
+
+\gdef\Ctypefourone#1%
+ {\endCtypesix
+ \ifinCcomment
+ \getpretty{#1}%
+ \else\ifinCsingle
+ \getpretty{#1}%
+ \else\ifinCdouble
+ \getpretty{#1}%
+ \else
+ \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty
+ \fi\fi\fi}
+
+\gdef\doCtypefourtwo#1#2%
+ {\getprettydata{#2}%
+ \ifnum\prettytype=62
+ \expandafter\Ctypetwo
+ \else
+ \expandafter\Ctypefourone
+ \fi
+ {#1}#2}
+
+\gdef\Ctypefourtwo
+ {\handlenextnextpretty\doCtypefourtwo\Ctypefourone}
+
+\gdef\Ctypefourthree
+ {\handlenextnextpretty\doCtypefourthree\Ctypefourtwo}
+
+\gdef\doCtypefourthree#1#2%
+ {\getprettydata{#2}%
+ \ifnum\prettytype=43
+ \let\next\dodoCtypefourthree
+ \else\ifnum\prettytype=44
+ \global\inCcommenttrue
+ \global\inCmultilinecommenttrue
+ \let\next\Cstartcomment
+ \else
+ \let\next\Ctypefourtwo
+ \fi\fi
+ \next{#1}#2}
+
+\gdef\Cstartcomment#1#2%
+ {\beginofpretty[\!!prettyfourthree]\ttsl\getpretties{#1}{#2}}
+
+\gdef\dodoCtypefourthree% #1%
+ {\endCtypesix
+ \handlenextnextpretty\dododoCtypefourthree\dodododoCtypefourthree}
+
+\gdef\dododoCtypefourthree
+ {\ifnewpretty\expandafter\handlenewpretty\fi\dodododoCtypefourthree}
+
+\gdef\dodododoCtypefourthree#1#2%
+ {\ifinCcomment
+ \getpretties{#1}{#2}%
+ \else
+ \global\inCcommenttrue
+ \global\inCsinglelinecommenttrue
+ \def\next{\beginofpretty[\!!prettyfourthree]\ttsl\getpretties{#1}{#2}}%
+ \expandafter\next
+ \fi}
+
+\gdef\Ctypefourfour
+ {\handlenextnextpretty\doCtypefourfour\Ctypefourtwo}
+
+\gdef\doCtypefourfour#1#2%
+ {\getprettydata{#2}%
+ \ifnum\prettytype=44
+ % \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty
+ \ifinCcomment
+ \getpretty{#1}%
+ \else
+ \endCtypesix
+ \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty
+ \fi
+ \expandafter#2%
+ \else\ifnum\prettytype=43
+ \getpretties{#1}{#2}%
+ \tttf
+ \endofpretty
+ \global\inCcommentfalse
+ \global\inCmultilinecommentfalse
+ \else\ifinCcomment
+ \getpretty{#1}%
+ \expandafter#2%
+ \else\ifinCsingle
+ \getpretty{#1}%
+ \expandafter#2%
+ \else\ifinCdouble
+ \getpretty{#1}%
+ \expandafter#2%
+ \else
+ \endCtypesix
+ \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty
+ \expandafter#2%
+ \fi\fi\fi\fi\fi}
+
+\gdef\Ctypefourfive#1%
+ {\ifinCcomment
+ \getpretty{#1}%
+ \else\ifinCsingle
+ \getpretty{#1}%
+ \else\ifinCdouble
+ \getpretty{#1}%
+ \else
+ \endCtypesix
+ \global\inCcommenttrue
+ \global\inCsinglelinecommenttrue
+ \def\next{\beginofpretty[\!!prettyfourthree]\ttsl\getpretty{#1}}%
+ \expandafter\next
+ \fi\fi\fi}
+
+\gdef\doCtypefiveA#1#2%
+ {\endCtypesix
+ \ifinCcomment
+ \getpretties{#1}{#2}%
+ \else\ifinCsingle
+ \getprettydata{#2}%
+ \ifnum\prettytype=50
+ \beginofpretty[\!!prettyfive]\getpretties{#1}{#2}\endofpretty\beginofpretty[\!!prettyeight]%
+ \else\ifnum\prettytype=80
+ \beginofpretty[\!!prettyfive]\getpretties{#1}{#2}\endofpretty\beginofpretty[\!!prettyeight]%
+ \else
+ \getpretties{#1}{#2}%
+ \fi\fi
+ \else\ifinCdouble
+ \beginofpretty[\!!prettyfive]\getpretties{#1}{#2}\endofpretty\beginofpretty[\!!prettynine]%
+ \else
+ \beginofpretty[\!!prettyfive]\getpretties{#1}{#2}\endofpretty
+ \fi\fi\fi}
+
+\gdef\doCtypefiveB#1%
+ {\endCtypesix
+ \ifinCcomment
+ \ifcat#1\relax
+ \continueCsinglelinecommenttrue
+ \getpretty{#1}%
+ \else
+ \getpretty{#1}%
+ \fi
+ \else\ifinCsingle
+ \getpretty{#1}%
+ \else\ifinCdouble
+ \beginofpretty[\!!prettyfive]\getpretty{#1}\endofpretty\beginofpretty[\!!prettynine]%
+ \else
+ \beginofpretty[\!!prettyfive]\getpretty{#1}\endofpretty
+ \fi\fi\fi}
+
+\gdef\Ctypefive
+ {\expandafter\handlenextnextpretty\expandafter\doCtypefiveA\expandafter\doCtypefiveB}
+
+\gdef\endCtypesix
+ {\ifx\Csequence\empty\else
+ \ifinCcomment
+ \Csequence
+ \else\ifinCsingle
+ \Csequence
+ \else\ifinCdouble
+ \Csequence
+ \else\ifx\Cprefix\empty
+ \doendCtypesix\!!prettytwo
+ \else
+ \doendCtypesixtype\!!prettytwo
+ \fi\fi\fi\fi
+ \global\let\Csequence\empty
+ \global\let\Cprefix\empty
+ \fi}
+
+\gdef\doendCtypesix#1%
+ {\doifprettyidentifierelse{\Csequence}{\Ckeywords}
+ {\beginofpretty[#1]%
+ {\prettyidentifierfont\Csequence}%
+ \endofpretty}
+ {\doifprettyidentifierelse{\Csequence}{\Ctypes}
+ {\beginofpretty[\!!prettytwoone]%
+ {\prettyvariablefont\Csequence}%
+ \endofpretty}
+ {\Csequence}}}
+
+\gdef\doendCtypesixtype#1%
+ {\doifprettyidentifierelse{\Cprefix\Csequence}{\Ctypes}
+ {\beginofpretty[#1]%
+ {\prettyvariablefont\Csequence}%
+ \endofpretty}
+ {\Csequence}}
+
+\gdef\Ctypesixone#1%
+ {\ifinCcomment
+ \def\next{\getpretty{#1}}%
+ \else\ifinCsingle
+ \def\next{\getpretty{#1}}%
+ \else\ifinCdouble
+ \def\next{\getpretty{#1}}%
+ \else\ifx\Csequence\empty
+ \def\next{\beginofpretty[\!!prettyeight]\getpretty{#1}\endofpretty}%
+ \else
+ \def\next{\Ctypesixtwo{#1}}%
+ \fi\fi\fi\fi
+ \expandafter\next}
+
+\gdef\Ctypesixtwo#1%
+ {\ifinCcomment
+ \getpretty{#1}%
+ \else\ifinCsingle
+ \getpretty{#1}%
+ \else\ifinCdouble
+ \ifx\Cprefix\empty
+ \getpretty{#1}%
+ \else
+ \xdef\Csequence{\Csequence\getpretty{#1}}%
+ \fi
+ \else
+ \xdef\Csequence{\Csequence\getpretty{#1}}%
+ \fi\fi\fi}
+
+\gdef\Ctypeseven#1%
+ {\endCtypesix
+ \getpretty{#1}}
+
+\gdef\Ctypeeight#1% single quote
+ {\endCtypesix
+ \ifinCcomment
+ \getpretty{#1}%
+ \else\ifinCdouble
+ \getpretty{#1}%
+ \else\ifinCsingle
+ \global\inCsinglefalse
+ \getpretty{#1}%
+ \endofpretty
+ \else
+ \global\inCsingletrue
+ \beginofpretty[\!!prettyeight]\getpretty{#1}
+ \fi\fi\fi}
+
+\gdef\Ctypenine#1% double quote
+ {\endCtypesix
+ \ifinCcomment
+ \getpretty{#1}%
+ \else\ifinCsingle
+ \getpretty{#1}%
+ \else\ifinCdouble
+ \global\inCdoublefalse
+ \getpretty{#1}%
+ \endofpretty
+ \else
+ \global\inCdoubletrue
+ \beginofpretty[\!!prettynine]\getpretty{#1}
+ \fi\fi\fi}
+
+\gdef\doreportprettyCtype#1#2#3#4%
+ {#1%
+ [C \string#2 typing conflict, use \string#3 instead]
+ \writestatus
+ {C typing}
+ {use \string#3 instead of \string#2 to enable propper visualization}%
+ \global#4%
+ \expandafter\doemptyverbatimline
+ \fi}
+
+\gdef\reportprettyCtype
+ {\doreportprettyCtype\ifinCsingle'\'\inCsinglefalse
+ \doreportprettyCtype\ifinCdouble"\"\inCdoublefalse}
+
+\gdef\Csetdiagnostics
+ {\let\normaldoemptyverbatimline\doemptyverbatimline
+ \def\doemptyverbatimline
+ {\normaldoemptyverbatimline
+ \reportprettyCtype}}
+
+\useprettyidentifiers \Ckeywords \Csetspecials
+ break case continue default do else for goto if return sizeof switch while
+
+\useprettyidentifiers \Ctypes \Csetspecials
+ auto char const double enum extern float int long register restrict short
+ signed static struct typedef union unsigned void volatile bool
+
+\installprettytype [C] [C]
+
+\definetyping[C][\c!option=C]
+
+\definecolor [colorprettyone] [black]
+\definecolor [colorprettytwo] [r=.46, g=.38, b=.13]
+\definecolor [colorprettytwoone] [r=.38, g=.18, b=.5]
+\definecolor [colorprettythree] [black]
+\definecolor [colorprettyfour] [black]
+\definecolor [colorprettyfourthree] [r=.15, g=.45, r=.15]
+\definecolor [colorprettyfive] [r=.94, g=.15, b=.15]
+\definecolor [colorprettyeight] [r=.58, g=.09, b=.09]
+\definecolor [colorprettynine] [r=.58, g=.09, b=.09]
+
+\definecolor [grayprettyone] [s=.30]
+\definecolor [grayprettytwo] [s=.45]
+\definecolor [grayprettythree] [s=.60]
+\definecolor [grayprettyfour] [s=.75]
+\definecolor [grayprettyfourthree] [s=.70]
+
+\definepalet
+ [colorpretty]
+ [ prettyone=colorprettyone,
+ prettytwo=colorprettytwo,
+ prettytwoone=colorprettytwoone,
+ prettythree=colorprettythree,
+ prettyfour=colorprettyfour,
+ prettyfourthree=colorprettyfourthree,
+ prettyfive=colorprettyfive,
+ prettyeight=colorprettyeight,
+ prettynine=colorprettynine]
+
+\definepalet
+ [graypretty]
+ [ prettyone=grayprettyone,
+ prettytwo=grayprettytwo,
+ prettythree=grayprettythree,
+ prettyfour=grayprettyfour,
+ prettyfourthree=grayprettyfourthree]
+
+\definepalet [Ccolorpretty] [colorpretty]
+\definepalet [Cgraypretty] [graypretty]
+
+\setuptyping
+ [C]
+ [\c!icommand=\tttf]
+
+\protect \endinput
+
diff --git a/Master/texmf-dist/tex/context/base/verb-ini.tex b/Master/texmf-dist/tex/context/base/verb-ini.tex
index c38c3f6f4cc..43b563a80cd 100644
--- a/Master/texmf-dist/tex/context/base/verb-ini.tex
+++ b/Master/texmf-dist/tex/context/base/verb-ini.tex
@@ -348,7 +348,7 @@
%D \type{\goodbreaks}. And this is how it's done:
\def\doverbatimnobreak
- {\ifoptimizeverbatim\penalty500\fi}
+ {\ifoptimizeverbatim\penalty500 \fi}
\def\doverbatimgoodbreak
{\ifoptimizeverbatim\penalty\linepenalty\fi}
@@ -374,14 +374,41 @@
{\global\let\savedverbatimline\empty
\global\chardef\verbatimstatus\ifskipfirstverbatimline0 \else1 \fi}
-\let\donextemptyverbatimline\relax
+% \let\donextemptyverbatimline\relax
+
+% \def\presetemptyverbatimline
+% {\ifcase\verbatimstatus
+% \global\chardef\verbatimstatus\plusone
+% \or
+% \or
+% \donextemptyverbatimline
+% \or
+% \doflushverbatimline
+% \global\let\savedverbatimline\empty
+% \doemptyverbatimline
+% \global\chardef\verbatimstatus\plustwo
+% \else
+% \kern\zeropoint
+% \doverbatimnobreak
+% \doflushverbatimline
+% \global\let\savedverbatimline\empty
+% \doemptyverbatimline
+% \global\chardef\verbatimstatus\plustwo
+% \fi}
+
+\chardef\verbatimemptylinemode\zerocount
\def\presetemptyverbatimline
{\ifcase\verbatimstatus
\global\chardef\verbatimstatus\plusone
\or
+ \ifcase\verbatimemptylinemode\or\or
+ \doemptyverbatimline
+ \fi
\or
- \donextemptyverbatimline
+ \ifcase\verbatimemptylinemode\else
+ \doemptyverbatimline
+ \fi
\or
\doflushverbatimline
\global\let\savedverbatimline\empty
@@ -417,13 +444,28 @@
\fi
\global\let\savedverbatimline\verbatimline}
+% \def\presetlastverbatimline
+% {\ifcase\verbatimstatus \or \or \or
+% \doflushverbatimline
+% \else
+% \kern\zeropoint
+% \doverbatimnobreak
+% \doflushverbatimline
+% \fi}
+
\def\presetlastverbatimline
- {\ifcase\verbatimstatus \or \or \or
+ {\ifcase \verbatimstatus
+ \or
+ \or
+ \or
\doflushverbatimline
\else
- \kern\zeropoint
+ \kern \zeropoint
\doverbatimnobreak
\doflushverbatimline
+ \fi
+ \ifcase\verbatimemptylinemode\or\else
+ \kern \zeropoint
\fi}
%D \macros
@@ -830,8 +872,14 @@
{\setbox0\hbox{\the\everyline}}%
\global\linepartrue}
-\def\obeyemptylines
- {\let\donextemptyverbatimline\doemptyverbatimline}
+% \def\obeyemptylines
+% {\let\donextemptyverbatimline\doemptyverbatimline}
+
+\def\obeyemptylines % tricky, only in verbatim (should be token list)!
+ {\chardef\verbatimemptylinemode\plusone}
+
+\def\obeyallemptylines % tricky, only in verbatim (should be token list)!
+ {\chardef\verbatimemptylinemode\plustwo}
%D \TEX\ does not offer \type{\everyline}, which is a direct
%D result of its advanced multi||pass paragraph typesetting
@@ -945,7 +993,7 @@
%
-\def\processverbatimline#1{#1} % remove the fake grouping
+\long\def\processverbatimline#1{#1} % remove the fake grouping
%D \macros
%D {processfileverbatim}
@@ -982,8 +1030,8 @@
\vskip\parskip
\fi
\parskip\zeropoint
- \uncatcodecharacters
\verbatimfont
+ \uncatcodecharacters
\setverbatimspaceskip
\frenchspacing
\obeyspaces
@@ -1097,12 +1145,17 @@
%D Just to keep things consistant and to speed up some macros a
%D but, we define a few private constants.
-\def\!!PRETTY {PRETTY}
+\def\!!PRETTY {PRETTY}
-\def\!!prettyone {prettyone}
-\def\!!prettytwo {prettytwo}
-\def\!!prettythree {prettythree}
-\def\!!prettyfour {prettyfour}
+\def\!!prettyone {prettyone}
+\def\!!prettytwo {prettytwo}
+\def\!!prettythree {prettythree}
+\def\!!prettyfour {prettyfour}
+\def\!!prettyfive {prettyfive}
+\def\!!prettynine {prettynine}
+\def\!!prettyeight {prettyeight}
+\def\!!prettytwoone {prettytwoone}
+\def\!!prettyfourthree {prettyfourthree}
%D The first step in defining a pretty interpreter is to assign
%D each character that needs special attention a number, like:
@@ -1992,8 +2045,42 @@
% \initializeverbatimline
% \copyverbatimline}
+% \def\doprocessdisplayverbatim#1#2%
+% {\par
+% \bgroup
+% \escapechar-1
+% \xdef\verbatimname{\string#2}%
+% \egroup
+% \ifcase#1%
+% \let\endofdisplayverbatim\relax
+% \else
+% \def\endofdisplayverbatim{\csname\verbatimname\endcsname}%
+% \fi
+% \bgroup
+% \parindent\zeropoint
+% \ifdim\lastskip<\parskip
+% \removelastskip
+% \vskip\parskip
+% \fi
+% \parskip\zeropoint
+% \processingverbatimtrue
+% \ifcase#1%
+% \convertargument#2\to\endofverbatimcommand
+% \else
+% \expandafter\let\csname\verbatimname\endcsname=\relax
+% \expandafter\convertargument\csname\verbatimname\endcsname
+% \to\endofverbatimcommand
+% \fi
+% \verbatimfont
+% \setverbatimspaceskip
+% \global\linepartrue % needed for paragraph numbering
+% \setupcopyverbatim
+% \initializeverbatimline
+% \copyverbatimline}
+
\def\doprocessdisplayverbatim#1#2%
{\par
+ \beginofverbatimlines
\bgroup
\escapechar-1
\xdef\verbatimname{\string#2}%
@@ -2001,7 +2088,7 @@
\ifcase#1%
\let\endofdisplayverbatim\relax
\else
- \def\endofdisplayverbatim{\csname\verbatimname\endcsname}%
+ \def\endofdisplayverbatim{\endofverbatimlines\csname\verbatimname\endcsname}%
\fi
\bgroup
\parindent\zeropoint
diff --git a/Master/texmf-dist/tex/context/base/x-chemml.xsd b/Master/texmf-dist/tex/context/base/x-chemml.xsd
new file mode 100644
index 00000000000..b511219115c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-chemml.xsd
@@ -0,0 +1,93 @@
+<?xml version="1.0"?>
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+<xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ <p>This schema covers (basic presentational) Chemical
+ markup. We will extend this schema with names and
+ predefined components.</p>
+ <p>author: Hans Hagen, copyright: PRAGMA-ADE / Hasselt NL</p>
+ </xsd:documentation>
+</xsd:annotation>
+
+<xsd:element type="chemType">
+ <xsd:sequence>
+ <xsd:element ref="chemicalComponentType" />
+ <xsd:choice>
+ <xsd:element ref="chemicalActionType" />
+ <xsd:element ref="chemicalBondType" />
+ </xsd:choice>
+ </xsd:sequence>
+</xsd:element>
+
+<xsd:element name="chem" type="chemType" />
+<xsd:element name="ichem" type="chemType" />
+<xsd:element name="dchem" type="chemType" />
+
+<xsd:element name="molecule">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:choice>
+ <xsd:element name="ion" />
+ <xsd:element name="atom" />
+ </xsd:choice>
+ <xsd:element name="caption" type="chemicalCaptionType" />
+ </xsd:sequence>
+ <xsd:attribute name="n" type="xsd:positiveInteger" />
+ </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="ion">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="atom" />
+ </xsd:sequence>
+ <xsd:attribute name="n" type="xsd:positiveInteger" />
+ <xsd:attribute name="charge" type="xsd:integer" />
+ </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="atom" type="xsd:string">
+ <xsd:complexType>
+ <xsd:attribute name="n" type="xsd:positiveInteger"/>
+ <xsd:attribute name="charge" type="xsd:integer" />
+ <xsd:attribute name="protons" type="xsd:positiveInteger" />
+ <xsd:attribute name="weight" type="xsd:positiveInteger" />
+ </xsd:complexType>
+</xsd:element>
+
+<xsd:complexType name="chemicalActionType">
+ <xsd:choice>
+ <xsd:element name="plus" type="chemicalCaptionType" />
+ <xsd:element name="minus" type="chemicalCaptionType" />
+ <xsd:element name="equal" type="chemicalCaptionType" />
+ <xsd:element name="gives" type="chemicalCaptionType" />
+ <xsd:element name="equilibrium" type="chemicalCaptionType" />
+ <xsd:element name="mesomeric" type="chemicalCaptionType" />
+ </xsd:choice>
+</xsd:complexType>
+
+<xsd:complexType name="chemicalBondType">
+ <xsd:choice>
+ <xsd:element name="singlebond" />
+ <xsd:element name="doublebond" />
+ <xsd:element name="triplebond" />
+ </xsd:choice>
+</xsd:complexType>
+
+<xsd:complexType name="chemicalComponentType">
+ <xsd:choice>
+ <xsd:element ref="molecule" />
+ <xsd:element ref="ion" />
+ <xsd:element ref="atom" />
+ </xsd:choice>
+</xsd:complexType>
+
+<xsd:complexType name="chemicalCaptionType" minOccurs="0" maxOccurs="2">
+ <xsd:sequence>
+ <xsd:element name="caption" type="xsd:string" minOccurs="0" maxOccurs="2" />
+ </xsd:sequence>
+</xsd:complexType>
+
+</xsd:schema>
diff --git a/Master/texmf-dist/tex/context/base/x-contml.tex b/Master/texmf-dist/tex/context/base/x-contml.tex
index 9f3fe6fd2a9..e1dda06c1ec 100644
--- a/Master/texmf-dist/tex/context/base/x-contml.tex
+++ b/Master/texmf-dist/tex/context/base/x-contml.tex
@@ -42,9 +42,18 @@
{\doifsomethingXMLop{name}
{\processaction
[\XMLop{type}]
- [xml=>\readfile{\XMLop{name}}\donothing,
+ [xml=>\readfile{\XMLop{name}}\donothing\donothing,
tex=>{{\disableXML\readfile{\XMLop{name}}\donothing\donothing}},
- txt=>{{\disableXML\typefile{\XMLop{name}}\donothing\donothing}}]}}
+ txt=>{{\disableXML\typefile{\XMLop{name}}}}]}}
+
+% or, nicer:
+%
+% \defineXMLsingular [context:include] [name=unknown,type=txt]
+% {\XMLval{include:type}{\XMLop{type}}{}}
+%
+% \mapXMLvalue {include:type} {xml} {\readfile{\XMLop{name}}\donothing\donothing}
+% \mapXMLvalue {include:type} {tex} {{\disableXML\readfile{\XMLop{name}}\donothing\donothing}}
+% \mapXMLvalue {include:type} {txt} {{\disableXML\typefile{\XMLop{name}}}}
%D \elements {compound}
%D
diff --git a/Master/texmf-dist/tex/context/base/x-contml.xsd b/Master/texmf-dist/tex/context/base/x-contml.xsd
new file mode 100644
index 00000000000..3b71e31e850
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-contml.xsd
@@ -0,0 +1,375 @@
+<?xml version="1.0"?>
+
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+
+<xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ This schema describes a class of presentations. The structure is
+ (normally) reflected in the design.
+
+ author: Hans Hagen, copyright: PRAGMA-ADE / Hasselt NL
+ </xsd:documentation>
+</xsd:annotation>
+
+
+<?context-block begin definitions ?>
+
+ <xsd:complexType name="filename.value">
+ <xsd:restriction base="xsd:string">
+ <xsd:pattern value='[a-zA-Z0-9\-\:\.]*' />
+ </xsd:restriction>
+ </xsd:complexType>
+
+ <xsd:complexType name="filetype.value">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="tex" />
+ <xsd:enumeration value="xml" />
+ <xsd:enumeration value="txt" />
+ </xsd:restriction>
+ </xsd:complexType>
+
+ <xsd:complexType name="confirmation.value">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="yes" />
+ <xsd:enumeration value="no" />
+ </xsd:restriction>
+ </xsd:complexType>
+
+ <xsd:complexType name="conversion.value">
+ <xsd:restriction base="xsd:string">
+ <xsd:pattern value='(a|A|n|g|G|r|R|1|2|3|4)' />
+ </xsd:restriction>
+ </xsd:complexType>
+
+ <xsd:complexType name="reference.label.value">
+ <xsd:restriction base="xsd:string">
+ <xsd:pattern value='([a-zA-Z0-9\-\:]*' />
+ </xsd:restriction>
+ </xsd:complexType>
+
+<?context-block end definitions ?>
+
+
+<?context-block begin text ?>
+
+ <xsd:element name="presentation" mixed="true" />
+
+<?context-block end text ?>
+
+
+<?context-block begin p ?>
+
+ <xsd:element name="p" mixed="true" />
+
+<?context-block end p ?>
+
+
+<?context-block begin hide ?>
+
+ <xsd:element name="hide" mixed="true" />
+
+<?context-block end hide ?>
+
+
+<?context-block begin em ?>
+
+ <xsd:element name="em" mixed="true" />
+
+<?context-block end em ?>
+
+
+<?context-block begin b ?>
+
+ <xsd:element name="b" mixed="true" />
+
+<?context-block end b ?>
+
+
+<?context-block begin quote ?>
+
+ <xsd:element name="quote" mixed="true" />
+ <xsd:element name="quotation" mixed="true" />
+
+<?context-block end quote ?>
+
+
+<?context-block begin include ?>
+
+ <xsd:attributeGroup name="include.attributes">
+ <xsd:attribute name="file" type="filename.value" use="required" />
+ <xsd:attribute name="type" type="filetype.value" />
+ </xsd:attributeGroup>
+
+ <xsd:complexType type="include.type">
+ <xsd:attributeGroup ref="include.attributes" />
+ </xsd:complexType>
+
+ <xsd:element name="include" type="include.type" />
+
+<?context-block end include ?>
+
+
+<?context-block begin compound ?>
+
+ <xsd:attributeGroup name="compound.attributes">
+ <xsd:attribute name="token" type="xsd:string" />
+ </xsd:attributeGroup>
+
+ <xsd:complexType type="compound.type">
+ <xsd:attributeGroup ref="compound.attributes" />
+ </xsd:complexType>
+
+ <xsd:element name="compound" type="compound.type" />
+
+<?context-block end compound ?>
+
+
+<?context-block begin references ?>
+
+ <xsd:attributeGroup name="reference.attributes">
+ <xsd:attribute name="label" type="reference.label.value" />
+ </xsd:attributeGroup>
+
+ <xsd:complexType type="reference.type">
+ <xsd:attributeGroup ref="reference.attributes" />
+ </xsd:complexType>
+
+ <xsd:element name="lineref" type="reference.type" />
+ <xsd:element name="pageref" type="reference.type" />
+ <xsd:element name="textref" type="reference.type" />
+
+<?context-block end references ?>
+
+
+<?context-block begin unknown ?>
+
+ <xsd:element name="unknown"/>
+
+<?context-block end unknown ?>
+
+
+<?context-block begin verbatim ?> <!-- string or anyType -->
+
+ <xsd:complexType name="verbatim.verbatim">
+ <xsd:sequence maxOccurs="unbounded" >
+ <xsd:element name="line" type="xsd:string" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:element name="verbatim" type="verbatim.verbatim" />
+ <xsd:element name="typing" type="verbatim.verbatim" />
+
+ <xsd:element name="verb" type="xsd:string" />
+ <xsd:element name="type" type="xsd:string" />
+
+<?context-block end verbatim ?>
+
+
+<?context-block begin itemize ?>
+
+ <xsd:attributeGroup name="itemize.attributes">
+ <xsd:attribute name="type" type="conversion.value" />
+ <xsd:attribute name="packed" type="confirmation.value" />
+ <xsd:attribute name="label" type="reference.label.value" />
+ </xsd:attributeGroup>
+
+ <xsd:attributeGroup name="item.attributes">
+ <xsd:attribute name="label" type="reference.label.value" />
+ </xsd:attributeGroup>
+
+ <xsd:complexType name="item.type" mixed="true">
+ <xsd:attributeGroup ref="item.attributes" />
+ </xsd:complexType>
+
+ <xsd:complexType name="itemize.type">
+ <xsd:sequence minOccurs="1" maxOccurs="unbounded">
+ <xml:element name="item" type="item.type" />
+ </xsd:sequence>
+ <xsd:attributeGroup ref="itemize.attributes" />
+ </xsd:complexType>
+
+ <xsd:element name="itemize" type="itemize.type" />
+
+<?context-block end itemize ?>
+
+
+<?context-block begin fixed ?>
+
+ <xsd:complexType name="fixed.type.value">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="figure" />
+ <xsd:enumeration value="table" />
+ </xsd:restriction>
+ </xsd:complexType>
+
+ <xsd:complexType name="fixed.location.value">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="high" />
+ <xsd:enumeration value="low" />
+ <xsd:enumeration value="lohi" />
+ </xsd:restriction>
+ </xsd:complexType>
+
+ <xsd:attributeGroup name="fixed.attributes">
+ <xsd:attribute name="type" type="fixed.type.value" />
+ <xsd:attribute name="location" type="fixed.location.value" />
+ <xsd:attribute name="label" type="reference.label.value" />
+ </xsd:attributeGroup>
+
+ <xsd:complexType name="fixed.type">
+ <xsd:all>
+ <xsd:element name="caption" mixed="true" />
+ <xsd:element name="content" mixed="true" />
+ </xsd:all>
+ <xsd:attributeGroup ref="fixed.attributes" />
+ </xsd:complexType>
+
+ <xsd:element name="fixed" type="fixed.type" />
+
+<?context-block end fixed ?>
+
+
+<?context-block begin float ?>
+
+ <xsd:complexType name="float.type.value">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="figure" />
+ <xsd:enumeration value="table" />
+ </xsd:restriction>
+ </xsd:complexType>
+
+ <xsd:complexType name="float.location.value">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="high" />
+ <xsd:enumeration value="low" />
+ <xsd:enumeration value="lohi" />
+ </xsd:restriction>
+ </xsd:complexType>
+
+ <xsd:attributeGroup name="float.attributes">
+ <xsd:attribute name="type" type="float.type.value" />
+ <xsd:attribute name="location" type="float.location.value" />
+ <xsd:attribute name="label" type="reference.label.value" />
+ </xsd:attributeGroup>
+
+ <xsd:complexType name="float.type">
+ <xsd:all>
+ <xsd:element name="caption" mixed="true" />
+ <xsd:element name="content" mixed="true" />
+ </xsd:all>
+ <xsd:attributeGroup ref="float.attributes" />
+ </xsd:complexType>
+
+ <xsd:element name="float" type="float.type" />
+
+<?context-block end float ?>
+
+
+<?context-block begin externalfigure ?>
+
+ <xsd:attributeGroup name="externalfigure.attributes">
+ <xsd:extension base="context.kernel.externalfigure.attributes">
+ <xsd:attribute name="base" type="filename.value"/>
+ <xsd:attribute name="file" type="filename.value"/>
+ <xsd:attribute name="label" type="reference.label.value"/>
+ </xsd:extension>
+ </xsd:attributeGroup>
+
+ <xsd:complexType name="externalfigure.type">
+ <xsd:attributeGroup ref="externalfigure.attributes" />
+ </xsd:complexType>
+
+ <xsd:element name="externalfigure" type="externalfigure.type" />
+
+<?context-block end externalfigure ?>
+
+
+<?context-block begin table ?>
+
+ <xsd:attributeGroup name="table.attributes">
+ <!-- these elements inherit ConTeXt TABLE parameters -->
+ <xsd:extension base="context.kernel.table.attributes" />
+ </xsd:attributeGroup>
+
+ <xsd:complexType name="table.td.type" mixed="true">
+ <xsd:attributeGroup name="table.attributes" />
+ </xsd:complexType>
+
+ <xsd:complexType name="table.tr.type">
+ <xsd:sequence maxOccurs="unbounded">
+ <xsd:element name="td" type="table.td.type" />
+ </xsd:sequence>
+ <xsd:attributeGroup name="table.attributes" />
+ </xsd:complexType>
+
+ <xsd:complexType name="table.type">
+ <xsd:sequence maxOccurs="unbounded">
+ <xsd:element name="tr" type="table.tr.type" />
+ </xsd:sequence>
+ <xsd:attributeGroup name="table.attributes" />
+ </xsd:complexType>
+
+ <xsd:element name="table" type="table.type" />
+
+<?context-block end table ?>
+
+
+<?context-block begin tabulate ?>
+
+ <xsd:complexType name="tabulate.td.type" mixed="true">
+ </xsd:complexType>
+
+ <xsd:complexType name="tabulate.tr.type">
+ <xsd:sequence maxOccurs="unbounded">
+ <xsd:element name="td" type="tabulate.td.type" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="tabulate.base.type">
+ <xsd:sequence maxOccurs="unbounded">
+ <xsd:element name="tr" type="tabulate.tr.type" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="tabulate.align.value">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="high" />
+ <xsd:enumeration value="low" />
+ <xsd:enumeration value="lohi" />
+ </xsd:restriction>
+ </xsd:complexType>
+
+ <xsd:attributeGroup name="tabulate.tcell.attributes">
+ <xsd:attribute name="align" type="tabulate.align.value" />
+ </xsd:attributeGroup>
+
+ <xsd:complexType name="tabulate.tcell.type" mixed="true">
+ <xsd:attributeGroup ref="tabulate.tcell.attributes" />
+ </xsd:complexType>
+
+ <xsd:complexType name="tabulate.tcell.type">
+ </xsd:complexType>
+
+ <xsd:complexType name="tabulate.tcells.type">
+ <xsd:sequence maxOccurs="unbounded">
+ <xsd:element name="tcell" type="tabulate.tcell.type" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="tabulate.type">
+ <xsd:sequence>
+ <xsd:element name="tcells" type="tabulate.tcells.type" />
+ <xsd:element name="thead" type="tabulate.base.type" minOccurs="0" maxOccurs="1" />
+ <xsd:element name="ttail" type="tabulate.base.type" minOccurs="0" maxOccurs="1" />
+ <xsd:element name="tbody" type="tabulate.base.type" minOccurs="1" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:element name="tabulate" type="tabulate.type" />
+
+<?context-block end tabulate ?>
+
+
+</xsd:schema>
diff --git a/Master/texmf-dist/tex/context/base/x-corres.rng b/Master/texmf-dist/tex/context/base/x-corres.rng
new file mode 100644
index 00000000000..09de5d26718
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-corres.rng
@@ -0,0 +1,170 @@
+<?xml version="1.0" ?>
+
+<?context-block begin grammar ?>
+
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+
+ <?context-block end grammar ?>
+
+ <?context-block begin contacts ?>
+
+ <start>
+ <ref name="contacts"/>
+ </start>
+
+ <define name="contacts">
+ <element name="contacts">
+ <zeroOrMore>
+ <choice>
+ <ref name="contacts.contact"/>
+ <ref name="contacts.contactgroup"/>
+ <ref name="contacts.contactfile"/>
+ </choice>
+ </zeroOrMore>
+ </element>
+ </define>
+
+ <?context-block end contacts ?>
+
+ <?context-block begin contact ?>
+
+ <define name="contacts.contact">
+ <element name="contact">
+ <interleave>
+ <optional> <ref name="contact.initials"/> </optional>
+ <optional> <ref name="contact.formalname"/> </optional>
+ <optional> <ref name="contact.informalname"/> </optional>
+ <optional> <ref name="contact.title"/> </optional>
+ <optional> <ref name="contact.prefix"/> </optional>
+ <optional> <ref name="contact.suffix"/> </optional>
+ <optional> <ref name="contact.telephone"/> </optional>
+ <optional> <ref name="contact.mobiletelephone"/> </optional>
+ <optional> <ref name="contact.telefax"/> </optional>
+ <optional> <ref name="contact.email"/> </optional>
+ <optional> <ref name="contact.address"/> </optional>
+ <optional> <ref name="contact.information"/> </optional>
+ </interleave>
+ <attribute name="label"/>
+ </element>
+ </define>
+
+ <?context-block end contact ?>
+
+ <?context-block begin fields ?>
+
+ <define name="contact.initials">
+ <element name="initials">
+ <text/>
+ </element>
+ </define>
+
+ <define name="contact.formalname">
+ <element name="formalname">
+ <text/>
+ </element>
+ </define>
+
+ <define name="contact.informalname">
+ <element name="informalname">
+ <text/>
+ </element>
+ </define>
+
+ <define name="contact.title">
+ <element name="title">
+ <text/>
+ </element>
+ </define>
+
+ <define name="contact.prefix">
+ <element name="prefix">
+ <text/>
+ </element>
+ </define>
+
+ <define name="contact.suffix">
+ <element name="suffix">
+ <text/>
+ </element>
+ </define>
+
+ <define name="contact.telephone">
+ <element name="telephone">
+ <text/>
+ </element>
+ </define>
+
+ <define name="contact.mobiletelephone">
+ <element name="mobiletelephone">
+ <text/>
+ </element>
+ </define>
+
+ <define name="contact.telefax">
+ <element name="telefax">
+ <text/>
+ </element>
+ </define>
+
+ <define name="contact.email">
+ <element name="email">
+ <text/>
+ </element>
+ </define>
+
+ <define name="contact.address">
+ <element name="address">
+ <zeroOrMore>
+ <ref name="contact.address.p"/>
+ </zeroOrMore>
+ </element>
+ </define>
+
+ <define name="contact.information">
+ <element name="information">
+ <text/>
+ </element>
+ </define>
+
+ <define name="contact.address.p">
+ <element name="p">
+ <text/>
+ </element>
+ </define>
+
+ <?context-block end fields ?>
+
+ <?context-block begin contactgroup ?>
+
+ <define name="contacts.contactgroup">
+ <element name="contactgroup">
+ <zeroOrMore>
+ <ref name="contactgroup.member"/>
+ </zeroOrMore>
+ <attribute name="label"/>
+ </element>
+ </define>
+
+ <define name="contactgroup.member">
+ <element name="member">
+ <text/>
+ </element>
+ </define>
+
+ <?context-block end contactgroup ?>
+
+ <?context-block begin contactfile ?>
+
+ <define name="contacts.contactfile">
+ <element name="contactfile">
+ <text/>
+ </element>
+ </define>
+
+ <?context-block end contactfile ?>
+
+ <?context-block begin grammar ?>
+
+</grammar>
+
+<?context-block end grammar ?> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/x-fe.tex b/Master/texmf-dist/tex/context/base/x-fe.tex
index 6e24417ac44..8562b1d5296 100644
--- a/Master/texmf-dist/tex/context/base/x-fe.tex
+++ b/Master/texmf-dist/tex/context/base/x-fe.tex
@@ -104,7 +104,7 @@
\defineXMLargument
[fe:trace]
[attribute=,option=]
- {\showXMLinh{\XMLop{attribute}}%
+ {\showXMLinh[\XMLop{attribute}]%
\XMLval{fe:trace}{\XMLop{option}}{}}
\mapXMLvalue
diff --git a/Master/texmf-dist/tex/context/base/x-fig-00.dtd b/Master/texmf-dist/tex/context/base/x-fig-00.dtd
new file mode 100644
index 00000000000..34b4d0bef9b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-fig-00.dtd
@@ -0,0 +1,24 @@
+<!-- author : Taco Hoekwater / Hans Hagen
+ info : x-fig-00.tex / x-fig-01.tex
+ usage : <!DOCTYPE figurelibrary SYSTEM "x-fig-00.dtd">
+ -->
+
+<!ELEMENT figurelibrary (description?,figure*)>
+
+<!ATTLIST figurelibrary language CDATA #IMPLIED>
+<!ATTLIST dummy width CDATA #IMPLIED>
+<!ATTLIST dummy height CDATA #IMPLIED>
+
+<!ELEMENT description (organization?,project?,product?,comment?)>
+<!ELEMENT organization (#PCDATA)>
+<!ELEMENT project (#PCDATA)>
+<!ELEMENT product (#PCDATA)>
+
+<!ELEMENT figure (label,file?,dummy?,copyright?,comment?,status?)>
+<!ELEMENT dummy (#PCDATA)>
+<!ELEMENT file (#PCDATA)>
+<!ELEMENT label (#PCDATA)>
+<!ELEMENT copyright (#PCDATA)>
+<!ELEMENT status (#PCDATA)>
+
+<!ELEMENT comment (#PCDATA)>
diff --git a/Master/texmf-dist/tex/context/base/x-fig-00.xsd b/Master/texmf-dist/tex/context/base/x-fig-00.xsd
new file mode 100644
index 00000000000..615841a1e6c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-fig-00.xsd
@@ -0,0 +1,77 @@
+<?xml version="1.0"?>
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+<xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ <p>This schema described the figure database. This base
+ can be used to collect graphics that later can be used
+ in applications like ConTeXt.</p>
+ <p>author: Tobias Burnus &amp; Hans Hagen, copyright:
+ PRAGMA-ADE / Hasselt NL</p>
+ </xsd:documentation>
+</xsd:annotation>
+
+<xsd:element name="figurelibrary" type="figureLibraryType" />
+
+<xsd:element name="comment" type="nonZeroString" />
+
+<xsd:complexType name="figureLibraryType">
+ <xsd:sequence>
+ <xsd:element name="description" type="descriptionType" />
+ <xsd:element name="figure" type="figureType"
+ minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ <xsd:attribute name="language" type="xsd:language" />
+</xsd:complexType>
+
+<xsd:complexType name="descriptionType">
+ <xsd:sequence>
+ <xsd:element name="organization" type="nonZeroString" />
+ <xsd:element name="project" type="nonZeroString" />
+ <xsd:element name="product" type="nonZeroString" />
+ <xsd:element ref="comment" minOccurs="0" />
+ </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="figureType">
+ <xsd:sequence>
+ <xsd:choice>
+ <xsd:element name="file" type="NZNormalizedString" />
+ <xsd:element name="dummy" type="dummyType" />
+ </xsd:choice>
+ <xsd:element name="label" type="NZNormalizedString" />
+ <xsd:element name="copyright" type="nonZeroString" />
+ <xsd:element ref="comment" minOccurs="0" />
+ </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="dummyType">
+ <xsd:simpleContent>
+ <xsd:extension base="nonZeroString">
+ <xsd:attribute name="width" type="TeXUnit" use="required" />
+ <xsd:attribute name="height" type="TeXUnit" use="required" />
+ </xsd:extension>
+ </xsd:simpleContent>
+</xsd:complexType>
+
+<xsd:simpleType name="nonZeroString">
+ <xsd:restriction base="xsd:string">
+ <xsd:minLength value="1" />
+ </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="NZNormalizedString">
+ <xsd:restriction base="xsd:normalizedString">
+ <xsd:minLength value="1" />
+ </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TeXUnit">
+ <xsd:restriction base="xsd:string">
+ <xsd:pattern
+ value='[0-9]*(,|\.|[0-9])?[0-9]*(cm|mm|in|pt|pc|em|ex|bp|dd|cc|sp)' />
+ </xsd:restriction>
+</xsd:simpleType>
+
+</xsd:schema>
diff --git a/Master/texmf-dist/tex/context/base/x-fig-01.tex b/Master/texmf-dist/tex/context/base/x-fig-01.tex
index 5d6c0fa3f32..e74cfc483de 100644
--- a/Master/texmf-dist/tex/context/base/x-fig-01.tex
+++ b/Master/texmf-dist/tex/context/base/x-fig-01.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-% \readfile {x-res-01} \donothing \donothing \endinput
+% \readfile {x-res-01} \donothing \donothing \endinput
%D See \type {x-fig-00.tex} for more information on how to use
%D and generate figure databases. This file loads the file
@@ -58,6 +58,9 @@
\doifnothing {\jobfilename} {\end}
\doiffileelse {\jobfilename.xml} {} {\end}
+\definesymbol [attachment] [{\bf\color[darkred]{\jobname.xml}}]
+\setupattachments [symbol=attachment]
+\useattachment [datafile] [\jobname.xml]
\def\StartDescription
{\bgroup
@@ -77,6 +80,7 @@
{\NC product \NC \XMLpop{product} \NC \NR}{}
\doifXMLdataelse{comment}
{\NC comment \NC \XMLpop{comment} \NC \NR}{}
+ \NC specification \NC \attachment[datafile] \NC \NR
\stoptabulate
\blank[2*big]
\egroup}
@@ -335,7 +339,7 @@
\def\StartLibrary{\mainlanguage[\XMLpar{figurelibrary}{language}{en}]}
\def\StopLibrary {}
-\defineXMLignore [description]
+\defineXMLignore [description]
\defineXMLenvironment [figure] \StartFigureC \StopFigureC
\doglobal\newcounter\CurrentPage
diff --git a/Master/texmf-dist/tex/context/base/x-mathml.xsd b/Master/texmf-dist/tex/context/base/x-mathml.xsd
new file mode 100644
index 00000000000..17f0bea2aa4
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-mathml.xsd
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xds="http://www.w3.org/?">
+
+<xsd:schema>
+
+<xsd:element name="imath" type="mathml:math" />
+<xsd:element name="dmath" type="mathml:math" />
+
+</xsd:schema>
diff --git a/Master/texmf-dist/tex/context/base/x-newcml.tex b/Master/texmf-dist/tex/context/base/x-newcml.tex
new file mode 100644
index 00000000000..b1928cce905
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-newcml.tex
@@ -0,0 +1,454 @@
+%D \module
+%D [ file=x-newmml,
+%D version=2006.04.09, % reimplementation
+%D title=\CONTEXT\ XML Modules,
+%D subtitle=ChemML 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 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)}
+
+\unprotect
+
+\def\setupCMLappearance[#1]{\dodoubleargument\getparameters[@@CML#1]}
+
+\defineXMLdirective [chemml] \setupCMLappearance
+
+\defineXMLargument [chem] \automathematics % \rm
+\defineXMLargument [ichem] \inlinemathematics % \rm
+\defineXMLargument [dchem] \displaymathematics % \rm
+
+\def\doifnotXMLparzero#1#2#3%
+ {\ifcase\XMLpar{#1}{#2}{0}\else#3{\XMLpar{#1}{#2}{0}}\fi}
+
+\defineXMLargument [caption] \doCMLcaption
+
+\let\CMLtopcaption\empty
+\let\CMLbotcaption\empty
+
+\chardef\CMLcaptionmode\plusone
+
+\def\doCMLcaption#1%
+ {\ifcase\CMLcaptionmode
+ % can't happen
+ \or
+ \def\CMLbotcaption{#1}%
+ \chardef\CMLcaptionmode\plustwo
+ \or
+ \def\CMLtopcaption{#1}%
+ \chardef\CMLcaptionmode\plusthree
+ \fi}
+
+\def\resetCMLcaption
+ {\let\CMLtopcaption\empty
+ \let\CMLbotcaption\empty
+ \chardef\CMLcaptionmode\plusone}
+
+\resetCMLcaption
+
+\def\doCMLtext#1%
+ {\ifx\CMLtopcaption\empty
+ \setbox0\null
+ \else
+ \setbox0\hbox{\txx\setstrut\strut\ignorespaces\CMLtopcaption\unskip}%
+ \fi
+ \setbox2\hbox{\ignorespaces\strut#1\unskip}%
+ \ifx\CMLbotcaption\empty
+ \setbox4\null
+ \else
+ \setbox4\hbox{\txx\setstrut\strut\ignorespaces\CMLbotcaption\unskip}%
+ \fi
+ \scratchdimen=\wd2\advance\scratchdimen-.5em
+ \ifdim\wd0>\scratchdimen
+ \setbox0\hbox spread .5em{\hss\box0\hss}%
+ \fi
+ \ifdim\wd4>\scratchdimen
+ \setbox4\hbox spread .5em{\hss\box4\hss}%
+ \fi
+ \setbox6=\vbox
+ {\offinterlineskip\halign{\hss##\hss\cr\copy0\cr\copy2\cr\copy4\cr}}%
+ \hbox{\lower\ht4\hbox{\lower\dp2\box6}}}
+
+\def\CMLscript#1%
+ {$\scriptscriptstyle\ignorespaces#1\unskip$}
+
+% \startsetups cml:flush:all
+% \ignorespaces
+% \XMLallnamed{atom,bond,singlebond,doublebond,triplebond}
+% \removeunwantedspaces
+% \stopsetups
+
+\newcounter\currentCMLatom
+\newcounter\nofCMLatoms
+
+\defineXMLenvironmentsave
+ [atom]
+ [n=0,weight=0,protons=0,charge=0]
+ {\directsetup{cml:atom:start}}
+ {\directsetup{cml:atom:stop}}
+
+\startsetups cml:atom:start
+ \removeunwantedspaces
+\stopsetups
+
+\startsetups cml:atom:stop
+ \increment\currentCMLatom
+ \resetCMLcaption
+ \doCMLtext {
+ \bgroup
+ \lohi {
+ \doifnotXMLparzero{atom}{protons}\CMLscript
+ } {
+ \doifnotXMLparzero{atom}{weight}\CMLscript
+ }
+ \ignorespaces
+ \XMLflush{atom}
+ \removeunwantedspaces
+ \lohi {
+ \doifnotXMLparzero{atom}{n}\CMLscript
+ } {
+ \ifnum\nofCMLatoms=\currentCMLatom\relax
+ \doifnotXMLparzero{ion}{charge}\CMLscript
+ \else
+ \doifnotXMLparzero{atom}{charge}\CMLscript
+ \fi
+ }
+ \egroup
+ }
+ \ignorespaces
+\stopsetups
+
+\defineXMLnested % why not environment
+ [molecule]
+ [n=0]
+ {\directsetup{cml:molecule:start}}
+ {\directsetup{cml:molecule:stop}}
+
+\startsetups cml:molecule:start
+ \removeunwantedspaces
+ \begingroup
+ \startsavingXMLelements
+ \ignorespaces
+\stopsetups
+
+\startsetups cml:molecule:stop
+ \removeunwantedspaces
+ \stopsavingXMLelements
+ \resetCMLcaption
+ \XMLfirstnamed{caption}
+ \doCMLtext {
+ \newcounter\currentCMLatom
+ \newcounter\nofCMLatoms
+ \doifnotXMLparzero{molecule}{n}\firstofoneargument
+ \ignorespaces
+ \XMLallnamed{atom,ion,bond,singlebond,doublebond,triplebond}
+ \removeunwantedspaces
+ }
+ \endgroup
+ \ignorespaces
+\stopsetups
+
+\setupCMLappearance [ion] [\c!alternative=\v!a]
+
+\defineXMLnested
+ [ion]
+ [n=0,charge=0]
+ {\directsetup{cml:ion:start}}
+ {\directsetup{cml:ion:stop}}
+
+\startsetups cml:ion:start
+ \begingroup
+ \startsavingXMLelements
+\ignorespaces
+\stopsetups
+
+\startsetups cml:ion:stop
+\removeunwantedspaces
+ \stopsavingXMLelements
+ \resetCMLcaption
+ \XMLfirstnamed{caption}
+ \doCMLtext {
+ \newcounter\currentCMLatom
+ \newcounter\nofCMLatoms
+ \doifnotXMLparzero{ion}{n}\firstofoneargument
+ \doifelse\@@CMLionalternative\v!b {
+ [\ignorespaces
+ \XMLallnamed{atom,bond,singlebond,doublebond,triplebond}
+ \removeunwantedspaces]
+ \high {
+ \doifnotXMLparzero{ion}{charge}\CMLscript
+ }
+ } {
+ \countXMLnamedstack{atom}
+ \edef\nofCMLatoms{\the\scratchcounter}% todo: \nofXMLchildren
+ \ignorespaces
+ \XMLallnamed{atom,bond,singlebond,doublebond,triplebond}
+ \removeunwantedspaces
+ }
+ }
+ \endgroup
+ \ignorespaces
+\stopsetups
+
+\let\doCMLsymbol\gobbleoneargument
+\let\doCMLarrow \gobblethreearguments
+
+\defineXMLenvironment
+ [reaction]
+ {\directsetup{cml:reaction:start}}
+ {\directsetup{cml:reaction:stop}}
+
+\startsetups cml:reaction:start
+ \begingroup
+ \let\doCMLsymbol\dodoCMLsymbol
+ \let\doCMLarrow \dodoCMLarrow
+\stopsetups
+
+\startsetups cml:reaction:stop
+ \endgroup
+\stopsetups
+
+\defineXMLcommand [plus] {\doCMLsymbol{+}}
+\defineXMLcommand [minus] {\doCMLsymbol{-}}
+\defineXMLcommand [equal] {\doCMLsymbol{=}}
+
+\def\dodoCMLsymbol#1%
+ {\removeunwantedspaces\quad
+ \mathop{#1}%
+ \quad\kern\zeropoint\ignorespaces}
+
+\defineXMLcommand [gives] {\resetCMLcaption\doCMLgives}
+\defineXMLcommand [equilibrium] {\resetCMLcaption\doCMLequilibrium}
+\defineXMLcommand [mesomeric] {\resetCMLcaption\doCMLmesomeric}
+
+\def\dodoCMLarrow#1%
+ {\removeunwantedspaces\quad
+ \doCMLtext{$\vcenter{\offinterlineskip\halign{##\cr\hskip3em\cr#1\cr}}$}%
+ \quad\kern\zeropoint\ignorespaces}
+
+\def\doCMLgives
+ {\doCMLarrow{\rightarrowfill}}
+
+\def\doCMLequilibrium
+ {\doCMLarrow{\rightarrowfill\cr\noalign{\nointerlineskip}\leftarrowfill}}
+
+\def\doCMLmesomeric
+ {\doCMLarrow{$\leftarrow\hskip-1em$\rightarrowfill}}
+
+\defineXMLcommand [bond] [n=1] \doCMLbond
+\defineXMLcommand [singlebond] [n=1] \doCMLsinglebond
+\defineXMLcommand [doublebond] [n=1] \doCMLdoublebond
+\defineXMLcommand [triplebond] [n=1] \doCMLtriplebond
+
+\def\doCMLbond
+ {\ifcase\XMLop{n}\relax
+ \doCMLsinglebond
+ \or
+ \doCMLdoublebond
+ \or
+ \doCMLtriplebond
+ \fi}
+
+\def\doCMLbond
+ {\removeunwantedspaces
+ \hrule \!!width \hsize \!!height .1ex\relax % .4pt
+ \ignorespaces}
+
+\def\dodoCMLbond#1#2#3%
+ {\removeunwantedspaces
+ \begingroup
+ \setbox\scratchbox\hbox{$M$}%
+ \vbox to \ht\scratchbox
+ {\hsize\wd\scratchbox
+ \vskip.1\wd\scratchbox
+ #1\vfill#2\vfill#3%
+ \vskip.1\wd\scratchbox}%
+ \endgroup
+ \ignorespaces}
+
+\def\doCMLsinglebond{\dodoCMLbond\relax \doCMLbond\relax }
+\def\doCMLdoublebond{\dodoCMLbond\doCMLbond\relax \doCMLbond}
+\def\doCMLtriplebond{\dodoCMLbond\doCMLbond\doCMLbond\doCMLbond}
+
+% extensions (uses m-chemic, which thenneeds to be loaded)
+
+% <dchem>
+% <structure>
+% <component>
+% <graphic>SIX,B</graphic>
+% <graphic>R135</graphic>
+% </component>
+% <component>
+% <graphic>R246</graphic>
+% </component>
+% <component>
+% <graphic>RZ</graphic>
+% <text>A,B,C,D,E,F</text>
+% </component>
+% <component>
+% <graphic>Z</graphic>
+% <oxidation n="3">A</oxidation>
+% <annotation location="tl">
+% <text>B</text>
+% <caption>x</caption>
+% </annotation>
+% <oxidation n="3" sign="+">C</oxidation>
+% <text>D,E,F</text>
+% </component>
+% </structure>
+% <structure>
+% <component>
+% <graphic>SIX,B</graphic>
+% <graphic>r135</graphic>
+% </component>
+% <component>
+% <graphic>R246</graphic>
+% </component>
+% <component>
+% <graphic>RZ</graphic>
+% <text>A,B,C,D,E,F</text>
+% </component>
+% </structure>
+% </dchem>
+
+\ifx\XMLttoks \undefined \newtoks \XMLttoks \fi
+\ifx\XMLgtoks \undefined \newtoks \XMLgtoks \fi
+
+\ifx\startchemical\undefined
+ \def\startchemical {\hbox{module chemic is not loaded}}
+ \let\stopchemical \relax
+ \def\chemical[#1][#2]{}
+\fi
+
+\defineXMLenvironment
+ [structure]
+ {\startchemical
+ \ignorespaces}
+ {\removeunwantedspaces
+ \stopchemical}
+
+\defineXMLenvironment
+ [component]
+ {\global\XMLgtoks\emptytoks
+ \global\XMLttoks\emptytoks
+ \defineXMLargument[graphic]{\dogetCMLgraphic}%
+ \defineXMLargument[text] {\dogetCMLtext}%
+ \ignorespaces}
+ {\removeunwantedspaces
+ \expanded{\chemical[\the\XMLgtoks][\the\XMLttoks]}%
+ \ignorespaces}
+
+\def\dogetCMLgraphic#1%
+ {\doifelsenothing{\the\XMLgtoks}
+ {\uppercase{\doglobal\appendtoks #1\to\XMLgtoks}}
+ {\uppercase{\doglobal\appendtoks,#1\to\XMLgtoks}}%
+ \ignorespaces}
+
+\def\dogetCMLtext#1%
+ {\doifelsenothing{\the\XMLttoks}
+ {\uppercase{\doglobal\appendtoks #1\to\XMLttoks}}
+ {\uppercase{\doglobal\appendtoks,#1\to\XMLttoks}}%
+ \ignorespaces}
+
+\defineXMLargument
+ [oxidation]
+ [sign=,n=1]
+ {\doCMLoxidation}
+
+\def\doCMLoxidation#1%
+ {\expanded{\dogetCMLtext{\noexpand\chemicaloxidation{\XMLop{cml}}{\XMLop{n}}{#1}}}%
+ \ignorespaces}
+
+% \defineXMLenvironment
+% [annotation]
+% [location=]
+% {\defineXMLsave[text]%
+% \defineXMLsave[caption]}
+% {\removeunwantedspaces
+% \processaction
+% [\XMLpar{annotation}{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}
+
+% todo: generic mapper t -> top etc
+
+\mapXMLvalue {cml:a:l} {t} {\dodoCMLannotation\chemicaltop}
+\mapXMLvalue {cml:a:l} {b} {\dodoCMLannotation\chemicalbottom}
+\mapXMLvalue {cml:a:l} {l} {\dodoCMLannotation\chemicalleft}
+\mapXMLvalue {cml:a:l} {r} {\dodoCMLannotation\chemicalright}
+\mapXMLvalue {cml:a:l} {lc} {\dodoCMLannotation\chemicalleftcentered}
+\mapXMLvalue {cml:a:l} {rc} {\dodoCMLannotation\chemicalrightcentered}
+\mapXMLvalue {cml:a:l} {tl} {\dodoCMLannotation\chemicaltopleft}
+\mapXMLvalue {cml:a:l} {bl} {\dodoCMLannotation\chemicalbottomleft}
+\mapXMLvalue {cml:a:l} {tr} {\dodoCMLannotation\chemicaltopright}
+\mapXMLvalue {cml:a:l} {br} {\dodoCMLannotation\chemicalbottomright}
+\mapXMLvalue {cml:a:l} {lt} {\dodoCMLannotation\chemicallefttop}
+\mapXMLvalue {cml:a:l} {lb} {\dodoCMLannotation\chemicalleftbottom}
+\mapXMLvalue {cml:a:l} {rt} {\dodoCMLannotation\chemicalrighttop}
+\mapXMLvalue {cml:a:l} {rb} {\dodoCMLannotation\chemicalrightbottom}
+\mapXMLvalue {cml:a:l} {x} {\dodoCMLannotation\chemicaltighttext}
+\mapXMLvalue {cml:a:l} {sl} {\dodoCMLannotation\chemicalsmashedleft}
+\mapXMLvalue {cml:a:l} {sm} {\dodoCMLannotation\chemicalsmashedmiddle}
+\mapXMLvalue {cml:a:l} {sr} {\dodoCMLannotation\chemicalsmashedright}
+
+% \mapXMLvalue {cml:a:l} {cl} {\dodoCMLannotation\chemicalleftcentered}
+% \mapXMLvalue {cml:a:l} {cr} {\dodoCMLannotation\chemicalrightcentered}
+% \mapXMLvalue {cml:a:l} {lt} {\dodoCMLannotation\chemicaltopleft}
+% \mapXMLvalue {cml:a:l} {lb} {\dodoCMLannotation\chemicalbottomleft}
+% \mapXMLvalue {cml:a:l} {rt} {\dodoCMLannotation\chemicaltopright}
+% \mapXMLvalue {cml:a:l} {rb} {\dodoCMLannotation\chemicalbottomright}
+% \mapXMLvalue {cml:a:l} {tl} {\dodoCMLannotation\chemicallefttop}
+% \mapXMLvalue {cml:a:l} {bl} {\dodoCMLannotation\chemicalleftbottom}
+% \mapXMLvalue {cml:a:l} {tr} {\dodoCMLannotation\chemicalrighttop}
+% \mapXMLvalue {cml:a:l} {br} {\dodoCMLannotation\chemicalrightbottom}
+% \mapXMLvalue {cml:a:l} {ls} {\dodoCMLannotation\chemicalsmashedleft}
+% \mapXMLvalue {cml:a:l} {ms} {\dodoCMLannotation\chemicalsmashedmiddle}
+% \mapXMLvalue {cml:a:l} {rs} {\dodoCMLannotation\chemicalsmashedright}
+
+\defineXMLenvironment
+ [annotation]
+ [location=]
+ {\pushXMLmeaning{text}%
+ \pushXMLmeaning{caption}%
+ \defineXMLsave[text]%
+ \defineXMLsave[caption]}
+ {\removeunwantedspaces
+ \XMLval{cml:a:l}{\XMLpar{annotation}{location}{r}}{\XMLflush{text}}%
+ \popXMLmeaning{text}%
+ \popXMLmeaning{caption}%
+ \ignorespaces}
+
+\def\dodoCMLannotation#1%
+ {\expanded{\dogetCMLtext{\noexpand#1{\XMLflush{caption}}{\XMLflush{text}}}}}
+
+\defineXMLenvironment
+ [forever]
+ {\left[}
+ {\right]}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/x-newmme.tex b/Master/texmf-dist/tex/context/base/x-newmme.tex
new file mode 100644
index 00000000000..9763de11490
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-newmme.tex
@@ -0,0 +1,429 @@
+%D \module
+%D [ file=m-newmme,
+%D version=2005.06.10, % 1999.12.20,
+%D title=\CONTEXT\ XML Modules,
+%D subtitle=MathML Entities,
+%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 XML Macros (MathML Entities)}
+
+\unprotect
+
+%D Used in the manual:
+
+\def\showMMLentity#1%
+ {\bgroup
+ \doifXMLentityelse{#1}
+ {\let\MMLleft\empty\let\MMLright\empty\mathematics{\getXMLentity{#1}{}}}
+ {\getXMLentity{unknown}}%
+ \egroup}
+
+\newbox\unknownXMLentity
+\setbox\unknownXMLentity\hbox{\inframed[\c!strut=\v!no,\c!offset=1pt]{\ttx ?}}
+
+\defineXMLentity [unknown] {\copy\unknownXMLentity}
+
+%D A (not really needed) precaution:
+
+\ifx\blackboard\undefined
+ \def\blackboard{\ifx\Bbb\undefined\else\expandafter\Bbb\fi}
+\fi
+
+%D Basic entities, greek:
+
+\defineXMLentity [alpha] {\mathematics \alpha}
+\defineXMLentity [beta] {\mathematics \beta}
+\defineXMLentity [gamma] {\mathematics \gamma}
+\defineXMLentity [delta] {\mathematics \delta}
+\defineXMLentity [epsilon] {\mathematics \epsilon}
+\defineXMLentity [zeta] {\mathematics \zeta}
+\defineXMLentity [eta] {\mathematics \eta}
+\defineXMLentity [theta] {\mathematics \theta}
+\defineXMLentity [iota] {\mathematics \iota}
+\defineXMLentity [kappa] {\mathematics \kappa}
+\defineXMLentity [lambda] {\mathematics \lambda}
+\defineXMLentity [theta] {\mathematics \theta}
+\defineXMLentity [mu] {\mathematics \mu}
+\defineXMLentity [nu] {\mathematics \nu}
+\defineXMLentity [xi] {\mathematics \xi}
+\defineXMLentity [pi] {\mathematics \pi}
+\defineXMLentity [rho] {\mathematics \rho}
+\defineXMLentity [sigma] {\mathematics \sigma}
+\defineXMLentity [tau] {\mathematics \tau}
+\defineXMLentity [upsilon] {\mathematics \upsilon}
+\defineXMLentity [phi] {\mathematics \phi}
+\defineXMLentity [chi] {\mathematics \chi}
+\defineXMLentity [psi] {\mathematics \psi}
+\defineXMLentity [omega] {\mathematics \omega}
+
+\defineXMLentity [varepsilon] {\mathematics \varepsilon}
+\defineXMLentity [vartheta] {\mathematics \vartheta}
+\defineXMLentity [varpi] {\mathematics \varpi}
+\defineXMLentity [varrho] {\mathematics \varrho}
+\defineXMLentity [varsigma] {\mathematics \varsigma}
+\defineXMLentity [varphi] {\mathematics \varphi}
+
+\defineXMLentity [epsilonv] {\mathematics \varepsilon}
+\defineXMLentity [thetav] {\mathematics \vartheta}
+\defineXMLentity [piv] {\mathematics \varpi}
+\defineXMLentity [rhov] {\mathematics \varrho}
+\defineXMLentity [sigmav] {\mathematics \varsigma}
+\defineXMLentity [phiv] {\mathematics \varphi}
+
+\defineXMLentity [epsi] {\mathematics \epsilon}
+\defineXMLentity [epsiv] {\mathematics \varepsilon}
+
+\defineXMLentity [Alpha] {A}
+\defineXMLentity [Beta] {B}
+\defineXMLentity [Gamma] {\mathematics \Gamma}
+\defineXMLentity [Delta] {\mathematics \Delta}
+\defineXMLentity [Epsilon] {E}
+\defineXMLentity [Zeta] {Z}
+\defineXMLentity [Eta] {N}
+\defineXMLentity [Theta] {\mathematics \Theta}
+\defineXMLentity [Iota] {I}
+\defineXMLentity [Kappa] {K}
+\defineXMLentity [Lambda] {\mathematics \Lambda}
+\defineXMLentity [Mu] {M}
+\defineXMLentity [Nu] {N}
+\defineXMLentity [Xi] {\mathematics \Xi}
+\defineXMLentity [Pi] {\mathematics \Pi}
+\defineXMLentity [Ro] {R}
+\defineXMLentity [Sigma] {\mathematics \Sigma}
+\defineXMLentity [Tau] {T}
+\defineXMLentity [Upsilon] {\mathematics \Upsilon}
+\defineXMLentity [Phi] {\mathematics \Phi}
+\defineXMLentity [Chi] {X}
+\defineXMLentity [Psi] {\mathematics \Psi}
+\defineXMLentity [Omega] {\mathematics \Omega}
+
+%D Basic entities, hebrew:
+
+\defineXMLentity [aleph] {\mathematics \aleph}
+
+%D Basic entities, functions:
+
+\defineXMLentity [abs] {\mathopnolimits{abs}}
+\defineXMLentity [arg] {\mathopnolimits{arg}}
+\defineXMLentity [codomain] {\mathopnolimits{codomain}}
+\defineXMLentity [curl] {\mathopnolimits{curl}}
+\defineXMLentity [determinant] {\mathopnolimits{det}}
+\defineXMLentity [divergence] {\mathopnolimits{div}}
+\defineXMLentity [domain] {\mathopnolimits{domain}}
+\defineXMLentity [false] {\mathopnolimits{false}}
+\defineXMLentity [gcd] {\mathopnolimits{gcd}}
+\defineXMLentity [grad] {\mathopnolimits{grad}}
+\defineXMLentity [identity] {\mathopnolimits{id}}
+\defineXMLentity [image] {\mathopnolimits{image}}
+\defineXMLentity [lcm] {\mathopnolimits{lcm}}
+\defineXMLentity [max] {\mathopnolimits{max}}
+\defineXMLentity [median] {\mathopnolimits{median}}
+\defineXMLentity [min] {\mathopnolimits{min}}
+\defineXMLentity [mode] {\mathopnolimits{mode}}
+\defineXMLentity [mod] {\mathopnolimits{mod}}
+\defineXMLentity [notanumber] {\mathopnolimits{NaN}}
+\defineXMLentity [otherwise] {\mathopnolimits{otherwise}}
+\defineXMLentity [true] {\mathopnolimits{true}}
+\defineXMLentity [declare] {\mathopnolimits{declare}}
+\defineXMLentity [as] {\mathopnolimits{as}}
+\defineXMLentity [polar] {\mathopnolimits{Polar}}
+
+\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 [exp] {\mathopnolimits{exp}} % {\exp}
+\defineXMLentity [ln] {\mathopnolimits{ln}} % {\ln}
+\defineXMLentity [log] {\mathopnolimits{log}} % {\log}
+
+\defineXMLentity [sin] {\mathopnolimits{sin}}
+\defineXMLentity [arcsin] {\mathopnolimits{arcsin}}
+\defineXMLentity [sinh] {\mathopnolimits{sinh}}
+\defineXMLentity [arcsinh] {\mathopnolimits{arcsinh}}
+\defineXMLentity [cos] {\mathopnolimits{cos}}
+\defineXMLentity [arccos] {\mathopnolimits{arccos}}
+\defineXMLentity [cosh] {\mathopnolimits{cosh}}
+\defineXMLentity [arccosh] {\mathopnolimits{arccosh}}
+\defineXMLentity [tan] {\mathopnolimits{tan}}
+\defineXMLentity [arctan] {\mathopnolimits{arctan}}
+\defineXMLentity [tanh] {\mathopnolimits{tanh}}
+\defineXMLentity [arctanh] {\mathopnolimits{arctanh}}
+\defineXMLentity [cot] {\mathopnolimits{cot}}
+\defineXMLentity [arccot] {\mathopnolimits{arccot}}
+\defineXMLentity [coth] {\mathopnolimits{coth}}
+\defineXMLentity [arccoth] {\mathopnolimits{arccoth}}
+\defineXMLentity [csc] {\mathopnolimits{csc}}
+\defineXMLentity [arccsc] {\mathopnolimits{arccsc}}
+\defineXMLentity [csch] {\mathopnolimits{csch}}
+\defineXMLentity [arccsch] {\mathopnolimits{arccsch}}
+\defineXMLentity [sec] {\mathopnolimits{sec}}
+\defineXMLentity [arcsec] {\mathopnolimits{arcsec}}
+\defineXMLentity [sech] {\mathopnolimits{sech}}
+\defineXMLentity [arcsech] {\mathopnolimits{arcsech}}
+
+\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}}
+
+\ifx\MMLleft \undefined \let\MMLleft \firstofoneargument \fi
+\ifx\MMLright\undefined \let\MMLright\firstofoneargument \fi
+
+
+\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}}
+
+% \bgroup
+% \catcode`\{=12 \doglobal\convertargument{\to\mmllbrace
+% \catcode`\}=12 \doglobal\convertargument}\to\mmlrbrace
+% \egroup
+
+% \expanded{\defineXMLentity[\mmllbrace]}{\getXMLentity{lbrace}}
+% \expanded{\defineXMLentity[\mmlrbrace]}{\getXMLentity{rbrace}}
+
+\expanded{\defineXMLentity[\iftrue \string{\else}\fi]}{\getXMLentity{lbrace}}
+\expanded{\defineXMLentity[\iffalse{\else\string}\fi]}{\getXMLentity{rbrace}}
+
+\defineXMLentity [{[}] {\getXMLentity{lbracket}}
+\defineXMLentity [{]}] {\getXMLentity{rbracket}}
+\defineXMLentity [{(}] {\getXMLentity{lparenthesis}}
+\defineXMLentity [{)}] {\getXMLentity{rparenthesis}}
+
+\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 [(] {(}
+\defineXMLentity [)] {)}
+\defineXMLentity [<] {\mathematics{<}}
+\defineXMLentity [>] {\mathematics{>}}
+\defineXMLentity [|] {\myspecialnormalvert}
+\defineXMLentity [/] {/}
+\defineXMLentity [*] {\times}
+\defineXMLentity [=] {=}
+
+% \defineXMLentity [(] {\MMLleft (}
+% \defineXMLentity [)] {\MMLright)}
+
+% \defineXMLentity [{[}] {\MMLleft [}
+% \defineXMLentity [{]}] {\MMLright]}
+
+\defineXMLentity [++] {++}
+\defineXMLentity [--] {--}
+\defineXMLentity [//] {//}
+\defineXMLentity [**] {\times\times}
+\defineXMLentity [==] {==}
+
+\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}
+
+\defineXMLentity [tex-bar] {\mathematics{\vert}}
+\defineXMLentity [tex-dollar] {\dollar}
+\defineXMLentity [tex-backslash] {\backslash}
+\defineXMLentity [tex-leftbrace] {\mathematics{\{}}
+\defineXMLentity [tex-rightbrace] {\mathematics{\}}}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/x-newmml.tex b/Master/texmf-dist/tex/context/base/x-newmml.tex
new file mode 100644
index 00000000000..32b98525d53
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-newmml.tex
@@ -0,0 +1,2496 @@
+%D \module
+%D [ file=x-newmml,
+%D version=2005.06.10, % 1999.12.20,
+%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 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).
+
+% \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 teh 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]}
+
+%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}
+
+% already defined
+%
+% \defineXMLnestedenvironmentsave
+% [xmlstack]
+% {}
+% {\pushXMLnameonstack}
+
+\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 donnot 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=]
+ {}
+
+\startsetups mmc:csymbol:apply
+ \begingroup
+ \startsavingXMLelements
+ \rawXMLstacktext\plusone % still on stack, no check, just attr test
+ \stopsavingXMLelements
+ % http://www.publisherswhodontcareaboutcosts.com/SomeName
+ \doifsetupselse{mmc:csymbol:\XMLpar{csymbol}{definitionURL}{}} {
+ \expanded{\endgroup\noexpand\directsetup{mmc:csymbol:\XMLpar{csymbol}{definitionURL}{}}}
+ } {
+ % 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 \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, an 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
+
+\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}
+ \XMLfirstnamed{apply,reln,ci,cn}
+ }
+ \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\MMLcPIECEseparator{\doif\@@MMLpieceseparator\v!yes,}
+
+\defineXMLargument[piecewise] {\cases}
+
+\defineXMLnested
+ [piece]
+ {\directsetup{mmc:piece:start}}
+ {\directsetup{mmc:piece:stop}}
+
+\defineXMLenvironmentsave
+ [otherwise]
+ {}
+ {\directsetup{mmc:otherwise}}
+
+\startsetups mmc:piece:start
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmc:piece:stop
+ \stopsavingXMLelements
+ \edef\ascii{\getXMLstackdata\plusone}
+ \@EA\XMLRtoks\@EA{\ascii\MMLcPIECEseparator\@col@amp@}
+ \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] {\directsetup{mmc:divide}}
+
+\setupMMLappearance [divide] [\c!level=\!!maxcard]
+
+\startsetups mmc:divide
+ \increment\MMLcDIVIDElevel
+ \ifnum\MMLcDIVIDElevel>\@@MMLdividelevel\space
+ \getXMLstackdata\plustwo/\getXMLstackdata\plusthree
+ \else
+ \MMLcreset
+ \frac{\MMLcreset\getXMLstackdata\plustwo}{\MMLcreset\getXMLstackdata\plusthree}%
+ \fi
+ \decrement\MMLcDIVIDElevel
+\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] {\directsetup{mmc:plus}}
+
+\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
+ \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
+ }
+ \flushXMLstackwith\plustwo +
+ } {
+ \flushXMLstackwith\plustwo {
+ \doifelse {\getXMLstackname\recurselevel} {apply} {
+ \begingroup
+ \dodoifelseMMCfunctioninapply \recurselevel {minus} {
+ \ifnum\XMLstacklevel>\plustwo +\fi
+ } {
+ +
+ }
+ \endgroup
+ \MMLcreset
+ } {
+ +
+ }
+ }
+ }
+ } {
+ \ifcase\XMLstacklevel
+ \or
+ % self
+ \or
+ +\getXMLstackdata\plustwo
+ \else
+ \flushXMLstackwith\plustwo+
+ \fi
+ }
+\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}}}
+
+\defineXMLcommand [times] {\directsetup{mmc:times}}
+
+\setupMMLappearance [times] [\c!symbol=\v!no,\c!auto=\v!yes] % new, auto catches cn cn cn
+
+\startsetups mmc:times
+ \setMMLcreset{\MMLcfunctionlist,\MMLcconstructlist}%
+ \doifelse\@@MMLtimesauto\v!no {
+ \let\@@MMLtimes@@symbol\@@MMLtimessymbol
+ } {
+ \countXMLnamedstack {cn}
+ \ifnum\scratchcounter>\plusone
+ \let\@@MMLtimes@@symbol\v!yes
+ \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
+ }
+ }
+ }
+\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] {\MMLcrelation=}
+\defineXMLcommand [neq] {\MMLcrelation\neq}
+\defineXMLcommand [gt] {\MMLcrelation>}
+\defineXMLcommand [lt] {\MMLcrelation<}
+\defineXMLcommand [geq] {\MMLcrelation\geq}
+\defineXMLcommand [leq] {\MMLcrelation\leq}
+\defineXMLcommand [equivalent] {\MMLcrelation\equiv}
+\defineXMLcommand [approx] {\MMLcrelation\approx}
+\defineXMLcommand [factorof] {\MMLcrelation\mid}
+
+\setupMMLappearance[relation][\c!align=\v!no]
+
+\def\MMLcrelation
+ {\MMLcreset
+ \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}}
+
+\def\lastMMLcrelation#1%
+ {\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}}
+
+\def\firstMMLcrelation#1%
+ {\collectXMLstackrows\plusthree{\crcr\@col@amp@#1}%
+ \eqalign{\getXMLstackdata\plustwo\@col@amp@#1\the\XMLRtoks}}
+
+\def\leftMMLcrelation#1%
+ {\collectXMLstackrows\plustwo{\@col@amp@#1\crcr}%
+ \eqalign{\the\XMLRtoks}}
+
+\def\rightMMLcrelation#1%
+ {\collectXMLstackrows\plustwo{\crcr#1{}\@col@amp@}%
+ \eqalign{\@col@amp@\the\XMLRtoks\crcr}}
+
+\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
+
+\startsetups mmc:diff
+ \MMLcreset
+ \doifelse\@@MMLdiffalternative\v!a {
+ \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}}
+
+\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%
+ {\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}%
+ \MMLcreset#2\doMMLlimits{#1}\MMLcSUMup\MMLcSUMlow
+ \MMLcreset\XMLfirstnamed{apply,ci}}
+
+\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}
+ }
+ }
+ \XMLfirstnamed{apply}
+\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 \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%
+ {\pushmacro\doMMLfiller
+ \let\doMMLfiller\gobbleoneargument
+ \gdef\dodoMMLfiller{\disablefiller\mathematics{#1}}%
+ \setbox\scratchbox=\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\docommando##1%
+ {\increment\MMLcounter
+ \expanded{\setupTABLE[column][\MMLcounter][#2=\XMLval{mmp:mtable}{#2:##1}\empty]}}%
+ \expanded{\processseparatedlist[\XMLpar{mtable}{#1}\empty]}[ ]\docommando}
+ {}}
+
+\def\MMLpTABLEsplitter#1#2%
+ {\doifXMLparelse{mtable}{#1}
+ {\newcounter\MMLcounter
+ \def\docommando##1%
+ {\increment\MMLcounter
+ \expanded{\setupTABLE[column][\MMLcounter][#2=##1]}}%
+ \expanded{\processseparatedlist[\XMLpar{mtable}{#1}\empty]}[ ]\docommando}
+ {}}
+
+\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
+ \edef\ascii{#1}\convertcommand\ascii\to\ascii
+ \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
+ \edef\ascii{#1}\convertcommand\ascii\to\ascii
+ \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: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} {
+ % yet incomplete and rather untested
+ % <apply> <apply> <minus/> <tan/> <cos/> </apply> <ci>x</ci> </apply>
+ } {
+ \MMLcreset
+ }
+ \MMLdoL
+ \getXMLstackdata\plusone
+ \ifconditional\somepostponedMMLactions
+ \postponedMMLactions
+ \else
+ \left(\MMLcreset\getXMLstackdata\plustwo\right)
+ \fi
+ \MMLdoR
+ } {
+ \doifelse {\getXMLstackname\plusone} {fn} {
+ % \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
+ \directsetup{mmc:csymbol:apply}
+ } {
+ \doifelse {\getXMLstackname\plusone} {ci} {
+ % \MMLdoL/R are to be taken care of in the next setup
+ \directsetup{mmc:ci:apply}
+ } {
+ \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
+ \startsavingXMLelements
+ \rawXMLstacktext\plusone % still on stack, no check, just attr test
+ \stopsavingXMLelements
+ % \MMLdoL/MMLdoR to be handled in plugin
+ \doifsetupselse{mmc:csymbol:\XMLpar{csymbol}{definitionURL}{}} {
+ \expanded{\endgroup\noexpand\directsetup{mmc:csymbol:\XMLpar{csymbol}{definitionURL}{}}}
+ } {
+ \endgroup
+ \XMLval{mmc:cs}{\XMLop{encoding}}{\firstofoneargument}
+ }
+\stopsetups
+
+\startsetups mmc:ci:apply
+ \getXMLstackdata\plusone
+ \ifnum\XMLstacklevel>\plusone
+ \left(\MMLcreset\flushXMLstackwith\plustwo{\MMLseparator,}\right)
+ \fi
+\stopsetups
+
+\stopmoduletestsection
+
+\stopmodule
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/x-newmmo.tex b/Master/texmf-dist/tex/context/base/x-newmmo.tex
new file mode 100644
index 00000000000..2becfb30a80
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-newmmo.tex
@@ -0,0 +1,126 @@
+%D \module
+%D [ file=x-newmmo,
+%D version=2006.05.17,
+%D title=\CONTEXT\ XML Modules,
+%D subtitle=MathML Renderer/Open Math Extensions,
+%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 Strange things, why not mapped onto normal content MathML and/or
+%D onto processing instructions.
+
+\unprotect
+
+%D \startbuffer
+%D <math xmlns="http://www.w3.org/1998/Math/MathML">
+%D <vector>
+%D <apply>
+%D <csymbol definitionURL="http://www.openmath.org/cd/nums1#rational"/>
+%D <ci>a</ci>
+%D <cn type="integer">2</cn>
+%D </apply>
+%D <ci>a</ci>
+%D </vector>
+%D </math>
+%D \stopbuffer
+%D
+%D \typebuffer \processXMLbuffer
+
+\startsetups mmc:csymbol:http://www.openmath.org/cd/nums1\string#rational
+ \MMLcreset
+ \getXMLstackdata\plustwo/\getXMLstackdata\plusthree
+\stopsetups
+
+%D \startbuffer
+%D <math xmlns="http://www.w3.org/1998/Math/MathML">
+%D <apply>
+%D <csymbol definitionURL="http://www.openmath.org/cd/math4all#diffquot"/>
+%D <ci>y</ci>
+%D <ci>x</ci>
+%D </apply>
+%D </math>
+%D \stopbuffer
+%D
+%D \typebuffer \processXMLbuffer
+
+\startsetups mmc:csymbol:http://www.openmath.org/cd/math4all\string#diffquot
+ \MMLcreset
+ \frac {
+ \Delta\getXMLstackdata\plustwo
+ } {
+ \Delta\getXMLstackdata\plusthree
+ }
+\stopsetups
+
+%D \startbuffer
+%D <math xmlns="http://www.w3.org/1998/Math/MathML">
+%D <apply>
+%D <csymbol definitionURL="http://www.openmath.org/cd/math4all#difference"/>
+%D <ci>y</ci>
+%D </apply>
+%D </math>
+%D \stopbuffer
+%D
+%D \typebuffer \processXMLbuffer
+%D
+%D \startbuffer
+%D <math xmlns="http://www.w3.org/1998/Math/MathML">
+%D <apply>
+%D <csymbol definitionURL="http://www.openmath.org/cd/math4all#difference"/>
+%D <apply>
+%D <eq/>
+%D <ci>y</ci>
+%D <apply>
+%D <minus/>
+%D <apply>
+%D <ci>f</ci>
+%D <ci>x</ci>
+%D </apply>
+%D <apply>
+%D <ci>f</ci>
+%D <apply>
+%D <minus/>
+%D <ci>x</ci>
+%D <cn type="integer">1</cn>
+%D </apply>
+%D </apply>
+%D </apply>
+%D </apply>
+%D </apply>
+%D </math>
+%D \stopbuffer
+%D
+%D \typebuffer \processXMLbuffer
+
+\startsetups mmc:csymbol:http://www.openmath.org/cd/math4all\string#difference
+ \MMLcreset
+ \Delta\getXMLstackdata\plustwo
+\stopsetups
+
+%D \startbuffer
+%D <math xmlns="http://www.w3.org/1998/Math/MathML">
+%D <apply>
+%D <csymbol definitionURL="http://www.openmath.org/cd/math4all#diff"/>
+%D <ci>s</ci>
+%D <ci>t</ci>
+%D </apply>
+%D </math>
+%D \stopbuffer
+%D
+%D \typebuffer \processXMLbuffer
+
+\startsetups mmc:csymbol:http://www.openmath.org/cd/math4all\string#diff
+ \MMLcreset
+ \frac {
+ \mfunction{\getXMLentity{mathematicald}}\getXMLstackdata\plustwo
+ } {
+ \mfunction{\getXMLentity{mathematicald}}\getXMLstackdata\plusthree
+ }
+\stopsetups
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/x-newpml.tex b/Master/texmf-dist/tex/context/base/x-newpml.tex
new file mode 100644
index 00000000000..30b52061006
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-newpml.tex
@@ -0,0 +1,250 @@
+%D \module
+%D [ file=xtag-pml,
+%D version=2001.06.10,
+%D title=\CONTEXT\ XML Support,
+%D subtitle=Units,
+%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 Macros (units)}
+
+\usemodule[newmml]
+
+%D Quick and dirty in||line units:
+%D
+%D \startbuffer
+%D <phys>
+%D <cn> 10 </cn>
+%D <cu> <Newton/> <Square/> <Meter/> <Per/> <Sec/> </cu>
+%D </phys>
+%D \stopbuffer
+%D
+%D \typebuffer \processXMLbuffer
+%D
+%D A more \MATHML||like unit application:
+%D
+%D \startbuffer
+%D <phys> <apply> <unit/>
+%D <cn> 10 </cn>
+%D <csymbol> <Square/> <Meter/> <Per/> <Sec/> </csymbol>
+%D </apply> </phys>
+%D \stopbuffer
+%D
+%D \typebuffer \processXMLbuffer
+%D
+%D A bit more compact:
+%D
+%D \startbuffer
+%D <phys> <apply> <unit/>
+%D <cn> 10 </cn>
+%D <cu> <Square/> <Meter/> <Per/> <Sec/> </cu>
+%D </apply> </phys>
+%D \stopbuffer
+%D
+%D \typebuffer \processXMLbuffer
+%D
+%D A bit more complicated:
+%D
+%D \startbuffer
+%D <phys> <apply> <unit/>
+%D <apply> <divide/> <ci> a </ci> <cn> 10 </cn> </apply>
+%D <cu> <Square/> <Meter/> <Per/> <Sec/> </cu>
+%D </apply> </phys>
+%D \stopbuffer
+%D
+%D \typebuffer \processXMLbuffer
+%D
+%D An alternative (equivalent) for \type {</cu>}:
+%D
+%D \startbuffer
+%D <phys> <apply> <unit/>
+%D <cn> 10 </cn> <cunseq> <Square/> <Meter/> <Per/> <Sec/> </cunseq>
+%D </apply> </phys>
+%D \stopbuffer
+%D
+%D \typebuffer \processXMLbuffer
+
+\usemodule[units]
+
+\unprotect
+
+\defineXMLargument [phys] \automathematics
+\defineXMLargument [iphys] \inlinemathematics
+\defineXMLargument [dphys] \displaymathematics
+
+\defineXMLcommand [unit] {\directsetup{pml:unit}}
+
+\startsetups pml:unit
+ \flushXMLstackwith\plustwo\relax
+\stopsetups
+
+% \defineXMLenvironment
+% [unit]
+% {\ignorespaces}
+% {\removeunwantedspaces}
+
+\defineXMLsingular
+ [unit]
+ [label=]
+ {\XMLop{label}}
+
+\defineXMLsingular
+ [unitmeaning]
+ [label=]
+ {\expanded{\unitmeaning{\XMLop{label}}}}
+
+\let\handlePMLunit\firstofoneargument
+
+%D All unit commands are remapped in a similar way.
+
+\defineXMLsingular [Atto] {\handlePMLunit\Atto}
+\defineXMLsingular [Femto] {\handlePMLunit\Femto}
+\defineXMLsingular [Pico] {\handlePMLunit\Pico}
+\defineXMLsingular [Nano] {\handlePMLunit\Nano}
+\defineXMLsingular [Micro] {\handlePMLunit\Micro}
+\defineXMLsingular [Milli] {\handlePMLunit\Milli}
+\defineXMLsingular [Centi] {\handlePMLunit\Centi}
+\defineXMLsingular [Deci] {\handlePMLunit\Deci}
+\defineXMLsingular [Hecto] {\handlePMLunit\Hecto}
+\defineXMLsingular [Kilo] {\handlePMLunit\Kilo}
+\defineXMLsingular [Mega] {\handlePMLunit\Mega}
+\defineXMLsingular [Giga] {\handlePMLunit\Giga}
+\defineXMLsingular [Terra] {\handlePMLunit\Terra}
+\defineXMLsingular [Peta] {\handlePMLunit\Peta}
+\defineXMLsingular [Exa] {\handlePMLunit\Exa}
+
+\defineXMLsingular [Times] {\handlePMLunit\Times}
+\defineXMLsingular [Solidus] {\handlePMLunit\Solidus}
+\defineXMLsingular [Per] {\handlePMLunit\Per}
+\defineXMLsingular [OutOf] {\handlePMLunit\OutOf}
+
+\defineXMLsingular [Linear] {\handlePMLunit\Linear}
+\defineXMLsingular [Square] {\handlePMLunit\Square}
+\defineXMLsingular [Cubic] {\handlePMLunit\Cubic}
+
+\defineXMLsingular [Inverse] {\handlePMLunit\Inverse}
+
+\defineXMLsingular [Degrees] {\handlePMLunit\Degrees}
+\defineXMLsingular [Meter] {\handlePMLunit\Meter}
+\defineXMLsingular [Liter] {\handlePMLunit\Liter}
+\defineXMLsingular [Sec] {\handlePMLunit\Sec}
+\defineXMLsingular [Year] {\handlePMLunit\Year}
+\defineXMLsingular [Month] {\handlePMLunit\Month}
+\defineXMLsingular [Week] {\handlePMLunit\Week}
+\defineXMLsingular [Day] {\handlePMLunit\Day}
+\defineXMLsingular [Hour] {\handlePMLunit\Hour}
+\defineXMLsingular [Min] {\handlePMLunit\Min}
+\defineXMLsingular [Minute] {\handlePMLunit\Min}
+\defineXMLsingular [Second] {\handlePMLunit\Sec}
+\defineXMLsingular [Rad] {\handlePMLunit\Rad}
+\defineXMLsingular [Deg] {\handlePMLunit\Deg}
+\defineXMLsingular [Hertz] {\handlePMLunit\Hertz}
+\defineXMLsingular [RevPerSec] {\handlePMLunit\RevPerSec}
+\defineXMLsingular [RevPerMin] {\handlePMLunit\RevPerMin}
+\defineXMLsingular [Gram] {\handlePMLunit\Gram}
+\defineXMLsingular [Atom] {\handlePMLunit\Atom}
+\defineXMLsingular [Newton] {\handlePMLunit\Newton}
+\defineXMLsingular [Pascal] {\handlePMLunit\Pascal}
+\defineXMLsingular [Joule] {\handlePMLunit\Joule}
+\defineXMLsingular [Watt] {\handlePMLunit\Watt}
+\defineXMLsingular [Celsius] {\handlePMLunit\Celsius}
+\defineXMLsingular [Kelvin] {\handlePMLunit\Kelvin}
+\defineXMLsingular [Fahrenheit] {\handlePMLunit\Fahrenheit}
+\defineXMLsingular [Mol] {\handlePMLunit\Mol}
+\defineXMLsingular [Molair] {\handlePMLunit\Molair}
+\defineXMLsingular [Equivalent] {\handlePMLunit\Equivalent}
+\defineXMLsingular [Farad] {\handlePMLunit\Farad}
+\defineXMLsingular [Ohm] {\handlePMLunit\Ohm}
+\defineXMLsingular [Siemens] {\handlePMLunit\Siemens}
+\defineXMLsingular [Ampere] {\handlePMLunit\Ampere}
+\defineXMLsingular [Coulomb] {\handlePMLunit\Coulomb}
+\defineXMLsingular [Volt] {\handlePMLunit\Volt}
+\defineXMLsingular [eVolt] {\handlePMLunit\eVolt}
+\defineXMLsingular [Tesla] {\handlePMLunit\Tesla}
+\defineXMLsingular [VoltAC] {\handlePMLunit\VoltAC}
+\defineXMLsingular [VoltDC] {\handlePMLunit\VoltDC}
+\defineXMLsingular [Baud] {\handlePMLunit\Baud}
+\defineXMLsingular [Bit] {\handlePMLunit\Bit}
+\defineXMLsingular [Byte] {\handlePMLunit\Byte}
+\defineXMLsingular [Bequerel] {\handlePMLunit\Bequerel}
+\defineXMLsingular [Sievert] {\handlePMLunit\Sievert}
+\defineXMLsingular [Candela] {\handlePMLunit\Candela}
+\defineXMLsingular [Bell] {\handlePMLunit\Bell}
+\defineXMLsingular [At] {\handlePMLunit\At}
+\defineXMLsingular [Atm] {\handlePMLunit\Atm}
+\defineXMLsingular [Bar] {\handlePMLunit\Bar}
+\defineXMLsingular [EVolt] {\handlePMLunit\EVolt}
+\defineXMLsingular [Foot] {\handlePMLunit\Foot}
+\defineXMLsingular [Inch] {\handlePMLunit\Inch}
+\defineXMLsingular [Cal] {\handlePMLunit\Cal}
+\defineXMLsingular [Force] {\handlePMLunit\Force}
+\defineXMLsingular [Lux] {\handlePMLunit\Lux}
+\defineXMLsingular [Gray] {\handlePMLunit\Gray}
+\defineXMLsingular [Weber] {\handlePMLunit\Weber}
+\defineXMLsingular [Henry] {\handlePMLunit\Henry}
+\defineXMLsingular [Sterant] {\handlePMLunit\Sterant}
+\defineXMLsingular [Angstrom] {\handlePMLunit\Angstrom}
+\defineXMLsingular [Gauss] {\handlePMLunit\Gauss}
+
+\defineXMLsingular [Percent] {\handlePMLunit\Percent}
+\defineXMLsingular [Promille] {\handlePMLunit\Promille}
+\defineXMLsingular [Permille] {\handlePMLunit\Permille}
+
+\defineXMLsingular [Unit] {\handlePMLunit\Unit}
+\defineXMLsingular [NoUnit] {\handlePMLunit\NoUnit}
+
+\protect \doifnotmode{demo}{\endinput}
+
+\starttext
+
+\startXMLdata
+<phys>
+ <apply> <times/>
+ <cn> 1 </cn>
+ <ci><unit><Milli/><Sec/><Per/><Square/><Kilo/><Meter/></unit> </ci>
+ </apply>
+</phys>
+\stopXMLdata
+
+\startXMLdata
+<phys>
+ <apply> <divide/>
+ <cn> 2 </cn>
+ <ci> <unit><Unit/><Milli/><Sec/><Per/><Square/><Kilo/><Meter/></unit> </ci>
+ </apply>
+</phys>
+\stopXMLdata
+
+\startXMLdata
+<phys>
+ <apply> <times/>
+ <cn> 3 </cn>
+ <ci> <unit> <Milli/> <Sec/> <Per/> <Square/> <Kilo/> <Meter/> </unit> </ci>
+ </apply>
+</phys>
+\stopXMLdata
+
+\startXMLdata
+<phys>
+ <apply> <times/>
+ <cn> 4 </cn>
+ <ci> <unit><Milli/><Sec/><Per/><Square/><Kilo/><Meter/></unit> </ci>
+ </apply>
+</phys>
+\stopXMLdata
+
+\startXMLdata
+<phys>
+ <apply> <times/>
+ <cn> 5 </cn>
+ <ci> <unit> <Milli/> <Sec/> <Per/> <Square/> <Kilo/> <Meter/> </unit> </ci>
+ </apply>
+</phys>
+\stopXMLdata
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/x-om2cml.xsl b/Master/texmf-dist/tex/context/base/x-om2cml.xsl
new file mode 100644
index 00000000000..acd95db2c10
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-om2cml.xsl
@@ -0,0 +1,1258 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ This style sheet is used in the Math4All project. This project
+ will provide an on-line math method for secondary and tertiary
+ education. In addition to the web-bases content the project
+ provides high quality typeset output as well.
+
+ This stylesheet is a copy of the one used by the group of Arjeh
+ Cohen (TU Eindhoven). This steet has multiple authors: David
+ Carlisle, and Clare M. So and Hans Cuypers (also see notice
+ below.)
+
+ In due time we may extend this sheet with options needed for the
+ project (alternative rendering, additional dictionaries).
+
+ Hans Hagen, PRAGMA ADE, Hasselt NL / 2006-04-14
+
+-->
+
+<!-- ********************************************************** -->
+<!-- XSL Transform of OpenMath to Content MathML -->
+<!-- (Based on initial version by David Carlisle) -->
+<!-- -->
+<!-- Author: Clare M. So <clare@scl.csd.uwo.ca> -->
+<!-- -->
+<!-- May to August 2002 -->
+<!-- -->
+<!-- (Last updated July 9, 2003) -->
+<!-- ********************************************************** -->
+
+<!-- ********************************************************** -->
+<!-- CHANGE LOG -->
+<!-- ********************************************************** -->
+<!-- May 13, 2003 - Add template nthdiff of calculus1 CD -->
+<!-- May 14, 2003 - Add templates for moreerrors CD -->
+<!-- May 15, 2003 - Split templates for multiset1, set1, -->
+<!-- and list1 CDs -->
+<!-- Split templates for s_dist1 and s_data1 CDs -->
+<!-- June 4, 2003 - Fix bugs in splitting set1, multiset1, and -->
+<!-- set1 CDs -->
+<!-- - Add templates for transc3 CD -->
+<!-- July 9, 2003 - Add template for nthdiff -->
+
+<!-- Special MathML entities -->
+
+<!DOCTYPE stylesheet [
+<!ENTITY pi "&#x003C0;">
+<!ENTITY e "&#x02147E;">
+<!ENTITY ee "&#x02147E;">
+<!ENTITY ExponentialE "&#x02147E;">
+<!ENTITY ImaginaryI "&#x02148;">
+<!ENTITY ii "&#x02148;">
+<!ENTITY gamma "&#x003B3;">
+<!ENTITY infin "&#x0221E;">
+<!ENTITY infty "&#x0221E;">
+<!ENTITY true "&#xF0002;">
+<!ENTITY false "&#xF0003;">
+<!ENTITY NotANumber "&#xF0001;">
+<!ENTITY NaN "&#xF0001;">
+]>
+
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:om="http://www.openmath.org/OpenMath"
+ xmlns="http://www.w3.org/1998/Math/MathML"
+ exclude-result-prefixes="om"
+ version="1.0">
+
+ <!-- xsl:output method="xml" indent="yes"/ -->
+ <xsl:output method="xml"/>
+
+ <xsl:strip-space elements="*"/>
+
+ <xsl:variable name="defaultOMSpriority">-10</xsl:variable>
+
+ <!-- **************************************************** -->
+ <!-- ****************** Basic Elements ****************** -->
+ <!-- **************************************************** -->
+
+ <!-- OMOBJ (D. Carlisle) -->
+ <xsl:template match="om:OMOBJ">
+ <math>
+ <xsl:apply-templates/>
+ </math>
+ </xsl:template>
+
+ <!-- OMI (D. Carlisle) -->
+ <xsl:template match="om:OMI">
+ <cn type="integer">
+ <xsl:variable name="x" select="normalize-space(.)"/>
+ <xsl:choose>
+ <xsl:when test="contains($x,'x')">
+ <xsl:attribute name="base">16</xsl:attribute>
+ <xsl:value-of select="concat(substring-before($x,'x'),substring-after($x,'x'))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$x"/> <!-- default is decimal -->
+ </xsl:otherwise>
+ </xsl:choose>
+ </cn>
+ </xsl:template>
+
+ <!-- OMV (D. Carlisle) -->
+ <xsl:template match="om:OMV">
+ <ci>
+ <xsl:value-of select="normalize-space(@name)"/>
+ </ci>
+ </xsl:template>
+
+ <!-- OMF (decimal) -->
+ <xsl:template match="om:OMF[@dec]">
+ <cn>
+ <xsl:value-of select="normalize-space(@dec)"/>
+ </cn>
+ </xsl:template>
+
+ <!-- OMF (hex) -->
+ <xsl:template match="om:OMF[@hex]">
+ <cn base="16">
+ <xsl:value-of select="normalize-space(@hex)"/>
+ </cn>
+ </xsl:template>
+
+ <!-- OMA (D. Carlisle) -->
+ <xsl:template match="om:OMA">
+ <apply>
+ <xsl:apply-templates/>
+ </apply>
+ </xsl:template>
+
+ <!-- OMB -->
+ <!-- Note: No Content MathML equivalent -->
+ <xsl:template match="om:OMB">
+ <mtext definitionURL="http://www.openmath.org/objects#OMB">
+ <xsl:value-of select="."/>
+ </mtext>
+ </xsl:template>
+
+ <!-- OMSTR (D. Carlisle) -->
+ <!-- Note: mtext is a presentational MathML tag -->
+ <xsl:template match="om:OMSTR">
+ <mtext>
+ <xsl:value-of select="."/>
+ </mtext>
+ </xsl:template>
+
+ <!-- ***************************************************** -->
+ <!-- ****************** MathML group ******************** -->
+ <!-- ***************************************************** -->
+
+ <!-- Content Dicitionary: alg1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: zero, one -->
+
+ <!-- Trivial cases: none -->
+ <xsl:template match="om:OMS[@cd='alg1']">
+ <xsl:element name="{@name}"/>
+ </xsl:template>
+
+ <!-- zero -->
+ <xsl:template match="om:OMS[@cd='alg1' and @name='zero']">
+ <cn type="integer">0</cn>
+ </xsl:template>
+
+ <!-- one -->
+ <xsl:template match="om:OMS[@cd='alg1' and @name='one']">
+ <cn type="integer">1</cn>
+ </xsl:template>
+
+ <!-- Content Dictionary: arith1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD conatains: abs, divide, gcd, lcm, minus, plus, power, product,
+ root, sum, unary_minus -->
+
+ <!-- Trivial Cases: abs, divide, gcd, lcm, minus, plus -->
+ <xsl:template match="om:OMS[@cd='arith1']">
+ <xsl:element name="{@name}"/>
+ </xsl:template>
+
+ <!-- unary_minus -->
+ <xsl:template match="om:OMS[@cd='arith1' and @name='unary_minus']">
+ <minus/>
+ </xsl:template>
+
+ <!-- root -->
+ <xsl:template match="om:OMA[om:OMS[@cd='arith1' and @name='root']]">
+ <apply>
+ <root/>
+ <degree>
+ <xsl:apply-templates select="*[3]"/>
+ </degree>
+ <xsl:apply-templates select="*[2]"/>
+ </apply>
+ </xsl:template>
+
+ <!-- sum and product -->
+ <xsl:template match="om:OMA[om:OMS[@cd='arith1' and (@name='sum' or @name='product')]]">
+ <apply>
+ <xsl:element name="{om:OMS[1]/@name}"/>
+ <bvar>
+ <xsl:apply-templates select="." mode="getVar">
+ <xsl:with-param name="NUM" select="3"/> <!-- the bounded var is in the func -->
+ </xsl:apply-templates>
+ </bvar>
+ <xsl:apply-templates select="*[2]"/> <!-- range of product/summation -->
+ <xsl:apply-templates select="*[3]"/>
+ </apply>
+ </xsl:template>
+
+ <!-- Content Dictionary: bigfloat1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: bigfloat, bigfloatprec -->
+
+ <!-- Trivial cases: none -->
+
+ <!-- bigfloat -->
+ <xsl:template match="om:OMA[om:OMS[@cd='bigfloat1' and @name='bigfloat']]">
+ <apply>
+ <times/>
+ <xsl:apply-templates select="*[2]"/>
+ <apply>
+ <power/>
+ <xsl:apply-templates select="*[3]"/>
+ <xsl:apply-templates select="*[4]"/>
+ </apply>
+ </apply>
+ </xsl:template>
+
+ <!-- bigfloatprec -->
+ <!-- Note: No Content MathML equivalent -->
+ <xsl:template match="om:OMS[@cd='bigfloat1' and @name='bigfloatprec']">
+ <csymbol encoding="OpenMath"
+ definitionURL="http://www.openmath.org/cd/bigfloat1#bigfloatprec"/>
+ </xsl:template>
+
+ <!-- Content Dictionary: calculus1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: defint, diff, int, nthdiff, partialdiff -->
+
+ <!-- Trivial cases: partialdiff -->
+ <xsl:template match="om:OMS[@cd='calculus1']">
+ <xsl:element name="{@name}"/>
+ </xsl:template>
+
+ <!-- diff, int -->
+ <xsl:template match="om:OMA[om:OMS[@cd='calculus1' and (@name='diff' or @name='int')]]">
+ <apply>
+ <xsl:element name="{om:OMS[1]/@name}"/>
+ <bvar>
+ <xsl:apply-templates select="." mode="getVar">
+ <xsl:with-param name="NUM" select="2"/>
+ </xsl:apply-templates>
+ </bvar>
+ <xsl:apply-templates select="*[2]"/>
+ </apply>
+ </xsl:template>
+
+ <!-- defint -->
+ <xsl:template match="om:OMA[om:OMS[@cd='calculus1' and @name='defint']]">
+ <apply>
+ <int/> <!-- pretty much the same as sum and product... CHECK domainofapp -->
+ <bvar> <!-- perphaps write a method for the similar parts... -->
+ <xsl:apply-templates select="." mode="getVar">
+ <xsl:with-param name="NUM" select="3"/>
+ </xsl:apply-templates>
+ </bvar>
+ <xsl:apply-templates select="*[2]"/> <!-- range of diff -->
+ <xsl:apply-templates select="*[3]"/>
+ </apply>
+ </xsl:template>
+
+ <!-- nthdiff -->
+ <xsl:template match="om:OMA[om:OMS[@cd='calculus1' and @name='nthdiff']]">
+ <apply>
+ <diff/>
+ <bvar>
+ <xsl:apply-templates select="." mode="getVar">
+ <xsl:with-param name="NUM" select="3"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="*[2]"/>
+ </bvar>
+ <xsl:apply-templates select="*[3]"/>
+ </apply>
+ </xsl:template>
+
+ <!-- Content Dictionaries: complex1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: argument, complex_cartesian, complex_polar, conjugate,
+ imaginary, real -->
+
+ <!-- Trivial cases: conjugate, imaginary, real -->
+ <xsl:template match="om:OMS[@cd='complex1']">
+ <xsl:element name="{@name}"/>
+ </xsl:template>
+
+ <!-- argument -->
+ <xsl:template match="om:OMS[@cd='complex1' and @name='argument']">
+ <arg/>
+ </xsl:template>
+
+ <!-- complex_cartesian or complex_polar -->
+ <xsl:template match="om:OMA[om:OMS[@cd='complex1' and (@name='complex_cartesian' or @name='complex_polar')]]">
+ <xsl:variable name="type_name" select="translate(om:OMS[1]/@name,'_','-')"/>
+ <xsl:choose>
+ <xsl:when test="child::om:OMV or child::om:OMA">
+ <apply>
+ <csymbol definitionURL="{concat('http://www.openmath.org/cd/complex1#',om:OMS[1]/@name)}"/>
+ <xsl:apply-templates select="*[2]"/>
+ <xsl:apply-templates select="*[3]"/>
+ </apply>
+ </xsl:when>
+ <xsl:otherwise>
+ <cn type="{$type_name}">
+ <xsl:apply-templates select="*[2]" mode="convert"/>
+ <sep/>
+ <xsl:apply-templates select="*[3]" mode="convert"/>
+ </cn>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- Content Dictionary: fns1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: domain, domainofapplication, identity, image, inverse,
+ lambda, left_compose, left_inverse, right_inverse -->
+
+ <!-- Trivial cases: domain, image, inverse -->
+ <xsl:template match="om:OMS[@cd='fns1']">
+ <xsl:element name="{@name}"/>
+ </xsl:template>
+
+ <!-- domainofapplication -->
+ <xsl:template match="om:OMA[om:OMS[@cd='fns1' and @name='domainofapplication']]">
+ <domainofapplication>
+ <xsl:apply-templates select="*[2]"/>
+ </domainofapplication>
+ </xsl:template>
+
+ <!-- identity -->
+ <xsl:template match="om:OMS[@cd='fns1' and @name='identity']">
+ <ident/>
+ </xsl:template>
+
+ <!-- lambda -->
+ <xsl:template match="om:OMBIND[om:OMS[@cd='fns1' and @name='lambda']]">
+ <lambda>
+ <xsl:for-each select="om:OMBVAR/child::om:OMV">
+ <bvar>
+ <xsl:apply-templates select="."/>
+ </bvar>
+ </xsl:for-each>
+ <xsl:apply-templates select="*[3]"/>
+ </lambda>
+ </xsl:template>
+
+ <!-- range -->
+ <xsl:template match="om:OMS[@cd='fns1' and @name='range']">
+ <codomain/>
+ </xsl:template>
+
+ <!-- left_compose -->
+ <xsl:template match="om:OMS[@cd='fns1' and @name='left_compose']">
+ <compose/>
+ </xsl:template>
+
+ <!-- left_inverse -->
+ <xsl:template match="om:OMS[@cd='fns1' and @name='left_inverse']">
+ <inverse/>
+ </xsl:template>
+
+ <!-- right_inverse -->
+ <!-- Note: No Content MathML equivalent -->
+ <xsl:template match="om:OMS[@cd='fns1' and @name='right_inverse']">
+ <inverse encoding="OpenMath" definitionURL="http://www.openmath.org/cd/fns1#right_inverse"/>
+ </xsl:template>
+
+ <!-- Content Dictionary: integer1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: factorial, factorof, quotient, remainder -->
+
+ <!-- Trivial cases: factorof, factorial, quotient -->
+ <xsl:template match="om:OMS[@cd='integer1']">
+ <xsl:element name="{@name}"/>
+ </xsl:template>
+
+ <!-- remainder -->
+ <xsl:template match="om:OMS[@cd='integer1' and @name='remainder']">
+ <rem/>
+ </xsl:template>
+
+ <!-- Content Dictionary: interval1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: integer_interval, interval, interval_oo, interval_cc,
+ interval_oc, interval_co -->
+
+ <!-- Trivial case: none -->
+
+ <!-- (All) -->
+ <xsl:template match="om:OMA[om:OMS[@cd='interval1']]">
+ <interval>
+ <xsl:choose>
+ <xsl:when test="om:OMS[1]/@name='interval_oo'">
+ <xsl:attribute name='closure'>open</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="om:OMS[1]/@name='interval_cc'">
+ <xsl:attribute name='closure'>closed</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="om:OMS[1]/@name='interval_oc'">
+ <xsl:attribute name='closure'>open-closed</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="om:OMS[1]/@name='interval_co'">
+ <xsl:attribute name='closure'>closed-open</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:apply-templates select="*[2]"/>
+ <xsl:apply-templates select="*[3]"/>
+ </interval>
+ </xsl:template>
+
+ <!-- Content Dictionary: linalg1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: determinant, matrix_selector, outerproduct,
+ scalarproduct, transpose, vector_selector, vector_product -->
+
+ <!-- Trivial cases: determinant, outerproduct, scalarproduct, transpose,
+ vectorproduct -->
+ <xsl:template match="om:OMS[@cd='linalg1']">
+ <xsl:element name="{@name}"/>
+ </xsl:template>
+
+ <!-- vector_selector -->
+ <xsl:template match="om:OMA[om:OMS[@cd='linalg1' and @name='vector_selector']]">
+ <apply>
+ <selector/>
+ <xsl:apply-templates select="*[3]"/> <!-- the vector -->
+ <xsl:apply-templates select="*[2]"/>
+ </apply>
+ </xsl:template>
+
+ <!-- matrix_selector -->
+ <xsl:template match="om:OMA[om:OMS[@cd='linalg1' and @name='matrix_selector']]">
+ <apply>
+ <selector/>
+ <xsl:apply-templates select="*[4]"/> <!-- the matrix -->
+ <xsl:apply-templates select="*[3]"/>
+ <xsl:apply-templates select="*[2]"/>
+ </apply>
+ </xsl:template>
+
+ <!-- Content Dictionary: linalg2 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: matrix, matrixrow, vector -->
+
+ <!-- Trivial cases: none -->
+
+ <!-- matrixrow, matrix -->
+ <xsl:template match="om:OMA[om:OMS[@cd='linalg2']]">
+ <xsl:element name="{om:OMS[1]/@name}">
+ <xsl:apply-templates select="*[position()>1]"/>
+ </xsl:element>
+ </xsl:template>
+
+ <!-- (row) vector -->
+ <xsl:template match="om:OMA[om:OMS[@cd='linalg2' and @name='vector']]">
+ <apply>
+ <transpose/>
+ <vector>
+ <xsl:apply-templates select="*[position()>1]"/>
+ </vector>
+ </apply>
+ </xsl:template>
+
+ <!-- Content Dictionary: limit1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: above, below, bothsides, limit, null -->
+
+ <!-- Trivial cases: none -->
+
+ <!-- both_sides, above, below, null -->
+ <xsl:template match="om:OMA[om:OMS[@cd='limit1']]">
+ <apply>
+ <limit/>
+ <bvar>
+ <xsl:apply-templates select="." mode="getVar">
+ <xsl:with-param name="NUM" select="4"/>
+ </xsl:apply-templates>
+ </bvar>
+ <xsl:choose>
+ <xsl:when test="om:OMS[2]/@name='null'">
+ <lowlimit>
+ <xsl:apply-templates select="*[2]"/>
+ </lowlimit>
+ </xsl:when>
+ <xsl:otherwise>
+ <condition>
+ <apply>
+ <tendsto>
+ <xsl:choose>
+ <xsl:when test="om:OMS[2]/@name='both_sides'">
+ <xsl:attribute name="type">all</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="om:OMS[2]/@name='above'">
+ <xsl:attribute name="type">above</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="om:OMS[2]/@name='below'">
+ <xsl:attribute name="type">below</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </tendsto>
+ <xsl:apply-templates select="." mode="getVar">
+ <xsl:with-param name="NUM" select="4"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="*[2]"/>
+ </apply>
+ </condition>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:apply-templates select="*[4]"/>
+ </apply>
+ </xsl:template>
+
+ <!-- Content Dictionary: list1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: list, map, suchthat -->
+
+ <!-- Trivial cases: none -->
+
+ <!-- list -->
+ <xsl:template match="om:OMA[om:OMS[@cd='list1' and @name='list']]">
+ <list>
+ <xsl:apply-templates select="*[position()>1]"/>
+ </list>
+ </xsl:template>
+
+ <!-- map -->
+ <xsl:template match="om:OMA[om:OMS[@cd='list1' and @name='map']]">
+ <list>
+ <xsl:apply-templates select="." mode="map"/>
+ </list>
+ </xsl:template>
+
+ <!-- suchthat -->
+ <xsl:template match="om:OMA[om:OMS[@cd='list1' and @name='suchthat']]">
+ <list>
+ <xsl:apply-templates select="." mode="suchthat"/>
+ </list>
+ </xsl:template>
+
+ <!-- Content Dictionary: logic1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: and, equivalent, false, implies, not, or, true, xor -->
+
+ <!-- Trivial cases: all -->
+ <xsl:template match="om:OMS[@cd='logic1']">
+ <xsl:element name="{@name}"/>
+ </xsl:template>
+
+ <!-- Content Dictionary: mathmltypes -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: complex_cartesian_type, complex_polar_type, constant_type,
+ fn_type, integer_type, list_type, matrix_type, rational_type, real_type,
+ set_type, type, vector_type -->
+
+ <!-- (All mathmltypes elements) -->
+ <xsl:template match="om:OMATTR[om:OMATP[om:OMS[@cd='mathmltypes' and @name='type']]]">
+ <xsl:variable name="type_name" select="normalize-space(translate(substring-before(om:OMATP/om:OMS[2]/@name,'_type'),'_','-'))"/>
+ <xsl:choose>
+ <xsl:when test="*[2]=om:OMV">
+ <ci type="{$type_name}">
+ <xsl:value-of select="normalize-space(*[2]/@name)"/>
+ </ci>
+ </xsl:when>
+ <xsl:when test="*[2]=om:OMI">
+ <cn type="{$type_name}">
+ <xsl:variable name="x" select="normalize-space(*[2])"/>
+ <xsl:choose>
+ <xsl:when test="contains($x,'x')">
+ <xsl:attribute name="base">16</xsl:attribute>
+ <xsl:value-of select="concat(substring-before($x,'x'),substring-after($x,'x'))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$x"/> <!-- default is decimal -->
+ </xsl:otherwise>
+ </xsl:choose>
+ </cn>
+ </xsl:when>
+ <xsl:when test="*[2]=om:OMF[@dec]">
+ <cn type="{$type_name}">
+ <xsl:value-of select="normalize-space(*[2]/@dec)"/>
+ </cn>
+ </xsl:when>
+ <xsl:when test="*[2]=om:OMF[@hex]">
+ <cn type="{$type_name}" base="16">
+ <xsl:value-of select="normalize-space(*[2]/@hex)"/>
+ </cn>
+ </xsl:when>
+ <xsl:otherwise> <!-- MathML cannot add type attribute to other objects -->
+ <xsl:comment>
+ Content MathML cannot add type <xsl:value-of select="$type_name"/> for the object after this comment.
+ </xsl:comment>
+ <xsl:apply-templates select="*[2]"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- Content Dictionary: minmax1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: max, min -->
+ <xsl:template match="om:OMS[@cd='minmax1']">
+ <xsl:element name="{@name}"/>
+ </xsl:template>
+
+ <!-- Trivial cases: none -->
+
+ <!-- max, min -->
+ <xsl:template match="om:OMA[om:OMS[@cd='minmax1']]">
+ <apply>
+ <xsl:element name="{om:OMS/@name}"/>
+ <xsl:choose>
+ <xsl:when test="*[2]=om:OMA[om:OMS[@cd='set1' and @name='set']]">
+ <xsl:apply-templates select="om:OMA/*[position()>1]"/>
+ </xsl:when>
+ <xsl:when test="*[2]=om:OMA[om:OMS[@cd='multiset1' and @name='multiset']]">
+ <xsl:apply-templates select="om:OMA/*[position()>1]"/>
+ </xsl:when>
+ <xsl:when test="*[2]=om:OMA[om:OMS[@cd='set1' and @name='suchthat']]">
+ <xsl:apply-templates select="*[2]" mode="suchthat"/>
+ </xsl:when>
+ <xsl:when test="*[2]=om:OMA[om:OMS[@cd='set1' and @name='map']]">
+ <xsl:apply-templates select="*[2]" mode="map"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <bvar><ci>x</ci></bvar>
+ <condition>
+ <apply>
+ <in/>
+ <ci>x</ci>
+ <xsl:apply-templates select="*[2]"/>
+ </apply>
+ </condition>
+ </xsl:otherwise>
+ </xsl:choose>
+ </apply>
+ </xsl:template>
+
+ <!-- Content Dictionary: multiset1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: cartesian_product, emptyset, in, intersect, multiset,
+ notin, notprsubset, notsubset, prsubset, setdiff, size, subset, union -->
+
+ <!-- Trivial cases: emptyset, in, interset, notin, notprsubset, notsubset, prsubset,
+ subset, union -->
+ <xsl:template match="om:OMS[@cd='multiset1']">
+ <xsl:element name="{@name}"/>
+ </xsl:template>
+
+ <!-- cartesian_product -->
+ <xsl:template match="om:OMS[@cd='multiset1' and @name='cartesian_product']">
+ <cartesianproduct/>
+ </xsl:template>
+
+
+ <!-- multiset -->
+ <xsl:template match="om:OMA[om:OMS[@cd='multiset1' and @name='multiset']]">
+ <set type="multiset">
+ <xsl:apply-templates select="*[position()>1]"/>
+ </set>
+ </xsl:template>
+
+ <!-- size -->
+ <xsl:template match="om:OMS[@cd='multiset1' and @name='size']">
+ <card/>
+ </xsl:template>
+
+ <!-- Content Dictionary: nums1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains based_integer, e, gamma, i, infinity, NaN, pi, rational -->
+
+ <!-- Trivial cases: pi, infinity -->
+ <xsl:template match="om:OMS[@cd='nums1']">
+ <xsl:element name="{@name}"/>
+ </xsl:template>
+
+ <!-- based_integer -->
+ <!-- Note: Content MathML does not support base that is represented by a variable -->
+ <xsl:template match="om:OMA[om:OMS[@cd='nums1' and @name='based_integer']]">
+ <xsl:choose>
+ <xsl:when test="*[2]=om:OMV">
+ <apply>
+ <csymbol encoding="OpenMath" definitionURL="http://www.openmath.org/cd/nums1#based_integer"/>
+ <xsl:apply-templates select="*[2]"/>
+ <xsl:apply-templates select="*[3]"/>
+ </apply>
+ </xsl:when>
+ <xsl:otherwise>
+ <cn type="integer" base="{normalize-space(*[2])}">
+ <xsl:value-of select="normalize-space(om:OMSTR)"/>
+ </cn>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- e -->
+ <xsl:template match="om:OMS[@cd='nums1' and @name='e']">
+ <exponentiale/>
+ </xsl:template>
+
+ <!-- gamma -->
+ <xsl:template match="om:OMS[@cd='nums1' and @name='gamma']">
+ <eulergamma/>
+ </xsl:template>
+
+ <!-- i -->
+ <xsl:template match="om:OMS[@cd='nums1' and @name='i']">
+ <imaginaryi/>
+ </xsl:template>
+
+ <!-- NaN -->
+ <xsl:template match="om:OMS[@cd='nums1' and @name='NaN']">
+ <notanumber/>
+ </xsl:template>
+
+ <!-- rational -->
+ <!-- Note: Content MathML does not support rational numbers that are
+ made up of variables or other mathematical objects -->
+ <xsl:template match="om:OMA[om:OMS[@cd='nums1' and @name='rational']]">
+ <xsl:choose>
+ <xsl:when test="child::om:OMV or child::om:OMA">
+ <apply>
+ <csymbol definitionURL="http://www.openmath.org/cd/nums1#rational"/>
+ <xsl:apply-templates select="*[2]"/>
+ <xsl:apply-templates select="*[3]"/>
+ </apply>
+ </xsl:when>
+ <xsl:otherwise>
+ <cn type="rational">
+ <xsl:apply-templates select="*[2]" mode="convert"/>
+ <sep/>
+ <xsl:apply-templates select="*[3]" mode="convert"/>
+ </cn>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- Content Dictionary: piece1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: otherwise, piece, piecewise -->
+
+ <!-- Trivial cases: (All of the OMSs here are almost trivial, except
+ that these functions are used without "apply" in Content MathML) -->
+
+ <!-- piecewise, piece, otherwise -->
+ <xsl:template match="om:OMA[om:OMS[@cd='piece1']]">
+ <xsl:element name="{om:OMS/@name}">
+ <xsl:apply-templates select="*[position()>1]"/>
+ </xsl:element>
+ </xsl:template>
+
+ <!-- Content Dictionary: quant1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: forall, exists -->
+
+ <!-- forall,exists -->
+ <xsl:template match="om:OMBIND[om:OMS[@cd='quant1']]">
+ <apply>
+ <xsl:element name="{om:OMS[1]/@name}"/>
+ <xsl:for-each select="om:OMBVAR/om:OMV">
+ <bvar>
+ <xsl:apply-templates select="."/>
+ </bvar>
+ </xsl:for-each>
+ <xsl:apply-templates select="*[3]"/>
+ </apply>
+ </xsl:template>
+
+ <!-- Content Dictionary: relation1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: approx, eq, geq, gt, leq, lt, neq -->
+
+ <!-- Trivial cases: all -->
+
+ <xsl:template match="om:OMS[@cd='relation1']">
+ <xsl:element name="{@name}"/>
+ </xsl:template>
+
+ <!-- Content Dictionary: setname1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: C, N, P, Q, R, Z -->
+
+ <!-- Trivial cases: none -->
+
+ <!-- P -->
+ <xsl:template match="om:OMS[@cd='setname1' and @name='P']">
+ <primes/>
+ </xsl:template>
+
+ <!-- N -->
+ <xsl:template match="om:OMS[@cd='setname1' and @name='N']">
+ <naturalnumbers/>
+ </xsl:template>
+
+ <!-- Z -->
+ <xsl:template match="om:OMS[@cd='setname1' and @name='Z']">
+ <integers/>
+ </xsl:template>
+
+ <!-- Z -->
+ <xsl:template match="om:OMS[@cd='setname1' and @name='Q']">
+ <rationals/>
+ </xsl:template>
+
+ <!-- R -->
+ <xsl:template match="om:OMS[@cd='setname1' and @name='R']">
+ <reals/>
+ </xsl:template>
+
+ <!-- C -->
+ <xsl:template match="om:OMS[@cd='setname1' and @name='C']">
+ <complexes/>
+ </xsl:template>
+
+ <!-- Content Dictionary: rounding1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: ceiling, floor, round, trunc -->
+
+ <!-- Trivial Cases: ceiling, floor -->
+ <xsl:template match="om:OMS[@cd='rounding1']">
+ <xsl:element name="{@name}"/>
+ </xsl:template>
+
+ <!-- trunc -->
+ <xsl:template match="om:OMA[om:OMS[@cd='rounding1' and @name='trunc']]">
+ <apply>
+ <quotient/>
+ <xsl:apply-templates select="*[2]"/>
+ <cn>1</cn>
+ </apply>
+ </xsl:template>
+
+ <!-- round -->
+ <xsl:template match="om:OMA[om:OMS[@cd='rounding1' and @name='round']]">
+ <piecewise>
+ <piece>
+ <apply>
+ <floor/>
+ <apply>
+ <plus/>
+ <cn>0.5</cn>
+ <xsl:apply-templates select="*[2]"/>
+ </apply>
+ </apply>
+ <apply>
+ <geq/>
+ <xsl:apply-templates select="*[2]"/>
+ <cn>0</cn>
+ </apply>
+ </piece>
+ <piece>
+ <apply>
+ <ceiling/>
+ <apply>
+ <minus/>
+ <xsl:apply-templates select="*[2]"/>
+ <cn>0.5</cn>
+ </apply>
+ </apply>
+ <apply>
+ <lt/>
+ <xsl:apply-templates select="*[2]"/>
+ <cn>0</cn>
+ </apply>
+ </piece>
+ </piecewise>
+ </xsl:template>
+
+ <!-- Content Dictionary: set1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: cartesian_product, emptyset, in, intersect, map, notin,
+ notprsubset, notsubset, prsubset, set, setdiff, size, subset, suchthat, union -->
+
+ <!-- Trivial cases: emptyset, in, intersect, notin, notprsubset, notsubset, prsubset
+ setdiff, subset, union -->
+ <xsl:template match="om:OMS[@cd='set1']">
+ <xsl:element name="{@name}"/>
+ </xsl:template>
+
+ <!-- cartesian_product -->
+ <xsl:template match="om:OMS[@cd='set1' and @name='cartesian_product']">
+ <cartesianproduct/>
+ </xsl:template>
+
+ <!-- map -->
+ <xsl:template match="om:OMA[om:OMS[@cd='set1' and @name='map']]">
+ <set>
+ <xsl:apply-templates select="." mode="map"/>
+ </set>
+ </xsl:template>
+
+ <!-- size -->
+ <xsl:template match="om:OMS[@cd='set1' and @name='size']">
+ <card/>
+ </xsl:template>
+
+ <!-- suchthat -->
+ <xsl:template match="om:OMA[om:OMS[@cd='set1' and @name='suchthat']]">
+ <set>
+ <xsl:apply-templates select="." mode="suchthat"/>
+ </set>
+ </xsl:template>
+
+ <!-- Content Dictionary: s_data1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: mean, median, mode, moment, sdev, variance -->
+
+ <!-- Trivial cases: mean, median, mode, sdev, variance -->
+ <xsl:template match="om:OMS[@cd='s_data1']">
+ <xsl:element name="{@name}"/>
+ </xsl:template>
+
+ <!-- moment -->
+ <xsl:template match="om:OMA[om:OMS[@cd='s_data1' and @name='moment']]">
+ <apply>
+ <moment/>
+ <degree>
+ <xsl:apply-templates select="*[2]"/>
+ </degree>
+ <momentabout>
+ <xsl:apply-templates select="*[3]"/>
+ </momentabout>
+ <xsl:apply-templates select="*[position()>3]"/>
+ </apply>
+ </xsl:template>
+
+ <!-- Content Dictionary: s_dist1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: mean, moment, sdev, variance -->
+
+ <!-- Trivial cases: mean, sdev, variance -->
+ <xsl:template match="om:OMS[@cd='s_dist1']">
+ <xsl:element name="{@name}"/>
+ </xsl:template>
+
+ <!-- moment -->
+ <xsl:template match="om:OMA[om:OMS[@cd='s_dist1' and @name='moment']]">
+ <apply>
+ <moment/>
+ <degree>
+ <xsl:apply-templates select="*[2]"/>
+ </degree>
+ <momentabout>
+ <xsl:apply-templates select="*[3]"/>
+ </momentabout>
+ <xsl:apply-templates select="*[position()>3]"/>
+ </apply>
+ </xsl:template>
+
+ <!-- Content Dictionary: transc1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: arccos, arccosh, arccot, arccoth, arccsc,
+ arccsch, arcsec, arcsech, arcsin, arcsinh, arctan, arctanh, cos,
+ cosh, cot, coth, csc, csch, exp, ln, log, sec, sech, sin, sinh,
+ tan, tanh -->
+
+ <!-- Trivial cases: all except log -->
+ <xsl:template match="om:OMS[@cd='transc1']">
+ <xsl:element name="{@name}"/>
+ </xsl:template>
+
+ <!-- log -->
+ <xsl:template match="om:OMA[om:OMS[@cd='transc1' and @name='log']]">
+ <apply>
+ <log/>
+ <logbase>
+ <xsl:apply-templates select="*[2]"/>
+ </logbase>
+ <xsl:apply-templates select="*[3]"/>
+ </apply>
+ </xsl:template>
+
+ <!-- Content Dictionary: veccalc1 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: curl, divergence, grad, Laplacian -->
+
+ <!-- Trivial cases: all except Laplacian -->
+ <xsl:template match="om:OMS[@cd='veccalc1']">
+ <xsl:element name="{@name}"/>
+ </xsl:template>
+
+ <!-- Laplacian -->
+ <!-- Note: Capital "L" -->
+ <xsl:template match="om:OMS[@cd='veccalc1' and @name='Laplacian']">
+ <laplacian/>
+ </xsl:template>
+
+ <!-- Content Dictionary: altenc -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: LaTeX_encoding, MathML_encoding -->
+
+ <!-- Trivial cases: none -->
+
+ <!-- (Everything in altenc) -->
+ <xsl:template match="om:OMATTR[om:OMATP[om:OMS[@cd='altenc']]]">
+ <semantics>
+ <xsl:apply-templates select="*[2]"/>
+ <xsl:apply-templates select="om:OMATP/child::om:OMS"/>
+ </semantics>
+ </xsl:template>
+
+ <!-- MathML_encoding -->
+ <xsl:template match="om:OMS[@cd='altenc' and @name='MathML_encoding']">
+ <annotation-xml encoding="MathML">
+ <xsl:value-of select="normalize-space(following-sibling::*[position()=1])"/> <!-- OMXML or OMSTR-->
+ </annotation-xml>
+ </xsl:template>
+
+ <!-- LaTeX_encoding -->
+ <xsl:template match="om:OMS[@cd='altenc' and @name='LaTeX_encoding']">
+ <annotation encoding="LaTeX">
+ <xsl:value-of select="normalize-space(following::om:OMSTR)"/>
+ </annotation>
+ </xsl:template>
+
+ <!-- **************************************************** -->
+ <!-- ************** Not in MathML group CDs ************* -->
+ <!-- **************************************************** -->
+
+ <!-- Everything below should not be handled by the Trivial case!) -->
+
+ <!-- Content Dictionary: linalg3 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- (column) vector -->
+ <xsl:template match="om:OMA[om:OMS[@cd='linalg3' and @name='vector']]">
+ <vector>
+ <xsl:apply-templates select="*[position()>1]"/>
+ </vector>
+ </xsl:template>
+
+ <!-- Content Dictionary: arith2 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: inverse, times -->
+
+ <!-- times -->
+ <!-- Note: This function is n-ary just like MathML! -->
+ <xsl:template match="om:OMS[@cd='arith2' and @name='times']">
+ <times/>
+ </xsl:template>
+
+ <!-- Content Dictionary: error -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- (all errors) -->
+ <xsl:template match="om:OME">
+ <mtext>
+ <xsl:text>ERROR:</xsl:text>
+ <xsl:text> Error Type: </xsl:text><xsl:value-of select="om:OMS[1]/@name"/>
+ <xsl:text> Error occured in CD: </xsl:text><xsl:value-of select="om:OMS[2]/@cd"/>
+ <xsl:text> Error occured in symbol: </xsl:text><xsl:value-of select="om:OMS[2]/@name"/>
+ </mtext>
+ </xsl:template>
+
+ <!-- Content Dictionary: moreerrors -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: algorithm, asynchronousError, encodingError, limitation,
+ unexpected -->
+
+ <!-- (all) -->
+ <xsl:template match="om:OMA[om:OMS[@cd='moreerrors']]">
+ <mtext>
+ <xsl:text>ERROR:</xsl:text>
+ <xsl:text> Error Type: </xsl:text><xsl:value-of select="normalize-space(om:OMS/@name)"/>
+ <xsl:text> Description: </xsl:text><xsl:value-of select="normalize-space(om:OMSTR)"/>
+ </mtext>
+ </xsl:template>
+
+ <!-- Content Dicitionary: transc3 -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- This CD contains: arccos, arccosh, arccot, arccoth, arccsc, arccsch,
+ arcsec, arcsech, arcsin, arcsinh, arctan, arctanh, ln, log -->
+
+ <!-- (all except log) -->
+ <xsl:template match="om:OMS[@cd='transc3']">
+ <xsl:element name="{@name}"/>
+ </xsl:template>
+
+ <!-- log -->
+ <xsl:template match="om:OMA[om:OMS[@cd='transc3' and @name='log']]">
+ <apply>
+ <log/>
+ <logbase>
+ <xsl:apply-templates select="*[3]"/>
+ </logbase>
+ <xsl:apply-templates select="*[2]"/>
+ </apply>
+ </xsl:template>
+
+ <!-- **************************************************** -->
+ <!-- **************** EVERYTHING ELSE ******************* -->
+ <!-- **************************************************** -->
+
+ <!-- Note: Rather than hard code all of the CDs, I just assign the lowest
+ priority among all templates. -->
+
+ <xsl:template match="om:OMS[@cd and @name]" priority="-10">
+ <csymbol>
+ <xsl:attribute name="definitionURL">
+ <xsl:value-of select="concat(concat(concat('http://www.openmath.org/cd/',@cd),'#'),@name)"/>
+ </xsl:attribute>
+ </csymbol>
+ </xsl:template>
+
+ <!-- **************************************************** -->
+ <!-- **************** HELPER TEMPLATES ****************** -->
+ <!-- **************************************************** -->
+
+ <!-- All mode "convert" templates are for converting OMSs or OMIs to
+ numbers including in various cn containing <sep/> -->
+
+ <xsl:template match="om:OMS[@cd='alg1' and @name='zero']" mode="convert">0</xsl:template>
+
+ <xsl:template match="om:OMS[@cd='alg1' and @name='one']" mode="convert">1</xsl:template>
+
+ <xsl:template match="om:OMS" mode="convert">
+ <xsl:choose>
+ <xsl:when test="@name='pi'">&pi;</xsl:when>
+ <xsl:when test="@name='i'">&ii;</xsl:when>
+ <xsl:when test="@name='NaN'">&NaN;</xsl:when>
+ <xsl:when test="@name='gamma'">&gamma;</xsl:when>
+ <xsl:when test="@name='e'">&ee;</xsl:when>
+ <xsl:when test="@name='true'">&true;</xsl:when>
+ <xsl:when test="@name='false'">&false;</xsl:when>
+ <xsl:when test="@name='infinity'">&infin;</xsl:when>
+ <xsl:otherwise><xsl:value-of select="normalize-space(.)"/></xsl:otherwise> <!-- for debugging -->
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="om:OMI" mode="convert">
+ <xsl:variable name="x" select="normalize-space(.)"/>
+ <xsl:choose>
+ <xsl:when test="contains($x,'x')">
+ <xsl:value-of select="concat(substring-before($x,'x'),substring-after($x,'x'))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$x"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="om:OMF" mode="convert">
+ <xsl:value-of select="@*"/>
+ </xsl:template>
+
+ <!-- The following templates, with mode "map" and "suchthat", are used to contruct sets or lists
+ without enumerating every element -->
+
+ <xsl:template match="om:OMA" mode="map">
+ <bvar>
+ <xsl:apply-templates select="." mode="getVar">
+ <xsl:with-param name="NUM" select="2"/>
+ </xsl:apply-templates>
+ </bvar>
+ <condition>
+ <apply>
+ <in/>
+ <xsl:apply-templates select="." mode="getVar">
+ <xsl:with-param name="NUM" select="2"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="*[3]"/>
+ </apply>
+ </condition>
+ <xsl:apply-templates select="*[2]"/>
+ </xsl:template>
+
+ <xsl:template match="om:OMA" mode="suchthat">
+ <bvar>
+ <xsl:apply-templates select="." mode="getVar">
+ <xsl:with-param name="NUM" select="3"/>
+ </xsl:apply-templates>
+ </bvar>
+ <condition>
+ <apply>
+ <and/>
+ <xsl:apply-templates select="*[3]"/>
+ <apply>
+ <in/>
+ <xsl:apply-templates select="." mode="getVar">
+ <xsl:with-param name="NUM" select="3"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="*[2]"/>
+ </apply>
+ </apply>
+ </condition>
+ </xsl:template>
+
+ <!-- This template is for getting bound variables (all variables in <OMBIND>) -->
+ <!-- Note: Default bound variable is "x" -->
+
+ <xsl:template match="om:OMA" mode="getVar">
+ <xsl:param name="NUM" select="3"/>
+ <xsl:choose>
+ <xsl:when test="*[$NUM]=om:OMBIND">
+ <xsl:apply-templates select="*[$NUM]/om:OMBVAR/om:OMV[position()>0]"/>
+ </xsl:when>
+ <xsl:otherwise> <!-- default -->
+ <ci>x</ci>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- Added by Hans Hagen -->
+
+ <xsl:template match="om:OMS[@cd='altenc' and @name='TeX_encoding']">
+ <annotation encoding="TeX">
+ <xsl:value-of select="normalize-space(following::om:OMSTR)"/>
+ </annotation>
+ </xsl:template>
+
+ <xsl:template match="om:OMS[@cd='math4all' and @name]">
+ <csymbol>
+ <xsl:attribute name="definitionURL">
+ <xsl:value-of select="concat(concat(concat('http://www.openmath.org/cd/',@cd),'#'),@name)"/>
+ </xsl:attribute>
+ </csymbol>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/Master/texmf-dist/tex/context/base/x-openmath.tex b/Master/texmf-dist/tex/context/base/x-openmath.tex
new file mode 100644
index 00000000000..38474996e1b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-openmath.tex
@@ -0,0 +1,4 @@
+% This module is yet empty. We assume a transformation using
+% x-openmath.xsl.
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/x-openmath.xsl b/Master/texmf-dist/tex/context/base/x-openmath.xsl
new file mode 100644
index 00000000000..e91b83e51c6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-openmath.xsl
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+ <xsl:output method="xml"/>
+
+ <!-- newline, temp hack, latest texexec handles it okay -->
+
+ <xsl:template match ="processing-instruction()"><xsl:copy/><xsl:text>
+ </xsl:text></xsl:template>
+
+ <!-- xsl:template match="*"><xsl:copy/></xsl:template -->
+ <!-- xsl:element name="{name(current())}"><xsl:apply-templates/></xsl:element -->
+
+<!--
+ <xsl:template match="*">
+ <xsl:copy>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:template>
+-->
+
+ <xsl:template match = "node()|@*" >
+ <xsl:copy>
+ <xsl:apply-templates select = "node()|@*" />
+ </xsl:copy>
+ </xsl:template>
+
+ <xsl:template match="comment"></xsl:template>
+
+ <xsl:variable name='openmath-to-content-mathml'><value-of select='$stylesheet-path'/>/x-openmath.xsl</xsl:variable>
+
+ <xsl:include href="x-om2cml.xsl"/>
+
+</xsl:stylesheet>
diff --git a/Master/texmf-dist/tex/context/base/x-physml.xsd b/Master/texmf-dist/tex/context/base/x-physml.xsd
new file mode 100644
index 00000000000..865d88c58ed
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-physml.xsd
@@ -0,0 +1,172 @@
+<?xml version="1.0"?>
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+<xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ This schema covers (basic presentational) Physics
+ markup. It combines the power of MathML and the ConTeXt
+ units engine.
+
+ author: Hans Hagen, copyright: PRAGMA-ADE / Hasselt NL
+ </xsd:documentation>
+</xsd:annotation>
+
+<xsd:complexType name="unit.power.type">
+ <xsd:element name="Inverse" minOccurs="0" maxOccurs="1" />
+ <xsd:choice>
+ <xsd:element name="Linear" />
+ <xsd:element name="Square" />
+ <xsd:element name="Cubic" />
+ </xsd:choice>
+</xsd:complexType>
+
+<xsd:complexType name="unit.prefix.type">
+ <xsd:choice>
+ <xsd:element name="Atto" />
+ <xsd:element name="Femto" />
+ <xsd:element name="Pico" />
+ <xsd:element name="Nano" />
+ <xsd:element name="Micro" />
+ <xsd:element name="Milli" />
+ <xsd:element name="Centi" />
+ <xsd:element name="Deci" />
+ <xsd:element name="Hecto" />
+ <xsd:element name="Kilo" />
+ <xsd:element name="Mega" />
+ <xsd:element name="Giga" />
+ <xsd:element name="Terra" />
+ <xsd:element name="Peta" />
+ <xsd:element name="Exa" />
+
+ <xsd:element name="NoUnit" />
+ </xsd:choice>
+</xsd:complexType>
+
+<xsd:complexType name="unit.midfix.type">
+ <xsd:choice>
+ <xsd:element name="Per" />
+ <xsd:element name="Times" />
+ <xsd:element name="Solidus" />
+ <xsd:element name="OutOf" />
+ </xsd:choice>
+</xsd:complexType>
+
+<xsd:complexType name="unit.suffix.type">
+ <xsd:choice>
+ <xsd:element name="Ampere" />
+ <xsd:element name="Angstrom" />
+ <xsd:element name="At" />
+ <xsd:element name="Atm" />
+ <xsd:element name="Atom" />
+ <xsd:element name="Bar" />
+ <xsd:element name="Baud" />
+ <xsd:element name="Bell" />
+ <xsd:element name="Bequerel" />
+ <xsd:element name="Bit" />
+ <xsd:element name="Byte" />
+ <xsd:element name="Cal" />
+ <xsd:element name="Candela" />
+ <xsd:element name="Celsius" />
+ <xsd:element name="Coulomb" />
+ <xsd:element name="Day" />
+ <xsd:element name="Deg" />
+ <xsd:element name="Degrees" />
+ <xsd:element name="Equivalent" />
+ <xsd:element name="EVolt" />
+ <xsd:element name="eVolt" />
+ <xsd:element name="Fahrenheit" />
+ <xsd:element name="Farad" />
+ <xsd:element name="Foot" />
+ <xsd:element name="Force" />
+ <xsd:element name="Gauss" />
+ <xsd:element name="Gram" />
+ <xsd:element name="Gray" />
+ <xsd:element name="Henry" />
+ <xsd:element name="Hertz" />
+ <xsd:element name="Hour" />
+ <xsd:element name="Inch" />
+ <xsd:element name="Joule" />
+ <xsd:element name="Kelvin" />
+ <xsd:element name="Liter" />
+ <xsd:element name="Lux" />
+ <xsd:element name="Meter" />
+ <xsd:element name="Min" />
+ <xsd:element name="Mol" />
+ <xsd:element name="Molair" />
+ <xsd:element name="Month" />
+ <xsd:element name="Newton" />
+ <xsd:element name="Ohm" />
+ <xsd:element name="Pascal" />
+ <xsd:element name="Rad" />
+ <xsd:element name="RevPerMin" />
+ <xsd:element name="RevPerSec" />
+ <xsd:element name="Sec" />
+ <xsd:element name="Second" />
+ <xsd:element name="Siemens" />
+ <xsd:element name="Sievert" />
+ <xsd:element name="Sterant" />
+ <xsd:element name="Tesla" />
+ <xsd:element name="Volt" />
+ <xsd:element name="VoltAC" />
+ <xsd:element name="VoltDC" />
+ <xsd:element name="Watt" />
+ <xsd:element name="Weber" />
+ <xsd:element name="Week" />
+ <xsd:element name="Year" />
+
+ <xsd:element name="Unit" />
+ </xsd:choice>
+</xsd:complexType>
+
+<xsd:complexType name="unit.component.type">
+ <xsd:sequence>
+ <xsd:element ref="unit.power.type" minOccurs="0" maxOccurs="1" />
+ <xsd:element ref="unit.prefix.type" minOccurs="0" maxOccurs="1" />
+ <xsd:element ref="unit.suffix.type" minOccurs="0" maxOccurs="1" />
+ </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="unit.type">
+ <xsd:choice>
+ <xsd:sequence>
+ <xsd:element ref="unit.component.type" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ <xsd:sequence>
+ <xsd:element ref="unit.component.type" minOccurs="1" maxOccurs="1" />
+ <xsd:element ref="unit.midfix.type" minOccurs="1" maxOccurs="1" />
+ <xsd:element ref="unit.component.type" minOccurs="1" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:choice>
+</xsd:complexType>
+
+<xsd:element name="unit" type="unit.type" />
+
+<xsd:element name="physics.type">
+ <choice>
+ <xsd:element name="apply">
+ <xsd:sequence>
+ <xsd:element name="unit" minOccurs="1" maxOccurs="1" />
+ <xsd:element name="some kind of mml result" minOccurs="0" maxOccurs="1" />
+ <choice>
+ <xsd:element name="cu" type=unit.type minOccurs="0" maxOccurs="1" />
+ <xsd:element name="cunseq" type=unit.type minOccurs="0" maxOccurs="1" />
+ <xsd:element name="csymbol" type=unit.type minOccurs="0" maxOccurs="1" />
+ </choice>
+ </xsd:sequence>
+ </xsd:element>
+ <xsd:sequence>
+ <choice>
+ <xsd:element name="cn" minOccurs="0" maxOccurs="1" />
+ <xsd:element name="ci" minOccurs="0" maxOccurs="1" />
+ </choice>
+ <xsd:element name="cu" type="unit.type" minOccurs="0" maxOccurs="1" />
+ </xsd:sequence>
+ </choice>
+</xsd:element>
+
+<xsd:element name="phys" type="physics.type" />
+<xsd:element name="iphys" type="physics.type" />
+<xsd:element name="dphys" type="physics.type" />
+
+</xsd:schema>
diff --git a/Master/texmf-dist/tex/context/base/x-res-00.tex b/Master/texmf-dist/tex/context/base/x-res-00.tex
index 46a278768a2..9878d0a5834 100644
--- a/Master/texmf-dist/tex/context/base/x-res-00.tex
+++ b/Master/texmf-dist/tex/context/base/x-res-00.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\unprotect
+\unprotect
% \defineXMLcommandpush [rl:instance] (todo)
% \rawframed == [frame=off,offset=overlay]
@@ -19,28 +19,29 @@
% resource library
\defineXMLprocess [rl:figurelibrary] % not to be used any longer
-\defineXMLprocess [rl:library]
+\defineXMLprocess [rl:library]
-% resource library description
+% resource library description
\defineXMLignore [rl:description]
\defineXMLpush [rl:organization]
\defineXMLpush [rl:product]
\defineXMLpush [rl:project]
+\defineXMLpush [rl:collection]
-% resource library entries (better use XMLignore)
+% resource library entries (better use XMLignore)
-\defineXMLignore [rl:applet]
-\defineXMLignore [rl:application]
-\defineXMLignore [rl:figure]
-\defineXMLignore [rl:movie]
-\defineXMLignore [rl:sound]
+\defineXMLignore [rl:applet]
+\defineXMLignore [rl:application]
+\defineXMLignore [rl:figure]
+\defineXMLignore [rl:movie]
+\defineXMLignore [rl:sound]
-\defineXMLpush [rl:type]
-\defineXMLpush [rl:state]
-\defineXMLpush [rl:width]
-\defineXMLpush [rl:height]
+\defineXMLpush [rl:type]
+\defineXMLpush [rl:state]
+\defineXMLpush [rl:width]
+\defineXMLpush [rl:height]
\defineXMLpush [rl:file]
\defineXMLpush [rl:label]
\defineXMLpush [rl:original]
@@ -54,13 +55,13 @@
\defineXMLpush [rl:original]
\defineXMLpush [rl:manipulation]
-% instances
+% instances
\defineXMLignore [rl:instance]
\defineXMLpush [rl:background]
-\defineXMLpush [rl:viewport]
-\defineXMLpush [rl:dimension]
-\defineXMLpush [rl:position]
+\defineXMLpush [rl:viewport]
+\defineXMLpush [rl:dimension]
+\defineXMLpush [rl:position]
-\protect \endinput
+\protect \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 82c1116dec5..e989d7090c1 100644
--- a/Master/texmf-dist/tex/context/base/x-res-01.tex
+++ b/Master/texmf-dist/tex/context/base/x-res-01.tex
@@ -24,8 +24,13 @@
%D The following modes are supported:
%D
%D \starttabulate[|lT|l|]
-%D \NC letter \NC map the preview on letter size \NC \NR
-%D \NC compact \NC use an alternative presentation \NC \NR
+%D \NC letter \NC map the preview on letter size \NC \NR
+%D \NC compact \NC use an alternative presentation \NC \NR
+%D \NC clipgrid-distance \NC add a copy with grid overlayed \NC \NR
+%D \NC clipgrid-steps \NC add a copy with grid overlayed \NC \NR
+%D \NC previewpage-A4 \NC show graphic relative to A4 \NC \NR
+%D \NC previewpage-letter \NC show graphic relative to letter \NC \NR
+%D \NC previewpage-S6 \NC show graphic relative to S6 \NC \NR
%D \stoptabulate
%D
%D The resulting file has the following characteristics:
@@ -60,6 +65,10 @@
\doifnothing {\jobfullname} {\end}
\doiffileelse {\jobfullname} {} {\end}
+\definesymbol [attachment] [{\bf\color[darkred]{\jobname.xml}}]
+\setupattachments [symbol=attachment]
+\useattachment [datafile] [\jobname.xml]
+
\def\StartDescription
{\bgroup}
@@ -74,15 +83,41 @@
{\NC product \NC \XMLflush{rl:product} \NC \NR}{}
\doifXMLdataelse{rl:comment}
{\NC comment \NC \XMLflush{rl:comment} \NC \NR}{}
+ \NC specification \NC \attachment[datafile] \NC \NR
\stoptabulate
\blank[2*big]
\egroup}
-\def\StartFigureA
- {\bgroup
- \XMLassign{rl:file}{unknown}}
-\defineoverlay[page][\overlaybutton{Description}]
+\def\localexternalfigurereplacement#1#2#3% hack, no reuse of dummies (yet), todo: pass objname
+ {\doifelsenothing{\XMLflush{rl:label}}
+ {\edef\FigureName{\XMLflush{rl:label}}}
+ {\edef\FigureName{\XMLflush{rl:file}}}%
+ \doifobjectfoundelse{rl}\FigureName
+ {}
+ {\setobject{rl}\FigureName\vbox{\normalexternalfigurereplacement{#1}{#2}{#3}}}%
+ \getobject{rl}\FigureName}
+
+\startmode[dummy]
+
+ \useMPlibrary[dum]
+
+ \def\StartFigureA
+ {\bgroup
+ \XMLassign{rl:file}{dummy}}
+
+ \let\normalexternalfigurereplacement\externalfigurereplacement
+ \let\externalfigurereplacement \localexternalfigurereplacement
+
+\stopmode
+
+\startnotmode[dummy]
+
+ \def\StartFigureA
+ {\bgroup
+ \XMLassign{rl:file}{unknown}}
+
+\stopnotmode
\startbuffer[unknown]
\framed
@@ -98,6 +133,8 @@
\useexternalfigure[unknown][unknown][type=buffer,object=no]
+\defineoverlay[page][\overlaybutton{Description}]
+
% \def\externalfigurereplacement#1#2#3%
% {\getbuffer[rl-unknown]}
@@ -105,9 +142,9 @@
{\doglobal\increment\CurrentPage
\setupbackgrounds[page][background=page]
\doifelsenothing{\XMLflush{rl:label}}
- {\expanded{\definereference[Description][about: \XMLflush{rl:file}]}%
+ {\expanded{\definereference[Description][about:\XMLflush{rl:file}]}%
\expanded{\pagereference[\XMLflush{rl:file}]}}
- {\expanded{\definereference[Description][about: \XMLflush{rl:label}]}%
+ {\expanded{\definereference[Description][about:\XMLflush{rl:label}]}%
\expanded{\pagereference[\XMLflush{rl:label}]}}
\pagefigure[\XMLflush{rl:file}]
\setupbackgrounds[page][background=]
@@ -153,7 +190,6 @@
\enablemode[previewpage-A4]
\stopnotmode
-%startbuffer[paper]
\startsetups[paper]
\startmode[previewpage-A4]
\framed
@@ -174,7 +210,6 @@
{\externalfigure[\XMLflush{rl:file}][reset=yes]}
\stopmode
\stopsetups
-%stopbuffer
\setupbuttons
[offset=10pt,
@@ -196,8 +231,8 @@
{\hbox to \hsize
{\forgetall \dontcomplain
\doifelsenothing{\XMLflush{rl:label}}
- {\expanded{\pagereference[about: \XMLflush{rl:file}]}}
- {\expanded{\pagereference[about: \XMLflush{rl:label}]}}%
+ {\expanded{\pagereference[about:\XMLflush{rl:file}]}}
+ {\expanded{\pagereference[about:\XMLflush{rl:label}]}}%
% moved here, because descriptions may be absent
\ifnum\CurrentPage=1 \pagereference[begin]\fi
%
@@ -238,7 +273,7 @@
[offset=overlay,
framecolor=darkred,
rulethickness=.5pt]
- {\scale[width=40pt]{\setups[paper]}}% {\disableXML\getbuffer[paper]}}%
+ {\scale[width=40pt]{\setups[paper]}}%
\startmode[compact]%
\vfill
\hbox to \hsize{\hss\strut\bf\CurrentPage\hss}%
@@ -432,9 +467,9 @@
\setupbackgrounds[page][background=page]
\startpagefigure[\XMLflush{rl:file}][offset=20pt]%
\doifelsenothing{\XMLflush{rl:label}}
- {\expanded{\definereference[Description][about: \XMLflush{rl:file}]}%
+ {\expanded{\definereference[Description][about:\XMLflush{rl:file}]}%
\expanded{\pagereference[grid:\XMLflush{rl:file}]}}
- {\expanded{\definereference[Description][about: \XMLflush{rl:label}]}%
+ {\expanded{\definereference[Description][about:\XMLflush{rl:label}]}%
\expanded{\pagereference[grid:\XMLflush{rl:label}]}}
\stoppagefigure
%\pagefigure[\XMLflush{rl:file}][offset=20pt]
diff --git a/Master/texmf-dist/tex/context/base/x-res-04.tex b/Master/texmf-dist/tex/context/base/x-res-04.tex
index 826a07d2385..066404afd25 100644
--- a/Master/texmf-dist/tex/context/base/x-res-04.tex
+++ b/Master/texmf-dist/tex/context/base/x-res-04.tex
@@ -39,30 +39,32 @@
%D \starttyping
%D <!-- texexec --pdf --use=fig-01 figtest.xml -->
%D
-%D <figurelibrary language="nl">
+%D <?xml version='1.0'?>
%D
-%D <description>
-%D <organization>PRAGMA Advanced Document Engineering</organization>
-%D <project>Manuals</project>
-%D <product>Beginners Manual</product>
-%D <comment>A bunch of figures.</comment>
-%D </description>
+%D <rl:library language="nl">
%D
-%D <figure>
-%D <file>koe.pdf</file>
-%D <label>a dutch cow</label>
-%D <copyright>Corel Draw Suite</copyright>
-%D <comment>I bet that you've seen this cow before.</comment>
-%D </figure>
+%D <rl:description>
+%D <organization>PRAGMA Advanced Document Engineering</rl:organization>
+%D <project>Manuals</rl:project>
+%D <product>Beginners Manual</rl:product>
+%D <comment>A bunch of figures.</rl:comment>
+%D </rl:description>
%D
-%D <figure>
-%D <dummy width="4cm" height="3cm">non existent</dummy>
-%D <label>a european cow</label>
-%D <copyright>Nobody</copyright>
-%D <comment>When will we talk about European cows?</comment>
-%D </figure>
+%D <rl:figure>
+%D <rl:file>koe.pdf</rl:file>
+%D <rl:label>a dutch cow</rl:label>
+%D <rl:copyright>Corel Draw Suite</rl:copyright>
+%D <rl:comment>I bet that you've seen this cow before.</rl:comment>
+%D </rl:figure>
%D
-%D </figurelibrary>
+%D <rl:figure>
+%D <rl:dummy width="4cm" height="3cm">non existent</rl:dummy>
+%D <rl:label>a european cow</rl:label>
+%D <rl:copyright>Nobody</rl:copyright>
+%D <rl:comment>When will we talk about European cows?</rl:comment>
+%D </rl:figure>
+%D
+%D </rl:library>
%D \stoptyping
%D
%D You can convert this base into a \PDF\ file using
@@ -183,8 +185,8 @@
\doglobal\newcounter\figurefilepage
\autoXMLnamespace[rl]
\startXMLmapping[rl:find]
- \xdef\figurefilebase{#1}
- \def\askedlabel{#2}
+ \xdef\figurefilebase{#1}%
+ \def\askedlabel{#2}%
\doifelseXMLelement{rl:rl:\askedlabel}
{\enableXMLelements\flushXMLelement{rl:rl:\askedlabel}}
{\processcommacommand[\figurepathlist]\dogetfigurefilename}%
diff --git a/Master/texmf-dist/tex/context/base/x-res-08.tex b/Master/texmf-dist/tex/context/base/x-res-08.tex
index 5dfa6b6fa24..e7388516646 100644
--- a/Master/texmf-dist/tex/context/base/x-res-08.tex
+++ b/Master/texmf-dist/tex/context/base/x-res-08.tex
@@ -82,8 +82,8 @@
\fi
\writtenXMLelementcs{\XMLrlprefix comment}\currentresourcecomment
\ifconditional\externalfigureflush
- \writtenXMLelementcs{\XMLrlprefix width}\figurewidth
- \writtenXMLelementcs{\XMLrlprefix height}\figureheight
+ \writtenXMLelementcs{\XMLrlprefix width}\figurewidth
+ \writtenXMLelementcs{\XMLrlprefix height}\figureheight
\fi}}}
\def\XMLfeedbackexternalfigure
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 5e7068b1409..f3ce754209a 100644
--- a/Master/texmf-dist/tex/context/base/x-set-11.tex
+++ b/Master/texmf-dist/tex/context/base/x-set-11.tex
@@ -97,7 +97,7 @@
2: -- is processed
3: -- is undefined
4: -- is processed again
- optional: optioneel
+ optional: optional
displaymath: formula
index: entry
math: formula
@@ -264,6 +264,44 @@
content: text
\stopmessages
+\startmessages french library: setup
+ title: réglage
+ formula: formule
+ number: numéro
+ list: liste
+ dimension: dimension
+ mark: marquage
+ reference: reference
+ command: commande
+ file: fichier
+ name: nom
+ identifier: identificateur
+ text: texte
+ section: section
+ singular: nom singulier
+ plural: nom pluriel
+ matrix: n*m
+ see: vois
+ inherits: herite de
+ 1: les caractères < et > sont globalement actifs !
+ 2: -- est traité
+ 3: -- n'est pas défini
+ 4: -- est traité de nouveau
+ optional: optionel
+ displaymath: formule
+ index: entrée
+ math: formule
+ nothing: vide
+ file: fichier
+ position: position
+ reference: réference
+ csname: nom
+ destination: destination
+ triplet: triplet
+ word: mot
+ content: texte
+\stopmessages
+
\def\c!setup!internal!#1%
{{\dogetmessage{setup}{#1}%
\expanded{\setupintfont{\currentmessagetext}}}}
@@ -313,7 +351,7 @@
\newif\ifshortsetup
\def\setup {\shortsetupfalse\dosetup}
-\def\shortsetup{\shortsetuptrue\dosetup}
+\def\shortsetup{\shortsetuptrue \dosetup}
\def\setupsetup{\dodoubleargument\getparameters[\??stp]}
\setupsetup
@@ -345,14 +383,35 @@
\let\plaatssetup \placesetup
\let\plaatselkesetup\placeeverysetup
-\def\dosetup#1{{\enableXML\flushXMLelement{stp:#1}}}
+% we use :1 as fallback
+%
+% \setup{setupinterlinespace}
+% \setup{setupinterlinespace:1}
+% \setup{setupinterlinespace:2}
+
+\bgroup \catcode`\<=\active
+
+\gdef\dosetup#1%
+ {\bgroup
+ \def<<##1>>{##1}%
+ \edef\ascii{#1}%
+ \enableXML
+ \doifelseXMLelement{stp:\ascii}
+ {\expanded{\flushXMLelement{stp:\ascii}}}
+ {\doifelseXMLelement{stp:\ascii:1}
+ {\expanded{\flushXMLelement{stp:\ascii:1}}}
+ {\convertargument#1\to\ascii
+ \em unknown setup \quote{\ascii}}}
+ \egroup}
+
+\egroup
-\defineXMLenvironment [cd:command] [name=,type=,generated=,interactive=]
+\defineXMLenvironment [cd:command] [name=,type=,generated=,interactive=,variant=]
{}
{\showSETUPrecord}
\def\showSETUPrecord
- {\getvalue{startsetuptext}
+ {\getvalue{\e!start setuptext}
\tttf
\nohyphens
\veryraggedright
@@ -391,7 +450,7 @@
\egroup
\stopXMLmapping}
\stopXMLmapping
- \getvalue{stopsetuptext}}
+ \getvalue{\e!stop setuptext}}
\defineXMLenvironmentsave [cd:sequence] \ignorespaces \ignorespaces
\defineXMLenvironmentsave [cd:arguments] \ignorespaces \ignorespaces
@@ -487,6 +546,13 @@
\def\previousSETUPargument{\currentSETUPargument}
+\defineXMLenvironmentsave [cd:define] [name=]
+ {}
+ {\setevalue{cd:def:\XMLop{name}}{\XMLflush{cd:define}}}
+
+\defineXMLsingular [cd:resolve] [name=]
+ {\getvalue{cd:def:\XMLop{name}}}
+
\defineXMLenvironmentsave [cd:assignments]
{}
{\xdef\currentSETUPwidth{0pt}%
@@ -724,11 +790,13 @@
\startXMLmapping[zero]
-\defineXMLenvironmentsave [cd:command] [name=,type=,generated=,interactive=]
+\defineXMLenvironmentsave [cd:command] [name=,type=,generated=,interactive=,variant=]
{}
{\doifelseXMLop{type}{environment}
{\edef\currentSETUPname{start\getinterfacecomponent{string}{\XMLop{name}}}}
{\edef\currentSETUPname{\getinterfacecomponent{string}{\XMLop{name}}}}%
+ \doifsomething{\XMLop{variant}}
+ {\edef\currentSETUPname{\currentSETUPname:\XMLop{variant}}}% like setupinterlinespace:1
\doifXMLop{generated}{yes}
{\edef\currentSETUPname{\currentSETUPname*}}%
\doglobal\saveXMLdatainelement{stp:\currentSETUPname}{cd:command}{cd:command}%
@@ -737,9 +805,20 @@
\stopXMLmapping
-\def\loadsetups
- {\startXMLmapping[zero]
- \processXMLfilegrouped{cont-en.xml}
- \stopXMLmapping}
+\def\loadsetups{\complexorsimple\loadsetups}
+
+\def\simpleloadsetups
+ {\doifnotmode{no-setup-main}
+ {\complexloadsetups[cont-en.xml]}}
+
+\def\complexloadsetups[#1]%
+ {\doifnotmode{no-setup-all}
+ {\doifsomething{#1}
+ {\startXMLmapping[zero]
+ \expanded{\processXMLfilegrouped{#1}}%
+ \stopXMLmapping}}}
+
+\defineXMLsingular [cd:include] [file=]
+ {\complexloadsetups[\XMLop{file}]}
\protect \endinput
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 f98761513b6..93055b86085 100644
--- a/Master/texmf-dist/tex/context/base/x-set-12.tex
+++ b/Master/texmf-dist/tex/context/base/x-set-12.tex
@@ -18,19 +18,45 @@
\loadsetups
-\startinterface dutch \definecolor[LocalColor][green] \stopinterface
-\startinterface english \definecolor[LocalColor][red] \stopinterface
-\startinterface german \definecolor[LocalColor][blue] \stopinterface
-\startinterface czech \definecolor[LocalColor][magenta] \stopinterface
-\startinterface italian \definecolor[LocalColor][cyan] \stopinterface
-\startinterface romanian \definecolor[LocalColor][yellow] \stopinterface
-
-\startinterface english \definecolor[TitleColor][g=.5,b=.5] \stopinterface
-\startinterface dutch \definecolor[TitleColor][r=.5,b=.5] \stopinterface
-\startinterface german \definecolor[TitleColor][r=.5,g=.5] \stopinterface
-\startinterface italian \definecolor[TitleColor][r=.5] \stopinterface
-\startinterface czech \definecolor[TitleColor][g=.5] \stopinterface
-\startinterface romanian \definecolor[TitleColor][b=.5] \stopinterface
+\definecolor[TitleColor][r=.375,g=.125,b=.125]
+\definecolor[TitleColor][r=.125,g=.375,b=.125]
+\definecolor[TitleColor][r=.125,g=.125,b=.375]
+\definecolor[TitleColor][r=.375,g=.375,b=.125]
+\definecolor[TitleColor][r=.375,g=.125,b=.375]
+\definecolor[TitleColor][r=.125,g=.375,b=.375]
+
+\definecolor[TitleColor][r=.25,g=.20,b=.15]
+\definecolor[TitleColor][r=.25,g=.15,b=.20]
+\definecolor[TitleColor][r=.20,g=.15,b=.25]
+\definecolor[TitleColor][r=.20,g=.25,b=.15]
+\definecolor[TitleColor][r=.15,g=.20,b=.25]
+\definecolor[TitleColor][r=.15,g=.25,b=.20]
+
+\startinterface dutch \definecolor[LocalColor][r=.75,g=.25,b=.25] \stopinterface
+\startinterface english \definecolor[LocalColor][r=.25,g=.75,b=.25] \stopinterface
+\startinterface german \definecolor[LocalColor][r=.25,g=.25,b=.75] \stopinterface
+\startinterface french \definecolor[LocalColor][r=.75,g=.75,b=.25] \stopinterface
+\startinterface czech \definecolor[LocalColor][r=.75,g=.25,b=.75] \stopinterface
+\startinterface italian \definecolor[LocalColor][r=.25,g=.75,b=.75] \stopinterface
+\startinterface romanian \definecolor[LocalColor][r=.5,g=.4,b=.3] \stopinterface
+% \definecolor[LocalColor][r=.5,g=.3,b=.4]
+% \definecolor[LocalColor][r=.4,g=.3,b=.5]
+% \definecolor[LocalColor][r=.4,g=.5,b=.3]
+% \definecolor[LocalColor][r=.3,g=.4,b=.5]
+% \definecolor[LocalColor][r=.3,g=.5,b=.4]
+
+\startinterface english \definecolor[TitleColor][r=.375,g=.125,b=.125] \stopinterface
+\startinterface dutch \definecolor[TitleColor][r=.125,g=.375,b=.125] \stopinterface
+\startinterface german \definecolor[TitleColor][r=.125,g=.125,b=.375] \stopinterface
+\startinterface french \definecolor[TitleColor][r=.375,g=.375,b=.125] \stopinterface
+\startinterface italian \definecolor[TitleColor][r=.375,g=.125,b=.375] \stopinterface
+\startinterface czech \definecolor[TitleColor][r=.125,g=.375,b=.375] \stopinterface
+\startinterface romanian \definecolor[TitleColor][r=.25,g=.20,b=.15] \stopinterface
+% \definecolor[TitleColor][r=.25,g=.15,b=.20]
+% \definecolor[TitleColor][r=.20,g=.15,b=.25]
+% \definecolor[TitleColor][r=.20,g=.25,b=.15]
+% \definecolor[TitleColor][r=.15,g=.20,b=.25]
+% \definecolor[TitleColor][r=.15,g=.25,b=.20]
\definecolor [lightgray] [s=.9]
\definecolor [darkgray] [s=.1]
@@ -123,27 +149,47 @@
\setuplayout
[titlepage]
-\startmakeup[\v!standard]
- \dontcomplain
- \startcolor[TitleColor]
- \definedfont[RegularBold at 100pt]\setstrut
- \setupalign[\v!left]
- \strut Con\TeX t \par
- \definedfont[RegularBold at 50pt]\setstrut
+\startsetups text:commands
\startinterface dutch \strut commando's \par \stopinterface
\startinterface english \strut commands \par \stopinterface
\startinterface german \strut befehle \par \stopinterface
- \startinterface czech \strut prikaz\'y \par \stopinterface
+ \startinterface french \strut commandes \par \stopinterface
+ \startinterface czech \strut p\v{r}ikazy \par \stopinterface
\startinterface italian \strut comandi \par \stopinterface
\startinterface romanian \strut comenzile \par \stopinterface
- \vfill
- \definedfont[RegularBold at 150pt]\setstrut
+\stopsetups
+
+\startsetups text:uppercase
\startinterface dutch NL\stopinterface
\startinterface english EN\stopinterface
\startinterface german DE\stopinterface
+ \startinterface french FR\stopinterface
\startinterface czech CZ\stopinterface
\startinterface italian IT\stopinterface
\startinterface romanian RO\stopinterface
+\stopsetups
+
+\startsetups text:lowercase
+ \startinterface dutch \strut nl / nederlands \par \stopinterface
+ \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 italian \strut it / italiano \par \stopinterface
+ \startinterface romanian \strut ro / rom\^{a}n\u{a} \par \stopinterface
+\stopsetups
+
+\startmakeup[\v!standard]
+ \dontcomplain
+ \startcolor[TitleColor]
+ \definedfont[RegularBold at 100pt]\setstrut
+ \setupalign[\v!left]
+ \strut Con\TeX t \par
+ \definedfont[RegularBold at 50pt]\setstrut
+ \setups[text:commands]
+ \vfill
+ \definedfont[RegularBold at 150pt]\setstrut
+ \setups[text:uppercase]
\stopcolor
\stopmakeup
@@ -160,20 +206,10 @@
\setupalign[\v!left]
\strut Con\TeX t \par
\definedfont[RegularBold at 50pt]\setstrut
- \startinterface dutch \strut commando's \par \stopinterface
- \startinterface english \strut commands \par \stopinterface
- \startinterface german \strut befehle \par \stopinterface
- \startinterface czech \strut prikaz\'y \par \stopinterface
- \startinterface italian \strut comandi \par \stopinterface
- \startinterface romanian \strut comenzile \par \stopinterface
+ \setups[text:commands]
\vfill
\definedfont[RegularBold at 24pt]\setupinterlinespace
- \startinterface dutch \strut nl / nederlands \par \stopinterface
- \startinterface english \strut en / english \par \stopinterface
- \startinterface german \strut de / deutsch \par \stopinterface
- \startinterface czech \strut cz / \^cesk\'y \par \stopinterface
- \startinterface italian \strut it / italiano \par \stopinterface
- \startinterface romanian \strut ro / rom\^{a}n\u{a} \par \stopinterface
+ \setups[text:lowercase]
\par \strut \currentdate \par
\stopcolor
\stopmakeup
diff --git a/Master/texmf-dist/tex/context/base/x-sm2om.xsl b/Master/texmf-dist/tex/context/base/x-sm2om.xsl
new file mode 100644
index 00000000000..241452dbf52
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-sm2om.xsl
@@ -0,0 +1,229 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ This style sheet is used in the Math4All project. This project
+ will provide an on-line math method for secondary and tertiary
+ education. In addition to the web-bases content the project
+ provides high quality typeset output as well.
+
+ This style converts some elements to open math alternatives and
+ its sole purpose is to easy the input of inline math.
+
+ <i>x</i> identifier (use <v>x</v> when possible)
+ <n>5</n> number
+ <v>5</v> variable
+ <r>1:2</r> interval (range)
+ <r>x:y</r> interval (range) using variables
+
+ This style is dedicated to Frits Spijkers, an open minded math
+ author who patiently tested all the related TeX things.
+
+ Hans Hagen, PRAGMA ADE, Hasselt NL / 2006-04-27
+
+-->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+ <xsl:output method="xml"/>
+
+ <xsl:template match="processing-instruction()"><xsl:copy/><xsl:text>
+ </xsl:text></xsl:template>
+
+ <xsl:template match="node()|@*" >
+ <xsl:copy>
+ <xsl:apply-templates select = "node()|@*" />
+ </xsl:copy>
+ </xsl:template>
+
+ <xsl:template match="comment"></xsl:template>
+
+ <xsl:variable name='openmath-to-content-mathml'><value-of select='$stylesheet-path'/>/x-openmath.xsl</xsl:variable>
+
+ <xsl:template name='om-minus'>
+ <OMS cd="arith1" name="unary_minus"/>
+ </xsl:template>
+ <xsl:template name='om-infinity'>
+ <OMS cd="nums1" name="infinity"/>
+ </xsl:template>
+ <xsl:template name='om-interval-oo'>
+ <OMS cd="interval1" name="interval_oo"/>
+ </xsl:template>
+ <xsl:template name='om-interval-oc'>
+ <OMS cd="interval1" name="interval_oc"/>
+ </xsl:template>
+ <xsl:template name='om-interval-co'>
+ <OMS cd="interval1" name="interval_co"/>
+ </xsl:template>
+ <xsl:template name='om-interval-cc'>
+ <OMS cd="interval1" name="interval_cc"/>
+ </xsl:template>
+
+ <xsl:template name='om-kind-of-data'>
+ <xsl:param name='arg'/>
+ <xsl:choose>
+ <xsl:when test="contains($arg,'/')">
+ <xsl:element name="OMA">
+ <xsl:element name="OMS">
+ <xsl:attribute name="cd">nums1</xsl:attribute>
+ <xsl:attribute name="name">rational</xsl:attribute>
+ </xsl:element>
+ <xsl:call-template name="om-kind-of-data">
+ <xsl:with-param name='arg' select="substring-before($arg,'/')"/>
+ </xsl:call-template>
+ <xsl:call-template name="om-kind-of-data">
+ <xsl:with-param name='arg' select="substring-after($arg,'/')"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="contains($arg,'.') or contains($arg,',')">
+ <xsl:element name="OMF">
+ <xsl:attribute name="dec"><xsl:value-of select="$arg"/></xsl:attribute>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="number($arg)">
+ <xsl:choose>
+ <xsl:when test="contains($arg,'-')">
+ <xsl:element name="OMA">
+ <xsl:call-template name='om-minus'/>
+ <xsl:element name="OMI">
+ <xsl:value-of select="substring-after($arg,'-')"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="contains($arg,'+')">
+ <xsl:element name="OMI">
+ <xsl:value-of select="substring-after($arg,'+')"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="OMI">
+ <xsl:value-of select="$arg"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="OMV">
+ <xsl:attribute name="name"><xsl:value-of select="$arg"/></xsl:attribute>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match='i|n'>
+ <xsl:element name="OMOBJ">
+ <xsl:attribute name="xmlns">http://www.openmath.org/OpenMath</xsl:attribute>
+ <xsl:attribute name="version">2.0</xsl:attribute>
+ <xsl:call-template name="om-kind-of-data">
+ <xsl:with-param name='arg' select="text()"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match='v'>
+ <xsl:element name="OMOBJ">
+ <xsl:attribute name="xmlns">http://www.openmath.org/OpenMath</xsl:attribute>
+ <xsl:attribute name="version">2.0</xsl:attribute>
+ <xsl:element name="OMV">
+ <xsl:attribute name="name"><xsl:apply-templates/></xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+
+ <!-- r a/b split in two parts -->
+
+ <xsl:template match='r'>
+ <xsl:element name="OMOBJ">
+ <xsl:attribute name="xmlns">http://www.openmath.org/OpenMath</xsl:attribute>
+ <xsl:attribute name="version">2.0</xsl:attribute>
+ <xsl:element name="OMA">
+ <xsl:variable name='type'>
+ <xsl:choose>
+ <xsl:when test="@type=''">
+ cc
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@type"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="@type='io'">
+ <xsl:call-template name='om-interval-oo'/>
+ <xsl:element name="OMA">
+ <xsl:call-template name='om-minus'/>
+ <xsl:call-template name='om-infinity'/>
+ </xsl:element>
+ <xsl:element name="OMI">
+ <xsl:call-template name='om-kind-of-data'>
+ <xsl:with-param name='arg' select='text()'/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@type='oi'">
+ <xsl:call-template name='om-interval-oo'/>
+ <xsl:element name="OMI">
+ <xsl:call-template name='om-kind-of-data'>
+ <xsl:with-param name='arg' select='text()'/>
+ </xsl:call-template>
+ </xsl:element>
+ <xsl:call-template name='om-infinity'/>
+ </xsl:when>
+ <xsl:when test="@type='ic'">
+ <xsl:call-template name='om-interval-oc'/>
+ <xsl:element name="OMA">
+ <xsl:call-template name='om-minus'/>
+ <xsl:call-template name='om-infinity'/>
+ </xsl:element>
+ <xsl:element name="OMI">
+ <xsl:call-template name='om-kind-of-data'>
+ <xsl:with-param name='arg' select='text()'/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@type='ci'">
+ <xsl:call-template name='om-interval-co'/>
+ <xsl:element name="OMI">
+ <xsl:call-template name='om-kind-of-data'>
+ <xsl:with-param name='arg' select='text()'/>
+ </xsl:call-template>
+ </xsl:element>
+ <xsl:call-template name='om-infinity'/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="OMS">
+ <xsl:attribute name="cd">interval1</xsl:attribute>
+ <xsl:attribute name="name">interval_<xsl:value-of select="$type"/></xsl:attribute>
+ </xsl:element>
+ <xsl:call-template name="om-kind-of-data">
+ <xsl:with-param name='arg' select="substring-before(text(),':')"/>
+ </xsl:call-template>
+ <xsl:call-template name="om-kind-of-data">
+ <xsl:with-param name='arg' select="substring-after(text(),':')"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match='c'>
+ <xsl:element name="OMOBJ">
+ <xsl:attribute name="xmlns">http://www.openmath.org/OpenMath</xsl:attribute>
+ <xsl:attribute name="version">2.0</xsl:attribute>
+ <xsl:element name="OMA">
+ <xsl:element name="OMS">
+ <xsl:attribute name="cd">linalg3</xsl:attribute>
+ <xsl:attribute name="name">vector</xsl:attribute>
+ </xsl:element>
+ <xsl:call-template name="om-kind-of-data">
+ <xsl:with-param name='arg' select="substring-before(text(),':')"/>
+ </xsl:call-template>
+ <xsl:call-template name="om-kind-of-data">
+ <xsl:with-param name='arg' select="substring-after(text(),':')"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/Master/texmf-dist/tex/context/base/x-xml-11.tex b/Master/texmf-dist/tex/context/base/x-xml-11.tex
index bdacd97c232..81fbac5b4c5 100644
--- a/Master/texmf-dist/tex/context/base/x-xml-11.tex
+++ b/Master/texmf-dist/tex/context/base/x-xml-11.tex
@@ -14,8 +14,11 @@
% xmltools --analyze yourfile.xml
% texexec --use=xml-analyze yourfile.*
-\doifnothing {\inputfilename} {\end}
-\doiffileelse {\inputfilename} {} {\end}
+% \doifnothing {\inputfilename} {\end}
+% \doiffileelse {\inputfilename} {} {\end}
+
+\doifnothing {\jobfullname} {\end}
+\doiffileelse {\jobfullname} {} {\end}
\useXMLfilter[ent]
\useXMLfilter[utf]
@@ -30,6 +33,7 @@
[SomeElement]
[ownnumber=yes,
style=\tfb,
+ numberstyle=\tfxx,
alternative=margin]
\setuplayout
@@ -41,7 +45,7 @@
header=0pt]
\setupfootertexts
- [\inputfilename]
+ [\jobfullname] % [\inputfilename]
\usetypescript[modern][texnansi] \setupbodyfont[modern,tt,10pt]
@@ -51,8 +55,8 @@
{}
\defineXMLpickup
- [entities]
- {\page
+ [entities][n=0]
+ {\expanded{\SomeElement{\XMLop{n}}{Entities}}
\starttabulate[|l|p|]}
{\stoptabulate}
@@ -65,9 +69,34 @@
\noexpand \NR
\stopexpanded}
+\defineXMLpickup
+ [characters][n=0]
+ {\expanded{\SomeElement{\XMLop{n}}{Characters}}
+ \bgroup
+ \let\nonbreakablespace\empty % messes up the table
+ \starttabulate[|l|r|r|l|l|l|l|]}
+ {\stoptabulate
+ \egroup}
+
+% todo: narrowtt
+
+\defineXMLcommand
+ [character][number=,utf=,n=0,uname=,pname=,cname=]
+ {\startexpanded
+ \noexpand \NC \noexpand \unicodehexnumber{\XMLop{number}}
+ \noexpand \NC \XMLop{number}
+ \noexpand \NC \XMLop{n}
+ \noexpand \NC \noexpand \unicodechar {\XMLop{number}}
+ \noexpand \NC \tx \lowercase\expandafter{\XMLop{uname}}
+ \noexpand \NC \tx \noexpand \unicodepair {\XMLop{number}}
+ \noexpand \NC \tx \XMLop{cname}
+ \noexpand \NC
+ \noexpand \NR
+ \stopexpanded}
+
\defineXMLenvironment
[elements]
- {\page}
+ {}
{}
\newtoks \TabulateToks
@@ -98,6 +127,7 @@
\starttext
-\processXMLfilegrouped{\inputfilename}
+% \processXMLfilegrouped{\inputfilename}
+\processXMLfilegrouped{\jobfullname}
\stoptext
diff --git a/Master/texmf-dist/tex/context/base/xtag-cml.tex b/Master/texmf-dist/tex/context/base/xtag-cml.tex
index 1c80ac1a7b6..493d9eff340 100644
--- a/Master/texmf-dist/tex/context/base/xtag-cml.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-cml.tex
@@ -1,6 +1,6 @@
% see mathml, == \defineXMLdirective [mathml] \setupMMLappearance
-\unprotect
+\unprotect
\def\setupCMLappearance[#1]{\dodoubleargument\getparameters[@@CML#1]}
@@ -20,12 +20,12 @@
\remapXMLsequence [ion] [CPA] \doCMLion
\remapXMLsequence [atom] [CPA] \doCMLatom
-\setupCMLappearance [ion] [\c!variant=\v!a]
+\setupCMLappearance [ion] [\c!alternative=\v!a]
\let\CMLtopcaption\empty
\let\CMLbotcaption\empty
-\def\someCMLtext#1%
+\def\someCMLtext#1%
{\ifx\CMLtopcaption\empty
\setbox0\null
\else
@@ -37,14 +37,14 @@
\else
\setbox4\hbox{\txx\setstrut\strut\ignorespaces\CMLbotcaption\unskip}%
\fi
- \scratchdimen=\wd2\advance\scratchdimen-.5em
+ \scratchdimen=\wd2\advance\scratchdimen-.5em
\ifdim\wd0>\scratchdimen
\setbox0\hbox spread .5em{\hss\box0\hss}%
\fi
\ifdim\wd4>\scratchdimen
\setbox4\hbox spread .5em{\hss\box4\hss}%
\fi
- \setbox6=\vbox
+ \setbox6=\vbox
{\offinterlineskip\halign{\hss##\hss\cr\copy0\cr\copy2\cr\copy4\cr}}%
\hbox{\lower\ht4\hbox{\lower\dp2\box6}}}
@@ -80,12 +80,12 @@
\newcounter\nofCMLatoms
\getXMLarguments{cml-i}{n="0" charge="0" #1}%
\doifnotXMLzero{cml-i}{n}\firstofoneargument
- \doifelse\@@CMLionvariant\v!b
+ \doifelse\@@CMLionalternative\v!b
{[\ignorespaces\processXMLRchild{atom,bond/,%
singlebond/,doublebond/,triplebond/}{#2}\unskip]%
\high{\doifnotXMLzero{cml-i}{charge}\CMLscript}}
{\countXMLRchild{atom}{\ignorespaces#2\unskip}%
- \let\nofCMLatoms\nofXMLRchildren
+ \let\nofCMLatoms\nofXMLRchildren
\ignorespaces\processXMLRchild{atom,bond/,%
singlebond/,doublebond/,triplebond/}{#2}\unskip}%
\egroup}%
@@ -95,7 +95,6 @@
{\getXMLarguments{cml-a}{n="0" weight="0" protons="0" charge="0" #1}%
\increment\currentCMLatom
\resetCMLcaption
- %\processXMLRchild{caption}{#2}% not here
\someCMLtext
{\bgroup
\lohi
@@ -149,19 +148,19 @@
\def\doCMLequilibrium#1#2{\resetCMLcaption#2\someCMLequilibrium}
\def\doCMLmesomeric #1#2{\resetCMLcaption#2\someCMLmesomeric }
-\def\dosomeCMLarrow#1%
+\def\dosomeCMLarrow#1%
{\quad
\someCMLtext
{$\vcenter{\offinterlineskip\halign{##\cr\hskip3em\cr#1\cr}}$}%
\quad}
-\def\someCMLgives
+\def\someCMLgives
{\someCMLarrow{\rightarrowfill}}
\def\someCMLequilibrium
{\someCMLarrow{\rightarrowfill\cr\noalign{\nointerlineskip}\leftarrowfill}}
-\def\someCMLmesomeric
+\def\someCMLmesomeric
{\someCMLarrow{$\leftarrow\hskip-1em$\rightarrowfill}}
\remapXMLsequence [cml] [caption] [CPA] \doCMLcaption
@@ -182,7 +181,7 @@
\resetCMLcaption
-\remapXMLsingular [bond] [CPA] \doCMLbond
+\remapXMLsingular [bond] [CPA] \doCMLbond
\remapXMLsingular [singlebond] [CPA] \doCMLsinglebond
\remapXMLsingular [doublebond] [CPA] \doCMLdoublebond
\remapXMLsingular [triplebond] [CPA] \doCMLtriplebond
@@ -197,8 +196,8 @@
\doCMLtriplebond
\fi}
-\def\someCMLbond%
- {\hrule \!!width \hsize \!!height .1ex} % .4pt
+\def\someCMLbond
+ {\hrule \!!width \hsize \!!height .1ex} % .4pt
\def\dosomeCMLbond#1#2#3%
{{\setbox\scratchbox=\hbox{$M$}%
@@ -208,15 +207,15 @@
#1\vfill#2\vfill#3%
\vskip.1\wd\scratchbox}}}
-\def\doCMLsinglebond%
+\def\doCMLsinglebond
{\dosomeCMLbond\relax\someCMLbond\relax}
-\def\doCMLdoublebond%
+\def\doCMLdoublebond
{\dosomeCMLbond\someCMLbond\relax\someCMLbond}
-\def\doCMLtriplebond%
+\def\doCMLtriplebond
{\dosomeCMLbond\someCMLbond\someCMLbond\someCMLbond}
-\stopXMLmapping
+\stopXMLmapping
-\protect \endinput
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/xtag-ent.tex b/Master/texmf-dist/tex/context/base/xtag-ent.tex
index edb437ea5b6..83f1b11395a 100644
--- a/Master/texmf-dist/tex/context/base/xtag-ent.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-ent.tex
@@ -123,3 +123,4 @@
\defineXMLentity [dots] {\unknown}
\defineXMLentity [amp] {\&}
+\defineXMLentity [nbsp] {\nonbreakablespace}
diff --git a/Master/texmf-dist/tex/context/base/xtag-ext.tex b/Master/texmf-dist/tex/context/base/xtag-ext.tex
index aa522cc8c9b..f20cc05a0e4 100644
--- a/Master/texmf-dist/tex/context/base/xtag-ext.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-ext.tex
@@ -163,13 +163,25 @@
\gdef\saveXMLdata#1#2% name data-name ; definitely no \edef
{\dodoglobal\copycsname\@@XMLsave:#1\endcsname\csname\@@XMLdata:#2\endcsname}
+% \gdef\saveXMLdatainelement#1#2#3% name element data
+% {\dodoglobal\setevalue{\@@XMLsave:#1}% todo: one level expansion
+% {<#2 \currentXMLarguments>\XMLflush{#3}</#2>}}
+%
+% \gdef\saveXMLdatastructure#1#2#3#4#5#6% name element args before data after
+% {\dodoglobal\setevalue{\@@XMLsave:#1}% todo: one level expansion
+% {<#2 #3 \currentXMLarguments>#4\XMLflush{#5}#6</#2>}}
+%
+% better (no expansion):
+
+\newtoks\XMLdatatoks
+
\gdef\saveXMLdatainelement#1#2#3% name element data
- {\dodoglobal\setevalue{\@@XMLsave:#1}% todo: one level expansion
- {<#2 \currentXMLarguments>\XMLflush{#3}</#2>}}
+ {\XMLdatatoks\@EAEAEA{\csname\@@XMLdata:#3\endcsname}% no check
+ \dodoglobal\setevalue{\@@XMLsave:#1}{<#2 \currentXMLarguments>\the\XMLdatatoks</#2>}}
\gdef\saveXMLdatastructure#1#2#3#4#5#6% name element args before data after
- {\dodoglobal\setevalue{\@@XMLsave:#1}% todo: one level expansion
- {<#2 #3 \currentXMLarguments>#4\XMLflush{#5}#6</#2>}}
+ {\XMLdatatoks\@EAEAEA{\csname\@@XMLdata:#5\endcsname}% no check
+ \dodoglobal\setevalue{\@@XMLsave:#1}{<#2 #3 \currentXMLarguments>#4\the\XMLdatatoks#6</#2>}}
\gdef\gsaveXMLasdata {\doglobal\saveXMLasdata}
\gdef\gsaveXMLdata {\doglobal\saveXMLdata}
@@ -225,6 +237,11 @@
\@@XMLsave:\ifcsname\@@XMLsave:#1\endcsname#1\else\@@XMLsave\fi
\endcsname}
+\gdef\defXMLelement#1#2%
+ {\@EA\let\@EA#1\csname
+ \@@XMLsave:\ifcsname\@@XMLsave:#2\endcsname#2\else\@@XMLsave\fi
+ \endcsname}
+
\letgvalueempty{\@@XMLsave:\@@XMLsave}
\gdef\showXMLelement#1%
@@ -268,6 +285,33 @@
\egroup
+% \defineXMLcommand
+% [whatever]
+% [test=unknown]
+% {\XMLop{test}}
+%
+% \startXMLdata
+% <whatever test="{\bf test}"/>
+% \stopXMLdata
+%
+% \defineXMLcommand
+% [whatever]
+% [test=unknown]
+% {\defXMLtex\SomethingTex{\XMLop{test}}%
+% \SomethingTex}
+%
+% \startXMLdata
+% <whatever test="{\bf test}"/>
+% \stopXMLdata
+
+\def\defXMLtex#1#2% the appended space will go away when
+ {\begingroup % \scantokens is fixed
+ \disableXML
+ \everyeof{\noexpand}% br's hack
+ \edef\ascii{#2}%
+ \edef\ascii{\scantokens\expandafter{\ascii}}% space appended
+ \expandafter\endgroup\expandafter\def\expandafter#1\expandafter{\ascii}}
+
\def\potentialXMLentity#1%
{\doifXMLentityelse{#1}{\getXMLentity{#1}}{#1}}
@@ -305,7 +349,7 @@
{\csname\??xp#1\endcsname}
\appendtoks
- \defineXMLargument[\XMLprocessingparameter\c!escape]\getXMlentity
+ \defineXMLargument[\XMLprocessingparameter\c!escape]\getXMLentity
\to \aftersetupXMLprocessing
\setupXMLprocessing
@@ -320,12 +364,35 @@
\def\getXMLdeccharacter##1{\numbertoutf{##1}}%
\def\getXMLentity##1{<e>##1</e>}%
\def<{\noexpand<}%
+ \ifcase\xmlexpandmode
+ \or
+ % 1 = default
+ \or
+ % 2 = keep utf
+ \keeputfcharacters % new, needed for chinese and such
+ \fi
+ \let\uchar\relax
+ \let\unicodechar\relax
\xdef\@@globalexpanded{#1}%
\endgroup
\convertcommand\@@globalexpanded\to}
\egroup
-\installexpander \v!xml {\expandxmlargument}
+\chardef\xmlexpandmode\plusone
+
+\installexpander {xml} {\chardef\xmlexpandmode\plusone\expandxmlargument}
+\installexpander {xml:cmd} {\chardef\xmlexpandmode\plusone\expandxmlargument}
+\installexpander {xml:utf} {\chardef\xmlexpandmode\plustwo\expandxmlargument}
+
+\def\XMLtexmath#1{\begingroup\setnormalcatcodes\scantokens{\mathematics{#1}\ignorespaces}\endgroup}
+
+% \defineXMLargument[tm]{\XMLtexmath}
+%
+% \startbuffer[test]
+% Sometimes it makes sense to use simple math, as in: <tm>e=mc^2</tm>.
+% \stopbuffer
+%
+% \processXMLbuffer[test]
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/xtag-ini.tex b/Master/texmf-dist/tex/context/base/xtag-ini.tex
index 67a73bb3b8d..7579898faa1 100644
--- a/Master/texmf-dist/tex/context/base/xtag-ini.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-ini.tex
@@ -1857,7 +1857,8 @@
\@EA\let\csname\@@XMLelement:#1/\endcsname\donothing}
\long\gdef\dododefineXMLnestedenvironment#1#2#3%
- {\long\@EA\def\csname\@@XMLelement:#1\endcsname{\getXMLgroupedenvironment{#1}{#2}{#3}}}
+ {\long\@EA\def\csname\@@XMLelement:#1\endcsname{\getXMLgroupedenvironment{#1}{#2}{#3}}%
+ \long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2#3}}
\long\gdef\dododefineXMLnestedargument#1#2%
{\long\@EA\def\csname\@@XMLelement:#1\endcsname{\getXMLgroupedargument{#1}{#2}}%
@@ -2254,6 +2255,12 @@
\egroup
\convertcommand\@@XML@@string\to#1}
+\def\defXMLpar#1#2#3% to be documented
+ {\@EA\def\@EA#1\csname\ifcsname\@@XMLvariable:#2:#3\endcsname\@@XMLvariable:#2:#3\else\s!empty\fi\endcsname}
+
+\def\setvalueXMLpar#1#2#3% to be documented
+ {\@EA\let\csname#1\@EA\endcsname\csname\ifcsname\@@XMLvariable:#2:#3\endcsname\@@XMLvariable:#2:#3\else\s!empty\fi\endcsname}
+
\def\XMLshow#1%
{\showvalue{\@@XMLdata:#1}}
@@ -2766,10 +2773,10 @@
\def\douseXMLfilter#1%
{\doifundefined{\c!file\f!xtagprefix#1}
{\letvalue{\c!file\f!xtagprefix#1}\empty
- \makeshortfilename[\f!xtagprefix#1]%
- \writestatus{xml}{loading module #1}% will be \showmessage
+ \makeshortfilename[\truefilename{\f!xtagprefix#1}]%
\startreadingfile
- \readsysfile\shortfilename\donothing\donothing
+ % will be \showmessage
+ \readsysfile\shortfilename{\writestatus{xml}{loading module #1}}\donothing
\stopreadingfile}}
%D Temporarily here.
@@ -2798,23 +2805,14 @@
\let\dodogetgrouped\relax
\getXMLgrouped{#1}}
-%\long\gdef\docountXMLgrouped#1\end#2\end % @@ => \relax\relax
-% {\long\def\dosplitstring##1#1##2@@##3\end%
-% {\def\ascii{##2}%
-% \ifx\ascii\empty \else
-% \advance\scratchcounter 1
-% \dosplitstring##2@@#1@@\end
-% \fi}%
-% \dosplitstring#2@@#1@@\end}
-
\long\gdef\docountXMLgrouped#1\end#2\end % 1 relax is enough since it's
- {\long\def\dosplitstring##1#1##2\relax\relax##3\end % another regime
+ {\long\def\dosplitXMLstring##1#1##2\relax\relax##3\end % another regime
{\def\ascii{##2}%
\ifx\ascii\empty \else
\advance\scratchcounter \plusone
- \dosplitstring##2\relax\relax#1\relax\relax\end
+ \dosplitXMLstring##2\relax\relax#1\relax\relax\end
\fi}%
- \dosplitstring#2\relax\relax#1\relax\relax\end}
+ \dosplitXMLstring#2\relax\relax#1\relax\relax\end}
\long\unexpanded\gdef\getXMLgrouped#1% #1 kan weg % klopt dit nu?
{\groupedtoks\emptytoks
@@ -2872,4 +2870,24 @@
\def\XMLyes#1{\XMLownifequalelse{#1}{yes}{#1}{}}
+%D The next macro will set the variable \type {\flattenedXMLcontent}
+%D to the content with elements removed and entity names.
+
+\bgroup
+
+\catcode`\<\active
+\catcode`\&\active
+
+\gdef\flattenXMLcontent#1% we need taco's 'over one group'
+ {\begingroup
+ \keeputfcharacters
+ \def<##1>{}%
+ \def&##1;{##1}%
+ \edef\flattenedXMLcontent{#1}%
+ \edef\flattenedXMLcontent{\expandafter\dounspaced\flattenedXMLcontent\end}%
+ \@EA\endgroup
+ \@EA\def\@EA\flattenedXMLcontent\@EA{\flattenedXMLcontent}}
+
+\egroup
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/xtag-map.tex b/Master/texmf-dist/tex/context/base/xtag-map.tex
index 4ee23e750cb..6cd73442f57 100644
--- a/Master/texmf-dist/tex/context/base/xtag-map.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-map.tex
@@ -401,7 +401,7 @@
\appendtoks
\defineXMLentity[tex-hash]{\letterhash}%
- \defineXMLentity[tex-bar]{\myspecialvert}%
+ \defineXMLentity[tex-bar]{\myspecialnormalvert}%
\to \everyXMLremapping
\def\setnormalXMLentities% will change ! ! ! ! !
diff --git a/Master/texmf-dist/tex/context/base/xtag-mmc.tex b/Master/texmf-dist/tex/context/base/xtag-mmc.tex
index a6f7578c214..d4ee14c5994 100644
--- a/Master/texmf-dist/tex/context/base/xtag-mmc.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-mmc.tex
@@ -132,6 +132,10 @@ complex-cartesian=>\let\next\MMLccartesian,
{\encapsulatenextXMLRelements{\left(}{\MMLccomma}{\right)}}
{}}
+% \def\MMLcFNdefault#1#2% neg space needed because of \left
+% {#2\!% \getXMLentity{NegThinSpace}%
+% \MMLcreset\encapsulatenextXMLRelements{\left(}{\MMLccomma}{\right)}}
+
\def\MMLcCN#1% #2% can be sped up with \doifundefined ...
{\getXMLarguments{cn}{type="" #1}%
\doifXMLparelse{cn}{type}
@@ -533,8 +537,8 @@ complex-cartesian=>\let\next\MMLccartesian,
\doifelse\@@MMLtimesauto\v!no
{\let\@@MMLtimes@@symbol\@@MMLtimessymbol}
{\doifelseXMLRneighbors{cn}{#3}
- {\let\@@MMLtimes@@symbol\@@MMLtimesauto}
- {\let\@@MMLtimes@@symbol\v!no}}%
+ {\let\@@MMLtimes@@symbol\v!yes}
+ {\let\@@MMLtimes@@symbol\@@MMLtimessymbol}}%
\doifelse\@@MMLtimes@@symbol\v!yes
{\encapsulateXMLR{}{\times}{}{#3\empty}}
{\doifelse\@@MMLtimes@@symbol{dot}
diff --git a/Master/texmf-dist/tex/context/base/xtag-mml.tex b/Master/texmf-dist/tex/context/base/xtag-mml.tex
index b77063986dc..f2279c4f57f 100644
--- a/Master/texmf-dist/tex/context/base/xtag-mml.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-mml.tex
@@ -464,7 +464,7 @@
\defineXMLentity [nabla] {\nabla}
-\def\myspecialvert{\mathematics{\vert}} % temp hack, should stretch
+\def\myspecialnormalvert{\mathematics{\vert}} % temp hack, should stretch
\defineXMLentity [,] {{,}}
\defineXMLentity [.] {{.}}
@@ -474,7 +474,7 @@
\defineXMLentity [)] {)}
\defineXMLentity [<] {\mathematics{<}}
\defineXMLentity [>] {\mathematics{>}}
-\defineXMLentity [|] {\myspecialvert}
+\defineXMLentity [|] {\myspecialnormalvert}
\defineXMLentity [/] {/}
\defineXMLentity [*] {\times}
\defineXMLentity [=] {=}
diff --git a/Master/texmf-dist/tex/context/base/xtag-mmp.tex b/Master/texmf-dist/tex/context/base/xtag-mmp.tex
index 7cc6e5b2692..b733644e5fe 100644
--- a/Master/texmf-dist/tex/context/base/xtag-mmp.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-mmp.tex
@@ -57,18 +57,16 @@
\unprotect
-\startXMLmapping [mml]
-
\def\convertasciiafter#1#2%
{\convertargument#2\to\asciiafter
\@EA#1\@EA{\asciiafter}}
-%
-
\def\checkMMLoperator#1#2% temp hack
{\unspaceargument#1\to\ascii
\doifXMLentityelse\ascii{\getXMLentity\ascii}{#2}}
+\startXMLmapping [mml]
+
\remapXMLsequence [mi] [CPA] \MMLpMI
\remapXMLsequence [mn] [CPA] \MMLpMN
\remapXMLsequence [mo] [CPA] \MMLpMO
@@ -112,10 +110,10 @@
{\resetMMLseparator
\encapsulateXMLR
{}%
- {\pushmacro\myspecialvert % hack
- \def\myspecialvert{\;\vrule\;}%
+ {\pushmacro\myspecialnormalvert % hack
+ \def\myspecialnormalvert{\;\vrule\;}%
\grabMMLseparator{\XMLpar{mfenced}{separators}{}}%
- \popmacro\myspecialvert}
+ \popmacro\myspecialnormalvert}
{}%
{#2\empty}}
{#2}%
@@ -494,27 +492,16 @@
\def\pMULTISCRIPTmmlPRE#1#2#3#4%
{\ifdone
\ifodd\scratchcounter
- ^{\naturalxmlr{#1}{#2}{#3}{#4}}{}%
- \else
_{\naturalxmlr{#1}{#2}{#3}{#4}}%
+ \else
+ ^{\naturalxmlr{#1}{#2}{#3}{#4}}{}%
\fi
\else
\doif{mprescripts/}{#1}{\donetrue{}}% weak, the / here
\fi
- \ifdone \advance\scratchcounter 1 \fi}
+ \ifdone \advance\scratchcounter \plusone \fi}
-\def\pMULTISCRIPTmmlPOST#1#2#3#4%
- {\ifdone
- \ifnum\scratchcounter=0
- \naturalxmlr{#1}{#2}{#3}{#4}%
- \else\ifodd\scratchcounter
- _{\naturalxmlr{#1}{#2}{#3}{#4}}%
- \else
- ^{\naturalxmlr{#1}{#2}{#3}{#4}}{}%
- \fi\fi
- \fi
- \doif{mprescripts/}{#1}{\donefalse}% weak, the / here
- \ifdone \advance\scratchcounter 1 \fi}
+\let\pMULTISCRIPTmmlPOST\pMULTISCRIPTmmlPRE
\stopXMLmapping
diff --git a/Master/texmf-dist/tex/context/base/xtag-pml.tex b/Master/texmf-dist/tex/context/base/xtag-pml.tex
index 7371ec16507..b11d3d68dc7 100644
--- a/Master/texmf-dist/tex/context/base/xtag-pml.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-pml.tex
@@ -13,70 +13,71 @@
\writestatus{loading}{Context XML Macros (phys ml)}
-%D This filter runs on top of the mathml and units modules.
+%D This is a reimplmentation of the old filter. This module
+%D runs on top of the mathml and units modules.
-\useXMLfilter[mml,mmp,mmc,unt]
+\useXMLfilter[mml,mmp,mmc]
\defineXMLargument [phys] \doXMLphys
\defineXMLargument [iphys] \doXMLiphys
\defineXMLargument [dphys] \doXMLdphys
-\unprotect
+\unprotect
\unexpanded\def\doXMLphys {\ifhmode\@EA\doXMLiphys\else\@EA\doXMLdphys\fi}
\unexpanded\def\doXMLiphys{\XMLremapdata[mml]{$\ignorespaces}{\unskip$}}
\unexpanded\def\doXMLdphys{\XMLremapdata[mml]{\dostartformula{}}{\dostopformula}}
-\protect
+\protect
\doifnotmode{demo}{\endinput}
\usemodule[units]
-\starttext
+\starttext
\startXMLdata
-<phys>
- <apply> <times/>
+<phys>
+ <apply> <times/>
<cn> 10 </cn>
<ci><unit><Milli/><Sec/><Per/><Square/><Kilo/><Meter/></unit> </ci>
- </apply>
+ </apply>
</phys>
\stopXMLdata
\startXMLdata
-<phys>
- <apply> <divide/>
+<phys>
+ <apply> <divide/>
<cn> 10 </cn>
<ci> <unit><Unit/><Milli/><Sec/><Per/><Square/><Kilo/><Meter/></unit> </ci>
- </apply>
+ </apply>
</phys>
\stopXMLdata
\startXMLdata
-<phys>
- <apply> <times/>
+<phys>
+ <apply> <times/>
<cn> 10 </cn>
<ci> <unit> <Milli/> <Sec/> <Per/> <Square/> <Kilo/> <Meter/> </unit> </ci>
- </apply>
+ </apply>
</phys>
\stopXMLdata
\startXMLdata
-<phys>
- <apply> <times/>
+<phys>
+ <apply> <times/>
<cn> 10 </cn>
<ci> <unit><Milli/><Sec/><Per/><Square/><Kilo/><Meter/></unit> </ci>
- </apply>
+ </apply>
</phys>
\stopXMLdata
\startXMLdata
-<phys>
- <apply> <times/>
+<phys>
+ <apply> <times/>
<cn> 10 </cn>
<ci> <unit> <Milli/> <Sec/> <Per/> <Square/> <Kilo/> <Meter/> </unit> </ci>
- </apply>
+ </apply>
</phys>
\stopXMLdata
diff --git a/Master/texmf-dist/tex/context/base/xtag-pmu.tex b/Master/texmf-dist/tex/context/base/xtag-pmu.tex
index 425257b498a..0b9509f13d9 100644
--- a/Master/texmf-dist/tex/context/base/xtag-pmu.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-pmu.tex
@@ -13,7 +13,7 @@
\writestatus{loading}{Context XML Macros (units)}
-%D Quick and dirty in||line units:
+%D Quick and dirty in||line units:
%D
%D \startbuffer
%D <phys>
@@ -21,72 +21,72 @@
%D <cu> <Newton/> <Square/> <Meter/> <Per/> <Sec/> </cu>
%D </phys>
%D \stopbuffer
-%D
+%D
%D \typebuffer \processXMLbuffer
-%D
-%D A more \MATHML||like unit application:
+%D
+%D A more \MATHML||like unit application:
%D
%D \startbuffer
-%D <phys> <apply> <unit/>
-%D <cn> 10 </cn>
+%D <phys> <apply> <unit/>
+%D <cn> 10 </cn>
%D <csymbol> <Square/> <Meter/> <Per/> <Sec/> </csymbol>
-%D </apply> </phys>
+%D </apply> </phys>
%D \stopbuffer
-%D
+%D
%D \typebuffer \processXMLbuffer
-%D
-%D A bit more compact:
+%D
+%D A bit more compact:
%D
%D \startbuffer
-%D <phys> <apply> <unit/>
-%D <cn> 10 </cn>
+%D <phys> <apply> <unit/>
+%D <cn> 10 </cn>
%D <cu> <Square/> <Meter/> <Per/> <Sec/> </cu>
-%D </apply> </phys>
+%D </apply> </phys>
%D \stopbuffer
-%D
+%D
%D \typebuffer \processXMLbuffer
%D
-%D A bit more complicated:
-%D
+%D A bit more complicated:
+%D
%D \startbuffer
-%D <phys> <apply> <unit/>
-%D <apply> <divide/> <ci> a </ci> <cn> 10 </cn> </apply>
+%D <phys> <apply> <unit/>
+%D <apply> <divide/> <ci> a </ci> <cn> 10 </cn> </apply>
%D <cu> <Square/> <Meter/> <Per/> <Sec/> </cu>
-%D </apply> </phys>
+%D </apply> </phys>
%D \stopbuffer
-%D
+%D
%D \typebuffer \processXMLbuffer
-%D
-%D An alternative (equivalent) for \type {</cu>}:
+%D
+%D An alternative (equivalent) for \type {</cu>}:
%D
%D \startbuffer
-%D <phys> <apply> <unit/>
+%D <phys> <apply> <unit/>
%D <cn> 10 </cn> <cunseq> <Square/> <Meter/> <Per/> <Sec/> </cunseq>
-%D </apply> </phys>
+%D </apply> </phys>
%D \stopbuffer
-%D
+%D
%D \typebuffer \processXMLbuffer
\defineXMLsingular [unitmeaning] [label=] \doPMLunitmeaning
-\def\doPMLunitmeaning%
+\def\doPMLunitmeaning
{\expanded{\unitmeaning{\XMLop{label}}}}
-
+
\startXMLmapping [mml]
-\remapXMLsequence [unit] [CPA] \doPMLuseq
-\remapXMLsingular [unit] [CPA] \doPMLunit % #2\empty
+\remapXMLsequence [unit] [CPA] \doPMLuseq
+\remapXMLsingular [unit] [CPA] \doPMLunit % #2\empty
\remapXMLsequence [cunseq] [CPA] \doPMLuseq % #2
-\remapXMLsequence [cu] [CPA] \doPMLuseq % #2
+\remapXMLsequence [cu] [CPA] \doPMLuseq % #2
\newif\ifPMLunit \PMLunittrue
\def\doPMLuseq#1#2{\PMLunittrue\ignorespaces#2\unskip\PMLunitfalse}
-\def\doPMLunit#1#2\empty{\ignorespaces#2\unskip}
+\def\doPMLunit#1#2\empty{\ignorespaces#2\unskip}
\def\handlePMLunit#1{\ifPMLunit\ignorespaces#1\fi\ignorespaces}
-%D All unit commands are remapped in a similar way.
+%D All unit commands are remapped in a similar way.
\remapXMLsingular [Atto] [C] {\handlePMLunit\Atto}
\remapXMLsingular [Femto] [C] {\handlePMLunit\Femto}
@@ -180,9 +180,9 @@
\remapXMLsingular [Promille] [C] {\handlePMLunit\Promille}
\remapXMLsingular [Permille] [C] {\handlePMLunit\Permille}
-\remapXMLsingular [Unit] [C] {\handlePMLunit\Unit}
+\remapXMLsingular [Unit] [C] {\handlePMLunit\Unit}
\remapXMLsingular [NoUnit] [C] {\handlePMLunit\NoUnit}
\stopXMLmapping
-\endinput
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/xtag-pre.tex b/Master/texmf-dist/tex/context/base/xtag-pre.tex
index e589e39bed8..da720bbc77c 100644
--- a/Master/texmf-dist/tex/context/base/xtag-pre.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-pre.tex
@@ -411,4 +411,24 @@
%
% \defineXMLsingular [gobblespacetokens] {\gobblespacetokens}
+%D We automatically switch regimes (beware of nested files!):
+%D
+%D \starttyping
+%D \startXMLdata
+%D <?xml version='1.0' encoding='utf-8'?>
+%D ÀÃÂÃÄÅàáâãäåÆÇæç
+%D ÈÉÊËèéêëÌÃÃŽÃÞìíîïþ
+%D ÃðÑñÒÓÔÕÖòóôõöØø
+%D ÙÚÛÜùúûÃýÿß
+%D \stopXMLdata
+%D \stoptyping
+
+\defineXMLprocessor [xml] {\handleXMLbanner}
+
+\def\handleXMLbanner#1%
+ {\getXMLarguments{xml}{\s!encoding='' #1}%
+ \doifsomething{\XMLpar{xml}\s!encoding\empty}
+ {\doif\currentregime\s!default % style regimes will take precedence
+ {\enableregime[\XMLpar{xml}\s!encoding\empty]}\donothing}}
+
\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 6d1d3078d17..face9f0b0b3 100644
--- a/Master/texmf-dist/tex/context/base/xtag-run.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-run.tex
@@ -172,7 +172,7 @@
{\def\docommando##1{#1[##1]#2#3\letvalue{\@@XMLshow:##1}\empty}%
\processcommalist[#4]\docommando}
-\gdef\showXMLinh[#1]%
+\gdef\showXMLign[#1]%
{\setXMLshow\defineXMLignore \relax\relax[#1]%
\setXMLshow\defineXMLsingular \relax\relax[#1]}
@@ -305,7 +305,7 @@
\fi}%
\egroup}
-\gdef\showXMLinh#1%
+\gdef\showXMLinh[#1]%
{\doifsomething{#1}
{\bgroup\infofont[%
\dorecurse\XMLdepth
diff --git a/Master/texmf-dist/tex/context/base/xtag-stk.tex b/Master/texmf-dist/tex/context/base/xtag-stk.tex
new file mode 100644
index 00000000000..32b2b87dfad
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/xtag-stk.tex
@@ -0,0 +1,235 @@
+%D \module
+%D [ file=xtag-exp,
+%D version=2006.01.19,
+%D title=\CONTEXT\ XML Support,
+%D subtitle=Stacking 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.
+
+\beginTEX
+ \writestatus{XML}{sorry, XML is only supported in (pdf)etex}
+ \endinput
+\endTEX
+
+\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.
+
+\unprotect
+
+\ifx\XMLRtoks \undefined \newtoks \XMLRtoks \fi
+\ifx\XMLstacklevel\undefined \newcount\XMLstacklevel \fi
+
+\def\@@xmlstack{xmlstack}
+
+\let\XMLstackid\empty
+
+\def\resetXMLelements
+ {\XMLstacklevel\zerocount}
+
+\def\startsavingXMLelements % maybe something with \ignorespaces \\removeunwantedspaces
+ {\XMLstacklevel\zerocount
+ \let\normalexecuteXMLelement\executeXMLelement
+ \def\executeXMLelement{\csname\@@XMLelement:\@@xmlstack\ifcase\kindofXMLelement\or\or\or/\fi\endcsname}}
+
+\def\stopsavingXMLelements
+ {\let\executeXMLelement\normalexecuteXMLelement}
+
+\defineXMLnestedenvironmentsave
+ [\@@xmlstack]
+ {}
+ {\pushXMLdataonstack}
+
+\startXMLmapping[xmlstack:test]
+
+ \defineXMLnestedenvironmentsave
+ [\@@xmlstack]
+ {}
+ {\pushXMLnameonstack}
+
+ % in mathml handler:
+ %
+ % \defineXMLnested
+ % [apply]
+ % {\startsavingXMLelements}
+ % {\stopsavingXMLelements}
+
+\stopXMLmapping
+
+\def\pushXMLdataonstack
+ {\advance\XMLstacklevel\plusone
+ \letvalue {\@@xmlstack:n:\XMLstackid:\number\XMLstacklevel}\currentXMLelement
+ \saveXMLdata {\@@xmlstack:t:\XMLstackid:\number\XMLstacklevel} \@@xmlstack
+ \saveXMLdatainelement{\@@xmlstack:d:\XMLstackid:\number\XMLstacklevel}\currentXMLelement\@@xmlstack}
+
+\def\pushXMLnameonstack
+ {\advance\XMLstacklevel\plusone
+ \letvalue {\@@xmlstack:n:\XMLstackid:\number\XMLstacklevel}\currentXMLelement}
+
+\def\eraseXMLdataonstack#1%
+ {\letvalue{\@@xmlstack:n:\XMLstackid:\number#1}\empty
+ \XMLerase{\@@xmlstack:t:\XMLstackid:\number#1}%
+ \XMLerase{\@@xmlstack:d:\XMLstackid:\number#1}}
+
+\def\getXMLstackdata{\getXMLstackiddata\XMLstackid}
+\def\getXMLstackname{\getXMLstackidname\XMLstackid}
+\def\getXMLstacktext{\getXMLstackidtext\XMLstackid}
+
+\def\getXMLstackiddata#1#2{\flushXMLelement{\@@xmlstack:d:#1:\ifnum#2>\XMLstacklevel\else\number#2\fi}}
+\def\getXMLstackidname#1#2{\getvalue {\@@xmlstack:n:#1:\ifnum#2>\XMLstacklevel\else\number#2\fi}}
+\def\getXMLstackidtext#1#2{\flushXMLelement{\@@xmlstack:t:#1:\ifnum#2>\XMLstacklevel\else\number#2\fi}}
+
+\def\rawXMLstackdata{\rawXMLstackiddata\XMLstackid}
+\def\rawXMLstackname{\rawXMLstackidname\XMLstackid}
+\def\rawXMLstacktext{\rawXMLstackidtext\XMLstackid}
+
+\def\rawXMLstackiddata#1#2{\flushXMLelement{\@@xmlstack:d:#1:\number#2}}
+\def\rawXMLstackidname#1#2{\getvalue {\@@xmlstack:n:#1:\number#2}}
+\def\rawXMLstackidtext#1#2{\flushXMLelement{\@@xmlstack:t:#1:\number#2}}
+
+\def\defXMLstackiddata#1#2#3%
+ {\defXMLelement#1{\@@xmlstack:d:#2:\ifnum#3>\XMLstacklevel\else\number#3\fi}}
+
+\def\defXMLstackdata#1% #2
+ {\defXMLstackiddata#1\XMLstackid}
+
+\def\showXMLstacknames
+ {\hbox{[\space\dorecurse\XMLstacklevel{\getXMLstackname\recurselevel\space}]}}
+
+\def\flushXMLstackfrom#1%
+ {\dostepwiserecurse{#1}\XMLstacklevel\plusone
+ {\getXMLstackdata\recurselevel}}
+
+\def\flushXMLstackwith#1#2%
+ {\dostepwiserecurse{#1}\XMLstacklevel\plusone
+ {\relax\ifnum\recurselevel>#1\relax#2\fi
+ \getXMLstackdata\recurselevel}}
+
+\def\flushXMLnamedstackwith#1#2#3%
+ {\dostepwiserecurse{#1}\XMLstacklevel\plusone
+ {\expanded{\doifinset{\getXMLstackname\recurselevel}{#2}}
+ {\ifnum\recurselevel>#1\relax#3\fi
+ \getXMLstackdata\recurselevel}}}
+
+\def\countXMLnamedstack#1% todo: \nofXMLchildren ! ! ! ! !
+ {\scratchcounter\zerocount
+ \dorecurse\XMLstacklevel
+ {\expanded{\doifinset{\getXMLstackname\recurselevel}{#1}}
+ {\advance\scratchcounter\plusone}}}
+
+\def\collectXMLstack#1%
+ {\XMLRtoks\emptytoks
+ \dorecurse\XMLstacklevel
+ {\ifnum\recurselevel>\plusone\appendtoks#1\to\XMLRtoks\fi
+ \expandafter\appendtoks\expandafter\getXMLstackdata\expandafter{\recurselevel}\to\XMLRtoks}}
+
+\def\collectXMLstackrows#1#2%
+ {\XMLRtoks\emptytoks
+ \dostepwiserecurse{#1}\XMLstacklevel\plusone
+ {\ifnum\recurselevel>#1\appendtoks#2\to\XMLRtoks\fi
+ \expandafter\appendtoks\expandafter\getXMLstackdata\expandafter{\recurselevel}\to\XMLRtoks}}
+
+\def\collectXMLnamedstack#1#2%
+ {\XMLRtoks\emptytoks
+ \dorecurse\XMLstacklevel
+ {\expanded{\doifinset{\getXMLstackname\recurselevel}{#1}}
+ {\ifnum\recurselevel>\plusone\appendtoks#2\to\XMLRtoks\fi
+ \expandafter\appendtoks\expandafter\getXMLstackdata\expandafter{\recurselevel}\to\XMLRtoks}}}
+
+\def\collectXMLnamedstacknamed#1#2#3% names, inbetween, nestednames (maddness, this macro)
+ {\XMLRtoks\emptytoks
+ \!!doneafalse
+ \let\globalascii\empty
+ \dorecurse\XMLstacklevel
+ {\expanded{\doifinset{\getXMLstackname\recurselevel}{#1}}
+ {\begingroup
+ \startsavingXMLelements
+ \rawXMLstacktext\recurselevel % still on stack, raw does not test
+ \stopsavingXMLelements
+ \let\globalascii\empty
+ \dorecurse\XMLstacklevel
+ {\expanded{\doifinset{\getXMLstackname\recurselevel}{#2}}
+ {\xdef\globalascii{\getXMLstackdata\recurselevel}}}%
+ \endgroup
+ \ifx\globalascii\empty\else
+ \if!!donea\appendtoks#3\to\XMLRtoks\fi
+ \expandafter\appendtoks\globalascii\to\XMLRtoks
+ \!!doneatrue
+ \fi}}}
+
+\def\XMLcopydata#1#2% to from
+ {\@EA\let\csname\@@XMLdata:#1\@EA\endcsname\csname\@@XMLdata:#2\endcsname}
+\def\XMLcopysave#1#2% to from
+ {\@EA\let\csname\@@XMLsave:#1\@EA\endcsname\csname\@@XMLsave:#2\endcsname}
+
+\def\removeXMLdatafromstack#1%
+ {\dorecurse\XMLstacklevel
+ {\doif{\getXMLstackname\recurselevel}{#1}
+ {\dostepwiserecurse\recurselevel{\numexpr\XMLstacklevel+\minusone}\plusone
+ {\scratchcounter\numexpr\recurselevel+\plusone\relax
+ \@EA\let\csname\@@xmlstack:n:\XMLstackid:\recurselevel\@EA\endcsname\csname\@@xmlstack:n:\XMLstackid:\number\scratchcounter\endcsname
+ \XMLcopysave{\@@xmlstack:t:\XMLstackid:\recurselevel}{\@@xmlstack:t:\XMLstackid:\number\scratchcounter}%
+ \XMLcopysave{\@@xmlstack:d:\XMLstackid:\recurselevel}{\@@xmlstack:d:\XMLstackid:\number\scratchcounter}}%
+ \advance\XMLstacklevel\minusone
+ \exitloop}}}
+
+%D BEWARE: these names may change (get stack in the name)
+
+\def\XMLallnamed#1%
+ {\dorecurse\XMLstacklevel
+ {\expanded{\doifinset{\getXMLstackname\recurselevel}{#1}}
+ {\getXMLstackdata\recurselevel}}}
+
+\def\defXMLfirstnamed#1#2% \cs list
+ {\dorecurse\XMLstacklevel
+ {\expanded{\doifinset{\getXMLstackname\recurselevel}{#2}}
+ {\defXMLstackdata#1\recurselevel\exitloop}}}
+
+\def\defXMLfirstnamedtext#1#2% \cs list
+ {\dorecurse\XMLstacklevel
+ {\expanded{\doifinset{\getXMLstackname\recurselevel}{#2}}
+ {\edef#1{\getXMLstacktext\recurselevel}\exitloop}}}
+
+\def\XMLfirstnamed#1%
+ {\dorecurse\XMLstacklevel
+ {\expanded{\doifinset{\getXMLstackname\recurselevel}{#1}}
+ {\getXMLstackdata\recurselevel\exitloop}}}
+
+\def\XMLnotnamed#1%
+ {\dorecurse\XMLstacklevel
+ {\expanded{\doifnotinset{\getXMLstackname\recurselevel}{#1}}
+ {\getXMLstackdata\recurselevel\exitloop}}}
+
+\let\XMLstackposition\!!zerocount
+
+\def\XMLdoifonstackelse#1% was \XMLdoifelsefound
+ {\!!doneafalse
+ \let\XMLstackposition\!!zerocount
+ \dorecurse\XMLstacklevel
+ {\expanded{\doifinset{\getXMLstackname\recurselevel}{#1}}
+ {\let\XMLstackposition\recurselevel\!!doneatrue\exitloop}}%
+ \if!!donea
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+%D Handy:
+
+\def\pushXMLmeaning#1% or [#1]
+ {\@EA\pushmacro\csname\@@XMLelement:#1/\endcsname
+ \@EA\pushmacro\csname\@@XMLelement:#1\endcsname
+ \@EA\pushmacro\csname\@@XMLelement:/#1\endcsname}
+
+\def\popXMLmeaning#1% or [#1]
+ {\@EA\popmacro\csname\@@XMLelement:#1/\endcsname
+ \@EA\popmacro\csname\@@XMLelement:#1\endcsname
+ \@EA\popmacro\csname\@@XMLelement:/#1\endcsname}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/xtag-xsl.tex b/Master/texmf-dist/tex/context/base/xtag-xsl.tex
index 4d844c8e151..7981524d15d 100644
--- a/Master/texmf-dist/tex/context/base/xtag-xsl.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-xsl.tex
@@ -106,7 +106,7 @@
\doifundefined{\??xl#1}%
{\writestatus{XSLT}{unknown script #1}}
{\writestatus{XSLT}{convert #2 into #3 using #1}%
- \edef\par{\rawcharacter{13}}%
+ \edef\par{\rawcharacter{10}}%
\edef\!!stringc{\getvalue{\??xl#1}}%
\immediate\openout\scratchwrite=\XSLTscriptfile.xsl
\immediate\write\scratchwrite{\!!stringc}%
diff --git a/Master/texmf-dist/tex/context/bib/bibl-ams.tex b/Master/texmf-dist/tex/context/bib/bibl-ams.tex
new file mode 100644
index 00000000000..ddfe927c39e
--- /dev/null
+++ b/Master/texmf-dist/tex/context/bib/bibl-ams.tex
@@ -0,0 +1,438 @@
+%D \module
+%D [ file=bibl-ams,
+%D version=2005.11.18
+%D title=AMS bibliography style,
+%D subtitle=Publications,
+%D author={Taco Hoekwater, Giuseppe Bilotta},
+%D date=\currentdate,
+%D copyright={Public Domain}]
+%C
+%C Donated to the public domain. Use at your own risk
+
+\unprotect
+
+\setupcite
+ [author,year]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryear]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!yes,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryears]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!yes,
+ \c!inbetween={, },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [key,serial,authornum,page,short,type,doi,url]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={[},
+ \c!right={]}]
+
+\setupcite
+ [num]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!yes,
+ \c!inbetween={--},
+ \c!left={[},
+ \c!right={]}]
+
+\gdef\bibalignednumber#1{\hfill[#1]~~}
+
+\setuppublications[%
+ \c!sorttype=,
+ \c!criterium=,
+ \c!refcommand=num,
+ \c!numbercommand=\bibalignednumber,
+ \c!numbering=\v!yes,
+ \c!autohang=\v!yes]
+
+\setuppublicationlist
+ [\c!width=30pt,
+ \c!artauthor=\normalshortauthor,
+ \c!editor=\normalshortauthor,
+ \c!author=\normalshortauthor,
+ \c!namesep={, },
+ \c!lastnamesep={ and },
+ \c!finalnamesep={, and },
+ \c!firstnamesep={ },
+ \c!juniorsep={ },
+ \c!vonsep={ },
+ \c!surnamesep={},
+ \c!authoretallimit=4,
+ \c!editoretallimit=4,
+ \c!artauthoretallimit=4,
+ \c!authoretaldisplay=1,
+ \c!editoretaldisplay=1,
+ \c!artauthoretaldisplay=1,
+ \c!authoretaltext={ {\it et al.\/}},
+ \c!editoretaltext={ {\it et al.\/}},
+ \c!artauthoretaltext={ {\it et al.\/}}]
+
+\def\maybeyear#1{}
+
+\def\etalchar#1{#1}
+
+\def\insertNote#1#2#3{%
+ \begingroup
+ \sfcode`\.=1020
+ \insertnote{#1}{\ifnum\spacefactor=1020 \else .\fi}{#3}%
+ \endgroup
+}
+
+\def\insertEdition#1#2#3{%
+ \begingroup
+ \insertedition{#1}{\doifnumberelse{\csname @@pb@edition\endcsname}{%
+ \ifcase \csname @@pb@edition\endcsname \or st\or nd\or rd\else th\fi
+ }{}#2}{#3}%
+ \endgroup
+}
+
+%D \macros{insertchapter,insertpublisher}
+
+%D Some shortcuts.
+
+% ((#1(type\ |)chapter#2)|#3)
+
+\def\insertchap#1#2#3%
+ {\insertchapter
+ {#1\insertbibtype{}{\ }{chapter\ }}{#2}%
+ {#3}}
+
+\def\insertpublisher#1#2#3%
+ {\insertpubname
+ {#1}{\insertcity
+ {, }
+ {\insertcountry{, }{}{#2}}%
+ {\insertcountry{, }{}{#2}}}%
+ {\insertcity
+ {}{\insertcountry{, }{}{#2}}%
+ {\insertcountry{#1}{#2}{#3}}}%
+ }
+
+% some tricks with page ranges:
+
+\def\insertfirstpage#1#2#3{%
+ \@EA\bibdoifelse
+ \@EA{\csname @@pb@pages\endcsname}%
+ {#1\fixedfirstpage #2}%
+ {#3}%
+}
+
+\def\fixedfirstpage{\expanded{\doifinstringelse{-}{\csname @@pb@pages\endcsname}%
+ {\gobblelastdash\csname @@pb@pages\endcsname-\relax}{\csname @@pb@pages\endcsname}}}
+
+\protected\def\gobblelastdash#1-#2\relax{#1}
+
+\def\fixpp.{\expanded{\doifinstringelse{-}{\csname @@pb@pages\endcsname}{pp.}{p.}}}
+
+\setuppublicationlayout[article]{%
+ \insertartauthors{}{ }{\insertthekey{}{ }{}}%
+ \insertarttitle{\unskip, \bgroup\it }{\/\egroup}{}%
+ \insertjournal{\unskip, \bgroup }{\egroup}{}%
+ \insertvolume{ \bgroup\bf }{\egroup}{}%
+ \insertpubyear{ (}{)}{\unskip}%
+ \insertissue{\unskip, no.~}{}{}%
+ \insertpages{\unskip, }{}{}%
+ \insertNote{ }{.}{}%
+ \insertcomment{}{.}{}%
+}
+
+\newif\ifeditedbook
+\setuppublicationlayout[book]{%
+ \insertauthors{}{ }{\inserteditors{}{, editor%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{. }{}}}%
+ \inserttitle
+ {\unskip, \bgroup\it }%
+ {\/\egroup
+ \ifeditedbook
+ \global\editedbookfalse
+ \insertvolume
+ { Number~}%
+ {\insertseries
+ { in~\bgroup}%
+ {\egroup. }%
+ {\insertcrossref{ in~}{}{. }}}%
+ {\insertseries{ }{.}{} }%
+ \else
+ \insertcrossref
+ {\insertchap{, }{}{}%
+ \insertpages{, \fixpp. }{. }{. }%
+ \insertvolume{Volume~}{ of~}{}%
+ }%
+ {}%
+ {\insertvolume
+ {, volume~}%
+ {\insertseries
+ { of~\bgroup\it}%
+ {\egroup}
+ {}}
+ {}%
+ \insertchap{, }{}{}%
+ \insertpages{, p. }{. }{. }%
+ }%
+ \fi}%
+ { }%
+ \insertpubyear{(%
+ \insertpublisher
+ {}%
+ {, }%
+ {}%
+ }{)\insertEdition{, }{ ed. }{. }}{\unskip.}%
+% \insertpages{}{p. }{}%
+ \insertNote{ }{.}{}%
+}
+
+\setuppublicationlayout[inbook]{%
+ \insertauthors{}{}{\inserteditors{}{, editor%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{. }{}}}%
+ \inserttitle
+ {, \bgroup\it }%
+ {\/\egroup
+ \insertpubyear
+ { (%
+ \insertpubname{}{\insertcity{, }{, }{}}{}%
+ }
+ {)\insertEdition{, }{ ed.}{}}{}%
+ \ifeditedbook
+ \global\editedbookfalse
+ \insertvolume
+ { vol.~}%
+ {\insertseries
+ { in~\bgroup}%
+ {\egroup. }%
+ {\insertcrossref{ in~}{}{. }}}%
+ {\insertseries{ }{.}{} }%
+ \else
+ \insertcrossref
+ {\insertchap{, }{}{}%
+ \insertpages{, p. }{. }{. }%
+ \insertvolume{Volume~}{ of~}{}%
+ }%
+ {}%
+ {\insertvolume
+ {, vol.~}%
+ {\insertseries
+ { of~\bgroup\it}%
+ {\egroup}
+ {}}
+ {}%
+ \insertchap{, }{}{}%
+ \insertpages{, \fixpp. }{. }{. }%
+ }%
+ \fi }%
+ { }%
+ \insertNote{ }{.}{}%
+}
+
+\setuppublicationlayout[booklet]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpubyear{(%
+ \insertpublisher{}{, }{}%
+ }{)\insertEdition{, }{ ed. }{. }}{}%
+ \insertpages{}{p. }{}%
+ \insertNote{ }{.}{}%
+}
+
+\setuppublicationlayout[manual]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \inserttitle{\bgroup \it }{\/\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpubyear{(%
+ \insertorganization
+ {}%
+ {\insertcity{, }{, }{}}%
+ {\insertcity{}{, }{}}%
+ }{)\insertEdition{, }{ ed. }{. }}{}%
+ \insertpages{}{p. }{}%
+ \insertNote{ }{.}{}%
+}
+
+\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{ }{.}{}%
+}
+
+\setuppublicationlayout[inproceedings]{%
+ \insertauthors{}{ }{}%
+ \insertarttitle{\bgroup\it }{\/\egroup }{}%%
+ \inserttitle
+ {\unskip, in \bgroup\it}%
+ {\egroup
+ \inserteditors{, edited by }%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpubyear
+ { (%
+ \insertorganization
+ {}%
+ {\insertpubname{, }
+ {\insertcity{, }{}{}, }
+ {\insertcity{, }{}{}, }}%
+ {\insertpubname{}
+ {\insertcity{, }{}{}, }
+ {\insertcity{}{, }{}}}%
+ }
+ {)}{}%
+ \insertseries
+ {, \insertvolume{vol. }{~of }{}\bgroup\it}%
+ {\egroup}%
+ {}%
+ \insertpages
+ {\unskip, \fixpp.~}
+ {\unskip.}
+ {\unskip.}%
+ }%
+ { In \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, \fixpp.~}{. }{\unskip. }%
+ }%
+ \insertNote{ }{.}{}%
+}
+
+\setuppublicationlayout[proceedings]{%
+ \inserteditors{}{, ed%
+ \ifnum\getvalue{editor@num}> 1 s\fi.,
+ \ \global\editedbooktrue
+ }{\insertthekey{}{ }{}}%
+ \inserttitle
+ {\bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, number }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpubyear{(%
+ \insertorganization
+ {}%
+ {\insertpubname{, }{, }{}}%
+ {\insertpubname{}{, }{}}%
+ }
+ {)}
+ {}%
+ \insertpages
+ {\unskip, p.~}
+ {\insertcity{, }{}{}}
+ {\unskip\insertcity{, }{}{}}%
+ }%
+ {}%
+ \insertNote{\unskip. }{.}{.}%
+}
+
+\setuppublicationlayout[mastersthesis]{%
+ \insertauthors{}{, }{}%
+ \insertbibtype{}{, }{Master's thesis, }%
+ \insertpublisher{}{, }{}%
+ \insertpubyear{(}{)}{}%
+ \insertpages{\unskip, }{}{}%
+ \insertNote{\unskip. }{.}{\unskip.}%
+}
+
+\setuppublicationlayout[phdthesis]{%
+ \insertauthors{}{, }{}%
+ \insertbibtype{}{, }{Ph.D. thesis, }%
+ \insertpublisher{}{, }{}%
+ \insertpubyear{(}{)}{}%
+ \insertpages{\unskip, }{}{}%
+ \insertNote{\unskip. }{.}{\unskip.}%
+}
+
+\setuppublicationlayout[misc]{%
+ \insertauthors{}{%
+ \inserttitle{, \bgroup \it }{\egroup \insertseries{ (}{)}{} }{}%
+ }{%
+ \insertthekey{}{%
+ \inserttitle{, \bgroup \it }{\egroup \insertseries{ (}{)}{} }{}%
+ }{%
+ \inserttitle{, \bgroup \it }{\egroup \insertseries{ (}{)}{} }{}%
+ }}%
+ \insertpubyear{(%
+ \insertpublisher{}{, }{}%
+ }%
+ {)}%
+ {%
+ \inserthowpublished{\unskip, }{}{}%
+ }%
+ \insertpages{\unskip, }{}{}%
+ \inserteprint{\unskip, }{}{}%
+ \insertNote{\unskip. }{.}{\unskip.}%
+}
+
+\setuppublicationlayout[techreport]{%
+ \insertauthors{}{, }{}%
+ \inserttitle{\bgroup \it }{\egroup \insertseries{ (}{)}{} }{}%
+ \insertbibtype{}{}{Tech. Rep.}%
+ \insertvolume{ }{, }{, }%
+ \insertpublisher{}{ }{}%
+ \insertpubyear{(}{)}{}%
+ \insertpages{\unskip, }{}{}%
+ \insertNote{\unskip. }{.}{\unskip.}%
+}
+
+\setuppublicationlayout[unpublished]{%
+ \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-de.tex b/Master/texmf-dist/tex/context/bib/bibl-apa-de.tex
new file mode 100644
index 00000000000..8ab1f48ff81
--- /dev/null
+++ b/Master/texmf-dist/tex/context/bib/bibl-apa-de.tex
@@ -0,0 +1,388 @@
+% Test! Noch nicht übersetzt:
+% masters thesis
+%D \module
+%D [ file=bibl-apa,
+%D version=2004.7.16,
+%D title=APA bibliography style,
+%D subtitle=Publications,
+%D author={Taco Hoekwater},
+%D date=\currentdate,
+%D copyright={Public Domain}]
+%C
+%C Donated to the public domain. Use at your own risk
+
+\unprotect
+
+\setupcite
+ [author,year]
+ [\c!andtext={ und },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ und },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryear]
+ [\c!andtext={ und },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ und },
+ \c!compress=\v!yes,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryears]
+ [\c!andtext={ und },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ und },
+ \c!compress=\v!yes,
+ \c!inbetween={, },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [key,serial,authornum,page,short,type,doi,url]
+ [\c!andtext={ und },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ und },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={[},
+ \c!right={]}]
+
+\setupcite
+ [num]
+ [\c!andtext={ und },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ und },
+ \c!compress=\v!yes,
+ \c!inbetween={--},
+ \c!left={[},
+ \c!right={]}]
+
+\setuppublications[%
+ \c!sorttype=,
+ \c!criterium=,
+ \c!refcommand=authoryears,
+ \c!numbering=\v!no,
+ \c!autohang=\v!no]
+
+\setuppublicationlist
+ [\c!width=24pt,
+ \c!artauthor=\invertedshortauthor,
+ \c!editor=\invertedshortauthor,
+ \c!author=\invertedshortauthor,
+ \c!namesep={, },
+ \c!lastnamesep={ und },
+ \c!finalnamesep={ und },
+ \c!firstnamesep={, },
+ \c!juniorsep={ },
+ \c!vonsep={ },
+ \c!surnamesep={, },
+ \c!authoretallimit=5,
+ \c!editoretallimit=5,
+ \c!artauthoretallimit=5,
+ \c!authoretaldisplay=5,
+ \c!editoretaldisplay=5,
+ \c!artauthoretaldisplay=5,
+ \c!authoretaltext={ et al.},
+ \c!editoretaltext={ et al.},
+ \c!artauthoretaltext={ et al.},
+]
+
+\def\maybeyear#1{#1}
+
+\def\etalchar#1{#1}
+
+%D \macros{insertchapter,insertpublisher}
+
+%D Some shortcuts.
+
+% ((#1(type\ |)chapter#2)|#3)
+
+\def\insertchap#1#2#3%
+ {\insertchapter
+ {#1\insertbibtype{}{\ }{chapter\ }}{#2}%
+ {#3}}
+
+\def\insertpublisher#1#2#3%
+ {\insertpubname
+ {#1}{\insertcity
+ {, }
+ {\insertcountry{, }{}{#2}}%
+ {\insertcountry{, }{}{#2}}}%
+ {\insertcity
+ {}{\insertcountry{, }{}{#2}}%
+ {\insertcountry{#1}{#2}{#3}}}%
+ }
+
+
+\setuppublicationlayout[article]{%
+ \insertartauthors{}{ }{\insertthekey{}{ }{}}%
+ \insertpubyear{(}{). }{\unskip.}%
+ \insertarttitle{\bgroup }{\egroup. }{}%
+ \insertjournal{\bgroup \it}{\egroup}
+ {\insertcrossref{In }{}{}}%
+ \insertvolume
+ {, }
+ {\insertissue{(}{)}{}\insertpages{:}{.}{.}}
+ {\insertpages{, Seiten }{.}{.}}%
+ \insertnote{ }{.}{}%
+ \insertcomment{}{.}{}%
+}
+
+\newif\ifeditedbook
+\setuppublicationlayout[book]{%
+ \insertauthors{}{ }{\inserteditors{}{, Herausgeber%
+ \ \global\editedbooktrue
+ }{\insertthekey{}{. }{}}}%
+ \insertpubyear{(}{). }{\unskip.}%
+ \inserttitle
+ {\bgroup\it }%
+ {\/\egroup
+ \ifeditedbook
+ \global\editedbookfalse
+ \insertvolume
+ { Nummer~}%
+ {\insertseries
+ { in~\bgroup}%
+ {\egroup. }%
+ {\insertcrossref{ in~}{}{. }}}%
+ {\insertseries{ }{.}{} }%
+ \else
+ \insertcrossref
+ {\insertchap{, }{}{}%
+ \insertpages{, Seiten }{. }{. }%
+ \insertvolume{Band~}{ von~}{}%
+ }%
+ {}%
+ {\insertvolume
+ {, Band~}%
+ {\insertseries
+ { von~\bgroup\it}%
+ {\egroup}
+ {}}
+ {}%
+ \insertchap{, }{}{}%
+ \insertpages{, Seiten }{.}{.}%
+ }%
+ \fi}%
+ {}%
+ \insertpublisher
+ { }%
+ {\insertedition{, }{ Auflage.}{.}}%
+ {\insertedition{, }{ Auflage.}{}}%
+ \insertpages{ }{S. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[inbook]{%
+ \insertauthors{}{ }{\inserteditors{}{, Herausgeber%
+ \ \global\editedbooktrue
+ }{\insertthekey{}{. }{}}}%
+ \insertpubyear{(}{). }{\unskip.}%
+ \inserttitle
+ {\bgroup\it }%
+ {\/\egroup
+ \ifeditedbook
+ \global\editedbookfalse
+ \insertvolume
+ { Nummer~}%
+ {\insertseries
+ { in~\bgroup}%
+ {\egroup. }%
+ {\insertcrossref{ in~}{}{. }}}%
+ {\insertseries{ }{.}{} }%
+ \else
+ \insertcrossref
+ {\insertchap{, }{}{}%
+ \insertpages{, Seiten }{. }{. }%
+ \insertvolume{Band~}{ Von~}{}%
+ }%
+ {}%
+ {\insertvolume
+ {, Band~}%
+ {\insertseries
+ { von~\bgroup\it}%
+ {\egroup}
+ {}}
+ {}%
+ \insertchap{, }{}{}%
+ \insertpages{, Seiten }{. }{. }%
+ }%
+ \fi}%
+ { }%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ Auflage. }{. }}%
+ {\insertedition{, }{ Auflage. }{}}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[booklet]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ Auflage. }{. }}%
+ {\insertedition{, }{ Auflage. }{}}%
+ \insertpages{}{S. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[manual]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup \it }{\/\egroup \insertseries{ (}{)}{}. }{}%
+ \insertorganization
+ {}%
+ {\insertcity{, }%
+ {\insertedition{, }{ Auflage. }{. }}%
+ {\insertedition{, }{ Auflage. }{. }}}%
+ {\insertedition{, }{ Auflage. }{}}%
+ \insertpages{}{S. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[incollection]{%
+ \insertartauthors{}{ }{\insertthekey{}{. }{}}%
+ \insertpubyear{(}{). }{}%
+ \insertarttitle{\bgroup }{\egroup. }{}%
+ \inserttitle
+ {In \inserteditors{}%
+ {, Herausgeber, }%
+ {}%
+ \bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, Nummer }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, Seiten~}{. }{\unskip. }%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ Auflage. }{. }}%
+ {\insertedition{, }{ Auflage. }{}}%
+ }%
+ {In \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, Seiten~}{. }{\unskip. }%
+ }%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[inproceedings]{%
+ \insertauthors{}{ }{}%
+ \insertpubyear{(}{). }{}%
+ \insertarttitle{\bgroup }{\egroup. }{}%%
+ \inserttitle
+ {In \inserteditors{}%
+ {, Herausgeber, }%
+ {}%
+ \bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, Nummer }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages
+ {\unskip, Seiten~}
+ {\insertcity{, }{. }{. }}
+ {\unskip. }%
+ \insertorganization
+ {}%
+ {\insertpubname{, }{. }{. }}%
+ {\insertpubname{}{. }{}}% was {, }{. }{}
+ }%
+ {In \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, Seiten~}{. }{\unskip. }%
+ }%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[proceedings]{%
+ \inserteditors{}{, Herausgeber%
+ \ \global\editedbooktrue
+ }{\insertthekey{}{ }{}}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle
+ {\bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, Nummer }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, Seiten~}{\insertcity{, }{. }{. }}
+ {\unskip\insertcity{, }{. }{. }}%
+ \insertorganization
+ {}%
+ {\insertpubname{, }{. }{. }}%
+ {\insertpubname{, }{. }{}}%
+ }%
+ {}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[mastersthesis]{%
+ \insertauthors{}{ }{}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{, }{Master's thesis, }%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{S. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[phdthesis]{%
+ \insertauthors{}{ }{}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup\it }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{, }{Dissertation, }%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{S. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[misc]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}. }{}%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{S. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[techreport]{%
+ \insertauthors{}{ }{}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{\insertvolume{ }{, }{, }}{Technischer Bericht, }%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{S. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[unpublished]{%
+ \insertauthors{}{ }{}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{S. }{}%
+ \insertbibtype{(}{)}{}%
+ \insertnote{ }{.}{}%
+}
+
+\protect \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/bib/bibl-apa-fr.tex b/Master/texmf-dist/tex/context/bib/bibl-apa-fr.tex
new file mode 100644
index 00000000000..d2a1efb8ae7
--- /dev/null
+++ b/Master/texmf-dist/tex/context/bib/bibl-apa-fr.tex
@@ -0,0 +1,389 @@
+%D \module
+%D [ file=bibl-apa-fr,
+%D version=2005.12.15,
+%D title=APA fr bibliography style,
+%D subtitle=Publications,
+%D author={Renaud Aubin},
+%D date=\currentdate,
+%D copyright={Public Domain}]
+%C
+%C Donated to the public domain. Use at your own risk
+
+\unprotect
+
+\setupcite
+ [author,year]
+ [\c!andtext={ et },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ et },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryear]
+ [\c!andtext={ et },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ et },
+ \c!compress=\v!yes,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryears]
+ [\c!andtext={ et },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ et },
+ \c!compress=\v!yes,
+ \c!inbetween={, },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [key,serial,authornum,page,short,type,doi,url]
+ [\c!andtext={ et },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ et },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={[},
+ \c!right={]}]
+
+\setupcite
+ [num]
+ [\c!andtext={ et },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ et },
+ \c!compress=\v!yes,
+ \c!inbetween={--},
+ \c!left={[},
+ \c!right={]}]
+
+\setuppublications[%
+ \c!sorttype=,
+ \c!criterium=,
+ \c!refcommand=authoryears,
+ \c!numbering=\v!no,
+ \c!autohang=\v!no]
+
+\setuppublicationlist
+ [\c!width=24pt,
+ \c!artauthor=\invertedshortauthor,
+ \c!editor=\invertedshortauthor,
+ \c!author=\invertedshortauthor,
+ \c!namesep={, },
+ \c!lastnamesep={ et },
+ \c!finalnamesep={ et },
+ \c!firstnamesep={, },
+ \c!juniorsep={ },
+ \c!vonsep={ },
+ \c!surnamesep={, },
+ \c!authoretallimit=5,
+ \c!editoretallimit=5,
+ \c!artauthoretallimit=5,
+ \c!authoretaldisplay=5,
+ \c!editoretaldisplay=5,
+ \c!artauthoretaldisplay=5,
+ \c!authoretaltext={ et al.},
+ \c!editoretaltext={ et al.},
+ \c!artauthoretaltext={ et al.},
+]
+
+\def\maybeyear#1{#1}
+
+\def\etalchar#1{#1}
+
+%D \macros{insertchapter,insertpublisher}
+
+%D Some shortcuts.
+
+% ((#1(type\ |)chapter#2)|#3)
+
+\def\insertchap#1#2#3%
+ {\insertchapter
+ {#1\insertbibtype{}{\ }{chapter\ }}{#2}%
+ {#3}}
+
+\def\insertpublisher#1#2#3%
+ {\insertpubname
+ {#1}{\insertcity
+ {, }
+ {\insertcountry{, }{}{#2}}%
+ {\insertcountry{, }{}{#2}}}%
+ {\insertcity
+ {}{\insertcountry{, }{}{#2}}%
+ {\insertcountry{#1}{#2}{#3}}}%
+ }
+
+
+\setuppublicationlayout[article]{%
+ \insertartauthors{}{ }{\insertthekey{}{ }{}}%
+ \insertpubyear{(}{). }{\unskip.}%
+ \insertarttitle{\bgroup }{\egroup. }{}%
+ \insertjournal{\bgroup \it}{\egroup}
+ {\insertcrossref{Dans }{}{}}%
+ \insertvolume
+ {, }
+ {\insertissue{(}{)}{}\insertpages{:}{.}{.}}
+ {\insertpages{, pages }{.}{.}}%
+ \insertnote{ }{.}{}%
+ \insertcomment{}{.}{}%
+}
+
+\newif\ifeditedbook
+\setuppublicationlayout[book]{%
+ \insertauthors{}{ }{\inserteditors{}{, \'editeur%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{. }{}}}%
+ \insertpubyear{(}{). }{\unskip.}%
+ \inserttitle
+ {\bgroup\it }%
+ {\/\egroup
+ \ifeditedbook
+ \global\editedbookfalse
+ \insertvolume
+ { Num\'ero~}%
+ {\insertseries
+ { dans~\bgroup}%
+ {\egroup. }%
+ {\insertcrossref{ dans~}{}{. }}}%
+ {\insertseries{ }{.}{} }%
+ \else
+ \insertcrossref
+ {\insertchap{, }{}{}%
+ \insertpages{, pages }{. }{. }%
+ \insertvolume{Volume~}{ de~}{}%
+ }%
+ {}%
+ {\insertvolume
+ {, volume~}%
+ {\insertseries
+ { de~\bgroup\it}%
+ {\egroup}
+ {}}
+ {}%
+ \insertchap{, }{}{}%
+ \insertpages{, pages }{.}{.}%
+ }%
+ \fi}%
+ {}%
+ \insertpublisher
+ { }%
+ {\insertedition{, }{ \'edition.}{.}}%
+ {\insertedition{, }{ \'edition.}{}}%
+ \insertpages{ }{p. }{}%
+ \insertnote{}{.}{}%
+}
+
+\setuppublicationlayout[inbook]{%
+ \insertauthors{}{ }{\inserteditors{}{, \'editeur%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{. }{}}}%
+ \insertpubyear{(}{). }{\unskip.}%
+ \inserttitle
+ {\bgroup\it }%
+ {\/\egroup
+ \ifeditedbook
+ \global\editedbookfalse
+ \insertvolume
+ { number~}%
+ {\insertseries
+ { dans~\bgroup}%
+ {\egroup. }%
+ {\insertcrossref{ dans~}{}{. }}}%
+ {\insertseries{ }{.}{} }%
+ \else
+ \insertcrossref
+ {\insertchap{, }{}{}%
+ \insertpages{, pages }{. }{. }%
+ \insertvolume{Volume~}{ de~}{}%
+ }%
+ {}%
+ {\insertvolume
+ {, volume~}%
+ {\insertseries
+ { of~\bgroup\it}%
+ {\egroup}
+ {}}
+ {}%
+ \insertchap{, }{}{}%
+ \insertpages{, pages }{. }{. }%
+ }%
+ \fi}%
+ { }%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ \'edition. }{. }}%
+ {\insertedition{, }{ \'edition. }{}}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[booklet]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ \'edition. }{. }}%
+ {\insertedition{, }{ \'edition. }{}}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[manual]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup \it }{\/\egroup \insertseries{ (}{)}{}. }{}%
+ \insertorganization
+ {}%
+ {\insertcity{, }%
+ {\insertedition{, }{ \'edition. }{. }}%
+ {\insertedition{, }{ \'edition. }{. }}}%
+ {\insertedition{, }{ \'edition. }{}}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[incollection]{%
+ \insertartauthors{}{ }{\insertthekey{}{. }{}}%
+ \insertpubyear{(}{). }{}%
+ \insertarttitle{\bgroup }{\egroup. }{}%
+ \inserttitle
+ {Dans \inserteditors{}%
+ {, \'editeur\ifnum\getvalue{editor@num}> 1 s\fi, }%
+ {}%
+ \bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, num\'ero }{~dans }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ \'edition. }{. }}%
+ {\insertedition{, }{ \'edition. }{}}%
+ }%
+ {Dans \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ }%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[inproceedings]{%
+ \insertauthors{}{ }{}%
+ \insertpubyear{(}{). }{}%
+ \insertarttitle{\bgroup }{\egroup. }{}%%
+ \inserttitle
+ {Dans \inserteditors{}%
+ {, \'editeur\ifnum\getvalue{editor@num}> 1 s\fi, }%
+ {}%
+ \bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, num\'ero }{~dans }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages
+ {\unskip, pages~}
+ {\insertcity{, }{. }{. }}
+ {\unskip. }%
+ \insertorganization
+ {}%
+ {\insertpubname{, }{. }{. }}%
+ {\insertpubname{}{. }{}}% was {, }{. }{}
+ }%
+ {Dans \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ }%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[proceedings]{%
+ \inserteditors{}{, \'editeur%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{ }{}}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle
+ {\bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, num\'ero }{~dans }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{\insertcity{, }{. }{. }}
+ {\unskip\insertcity{, }{. }{. }}%
+ \insertorganization
+ {}%
+ {\insertpubname{, }{. }{. }}%
+ {\insertpubname{, }{. }{}}%
+ }%
+ {}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[mastersthesis]{%
+ \insertauthors{}{ }{}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{, }{Th\`ese de master (DEA, DESS, master), }%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[phdthesis]{%
+ \insertauthors{}{ }{}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup\it }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{, }{Th\`ese de doctorat, }%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[misc]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}. }{}%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[techreport]{%
+ \insertauthors{}{ }{}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{\insertvolume{ }{, }{, }}{Rapport technique, }%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[unpublished]{%
+ \insertauthors{}{ }{}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{p. }{}%
+ \insertbibtype{(}{)}{}%
+ \insertnote{ }{.}{}%
+}
+
+\protect
diff --git a/Master/texmf-dist/tex/context/bib/bibl-apa.tex b/Master/texmf-dist/tex/context/bib/bibl-apa.tex
index b1ecf373f70..8e2e9e84272 100644
--- a/Master/texmf-dist/tex/context/bib/bibl-apa.tex
+++ b/Master/texmf-dist/tex/context/bib/bibl-apa.tex
@@ -13,7 +13,9 @@
\setupcite
[author,year]
- [\c!pubsep={, },
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
\c!lastpubsep={ and },
\c!compress=\v!no,
\c!inbetween={ },
@@ -22,7 +24,9 @@
\setupcite
[authoryear]
- [\c!pubsep={, },
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
\c!lastpubsep={ and },
\c!compress=\v!yes,
\c!inbetween={ },
@@ -31,7 +35,9 @@
\setupcite
[authoryears]
- [\c!pubsep={, },
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
\c!lastpubsep={ and },
\c!compress=\v!yes,
\c!inbetween={, },
@@ -39,8 +45,10 @@
\c!right={)}]
\setupcite
- [key,number,page,short,type,doi]
- [\c!pubsep={, },
+ [key,serial,authornum,page,short,type,doi,url]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
\c!lastpubsep={ and },
\c!compress=\v!no,
\c!inbetween={ },
@@ -49,13 +57,16 @@
\setupcite
[num]
- [\c!pubsep={, },
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
\c!lastpubsep={ and },
\c!compress=\v!yes,
\c!inbetween={--},
\c!left={[},
\c!right={]}]
+
\setuppublications[%
\c!sorttype=,
\c!criterium=,
@@ -98,7 +109,7 @@
\def\insertchap#1#2#3%
{\insertchapter
- {#1\inserttype{}{\ }{chapter\ }}{#2}%
+ {#1\insertbibtype{}{\ }{chapter\ }}{#2}%
{#3}}
\def\insertpublisher#1#2#3%
@@ -137,10 +148,10 @@
\inserttitle
{\bgroup\it }%
{\/\egroup
- \ifeditedbook
+ \ifeditedbook
\global\editedbookfalse
- \insertvolume
- { Number~}%
+ \insertvolume
+ { Number~}%
{\insertseries
{ in~\bgroup}%
{\egroup. }%
@@ -161,16 +172,16 @@
{}}
{}%
\insertchap{, }{}{}%
- \insertpages{, pages }{. }{. }%
+ \insertpages{, pages }{.}{.}%
}%
\fi}%
- { }%
+ {}%
\insertpublisher
- {}%
- {\insertedition{, }{ edition. }{. }}%
- {\insertedition{, }{ edition. }{}}%
- \insertpages{}{p. }{}%
- \insertnote{ }{.}{}%
+ { }%
+ {\insertedition{, }{ edition.}{.}}%
+ {\insertedition{, }{ edition.}{}}%
+ \insertpages{ }{p. }{}%
+ \insertnote{}{.}{}%
}
\setuppublicationlayout[inbook]{%
@@ -331,7 +342,7 @@
\insertauthors{}{ }{}%
\insertpubyear{(}{). }{}%
\inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
- \inserttype{}{, }{Master's thesis, }%
+ \insertbibtype{}{, }{Master's thesis, }%
\insertpublisher{}{. }{}%
\insertpages{}{p. }{}%
\insertnote{ }{.}{}%
@@ -341,7 +352,7 @@
\insertauthors{}{ }{}%
\insertpubyear{(}{). }{}%
\inserttitle{\bgroup\it }{\egroup \insertseries{ (}{)}{}. }{}%
- \inserttype{}{, }{PhD thesis, }%
+ \insertbibtype{}{, }{PhD thesis, }%
\insertpublisher{}{. }{}%
\insertpages{}{p. }{}%
\insertnote{ }{.}{}%
@@ -360,7 +371,7 @@
\insertauthors{}{ }{}%
\insertpubyear{(}{). }{}%
\inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
- \inserttype{}{\insertvolume{ }{, }{, }}{Technical Report, }%
+ \insertbibtype{}{\insertvolume{ }{, }{, }}{Technical Report, }%
\insertpublisher{}{. }{}%
\insertpages{}{p. }{}%
\insertnote{ }{.}{}%
@@ -372,8 +383,8 @@
\inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
\insertpublisher{}{. }{}%
\insertpages{}{p. }{}%
- \inserttype{(}{)}{}%
+ \insertbibtype{(}{)}{}%
\insertnote{ }{.}{}%
}
-\protect \ No newline at end of file
+\protect
diff --git a/Master/texmf-dist/tex/context/bib/bibl-aps.tex b/Master/texmf-dist/tex/context/bib/bibl-aps.tex
index c3a2c4a5639..39d3bd7d44d 100644
--- a/Master/texmf-dist/tex/context/bib/bibl-aps.tex
+++ b/Master/texmf-dist/tex/context/bib/bibl-aps.tex
@@ -13,7 +13,9 @@
\setupcite
[author,year]
- [\c!pubsep={, },
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
\c!lastpubsep={ and },
\c!compress=\v!no,
\c!inbetween={ },
@@ -22,7 +24,9 @@
\setupcite
[authoryear]
- [\c!pubsep={, },
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
\c!lastpubsep={ and },
\c!compress=\v!yes,
\c!inbetween={ },
@@ -31,7 +35,9 @@
\setupcite
[authoryears]
- [\c!pubsep={, },
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
\c!lastpubsep={ and },
\c!compress=\v!yes,
\c!inbetween={, },
@@ -39,8 +45,10 @@
\c!right={)}]
\setupcite
- [key,number,page,short,type,doi]
- [\c!pubsep={, },
+ [key,serial,authornum,page,short,type,doi,url]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
\c!lastpubsep={ and },
\c!compress=\v!no,
\c!inbetween={ },
@@ -49,7 +57,9 @@
\setupcite
[num]
- [\c!pubsep={, },
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
\c!lastpubsep={ and },
\c!compress=\v!yes,
\c!inbetween={--},
@@ -60,11 +70,11 @@
\c!sorttype=,
\c!criterium=,
\c!refcommand=num,
- \c!numbercommand=\tester,
+ \c!numbercommand=\bibalignednumber,
\c!numbering=\v!yes,
\c!autohang=\v!yes]
-\def\tester#1{\hfill[#1]~~}
+\def\bibalignednumber#1{\hfill[#1]~~}
\setuppublicationlist
[\c!width=24pt,
@@ -115,7 +125,7 @@
\def\insertchap#1#2#3%
{\insertchapter
- {#1\inserttype{}{\ }{chapter\ }}{#2}%
+ {#1\insertbibtype{}{\ }{chapter\ }}{#2}%
{#3}}
\def\insertpublisher#1#2#3%
@@ -371,7 +381,7 @@
\setuppublicationlayout[mastersthesis]{%
\insertauthors{}{, }{}%
- \inserttype{}{, }{Master's thesis, }%
+ \insertbibtype{}{, }{Master's thesis, }%
\insertpublisher{}{, }{}%
\insertpubyear{(}{)}{}%
\insertpages{\unskip, }{}{}%
@@ -380,7 +390,7 @@
\setuppublicationlayout[phdthesis]{%
\insertauthors{}{, }{}%
- \inserttype{}{, }{Ph.D. thesis, }%
+ \insertbibtype{}{, }{Ph.D. thesis, }%
\insertpublisher{}{, }{}%
\insertpubyear{(}{)}{}%
\insertpages{\unskip, }{}{}%
@@ -411,7 +421,7 @@
\setuppublicationlayout[techreport]{%
\insertauthors{}{, }{}%
\inserttitle{\bgroup \it }{\egroup \insertseries{ (}{)}{} }{}%
- \inserttype{}{}{Tech. Rep.}%
+ \insertbibtype{}{}{Tech. Rep.}%
\insertvolume{ }{, }{, }%
\insertpublisher{}{ }{}%
\insertpubyear{(}{)}{}%
@@ -422,7 +432,7 @@
\setuppublicationlayout[unpublished]{%
\insertauthors{}{}{}%
\inserttitle{\bgroup \it }{\egroup \insertseries{ (}{)}{}}{}%
- \inserttype{ (}{)}{}%
+ \insertbibtype{ (}{)}{}%
\insertpubyear{ (unpublished,}{)}{ (unpublished)}%
\insertpages{\unskip, }{ }{}%
\insertNote{\unskip. }{.}{\unskip.}%
diff --git a/Master/texmf-dist/tex/context/bib/bibl-num-fr.tex b/Master/texmf-dist/tex/context/bib/bibl-num-fr.tex
new file mode 100644
index 00000000000..c4271fb7f65
--- /dev/null
+++ b/Master/texmf-dist/tex/context/bib/bibl-num-fr.tex
@@ -0,0 +1,427 @@
+%D \module
+%D [ file=bibl-num-fr,
+%D version=2005.12.16,
+%D title=NUM-FR bibliography style,
+%D subtitle=Publications,
+%D author={Renaud Aubin},
+%D date=\currentdate,
+%D copyright={Public Domain}]
+%C
+%C Donated to the public domain. Use at your own risk
+
+\unprotect
+
+\def\setuppublicationlayout[#1]#2%
+ {\setvalue{@@pvdata#1}{#2\unskip\vadjust{\kern 6pt}}}
+
+
+\setupcite
+ [author,year]
+ [\c!andtext={ et },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ et },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryear]
+ [\c!andtext={ et },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ et },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryears]
+ [\c!andtext={ et },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ et },
+ \c!compress=\v!no,
+ \c!inbetween={, },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [key,serial,authornum,page,short,type,doi,url]
+ [\c!andtext={ et },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ et },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={[},
+ \c!right={]}]
+
+\setupcite
+ [num]
+ [\c!andtext={ et },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ et },
+ \c!compress=\v!no,
+ \c!inbetween={--},
+ \c!left={[},
+ \c!right={]}]
+
+\def\withbrackets#1{[#1]~~}
+
+\setuppublications[%
+ \c!sorttype=,
+ \c!criterium=,
+ \c!refcommand=num,
+ \c!numbering=\v!yes,
+ \c!numbercommand=\withbrackets,
+ \c!autohang=\v!yes]
+
+\setuppublicationlist
+ [\c!artauthor=\normalauthor,
+ \c!editor=\normalauthor,
+ \c!author=\normalauthor,
+ \c!namesep={, },
+ \c!lastnamesep={ et },
+ \c!finalnamesep={ et },
+ \c!firstnamesep={ },
+ \c!juniorsep={ },
+ \c!vonsep={ },
+ \c!surnamesep={ },
+ \c!authoretallimit=5,
+ \c!editoretallimit=5,
+ \c!artauthoretallimit=5,
+ \c!authoretaldisplay=5,
+ \c!editoretaldisplay=5,
+ \c!artauthoretaldisplay=5,
+ \c!authoretaltext={ et al.},
+ \c!editoretaltext={ et al.},
+ \c!artauthoretaltext={ et al.},
+]
+
+\def\maybeyear#1{}
+
+\def\etalchar#1{#1}
+
+%D \macros{insertchapter,insertpublisher}
+
+%D Some shortcuts.
+
+% ((#1(type\ |)chapter#2)|#3)
+
+\def\insertchap#1#2#3%
+ {\insertchapter
+ {#1\insertbibtype{}{\ }{chapitre\ }}{#2}%
+ {#3}}
+
+\def\insertpublisher#1#2#3%
+ {\insertpubname
+ {#1}{\insertcity
+ {, }
+ {\insertcountry{, }{}{#2}}%
+ {\insertcountry{, }{}{#2}}}%
+ {\insertcity
+ {}{\insertcountry{, }{}{#2}}%
+ {\insertcountry{#1}{#2}{#3}}}%
+ }
+
+
+\setuppublicationlayout[article]{%
+ \insertartauthors{}{\unskip. }{\insertthekey{}{. }{}}%
+ \insertarttitle{\bgroup }{\egroup. }{}%
+ \insertjournal{\bgroup \it}{\egroup}
+ {\insertcrossref{Dans }{}{}}%
+ \insertvolume
+ {, }
+ {\insertissue{(}{)}{}%
+ \insertpages{:}{}{}%
+ \insertpubyear{, }{}{}.}
+ {\insertpages{, pages }{}{}%
+ \insertpubyear{, }{}{}.}%
+ \insertnote{ }{.}{}%
+ \insertcomment{}{.}{}%
+}
+
+\newif\ifeditedbook
+\setuppublicationlayout[book]{%
+ \insertauthors{}{\unskip. }{\inserteditors{}{\unskip, \'editeur%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{\unskip. }{}}}%
+ \inserttitle
+ {\bgroup\it }%
+ {\/\egroup
+ \ifeditedbook
+ \global\editedbookfalse
+ \insertvolume
+ { Num\'ero~}%
+ {\insertseries
+ { dans~\bgroup}%
+ {\egroup. }%
+ {\insertcrossref{ dans~}{}{. }}}%
+ {\insertseries{ }{.}{} }%
+ \else
+ \insertcrossref
+ {\insertchap{, }{}{}%
+ \insertpages{, pages }{. }{. }%
+ \insertvolume{Volume~}{ de~}{}%
+ }%
+ {}%
+ {\insertvolume
+ {, volume~}%
+ {\insertseries
+ { de~\bgroup\it}%
+ {\egroup}
+ {}}
+ {}%
+ \insertchap{, }{}{}%
+ \insertpages{, pages }{.}{.}%
+ }%
+ \fi}%
+ {}%
+ \insertpublisher
+ { }%
+ {\insertedition{, }{ \'edition}{}
+ \insertpubyear{, }{.}{.}}%
+ {\insertedition{, }{ \'edition}{}%
+ \insertpubyear{, }{.}{.}}%
+ \insertpages{ }{p.}{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[inbook]{%
+ \insertauthors{}{\unskip. }{\inserteditors{}{\unskip, \'editeur%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{\unskip. }{}}}%
+ \inserttitle
+ {\bgroup\it }%
+ {\/\egroup
+ \ifeditedbook
+ \global\editedbookfalse
+ \insertvolume
+ { num\'ero~}%
+ {\insertseries
+ { dans~\bgroup}%
+ {\egroup. }%
+ {\insertcrossref{ dans~}{}{. }}}%
+ {\insertseries{ }{.}{} }%
+ \else
+ \insertcrossref
+ {\insertchap{, }{}{}%
+ \insertpages{, pages }{. }{. }%
+ \insertvolume{Volume~}{ de~}{}%
+ }%
+ {}%
+ {\insertvolume
+ {, volume~}%
+ {\insertseries
+ { de~\bgroup\it}%
+ {\egroup}
+ {}}
+ {}%
+ \insertchap{, }{}{}%
+ \insertpages{, pages }{. }{. }%
+ }%
+ \fi}%
+ { }%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ \'edition}{}%
+ \insertpubyear{, }{. }{\unskip.}}%
+ {\insertedition{, }{ \'edition}{}%
+ \insertpubyear{, }{. }{\unskip.}}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[booklet]{%
+ \insertauthors{}{\unskip. }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ \'edition}{}%
+ \insertpubyear{, }{. }{}}%
+ {\insertedition{, }{ \'edition. }{}%
+ \insertpubyear{, }{. }{}}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[manual]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \inserttitle
+ {\bgroup \it }
+ {\/\egroup \insertseries{ (}{)}{}. }
+ {}%
+ \insertorganization
+ {}%
+ {\insertcity
+ {, }%
+ {\insertedition
+ {, }
+ { \'edition\insertpubyear{, }{. }{. }}
+ {\insertpubyear{, }{. }{. }}}%
+ {\insertedition
+ {, }
+ { \'edition\insertpubyear{, }{. }{. }}
+ {\insertpubyear{, }{. }{. }}}}%
+ {\insertedition{, }{ \'edition\insertpubyear{, }{. }{. }}{}}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[incollection]{%
+ \insertartauthors{}{\unskip. }{\insertthekey{}{\unskip. }{}}%
+ \insertarttitle{\bgroup }{\egroup. }{}%
+ \inserttitle
+ {Dans \inserteditors{}%
+ {\unskip, editor\ifnum\getvalue{editor@num}> 1 s\fi, }%
+ {}%
+ \bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, number }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ \'edition}{}%
+ \insertpubyear{, }{. }{. }}%
+ {\insertedition{, }{ \'edition}{}%
+ \insertpubyear{, }{. }{}}%
+ }%
+ {Dans \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ }%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[inproceedings]{%
+ \insertauthors{}{\unskip. }{}%
+ \insertarttitle{\bgroup }{\egroup. }{}%%
+ \inserttitle
+ {Dans \inserteditors{}%
+ {\unskip, \'editeur\ifnum\getvalue{editor@num}> 1 s\fi, }%
+ {}%
+ \bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, num\'ero }{~dans }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages
+ {\unskip, pages~}
+ {\insertcity{, }{}{}
+ \insertpubyear{\unskip, }{. }{. }}%
+ {\unskip
+ \insertpubyear{\unskip, }{. }{. }}%
+ \insertorganization
+ {}%
+ {\insertpubname{, }{. }{. }}%
+ {\insertpubname{}{. }{}}% was {, }{. }{}
+ }%
+ {Dans \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ }%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[proceedings]{%
+ \inserteditors{}{\unskip, \'editeur%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{ }{}}%
+ \inserttitle
+ {\bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, num\'ero }{~dans }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages
+ {\unskip, pages~}
+ {\insertcity
+ {, }
+ {\insertpubyear{, }{. }{. }}
+ {\insertpubyear{, }{. }{. }}}
+ {\unskip
+ \insertcity
+ {, }
+ {\insertpubyear{, }{. }{. }}
+ {\insertpubyear{, }{. }{. }}}%
+ \insertorganization
+ {}%
+ {\insertpubname{, }{. }{. }}%
+ {\insertpubname{, }{. }{}}%
+ }%
+ {}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[mastersthesis]{%
+ \insertauthors{}{ }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{, }{M\'emoire de master (DEA, DESS), }%
+ \insertpublisher
+ {}
+ {, \insertpubyear{}{}{}}
+ {\insertpubyear{}{}{}}%
+ \insertpages{, }{p.}{.}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[phdthesis]{%
+ \insertauthors{}{ }{}%
+ \inserttitle{\bgroup\it }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{, }{Th\`ese de doctorat, }%
+ \insertpublisher
+ {}
+ {, \insertpubyear{}{}{}}
+ {\insertpubyear{}{}{}}%
+ \insertpages{, }{p.}{.}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[misc]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}. }{}%
+ \insertpublisher
+ {}
+ {, \insertpubyear{}{}{}}
+ {\insertpubyear{}{}{}}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[techreport]{%
+ \insertauthors{}{ }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{\insertvolume{ }{, }{, }}{Rapport technique, }%
+ \insertpublisher
+ {}
+ {, \insertpubyear{}{}{}}
+ {\insertpubyear{}{}{}}%
+ \insertpages{, }{p.}{.}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[unpublished]{%
+ \insertauthors{}{ }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpublisher
+ {}
+ {, \insertpubyear{}{.}{}}
+ {\insertpubyear{}{.}{}}%
+ \insertbibtype{ (}{)}{}%
+ \insertnote{ }{.}{}%
+}
+
+\protect
diff --git a/Master/texmf-dist/tex/context/bib/bibl-num.tex b/Master/texmf-dist/tex/context/bib/bibl-num.tex
new file mode 100644
index 00000000000..45d527f77f2
--- /dev/null
+++ b/Master/texmf-dist/tex/context/bib/bibl-num.tex
@@ -0,0 +1,427 @@
+%D \module
+%D [ file=bibl-num,
+%D version=2006.07.01,
+%D title=Numeric bibliography style,
+%D subtitle=Publications,
+%D author={Taco Hoekwater},
+%D date=\currentdate,
+%D copyright={Public Domain}]
+%C
+%C Donated to the public domain. Use at your own risk
+
+\unprotect
+
+\def\setuppublicationlayout[#1]#2%
+ {\setvalue{@@pvdata#1}{#2\unskip\vadjust{\kern 6pt}}}
+
+
+\setupcite
+ [author,year]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryear]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryears]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!no,
+ \c!inbetween={, },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [key,serial,authornum,page,short,type,doi,url]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={[},
+ \c!right={]}]
+
+\setupcite
+ [num]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!no,
+ \c!inbetween={--},
+ \c!left={[},
+ \c!right={]}]
+
+\def\withbrackets#1{[#1]~~}
+
+\setuppublications[%
+ \c!sorttype=,
+ \c!criterium=,
+ \c!refcommand=num,
+ \c!numbering=\v!yes,
+ \c!numbercommand=\withbrackets,
+ \c!autohang=\v!yes]
+
+\setuppublicationlist
+ [\c!artauthor=\normalauthor,
+ \c!editor=\normalauthor,
+ \c!author=\normalauthor,
+ \c!namesep={, },
+ \c!lastnamesep={ and },
+ \c!finalnamesep={ and },
+ \c!firstnamesep={ },
+ \c!juniorsep={ },
+ \c!vonsep={ },
+ \c!surnamesep={ },
+ \c!authoretallimit=5,
+ \c!editoretallimit=5,
+ \c!artauthoretallimit=5,
+ \c!authoretaldisplay=5,
+ \c!editoretaldisplay=5,
+ \c!artauthoretaldisplay=5,
+ \c!authoretaltext={ et al.},
+ \c!editoretaltext={ et al.},
+ \c!artauthoretaltext={ et al.},
+]
+
+\def\maybeyear#1{}
+
+\def\etalchar#1{#1}
+
+%D \macros{insertchapter,insertpublisher}
+
+%D Some shortcuts.
+
+% ((#1(type\ |)chapter#2)|#3)
+
+\def\insertchap#1#2#3%
+ {\insertchapter
+ {#1\insertbibtype{}{\ }{chapter\ }}{#2}%
+ {#3}}
+
+\def\insertpublisher#1#2#3%
+ {\insertpubname
+ {#1}{\insertcity
+ {, }
+ {\insertcountry{, }{}{#2}}%
+ {\insertcountry{, }{}{#2}}}%
+ {\insertcity
+ {}{\insertcountry{, }{}{#2}}%
+ {\insertcountry{#1}{#2}{#3}}}%
+ }
+
+
+\setuppublicationlayout[article]{%
+ \insertartauthors{}{\unskip. }{\insertthekey{}{. }{}}%
+ \insertarttitle{\bgroup }{\egroup. }{}%
+ \insertjournal{\bgroup \it}{\egroup}
+ {\insertcrossref{In }{}{}}%
+ \insertvolume
+ {, }
+ {\insertissue{(}{)}{}%
+ \insertpages{:}{}{}%
+ \insertpubyear{, }{}{}.}
+ {\insertpages{, pages }{}{}%
+ \insertpubyear{, }{}{}.}%
+ \insertnote{ }{.}{}%
+ \insertcomment{}{.}{}%
+}
+
+\newif\ifeditedbook
+\setuppublicationlayout[book]{%
+ \insertauthors{}{\unskip. }{\inserteditors{}{\unskip, editor%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{\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 }{.}{.}%
+ }%
+ \fi}%
+ {}%
+ \insertpublisher
+ { }%
+ {\insertedition{, }{ edition}{}%
+ \insertpubyear{, }{.}{.}}%
+ {\insertedition{, }{ edition}{}%
+ \insertpubyear{, }{.}{.}}%
+ \insertpages{ }{p.}{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[inbook]{%
+ \insertauthors{}{\unskip. }{\inserteditors{}{\unskip, editor%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{\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 }{. }{. }%
+ }%
+ \fi}%
+ { }%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ edition}{}%
+ \insertpubyear{, }{. }{\unskip.}}%
+ {\insertedition{, }{ edition}{}%
+ \insertpubyear{, }{. }{\unskip.}}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[booklet]{%
+ \insertauthors{}{\unskip. }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ edition}{}%
+ \insertpubyear{, }{. }{}}%
+ {\insertedition{, }{ edition. }{}%
+ \insertpubyear{, }{. }{}}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[manual]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \inserttitle
+ {\bgroup \it }
+ {\/\egroup \insertseries{ (}{)}{}. }
+ {}%
+ \insertorganization
+ {}%
+ {\insertcity
+ {, }%
+ {\insertedition
+ {, }
+ { edition\insertpubyear{, }{. }{. }}
+ {\insertpubyear{, }{. }{. }}}%
+ {\insertedition
+ {, }
+ { edition\insertpubyear{, }{. }{. }}
+ {\insertpubyear{, }{. }{. }}}}%
+ {\insertedition{, }{ edition\insertpubyear{, }{. }{. }}{}}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[incollection]{%
+ \insertartauthors{}{\unskip. }{\insertthekey{}{\unskip. }{}}%
+ \insertarttitle{\bgroup }{\egroup. }{}%
+ \inserttitle
+ {In \inserteditors{}%
+ {\unskip, editor\ifnum\getvalue{editor@num}> 1 s\fi, }%
+ {}%
+ \bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, number }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ edition}{}%
+ \insertpubyear{, }{. }{. }}%
+ {\insertedition{, }{ edition}{}%
+ \insertpubyear{, }{. }{}}%
+ }%
+ {In \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ }%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[inproceedings]{%
+ \insertauthors{}{\unskip. }{}%
+ \insertarttitle{\bgroup }{\egroup. }{}%%
+ \inserttitle
+ {In \inserteditors{}%
+ {\unskip, editor\ifnum\getvalue{editor@num}> 1 s\fi, }%
+ {}%
+ \bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, number }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages
+ {\unskip, pages~}
+ {\insertcity{, }{}{}%
+ \insertpubyear{\unskip, }{. }{. }}%
+ {\unskip
+ \insertpubyear{\unskip, }{. }{. }}%
+ \insertorganization
+ {}%
+ {\insertpubname{, }{. }{. }}%
+ {\insertpubname{}{. }{}}% was {, }{. }{}
+ }%
+ {In \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ }%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[proceedings]{%
+ \inserteditors{}{\unskip, editor%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{ }{}}%
+ \inserttitle
+ {\bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, number }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages
+ {\unskip, pages~}
+ {\insertcity
+ {, }
+ {\insertpubyear{, }{. }{. }}
+ {\insertpubyear{, }{. }{. }}}
+ {\unskip
+ \insertcity
+ {, }
+ {\insertpubyear{, }{. }{. }}
+ {\insertpubyear{, }{. }{. }}}%
+ \insertorganization
+ {}%
+ {\insertpubname{, }{. }{. }}%
+ {\insertpubname{, }{. }{}}%
+ }%
+ {}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[mastersthesis]{%
+ \insertauthors{}{ }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{, }{Master's thesis, }%
+ \insertpublisher
+ {}
+ {, \insertpubyear{}{}{}}
+ {\insertpubyear{}{}{}}%
+ \insertpages{, }{p.}{.}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[phdthesis]{%
+ \insertauthors{}{ }{}%
+ \inserttitle{\bgroup\it }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{, }{PhD thesis, }%
+ \insertpublisher
+ {}
+ {, \insertpubyear{}{}{}}
+ {\insertpubyear{}{}{}}%
+ \insertpages{, }{p.}{.}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[misc]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}. }{}%
+ \insertpublisher
+ {}
+ {, \insertpubyear{}{}{}}
+ {\insertpubyear{}{}{}}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[techreport]{%
+ \insertauthors{}{ }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{\insertvolume{ }{, }{, }}{Technical Report, }%
+ \insertpublisher
+ {}
+ {, \insertpubyear{}{}{}}
+ {\insertpubyear{}{}{}}%
+ \insertpages{, }{p.}{.}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[unpublished]{%
+ \insertauthors{}{ }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpublisher
+ {}
+ {, \insertpubyear{}{.}{}}
+ {\insertpubyear{}{.}{}}%
+ \insertbibtype{ (}{)}{}%
+ \insertnote{ }{.}{}%
+}
+
+\protect \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/bib/bibl-ssa.tex b/Master/texmf-dist/tex/context/bib/bibl-ssa.tex
new file mode 100644
index 00000000000..b93bd1b68ae
--- /dev/null
+++ b/Master/texmf-dist/tex/context/bib/bibl-ssa.tex
@@ -0,0 +1,486 @@
+%D \module
+%D [ file=bibl-apa,
+%D version=2004.7.16,
+%D title=APA bibliography style,
+%D subtitle=Publications,
+%D author={Taco Hoekwater},
+%D date=\currentdate,
+%D copyright={Public Domain}]
+%C
+%C (Slightly modified to SSA-like 2005.3.24, David Wooten)
+%C Donated to the public domain. Use at your own risk
+
+\unprotect
+
+\setupcite
+ [author,year]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryear]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!yes,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryears]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!yes,
+ \c!inbetween={, },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [key,serial,authornum,page,short,type,doi,url]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={[},
+ \c!right={]}]
+
+\setupcite
+ [num]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!yes,
+ \c!inbetween={--},
+ \c!left={[},
+ \c!right={]}]
+
+\setuppublications[%
+ \c!sorttype=,
+ \c!criterium=,
+ \c!refcommand=authoryears,
+ \c!numbering=\v!no,
+ \c!autohang=\v!no]
+
+\setuppublicationlist
+ [\c!width=24pt,
+ \c!artauthor=\toggledauthor, %TH
+ \c!editor=\toggledauthor,
+ \c!author=\toggledauthor,
+ \c!namesep={, },
+ \c!lastnamesep={ and },
+ \c!finalnamesep={ and },
+ \c!firstnamesep={, },
+ \c!juniorsep={ },
+ \c!vonsep={ },
+ \c!surnamesep={, },
+ \c!authoretallimit=5,
+ \c!editoretallimit=5,
+ \c!artauthoretallimit=5,
+ \c!authoretaldisplay=5,
+ \c!editoretaldisplay=5,
+ \c!artauthoretaldisplay=5,
+ \c!authoretaltext={ et al.},
+ \c!editoretaltext={ et al.},
+ \c!artauthoretaltext={ et al.},
+]
+
+\def\maybeyear#1{#1}
+
+\def\etalchar#1{#1}
+
+%D \macros {invertedauthor,normalauthor,toggledauthor}
+%D
+%D These are redefinitions of the core versions.
+
+\def\invertedauthor#1#2#3#4#5%
+ {\bibdoif{#2}{#2\bibalternative\c!vonsep}%
+ \uppercased{#3}\bibalternative\c!surnamesep
+ \bibdoif{#5}{#5\bibalternative\c!juniorsep}%
+ \bibdoif{#1}{#1\unskip}}
+
+\def\normalauthor#1#2#3#4#5%
+ {\bibdoif{#1}{#1}\bibdoif{#2}{#2 } \uppercased{#3}%
+ \bibdoif{#5}{#5\unskip}}
+
+%TH
+%D The \type{\scratchcounter} is incremented by \specialbibinsert
+%D before each author/editor is typeset, so the only thing that needs
+%D doing is testing its value to decide which of the two `standard'
+%D author formatting macros to call.
+%D
+%D The \type{\normalauthor} definition above is a bit altered/stripped
+%D down, because the 'glue items' like \type{firstnamesep} got in the
+%D way.
+
+\def\toggledauthor#1#2#3#4#5%
+ {\relax
+ \ifnum \scratchcounter > 1
+ \normalauthor{#1}{#2}{#3}{#4}{#5}%
+ \else
+ \invertedauthor{#1}{#2}{#3}{#4}{#5}%
+ \fi }
+
+%TH
+%D Below, each \type{\setuppublicationlayout} macro's body will
+%D start by setting a global toggle to true, that controls whether
+%D or not the next \type{\insertartauthors},\type{\insertauthors}
+%D or \type{\inserteditors} has to store it's contents for comparison.
+%D All three are instances of the generic macro \type{\specialbibinsert}.
+%D The net result of this trick is that the first typeset block of
+%D names will be saved, regardless of whether they are book authors,
+%D article authors, or editors.
+
+\newif\ifsetstoredauthor
+
+%D save the normal meaning, because it will be redefined
+\let\normalspecialbibinsert\specialbibinsert
+
+%D This is a typical call (use) of \type{\specialbibinsert}, for
+%D reference:
+%D \starttyping
+%D \specialbibinsert{author}{\author@num}{<before>}{<after>}{<not>}
+%D \stoptyping
+
+\def\specialbibinsert#1#2#3#4#5%
+ {\relax
+ \ifsetstoredauthor
+ \global\setstoredauthorfalse % RESET
+ \putcurrentinallstuff{#1}{#2}%
+ \ifx\allstuff\oldstuff
+ % do nothing
+ \else
+ \normalspecialbibinsert{#1}{#2}{#3}{#4}{#5}%
+ \fi
+ \global\let\oldstuff\allstuff
+ \else
+ \normalspecialbibinsert{#1}{#2}{#3}{#4}{#5}%
+ \fi}
+
+%D initialize \type{\oldstuff}
+
+\def\oldstuff{}
+
+%D \#1 = authors
+%D \#2 = \type{\author@num}
+\def\putcurrentinallstuff#1#2%
+ {{\gdef\allstuff{}%
+ \def\tempx##1##2##3##4##5%
+ {\xdef\allstuff{\allstuff !!##1!##2!##3!##4!##5}}%
+ \@EA\dorecurse\@EA{#2}%
+ {\@EA\@EA\@EA\tempx \csname @@pb@#1\recurselevel\endcsname}%
+ }}
+
+%D \macros{insertchapter,insertpublisher}
+
+%D Some shortcuts.
+
+% ((#1(type\ |)chapter#2)|#3)
+
+
+\def\insertchap#1#2#3%
+ {\insertchapter
+ {#1\insertbibtype{}{\ }{chapter\ }}{#2}%
+ {#3}}
+
+\def\insertpublisher#1#2#3%
+ {\insertpubname
+ {#1}{\insertcity
+ {, }
+ {\insertcountry{, }{}{#2}}%
+ {\insertcountry{, }{}{#2}}}%
+ {\insertcity
+ {}{\insertcountry{, }{}{#2}}%
+ {\insertcountry{#1}{#2}{#3}}}%
+ }
+
+\setuppublicationlayout[article]{%
+ %TH all items below do this as well ...
+ \global\setstoredauthortrue
+ \insertartauthors{}{.}{\insertthekey{}{ }{}}\hfill\break%
+ \insertpubyear{}{. }{\unskip.}%
+ \insertarttitle{\bgroup ``}{\egroup'', }{ }%
+ \insertjournal{\bgroup in \it}{\egroup}
+ {\insertcrossref{in }{}{}}%
+ \insertvolume
+ {, }
+ {\insertissue{(}{)}{}\insertpages{:}{.}{.}}
+ {\insertpages{, pages }{.}{.}}%
+ \insertnote{ }{.}{}%
+ \insertcomment{}{.}{}%
+}
+
+\newif\ifeditedbook
+\setuppublicationlayout[book]{%
+ \global\setstoredauthortrue
+ \insertauthors{}{.}{\inserteditors{}{, editor%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{. }{}}}\hfill\break%
+ \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 }{. }{. }%
+ }%
+ \fi}%
+ { }%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ edition. }{}}%
+ {\insertedition{, }{ edition. }{}}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[inbook]{%
+ \global\setstoredauthortrue
+ \insertauthors{}{ }{\inserteditors{}{, editor%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{. }{}}}\hfill\break%
+ \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 }{. }{. }%
+ }%
+ \fi}%
+ { }%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ edition. }{. }}%
+ {\insertedition{, }{ edition. }{}}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[booklet]{%
+ \global\setstoredauthortrue
+ \insertauthors{}{ }{\insertthekey{}{. }{}}\hfill\break%
+ \insertpubyear{}{. }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ edition. }{. }}%
+ {\insertedition{, }{ edition. }{}}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[manual]{%
+ \global\setstoredauthortrue
+ \insertauthors{}{ }{\insertthekey{}{. }{}}\hfill\break%
+ \insertpubyear{}{. }{}%
+ \inserttitle{\bgroup \it }{\/\egroup \insertseries{ (}{)}{}. }{}%
+ \insertorganization
+ {}%
+ {\insertcity{, }%
+ {\insertedition{, }{ edition. }{. }}%
+ {\insertedition{, }{ edition. }{. }}}%
+ {\insertedition{, }{ edition. }{}}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[incollection]{%
+ \global\setstoredauthortrue
+ \insertartauthors{}{ }{\insertthekey{}{. }{}}\hfill\break%
+ \insertpubyear{}{. }{}%
+ \insertarttitle{\bgroup }{\egroup. }{}%
+ \inserttitle
+ {In \inserteditors{}%
+ {, editor\ifnum\getvalue{editor@num}> 1 s\fi, }%
+ {}%
+ \bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, number }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ edition. }{. }}%
+ {\insertedition{, }{ edition. }{}}%
+ }%
+ {In \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ }%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[inproceedings]{%
+ \global\setstoredauthortrue
+ \insertauthors{}{ }{}\hfill\break%
+ \insertpubyear{}{. }{}%
+ \insertarttitle{\bgroup }{\egroup. }{}%%
+ \inserttitle
+ {In \inserteditors{}%
+ {, editor\ifnum\getvalue{editor@num}> 1 s\fi, }%
+ {}%
+ \bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, number }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages
+ {\unskip, pages~}
+ {\insertcity{, }{. }{. }}
+ {\unskip. }%
+ \insertorganization
+ {}%
+ {\insertpubname{, }{. }{. }}%
+ {\insertpubname{}{. }{}}% was {, }{. }{}
+ }%
+ {In \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ }%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[proceedings]{%
+ \global\setstoredauthortrue
+ \inserteditors{}{, editor%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{ }{}}\hfill\break%
+ \insertpubyear{}{. }{}%
+ \inserttitle
+ {\bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, number }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{\insertcity{, }{. }{. }}
+ {\unskip\insertcity{, }{. }{. }}%
+ \insertorganization
+ {}%
+ {\insertpubname{, }{. }{. }}%
+ {\insertpubname{, }{. }{}}%
+ }%
+ {}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[mastersthesis]{%
+ \global\setstoredauthortrue
+ \insertauthors{}{ }{}\hfill\break%
+ \insertpubyear{}{. }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{, }{Master's thesis, }%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[phdthesis]{%
+ \global\setstoredauthortrue
+ \insertauthors{}{ }{}\hfill\break%
+ \insertpubyear{}{. }{}%
+ \inserttitle{\bgroup\it }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{, }{PhD thesis, }%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[misc]{%
+ \global\setstoredauthortrue
+ \insertauthors{}{ }{\insertthekey{}{. }{}}\hfill\break%
+ \insertpubyear{}{. }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}. }{}%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[techreport]{%
+ \global\setstoredauthortrue
+ \insertauthors{}{ }{}\hfill\break%
+ \insertpubyear{}{. }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{\insertvolume{ }{, }{, }}{Technical Report, }%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[unpublished]{%
+ \global\setstoredauthortrue
+ \insertauthors{}{ }{}\hfill\break%
+ \insertpubyear{}{. }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{p. }{}%
+ \insertbibtype{(}{)}{}%
+ \insertnote{ }{.}{}%
+}
+
+\protect \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/bib/t-bib.tex b/Master/texmf-dist/tex/context/bib/t-bib.tex
index 82cdba9935b..3c17a52b756 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=2005.01.04,
+%D version=2006.08.08,
%D title=\CONTEXT\ Publication Module,
%D subtitle=Publications,
%D author=Taco Hoekwater,
@@ -9,35 +9,98 @@
%C
%C Donated to the public domain.
-\usemodule[bibltx] % bibtex files can contain latex left-overs
-%D Slightly adapted by HH (2005/01). For \BIBTEX\ relate questions,
-%D contact Taco, if you expect interference with core macros, bother
-%D Hans. This file will be cleaned up in due time.
+%D The original was developed independantly by Taco Hoekwater while still working for Kluwer
+%D Academic publishers (it still used the dutch interface then). Development continued after
+%D he left Kluwer, and in Januari 2005, the then already internationalized file was merged
+%D with the core distribution by Hans Hagen. The current version is once again by Taco.
%D
-%D Documentation and additional resources can be found at
-%D Taco's website: \url{tex.aanhet.net}.
+%D More documentation and additional resources can be found on the contextgarden:
+%D \hyphenatedurl{http://wiki.contextgarden.net//Bibliography}.
-%D \subject{DONE}
+%D \subject{DONE (dd/mm/yyyy)}
%D
%D \startitemize
-%D \item minor bugfixes today (25/6)
-%D \item add finalnamesep support for Oxford comma (17/9)
-%D \item add \insert... for: doi, eprint, howpublished (17-19/9)
-%D \item minor fix (26/5/2004):
-%D \item add author definition (and associated system variable)
+%D \item add author definition (and associated system variable) (26/05/2005)
+%D \item add finalnamesep support for Oxford comma (17/09/2005)
+%D \item add \type{\insert...} for: doi, eprint, howpublished (19/09/2005)
+%D \item allow a defaulted \type{\setupcite} (19/11/2005)
+%D \item renamed citation type 'number' to 'serial' (19/11/2005)
+%D \item better definition of \type{\inverted...author} (19/11/2005)
+%D \item don't reset [numbercommand] in \type {\setuppublication} by default (20/11/2005)
+%D \item don't disable other \type {\setuppublication} keys if alternative is present (20/11/2005)
+%D \item drop \type{\sanitizeaccents} (20/11/2005)
+%D \item added \type{\nocite} and \type{\cite[none]} (21/11/2005)
+%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 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)
+%D \item Use \type{\readfile} inside \type{\usepublications} instead of \type{\readsysfile} (12/01/2006)
+%D \item Use \type{\currentbibyear} and \type{\currentbibauthor} instead of \type{\YR} and \type{\AU} (05/02/2006)
+%D \item Fix compressed version of authoryear style (05/02/2006)
+%D \item Rename the clashing data fields \type{\url} and \type{\type} to \type{\biburl} and \type{\bibtype} (05/02/2006)
+%D \item Added two french bibl files from Renaud Aubin (06/02/2006)
+%D \item Five new bib class and eight extra bib fields, for IEEEtran (07/02/2006)
+%D \item French keyword translation, provided by Renaud (08/02/2006)
+%D \item fix underscores in undefined keys (22/02/2006)
+%D \item Destroy interactivity in labels of the publication list (13/03/2006)
+%D \item fix multi-cite list compression (11/4/2006)
+%D \item fix \type{\getcitedata} (11/4/2006)
+%D \item magic for chapter bibs (18-25/4/2006)
+%D \item language setting (25/4/2006)
+%D \item use \type{\hyphenatedurl} for \type{\inserturl} (25/4/2006)
+%D \item Add \type{\docitation} to \type{\nocite}(26/4/2006)
+%D \item patents can have numbers, added to bst files (26/4/2006)
+%D \item \type{\docitation} needs a \type{\iftrialtypesetting} (27/4/2006)
+%D \item \type{\filllocalpublist}'s loop is bound by definedness, not resolvedness (27/4/2006)
+%D \item \type{\setuppublications[monthconversion=]} added (15/5/2006)
+%D \item use \type{\undefinedreference} instead of bare question marks (15/5/2006)
+%D \item add grouping around \type{\placepublications} commands (16/5/2006)
+%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 (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)]}
+%D \item fix the item number in the publication list with 'numbering=yes' (22/6/2006)
+%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 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
+%D in \type{left} stay in effect (12/7/2006)
+%D \item guard added against loading bbl files multiple times (13/7/2006)
+%D \item fix \type{\cite[num]} with compression is on. (14/7/2006)
+%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 saveguarding the list item extraction and reference placement
+%D code (19/7/2006)
+%D \item support \type{\setuppublicationlist[title=\chapter]} (4/8/2006)
+%D \item use the expansion of \type{\headtext{pubs}} (4/8/2006)
+%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 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 \stopitemize
-
-%D \subject{TODO}
+%D
+%D \subject{WISHLIST}
%D
%D \startitemize
+%D \item link back from publication list to citation
%D \item export \type {\citation{<cited item>}}
-%D \item export a \type {\bibalternative{lastpubsep}} from BST instead of 'and'
-%D \item don't reset [numbercommand] in \type {\setuppublication} by default
-%D \item sort out different APS versions: PR A/B/L vs. RPM
-%D \item (implement sub-options? / \type {\setupcitationstyle} ?)
-%D \item worry about localization at same time
-%D \item add hyperlinking to the doi->URL and \type {\cite}->list, in general
+%D \item support mlbibtex
%D \item don't load the whole lot, but filter entries instead
%D \stopitemize
@@ -47,6 +110,7 @@
\definesystemvariable {pv} % PublicationVariable
\definesystemvariable {pb} % PuBlication
+
\definemessageconstant {bib}
\definefileconstant {bibextension} {bbl}
@@ -55,7 +119,7 @@
\startmessages all library: bib
title: publications
1: file -- not found, unknown style ignored
- 2: file -- not found, don't forget to run bibtex
+ 2: file -- not found, waiting for bibtex
3: wrote a new auxiliary file \jobname.aux
4: loading database from --
5: warning: cite argument -- on \the\inputlineno
@@ -67,10 +131,6 @@
\startconstants dutch english
database: database database
- sorttype: sorttype sorttype
- compress: compress compress
- autohang: autohang autohang
- % author: author author
artauthor: artauthor artauthor
editor: editor editor
authoretallimit: authoretallimit authoretallimit
@@ -82,6 +142,8 @@
authoretaltext: authoretaltext authoretaltext
artauthoretaltext: artauthoretaltext artauthoretaltext
editoretaltext: editoretaltext editoretaltext
+ otherstext: otherstext otherstext
+ andtext: andtext andtext
totalnumber: totalnumber totalnumber
firstnamesep: firstnamesep firstnamesep
vonsep: vonsep vonsep
@@ -98,69 +160,117 @@
\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
+\def\biblistname{pubs} % for compatibility
+
+%D how to load the references. There is some new stuff here
+%D to support Idris' (incorrect :-)) use of projects
+
+\let\preloadbiblist\relax
+
+
+\ifx\currentcomponent\v!text
+ % single file
+ \edef\temp{\the\everystarttext}%
+ \ifx\temp\empty
+ % post-starttext
+ \def\preloadbiblist{\dousepublications\jobname }%
+ \else
+ % pre-starttext
+ \appendtoks \dousepublications\jobname \to \everystarttext
+ \fi
+ %
+\else \ifx\currentcomponent\v!project
+ % a project file, have to set up the partial products!
+ \def\startproduct #1 %
+ {\doateverystarttext
+ \dousepublications{#1}%
+ \donextlevel\v!product\currentproduct
+ \doexecutefileonce\doexecutefileonce
+ \donotexecutefile\doexecutefile#1\\}%
+ %
+\else \ifx\currentcomponent\v!product
+ % a product file
+ \def\preloadbiblist{\dousepublications\jobname }%
+ %
+\else
+ % a component? not sure what to do
+ \def\preloadbiblist{\dousepublications\jobname }%
+ %
+\fi \fi \fi
+
+\definelist[pubs]
+\setuplist[pubs][\c!width=]
+
+
%D The text string for the publication list header
\setupheadtext[en][pubs=References]
\setupheadtext[nl][pubs=Literatuur]
\setupheadtext[de][pubs=Literatur]
+\setupheadtext[it][pubs=Bibliografia]
+\setupheadtext[sl][pubs=Literatura]
+\setupheadtext[fr][pubs=Bibliographie]
-%D \macros{bibdoifelse}
+%D \macros{bibdoif,bibdoifnot,bibdoifelse}
%D
-%D Here is a really small helper that is used a lot (which is why it
-%D makes sense to use \type{\ifx} instead of \type{\doif..}).
-%D This test is used in all the typesetting commands
+%D Here are a few small helpers that are used a lot
+%D in all the typesetting commands
%D (\type{\insert...}) we will encounter later.
-\def\bibdoifelse#1%
- {\ifx#1\relax
- \@EA\secondoftwoarguments
- \else\ifx#1\empty
- \@EAEAEA\secondoftwoarguments
+\long\def\bibdoifelse#1%
+ {\@EA\def\@EA\!!stringa\@EA{#1}%
+ \ifx\!!stringa\empty
+ \expandafter\secondoftwoarguments
\else
- \@EAEAEA\firstoftwoarguments
- \fi\fi}
+ \expandafter\firstoftwoarguments
+ \fi}
-\def\bibdoif#1%
- {\ifx#1\relax
- \@EA\gobbleoneargument
- \else\ifx#1\empty
- \@EAEAEA\gobbleoneargument
+\long\def\bibdoifnot#1%
+ {\@EA\def\@EA\!!stringa\@EA{#1}%
+ \ifx\!!stringa\empty
+ \expandafter\firstofoneargument
\else
- \@EAEAEA\firstofoneargument
- \fi\fi}
+ \expandafter\gobbleoneargument
+ \fi}
-\def\bibdoifnot#1%
- {\ifx#1\relax
- \@EA\firstofoneargument
- \else\ifx#1\empty
- \@EAEAEA\firstofoneargument
+\long\def\bibdoif#1%
+ {\@EA\def\@EA\!!stringa\@EA{#1}%
+ \ifx\!!stringa\empty
+ \expandafter\gobbleoneargument
\else
- \@EAEAEA\gobbleoneargument
- \fi\fi}
+ \expandafter\firstofoneargument
+ \fi}
+
%D Bibtex settings separated out
@@ -202,12 +312,14 @@
%D \stopitemize
\def\writeauxfile
- {\openout \scratchwrite \jobname.aux
- \write \scratchwrite {\string\citation{*}}%
- \write \scratchwrite {\string\bibstyle{\bibstyle}}%
- \write \scratchwrite {\string\bibdata{\@@pbdatabase}}%
- \closeout\scratchwrite
- \showmessage\m!bib{3}{}}
+ {\doifmode{*first}
+ {\openout \scratchwrite \jobname.aux
+ \write \scratchwrite {\string\citation{*}}%
+ \write \scratchwrite {\string\bibstyle{\bibstyle}}%
+ \write \scratchwrite {\string\bibdata{\@@pbdatabase}}%
+ \closeout\scratchwrite
+ \showmessage\m!bib{3}{}%
+ \installprogram{bibtex \jobname}}}
%D \macros{ifsortbycite,iftypesetall,ifautohang,ifbibcitecompress}
%D
@@ -236,48 +348,49 @@
\def\bibleftnumber#1%
{#1\hfill~}
+
\def\dosetuppublications[#1]%
{\getparameters
[\??pb]
- [\c!numbercommand=\bibleftnumber,\c!alternative=,#1]%
+ [\c!alternative=,#1]%
\doifsomething\@@pbalternative
- {\readsysfile{bibl-\@@pbalternative.tex}
- {\showmessage\m!bib{6}{bibl-\@@pbalternative}\let\@@pbalternative\empty}
- {\showmessage\m!bib{1}{bibl-\@@pbalternative}\let\@@pbalternative\empty}}%
- \doifnothing{\@@pbalternative}
- {\processaction
- [\@@pbcriterium]
- [ \v!all=>\typesetalltrue,
- \s!unknown=>\typesetallfalse]%
- \processaction
- [\@@pbautohang]
- [ \v!yes=>\autohangtrue,
- \s!unknown=>\autohangfalse]%
- \processaction
- [\@@pbsorttype]
- [ \v!cite=>\sortbycitetrue,
- \v!bbl=>\sortbycitefalse,
- \s!default=>\sortbycitetrue,
- \s!unknown=>\sortbycitefalse]%
- \processaction
- [\@@pbnumbering]
- [ \v!yes=>\let\@@pbinumbercommand\firstofoneargument,
- \v!no=>\let\@@pbinumbercommand\gobbleoneargument,
- \v!short=>\def\@@pbinumbercommand##1{\@@pbs},
- \v!bib=>\def\@@pbinumbercommand##1{\@@pbn},
- \s!unknown=>\let\@@pbinumbercommand\firstofoneargument]%
- \processaction
- [\@@pbrefcommand]
- [\s!default=>\edef\@@citedefault{\@@pbrefcommand},
- \s!unknown=>\edef\@@citedefault{\@@pbrefcommand}]}}
+ {\readsysfile
+ {bibl-\@@pbalternative.tex}
+ {\showmessage\m!bib{6}{bibl-\@@pbalternative}\let\@@pbalternative\empty}
+ {\showmessage\m!bib{1}{bibl-\@@pbalternative}\let\@@pbalternative\empty}}%
+ \getparameters
+ [\??pb]
+ [#1]%
+ \processaction
+ [\@@pbcriterium]
+ [ \v!all=>\typesetalltrue,
+ \s!unknown=>\typesetallfalse]%
+ \processaction
+ [\@@pbautohang]
+ [ \v!yes=>\autohangtrue,
+ \s!unknown=>\autohangfalse]%
+ \processaction
+ [\@@pbsorttype]
+ [ \v!cite=>\sortbycitetrue,
+ \v!bbl=>\sortbycitefalse,
+ \s!default=>\sortbycitetrue,
+ \s!unknown=>\sortbycitefalse]%
+ \processaction
+ [\@@pbnumbering]
+ [ \v!yes=>\let\@@pbinumbercommand\firstofoneargument,
+ \v!no=>\let\@@pbinumbercommand\gobbleoneargument,
+ \v!short=>\def\@@pbinumbercommand##1{\getvalue{pbds-\@@pbk}},
+ \v!bib=>\def\@@pbinumbercommand##1{\getvalue{pbdn-\@@pbk}},
+ \s!unknown=>\let\@@pbinumbercommand\firstofoneargument]%
+ \processaction
+ [\@@pbrefcommand]
+ [\s!default=>\edef\@@citedefault{\@@pbrefcommand},
+ \s!unknown=>\edef\@@citedefault{\@@pbrefcommand}]}
% initialize
\def\@@pbrefcommand{num}
-
-%D how to load the references:
-
-\appendtoks \dousepublications\jobname \to \everystarttext
+\def\@@pbnumbercommand{\bibleftnumber}
%D \macros{usepublications}
%D
@@ -289,9 +402,11 @@
{\usereferences[#1]\processcommalist[#1]\dousepublications}
\def\dousepublications#1%
- {\readsysfile{#1.\f!bibextension}
- {\showmessage\m!bib{4}{#1.\f!bibextension}}
- {\showmessage\m!bib{2}{#1.\f!bibextension}}}
+ {\doonlyonce
+ {#1.\f!bibextension}
+ {\readfile{#1.\f!bibextension}
+ {\showmessage\m!bib{4}{#1.\f!bibextension}}
+ {\showmessage\m!bib{2}{#1.\f!bibextension}}}}
%D \macros{setuppublicationlist}
%D
@@ -309,18 +424,15 @@
\def\setuppublicationlist
{\dosingleempty\dosetuppublicationlist}
-\definelist[pubs][pubs]
-
\def\dosetuppublicationlist[#1]%
- {\getparameters
- [@@pvdata]
- [\c!samplesize={AA99},\c!totalnumber={99},#1]% for sample & totalnumber & firstnamesep etc.
+ {\getparameters[\??pv data][#1]%
\setuplist
- [pubs]
- [\c!alternative=a,\c!pagenumber=\v!no,#1]}
+ [pubs]
+ [\c!samplesize={AA99},\c!totalnumber={99},
+ \c!alternative=a,\c!interaction=,\c!pagenumber=\v!no,#1]}
-\def\setuppublicationlayout[#1]%
- {\setvalue{@@pvdata#1}}
+\def\setuppublicationlayout[#1]#2%
+ {\setvalue{\??pv data#1}{#2\unskip}}
%D \macros{bibalternative}
%D
@@ -350,26 +462,43 @@
\def\simplebibdef#1% hh: funny expansion ?
{\@EA\long\@EA\def\csname bib@#1\endcsname##1%
- {\setvalue{\??pb @#1}{##1}\ignorespaces}%
+ {\setvalue{\??pb @#1}{##1}%
+ \ignorespaces}%
\@EA\def\csname insert#1\endcsname##1##2##3%
{\@EA\bibdoifelse
\@EA{\csname @@pb@#1\endcsname}%
{##1\csname @@pb@#1\endcsname##2}%
- {##3}}}
+ {##3}%
+ }}
\def\bibcommandlist
- {arttitle,title,journal,notes,
- volume,issue,pubname,city,country,
- type,organization,institute,series,thekey,
- edition,month,pubyear,note,annotate,pages,
- keyword,keywords,comment,abstract,names,size,
- issn,isbn,chapter,eprint,doi,howpublished}
+ {abstract, annotate, arttitle, assignee, bibnumber, bibtype, biburl, chapter, city,
+ comment, country, day, dayfiled, doi, edition, eprint, howpublished, isbn, issn,
+ issue, journal, keyword, keywords, lastchecked, month, monthfiled, names, nationality,
+ note, notes, organization, pages, pubname, pubyear, revision, series, size, thekey,
+ title, volume, yearfiled}
+
\processcommacommand[\bibcommandlist]\simplebibdef
+\def\insertbiburl#1#2#3%
+ {{\bibdoifelse{\@@pb@biburl}%
+ {\edef\ascii{\@EA\detokenize\@EA{\@@pb@biburl}}%
+ #1\@EA\hyphenatedurl\@EA{\ascii}#2}{#3}}}
+
+\def\insertmonth#1#2#3%
+ {\bibdoifelse{\@@pb@month}%
+ {#1\doifnumberelse{\@@pb@month}%
+ {\doifconversiondefinedelse\@@pbmonthconversion
+ {\convertnumber\@@pbmonthconversion{\@@pb@month}}{\@@pb@month}}%
+ {\@@pb@month}#2}{#3}}
+
+\let\inserturl \insertbiburl % for backward compat.
+\let\inserttype\insertbibtype % for backward compat.
+
\def\newbibfield[#1]%
{\simplebibdef{#1}%
- \edef\bibcommalist{\bibcommandlist,#1}}
+ \edef\bibcommandlist{\bibcommandlist,#1}}
%D \macros{bib@crossref}
%D
@@ -395,7 +524,7 @@
%D
%D \type{\author[junior]{firstnames}[inits]{von}{surname}}
%D
-%D (bracketed stuff should become optional someday)
+%D (bracketed stuff is optional)
%D
%D And not only that, but there also might be more than one of each of
%D these commands. This is why a special command is needed to insert
@@ -407,41 +536,38 @@
%D things: increment the counter \type{\author@num} (let's say to 2)
%D and next store it's arguments in the macro \type{\@@pb@author2}.
%D And it defines \type{\insertauthors} to expand into
-%D \starttypen
+%D \starttyping
%D \specialbibinsert{author}{\author@num}{<before>}{<after>}{<not>}
-%D \stoptypen
+%D \stoptyping
+
+\def\docomplexbibdef#1%
+ {\def\currentype{#1}%
+ \dosingleempty\dodocomplexbibdef}
+
+\def\dodocomplexbibdef[#1]#2%
+ {\def\firstarg{#1}\def\secondarg{#2}%
+ \dosingleempty\dododocomplexbibdef}
-% hh: use a context counter instead, more options
+\def\dododocomplexbibdef[#1]#2#3%
+ {\@EA\increment\csname \currentype @num\endcsname
+ \setevalue{\??pb @\currentype\csname \currentype @num\endcsname}%
+ {{\secondarg}{#2}{#3}{#1}{\firstarg}}\ignorespaces}%
\def\complexbibdef#1%
{\@EA\newcounter\csname #1@num\endcsname
- \@EA\def\csname bib@#1\endcsname[##1]##2[##3]##4##5%
- {\@EA\increment\csname #1@num\endcsname
- \setvalue{\??pb @#1\csname #1@num\endcsname}%
- {{##2}{##4}{##5}{##3}{##1}}\ignorespaces}%
+ \@EA\def\csname bib@#1\endcsname{\docomplexbibdef{#1}}%
\@EA\def\csname insert#1s\endcsname##1##2##3%
- {\specialbibinsert{#1}{\csname #1@num\endcsname}{##1}{##2}{##3}}}
+ {\specialbibinsert{#1}{\csname #1@num\endcsname}{##1}{\unskip ##2}{##3}}}
\processcommalist[author,artauthor,editor]\complexbibdef
%D Another level of indirection is needed to control the
-%D typesetting of all of these arguments, which explains the usage
-%D of \type{\tempa} below.
-
-%D There is some sneaky stuff with \type{\tempa} and \type{\tempb}
-%D going on here to resolve the \type{\csname}'s. It probably could
-%D be done a little bit more elegant, but it works. The basic goal
-%D is to get the command that will actually typeset the name into
-%D the macro \type{\tempb}, and to make sure that that command will actually
-%D recieve five arguments (see the definition of
-%D e.g. \type{\invertedauthor} below).
-
-%D There is a conflict between `author' and the predefined interface
+%D typesetting of all of these arguments.
+
+%D Btw, there is a conflict between `author' and the predefined interface
%D variable `auteur'. The old version is overruled `auteur' is
%D overruled by the systemconstant definition at the top of this file!
-%D The increment/decrement trick on \type{\scratchcounter} is needed
-%D to decide what name the last one is.
\newcount\etallimitcounter
\newcount\etaldisplaycounter
@@ -450,8 +576,6 @@
\def\specialbibinsert#1#2#3#4#5%
{\bgroup
\ifnum#2>\zerocount
- \letcscsname\tempa\csname @@pvdata#1\endcsname
- \def\tempb{\@EA\tempa}%
\etallimitcounter =0\bibalternative{#1etallimit}\relax
\etaldisplaycounter=0\bibalternative{#1etaldisplay}\relax
\ifnum #2>\etallimitcounter
@@ -463,40 +587,55 @@
\else
\todocounter#2\relax
\fi
- \scratchcounter\zerocount
\ifnum\todocounter>\zerocount
- #3%
- \doloop
- {\ifnum \scratchcounter < \todocounter
- \advance\scratchcounter \plusone
- \ifnum \scratchcounter = \todocounter
- \@EA\tempb \csname @@pb@#1\the\scratchcounter\endcsname
- \ifnum\etallimitcounter<#2 \bibalternative{#1etaltext}\fi #4%
- \else
- \@EA\tempb \csname @@pb@#1\the\scratchcounter\endcsname
- \advance\scratchcounter \plusone
- \ifnum \scratchcounter = \todocounter
- \ifnum \todocounter > \plustwo
- \bibalternative\c!finalnamesep
- \else
- \bibalternative\c!lastnamesep
- \fi
- \else
- \bibalternative\c!namesep
- \fi
- \advance\scratchcounter \minusone
- \fi
- \else
- \exitloop
- \fi}%
- \else
- #5%
- \fi
+ % find the current author list
+ \let\templist\empty
+ \dorecurse{#2}
+ {\toks0=\@EA\@EA\@EA{\csname @@pb@#1\recurselevel\endcsname}%
+ \ifx\templist\empty \edef\templist{\the\toks0}%
+ \else \edef\templist{\templist,\the\toks0}\fi }%
+ \doifdefinedelse
+ {\??pv data#1\c!command}
+ {\doifemptyelsevalue
+ {\??pv data#1\c!command}
+ {#3\dospecialbibinsert{#1}{\todocounter}{\templist}#4}%
+ {#3\getvalue{\??pv data#1\c!command}{#1}{\todocounter}{\templist}#4}}%
+ {#3\dospecialbibinsert{#1}{\todocounter}{\templist}#4}%
+ \else
+ #5%
+ \fi
\else
#5%
\fi
\egroup}
+%D This macro does the hard work of inserting a list of people in the
+%D output, with proper regard of all the inbetween strings that can
+%D arise depending on length of the list of people.
+
+%D \#1 = type
+%D \#2 = number of items to be typeset
+%D \#3 = commacommand containing authors
+
+\def\dospecialbibinsert#1#2#3%
+ {\getcommacommandsize[#3]%
+ \scratchcounter 0
+ \def\processauthoritem##1%
+ {\advance\scratchcounter1
+ \ifnum \numexpr\scratchcounter-1\relax<#2\relax
+ \getvalue{\??pv data#1}##1%
+ \ifnum \scratchcounter=#2\relax
+ \ifnum\etallimitcounter<\commalistsize \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}%
+ \processcommacommand[#3]\processauthoritem }
+
+
%D \macros{invertedauthor,normalauthor,invertedshortauthor,normalshortauthor}
%D
%D Just some commands that can be used in \type{\setuppublicationparameters}
@@ -515,29 +654,29 @@
%D }
%D
-\def\invertedauthor#1#2#3#4#5%
- {\bibdoif{#2}{#2\bibalternative\c!vonsep}%
- #3\bibalternative\c!surnamesep
- \bibdoif{#5}{#5\bibalternative\c!juniorsep}%
- \bibdoif{#1}{#1\unskip}}
-
\def\normalauthor#1#2#3#4#5%
{\bibdoif{#1}{#1\bibalternative\c!firstnamesep}%
\bibdoif{#2}{#2\bibalternative\c!vonsep}%
- #3\bibalternative\c!surnamesep
- \bibdoif{#5}{#5\unskip}}
-
-\def\invertedshortauthor#1#2#3#4#5%
- {\bibdoif{#2}{#2\bibalternative\c!vonsep}%
- #3\bibalternative\c!surnamesep
- \bibdoif{#5}{#5\bibalternative\c!juniorsep}%
- \bibdoif{#4}{#4\unskip}}
+ #3%
+ \bibdoif{#5}{\bibalternative\c!surnamesep#5\unskip}}
\def\normalshortauthor#1#2#3#4#5%
{\bibdoif{#4}{#4\bibalternative\c!firstnamesep}%
\bibdoif{#2}{#2\bibalternative\c!vonsep}%
- #3\bibalternative\c!surnamesep
- \bibdoif{#5}{#5\unskip}}
+ #3%
+ \bibdoif{#5}{\bibalternative\c!surnamesep#5\unskip}}
+
+\def\invertedauthor#1#2#3#4#5%
+ {\bibdoif{#2}{#2\bibalternative\c!vonsep}%
+ #3%
+ \bibdoif{#5}{\bibalternative\c!juniorsep #5}%
+ \bibdoif{#1}{\bibalternative\c!surnamesep #1\unskip}}
+
+\def\invertedshortauthor#1#2#3#4#5%
+ {\bibdoif{#2}{#2\bibalternative\c!vonsep}%
+ #3%
+ \bibdoif{#5}{\bibalternative\c!juniorsep #5}%
+ \bibdoif{#4}{\bibalternative\c!surnamesep #4\unskip}}
%D \macros{clearbibitem,clearbibitemtwo,bibitemdefs}
%D
@@ -555,18 +694,14 @@
\advance\scratchcounter\plusone}%
{\exitloop}}}
-\def\bibitemdefs#1{\setvalue{#1}{\csname bib@#1\endcsname}}
+\def\bibitemdefs#1%
+ {\@EA\let\@EA\tempa \csname bib@#1\endcsname
+ \@EA\let\csname #1\endcsname \tempa }
%D \macros{startpublication}
%D
%D We are coming to the end of this module, to the macros that
%D do typesetting and read the \type{bbl} file.
-%D
-%D The stuff between \type{\startpublication} ... \type{\stoppublication}
-%D is simply stored into a macro: either
-%D \type{\publist} (potentially huge) or separate macros
-%D for each of them, depending on whether
-%D or not we do \type{\sortbycite}, as explained above.
\newcounter\bibcounter
@@ -593,75 +728,183 @@
\long\def\dostartpublication[#1]#2\stoppublication%
{\increment\bibcounter
\bgroup
- \bgroup\honorunexpanded
\doifassignmentelse{#1}%
- {\egroup\getparameters[\??pb][k=,t=article,n=,s=,a=,y=,o=,#1]}%
- {\egroup\getparameters[\??pb][k=#1,t=article,n=,s=,a=,y=,o=]}%
- \toks0={\ignorespaces #2}%
- \@EA\toks\@EA2\@EA{\@@pba}%
- \@EA\toks\@EA4\@EA{\@@pbs}%
- \setxvalue{pbd-\@@pbk}%
- {{\the\toks2}% \@@pba (author)
- {\@@pby}%
- {\the\toks4}% \@@pbs (short)
- {\@@pbn}%
- {\@@pbt}%
- {\the\toks0}% (data)
- {\@@pbo}}% doi
- \xdef\allrefs{\allrefs,\@@pbk}%
- \egroup}
+ {\getparameters[\??pb][k=,t=article,n=,s=,a=,y=,o=,u=,#1]}%
+ {\getparameters[\??pb][k=#1,t=article,n=,s=,a=,y=,o=,u=]}%
+ \@EA\toks\@EA2\@EA{\@@pba}%
+ \@EA\toks\@EA4\@EA{\@@pbs}%
+ \toks0={\ignorespaces #2}%
+ \setxvalue{pbdk-\@@pbk}{\@@pbk}
+ \setxvalue{pbda-\@@pbk}{\the\toks2}
+ \setxvalue{pbdy-\@@pbk}{\@@pby}
+ \setxvalue{pbds-\@@pbk}{\the\toks4}
+ \setxvalue{pbdn-\@@pbk}{\@@pbn}
+ \setxvalue{pbdt-\@@pbk}{\@@pbt}
+ \setxvalue{pbdo-\@@pbk}{\@@pbo}
+ \setxvalue{pbdu-\@@pbk}{\@@pbu}
+ \setxvalue{pbdd-\@@pbk}{\the\toks0}
+ \xdef\allrefs{\allrefs,\@@pbk}%
+ \egroup }
% intialization of the order-list:
\let\allrefs\empty
-% how to get stuff from a pbd-*** macro:
+%D The next macro is needed because the number command of the
+%D publist sometimes needs to fetch something from the current
+%D item (like the 'short' key). For this, the ID of the current
+%D item is passed in the implict parameter \type{\@@pbk}
-\def\restorebibdata#1%
- {\def\@@pbk{#1}%
- \@EA\dorestorebibdata\csname pbd-#1\endcsname}
+\def\makepbkvalue#1{\def\@@pbk{#1}}
-\def\dorestorebibdata#1%
- {\@EA\dodorestorebibdata#1{}{}{}{}{}{}{}\relax}
+%D
-\def\dodorestorebibdata#1#2#3#4#5#6#7#8\relax%
- {\def\@@pba{#1}%
- \def\@@pby{#2}%
- \def\@@pbs{#3}%
- \def\@@pbn{#4}%
- \def\@@pbt{#5}%
- \def\@@pbd{#6}%
- \def\@@pbo{#7}}
+\newif\ifinpublist
-%D The \writeutility trick is dodgy at best, but it is needed
-%D to make sure that \placepublications\stoptext works as
-%D advertised. (without the \immediate, there *has* to be at
-%D least one page break between \placepublications and \stoptext)
-%D
+% from Hans
+
+\def\ignoresectionconversion
+ {\let\@@sectionconversion\secondoftwoarguments}
+
+\let\normaldosetfilterlevel\dosetfilterlevel
+
+\def\patcheddosetfilterlevel#1#2% beware: this one is \let
+ {\bgroup
+ \ignoresectionconversion
+ \edef\askedlevel{#1}%
+ \edef\askedfilter{#2}%
+% \message{ASKD: \meaning\askedlevel}%
+% \message{PREV: \meaning\v!previous}%
+ \ifx\askedlevel\v!current
+ \dosetcurrentlevel\askedlevel
+ \else\ifx\askedlevel\v!previous
+ \dosetpreviouslevel\askedlevel
+ \else\ifx\askedlevel\v!all
+ \global\chardef\alltoclevels\plusone
+ \else\ifx\askedlevel\v!text
+ \global\chardef\alltoclevels\plusone
+ \else
+ \edef\byaskedlevel{\csname\??by\askedlevel\endcsname}%
+ \ifx\byaskedlevel\v!text
+ \dosettextlevel\askedlevel
+ \else
+ \dosetotherlevel\askedlevel
+ \fi
+ \fi\fi\fi\fi
+ % experiment
+ \ifx\askedfilter\empty \else
+ \xdef\currentlevel{\currentlevel\sectionseparator\askedfilter}%
+ \fi
+ \egroup}
+
+
+\unless\ifcsname currentlocationrefence\endcsname
-\def\preinitializepubslist
- {\let\bibcounter\!!zerocount
+\let\currentlocationreference\empty
+
+\def\dogetreferenceelements#1#2#3#4#5%
+ {\chardef\currentreferencetype=\ifx#1\relax0\else#1\fi\relax
+ \ifnum\currentreferencetype<2
+ \edef\currentpagereference{#2}%
+ \let \currentdatareference\empty
+ \edef\currentlocationreference{#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
+ \let \currentlocationreference\empty
+ \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}
+
+\fi
+
+\def\filllocalpublist%
+ {\let\dosetfilterlevel\patcheddosetfilterlevel
+ \dosettoclevel\??li{pubs}%
+ \let\dosetfilterlevel\normaldosetfilterlevel
+ \global\let\glocalpublist\empty
+ \doloop
+ {\doifdefinedelse
+ {\r!cross cite-\jobname-\recurselevel}
+ {\doifreferencefoundelse
+ {cite-\jobname-\recurselevel}
+ {\@EA\doifreglevelelse\@EA[\currentlocationreference]
+ {\@EA\doglobal\@EA\addtocommalist\@EA
+ {\currenttextreference}\glocalpublist}{}}
+ {}}%
+ {\exitloop}}%
+ \let\localpublist\glocalpublist}
+
+%
+\def\typesetpubslist
+ {\dobeginoflist
+ \edef\askedlevel{\csname \??li pubs\c!criterium\endcsname}%
+ \ifx\askedlevel\v!all
+ \def\bibrefprefix{}%
+ \else %
+ \preparebibrefprefix
+ \fi
\ifsortbycite
- \processcommacommand[\publist]\sortwritepublist
- \glet\publist\empty
+ \filllocalpublist
\iftypesetall
- \processcommacommand[\allrefs]\writepublist
+ \let\localallrefs\allrefs
+ \processcommacommand[\localpublist]\typesetapublication
+ \def\removefromallrefs##1%
+ {\removefromcommalist{##1}\localallrefs }%
+ \processcommacommand[\localpublist]\removefromallrefs
+ \processcommacommand[\localallrefs]\typesetapublication
+ \else
+ \processcommacommand[\localpublist]\typesetapublication
\fi
\else
\iftypesetall
- \processcommacommand[\allrefs]\writepublist
+ \processcommacommand[\allrefs]\typesetapublication
\else
- \processcommacommand[\allrefs]\writereferredpublist
+ %
+ \filllocalpublist
+ \processcommacommand[\allrefs]\maybetypesetapublication
\fi
- \fi}
+ \fi
+ \doendoflist }
+
+\newif\ifinpublist
+\def\maybetypesetapublication#1%
+ {\global\inpublistfalse
+ \def\test{#1}%
+ \def\runtest##1%
+ {\def\tempa{##1}\ifx \test\tempa \global\inpublisttrue \fi}%
+ \processcommacommand[\localpublist]\runtest
+ \ifinpublist \typesetapublication{#1}\fi}
\def\initializepubslist
{\edef\@@pbnumbering{\@@pbnumbering}%
\ifautohang
\ifx\@@pbnumbering\v!short
- \setbox\scratchbox\hbox{\@@pbnumbercommand{\csname @@pvdata\c!samplesize\endcsname}}%
+ \setbox\scratchbox\hbox{\@@pbnumbercommand{\getvalue{\??li pubs\c!samplesize}}}%
\else\iftypesetall
- \setbox\scratchbox\hbox{\@@pbnumbercommand{\csname @@pvdata\c!totalnumber\endcsname}}%
+ \setbox\scratchbox\hbox{\@@pbnumbercommand{\getvalue{\??li pubs\c!totalnumber}}}%
\else
\setbox\scratchbox\hbox{\@@pbnumbercommand{\numreferred}}%
\fi\fi
@@ -669,19 +912,23 @@
\setuplist[pubs][\c!width=\samplewidth,\c!distance=0pt]%
\def\@@pblimitednumber##1{\hbox to \samplewidth{\@@pbnumbercommand{##1}}}%
\else
- \def\@@pblimitednumber##1{\hbox{\@@pbnumbercommand{##1}}}%
+ \doifemptyelse
+ {\getvalue{\??li pubs\c!width}}
+ {\def\@@pblimitednumber##1{\hbox{\@@pbnumbercommand{##1}}}}%
+ {\def\@@pblimitednumber##1{\hbox to \getvalue{\??li pubs\c!width}{\@@pbnumbercommand{##1}}}}%
\fi
\ifx\@@pbnumbering\v!no
- \setuplist[pubs][\c!numbercommand=,\c!textcommand=\outdented]
+ \setuplist[pubs][\c!numbercommand=,\c!symbol=\v!none,\c!textcommand=\outdented]
\else
- \setuplist[pubs][\c!numbercommand=\@@pblimitednumber,\c!textcommand=]
+ \setuplist[pubs][\c!numbercommand=\@@pblimitednumber]%
\fi
\forgetall % bugfix 2005/03/18
}
+
\def\outdented#1% move to supp-box ?
- {\hskip -\hangindent
- \strut#1\strut}
+ {\hskip -\hangindent #1}
+
%D The full list of publications
@@ -689,12 +936,23 @@
{\dosingleempty\docompletepublications}
\def\docompletepublications[#1]%
- {\preinitializepubslist
- \ifcase\bibcounter\else % HERE it said "\or" instead of "\else"
- \initializepubslist
- \let\bibcounter\!!zerocount
- \completelist[pubs][\c!criterium=all,#1]%
- \fi}
+ {%\getparameters[\??pv data][#1]%
+ \begingroup
+ \setuplist[pubs][\c!criterium=\v!previous,#1]
+ \begingroup
+ \loggingall
+ \let\handletextprefix\firstoftwoarguments
+ \edef\headtextpubs{\dogetupsometextprefix\headlanguage\c!title{pubs}}%
+ \doifdefinedelse
+ {\??pv data\v!title}
+ {\doifemptyelsevalue
+ {\??pv data\v!title}
+ {\expanded{\systemsuppliedtitle[pubs]{\headtextpubs}}}%
+ {\expanded{\getvalue{\??pv data\v!title}{\headtextpubs}}}%
+ }%
+ {\expanded{\systemsuppliedtitle[pubs]{\headtextpubs}}}%
+ \endgroup
+ \dodoplacepublications }
%D And the portion with the entries only.
@@ -702,63 +960,63 @@
{\dosingleempty\doplacepublications}
\def\doplacepublications[#1]%
- {\preinitializepubslist
- \ifcase\bibcounter\else % HERE it said "\or" instead of "\else"
- \initializepubslist
- \let\bibcounter\!!zerocount
- \placelist[pubs][\c!criterium=\v!all,#1]%
- \fi}
-
-\def\dowritebiblist#1#2%
- {\restorebibdata{#2}%
- \edef\pbnumbercommand{\@@pbinumbercommand{#1}}%
- \@EA\dodowritebiblist\@EA{\pbnumbercommand}{\typesetapublication{#2}}}
-
-\def\dodowritebiblist
- {\writetolist[pubs]}
+ {%\getparameters[\??pv data][#1]
+ \begingroup
+ \setuplist[pubs][\c!criterium=\v!previous,#1]
+ \dodoplacepublications }%
-\def\writepublist#1%
- {\doifnotempty{#1}
- {\increment\bibcounter
- \@EA\dowritebiblist\@EA{\bibcounter}{#1}}}
+\def\dodoplacepublications%
+ {\initializepubslist
+ \global\let\bibcounter\!!zerocount
+ \inpublisttrue
+ \typesetpubslist
+ \inpublistfalse
+ \endgroup }
-\def\writereferredpublist#1%
- {\doifnotempty{#1}
- {\doifreferredelse{#1}
- {\increment\bibcounter
- \@EA\dowritebiblist\@EA{\bibcounter}{#1}}{}}}
-\def\sortwritepublist#1%
- {\doifnotempty{#1}
- {\removefromcommalist{#1}\allrefs
- \increment\bibcounter
- \@EA\dowritebiblist\@EA{\bibcounter}{#1}}}
-
-%D \subonderwerp{What's in a publication}
+%D \subsubject{What's in a publication}
%D
-\def\typesetapublication
- {\doglobal\increment\bibcounter
- \dotypesetapublication}
+\unexpanded\def\typesetapublication#1%
+ {\doifsomething{#1}{\doglobal\increment\bibcounter
+ \dodolistelement{pubs}{}{\bibcounter}%
+ {\expanded{\reference[\bibrefprefix#1]{\bibcounter}}%
+ \strut \dotypesetapublication{#1}\strut }{}{}}}
\def\dotypesetapublication#1%
{\bgroup
\def\@@currentalternative{data}%
- \restorebibdata{#1}%
+ \makepbkvalue{#1}%
\processcommacommand[\bibcommandlist,crossref]\clearbibitem
\processcommalist [artauthor,author,editor]\clearbibitemtwo
\processcommacommand[\bibcommandlist]\bibitemdefs
\processcommalist [artauthor,author,editor,crossref]\bibitemdefs
- \expanded{\reference[\@@pbk]{\bibcounter}}%
- \@@pbd % execute data
- \bibalternative{\@@pbt}% do typesetting
- \egroup}
+ \let\biblanguage\empty
+ \getvalue{pbdd-#1}%
+ \ifcsname pbdt-#1\endcsname \bibalternative{\getvalue{pbdt-#1}}\fi
+ \egroup }
+
%D An afterthought
\def\maybeyear#1{}
-%D \onderwerp{Citations}
+%D An another
+
+\def\noopsort#1{}
+
+%D This is the result of bibtex's `language' field.
+
+\def\setbiblanguage#1#2{\setvalue{\??pb @lang@#1}{#2}}
+
+\def\lang#1%
+ {\def\biblanguage{#1}%
+ \ifcsname \??pb @lang@#1\endcsname
+ \expanded{\language[\getvalue{\??pb @lang@#1}]}%
+ \fi \ignorespaces}
+
+
+%D \subject{Citations}
%D \macros{cite,bibref}
%D
@@ -766,39 +1024,122 @@
%D \type{\cite} commands with a braced argument (these might appear
%D in included data from the \type{.bib} file).
-\def\cite
+\unexpanded\def\cite
{\doifnextcharelse{[}
- {\dodoubleempty\docite}
+ {\dodocite}
{\dobibref}}
\def\dobibref#1%
- {\docite[#1]}
-
-\def\docite#1[#2]#3[#4]%
- {\ifsecondargument
- \def\@@currentalternative{#2}%
- \expanded{\processaction[\csname @@pv#2compress\endcsname]}
- [ \v!yes=>\bibcitecompresstrue,
- \v!no=>\bibcitecompressfalse,
- \s!default=>\bibcitecompresstrue,
- \s!unknown=>\bibcitecompresstrue]%
- \getvalue{bib#2ref}[#4]%
+ {\docite[#1][]}
+
+\def\dodocite[#1]%
+ {\startstrictinspectnextcharacter
+ \dodoubleempty\dododocite[#1]}
+
+\def\dododocite[#1][#2]{%
+ \stopstrictinspectnextcharacter
+ \docite[#1][#2]}
+
+\def\docite[#1][#2]%
+ {\begingroup
+ \setupinteraction[\c!style=]%
+ \edef\temp{#2}%
+ \ifx\empty\temp \secondargumentfalse
+ \else \secondargumenttrue \fi
+ \ifsecondargument
+ \processcommalist[#2]\docitation
+ \doifassignmentelse
+ {#1}%
+ {\getparameters[LO][\c!alternative=,\c!extras=,#1]%
+ \edef\@@currentalternative{\LOalternative}%
+ \ifx\@@currentalternative\empty
+ \edef\@@currentalternative{\@@citedefault}%
+ \fi
+ \ifx\LOextras\empty
+ \setupcite[\@@currentalternative][#1]%
+ \else
+ \expandafter\ifx\csname LOright\endcsname \relax
+ \edef\LOextras{{\LOextras\bibalternative\c!right}}%
+ \else
+ \edef\LOextras{{\LOextras\LOright}}%
+ \fi
+ \expanded{\setupcite[\@@currentalternative][#1,\c!right=\LOextras]}%
+ \fi
+ }%
+ {\def\@@currentalternative{#1}}%
+ \expanded{%
+ \processaction[\csname @@pv\@@currentalternative \c!compress\endcsname]}
+ [ \v!yes=>\bibcitecompresstrue,
+ \v!no=>\bibcitecompressfalse,
+ \s!default=>\bibcitecompresstrue,
+ \s!unknown=>\bibcitecompresstrue]%
+ \getvalue{bib\@@currentalternative ref}[#2]%
\else
- \expanded{\processaction[\csname @@pv\@@citedefault compress\endcsname]}
+ \processcommalist[#1]\docitation
+ \expanded{\processaction[\csname @@pv\@@citedefault \c!compress\endcsname]}
[ \v!yes=>\bibcitecompresstrue,
\v!no=>\bibcitecompressfalse,
\s!default=>\bibcitecompresstrue,
\s!unknown=>\bibcitecompresstrue]%
\edef\@@currentalternative{\@@citedefault}%
- \getvalue{bib\@@citedefault ref}[#2]%
- \fi}
+ \getvalue{bib\@@citedefault ref}[#1]%
+ \fi
+ \endgroup}
+
+%D \macros{nocite}
+
+\def\nocite[#1]%
+ {\processcommalist[#1]\addthisref
+ \processcommalist[#1]\docitation }
+
+%D \macros{setupcite}
+
+\def\setupcite{\dodoubleempty\dosetupcite}
+
+\def\dosetupcite[#1][#2]%
+ {\ifsecondargument
+ \def\dodosetupcite##1{\getparameters[\??pv##1][#2]}%
+ \processcommalist[#1]\dodosetupcite
+ \else % default case
+ \getparameters[\??pv\@@citedefault][#1]%
+ \fi }
+
+
+%D Low-level stuff
+
+\def\getcitedata#1[#2]#3[#4]#5to#6%
+ {\bgroup
+ \addthisref{#4}%
+ \dofetchapublication{#4}%
+ \doifdefinedelse{@@pb@bib#2}%
+ {\xdef#6{\getvalue{@@pb@bib#2}}}%
+ {\xdef#6{\getvalue{@@pb@#2}}}%
+ \egroup }
-\def\setupcite#1[#2]#3[#4]%
- {\def\getciteargs##1{\getparameters[\??pv##1][#4]}%
- \processcommalist[#2]\dosetupcite}
-\def\dosetupcite#1%
- {\getciteargs{#1}}
+\def\dofetchapublication#1%
+ {\makepbkvalue{#1}%
+ \processcommacommand[\bibcommandlist,crossref]\clearbibitem
+ \processcommalist [artauthor,author,editor]\clearbibitemtwo
+ \processcommacommand[\bibcommandlist]\bibitemdefs
+ \processcommalist [artauthor,author,editor,crossref]\bibitemdefs
+ \getvalue{pbdd-#1}}
+
+%D This new version writes a reference out to the tui file for every
+%D \type{\cite}. This will allow backlinking.
+%D
+%D Some special care is needed so that references are not added from
+%D weird locations like in the TOC or within a \type{\setbox} command.
+
+\newcounter\citationnumber
+
+\def\docitation#1{%
+ \iftrialtypesetting \else
+ \ifdoinpututilities\else
+ \doglobal\increment\citationnumber
+ \expanded{\rawreference{}{cite-\jobname-\citationnumber}{#1}}%
+ \fi \fi }
+
%D \macros{numreferred,doifreferredelse,addthisref,publist}
%D
@@ -814,10 +1155,11 @@
\long\def\doifreferredelse#1{\doifdefinedelse{pbr-#1}}
\def\addthisref#1%
- {\doifundefined{pbr-#1}
- {\setgvalue{pbr-#1}{a}%
+ {\doifundefinedelse{pbr-#1}
+ {\setxvalue{pbr-#1}{\citationnumber}%
\doglobal\increment\numreferred
- \appended\gdef\publist{,#1}}}
+ \ifx\publist\empty \gdef\publist{#1}\else\appended\gdef\publist{,#1}\fi}
+ {\setxvalue{pbr-#1}{\getvalue{pbr-#1},\citationnumber}}}
\let\publist\empty
@@ -827,8 +1169,8 @@
%D \type{\startpublication}.
\def\doifbibreferencefoundelse#1#2#3%
- {\doifdefinedelse{pbd-#1}
- {\restorebibdata{#1}#2}
+ {\doifdefinedelse{pbdk-#1}
+ {#2}
{\showmessage\m!bib{5}{#1 is unknown}#3}}
%D \macros{ixbibauthoryear,thebibauthors,thebibyears}
@@ -856,19 +1198,13 @@
%D
%D In `normal' \TeX, of course there are expansion problems again.
-\def\gobble#1{\def#1##1{##1}}
-
-\def\sanitizeaccents{\processcommalist[\',\`,\",\.,\c,\d,\~,\=]\gobble}
-
\def\ixbibauthoryear#1#2#3#4%
{\bgroup
- \sanitizeaccents
\gdef\ixlastcommand {#4}%
\gdef\ixsecondcommand{#3}%
\gdef\ixfirstcommand {#2}%
\glet\thebibauthors \empty
\glet\thebibyears \empty
- \glet\theauthorssize \empty
\getcommalistsize[#1]%
\ifbibcitecompress
\dorecurse\commalistsize{\xdef\thebibyears{\thebibyears,}}%
@@ -876,8 +1212,6 @@
\else
\processcommalist[#1]\donormalbibauthoryear
\fi
- \getcommacommandsize[\thebibauthors]%
- \xdef\theauthorssize{\commalistsize}%
\egroup
\dobibauthoryear}
@@ -895,8 +1229,8 @@
{\advance\scratchcounter\plusone
\edef\wantednumber{\the\scratchcounter}%
\getfromcommacommand[\thebibyears][\wantednumber]%
- \def\AU{#1}% brr
- \@EA\def\@EA\YR\@EA{\commalistelement}%
+ \@EA\def\@EA\currentbibyear\@EA{\commalistelement}%
+ \setcurrentbibauthor{#1}%
\ifnum\scratchcounter=\plusone
\ixfirstcommand
\else\ifnum \scratchcounter=\commalistsize\relax
@@ -905,6 +1239,37 @@
\ixsecondcommand
\fi\fi}
+\def\setcurrentbibauthor#1%
+ {\getcommacommandsize[#1]%
+ \ifcase\commalistsize
+ % anonymous?
+ \def\currentbibauthor{}%
+ \or
+ \def\currentbibauthor{#1}%
+ \or
+ \expanded{\docurrentbibauthor#1}%
+ \else
+ % this can't happen/
+ \def\currentbibauthor{}%
+ \fi }
+
+
+\def\docurrentbibauthor#1,#2%
+ {\doifemptyelse{#2}
+ {\def\currentbibauthor{#1\bibalternative{otherstext}}}
+ {\edef\currentbibauthor{#1%
+ \ifcase0\bibalternative{authoretallimit}\relax\or
+ \bibalternative{otherstext}\else \bibalternative{andtext}#2\fi}}}
+
+%D This is not the one Hans made for me, because I need a global
+%D edef, and the \type{\robustdoifinsetelse} doesn't listen to
+%D \type{\doglobal }
+
+\def\robustaddtocommalist#1#2% {item} \cs
+ {\robustdoifinsetelse{#1}#2\resetglobal
+ {\dodoglobal\xdef#2{\ifx#2\empty\else#2,\fi#1}}}
+
+
%D \macros{donormalbibauthoryear}
%D
%D Now we get to the macros that fill the two lists.
@@ -912,14 +1277,14 @@
\def\donormalbibauthoryear#1%
{\addthisref{#1}%
- \xdef\myauthor{Xxxxxxxxxx}%
- \xdef\myyear{0000}%
+ \def\myauthor{Xxxxxxxxxx}%
+ \def\myyear{0000}%
\doifbibreferencefoundelse{#1}
- {\@EA\gdef\@EA\myauthor\@EA{\@@pba}%
- \@EA\gdef\@EA\myyear \@EA{\@@pby}}
+ {\def\myauthor{{\getvalue{pbda-#1}}}%
+ \def\myyear {\getvalue{pbdy-#1}}}%
{}%
- \@EA\doglobal\@EA\addtocommalist\@EA{\myauthor}\thebibauthors
- \@EA\doglobal\@EA\addtocommalist\@EA{\myyear }\thebibyears}
+ \@EA\doglobal\@EA\appendtocommalist\@EA{\myauthor}\thebibauthors
+ \@EA\doglobal\@EA\appendtocommalist\@EA{\myyear }\thebibyears}
%D \macros{docompressbibauthoryear}
%D
@@ -929,11 +1294,11 @@
\def\docompressbibauthoryear#1%
{\addthisref{#1}%
- \xdef\myauthor{Xxxxxxxxxx}%
- \xdef\myyear {0000}%
+ \def\myauthor{Xxxxxxxxxx}%
+ \def\myyear {0000}%
\doifbibreferencefoundelse{#1}
- {\@EA\gdef\@EA\myauthor\@EA{\@@pba}%
- \@EA\gdef\@EA\myyear \@EA{\@@pby}}
+ {\xdef\myauthor{\csname pbda-#1\endcsname }%
+ \xdef\myyear {\csname pbdy-#1\endcsname }}
{}%
\ifx\myauthor\empty\else
\checkifmyauthoralreadyexists
@@ -953,12 +1318,15 @@
\def\checkifmyauthoralreadyexists
{\doifemptyelsevalue{thebibauthors}
- {\global\bibitemcounter\plusone
- \global\bibitemwanted \plusone
- \@EA\gdef\@EA\thebibauthors\@EA{\myauthor}} % hh: one level
- {\getcommacommandsize[\thebibauthors]%
- \global\bibitemwanted\zerocount
+ {\global\bibitemwanted \plusone
+ \global\bibitemcounter \plusone
+ \xdef\thebibauthors{{\myauthor}}}
+ {% the next weirdness is because according to \getcommalistsize,
+ % the length of \type{[{{},{}}]} is 2.
+ \@EA\getcommalistsize\@EA[\thebibauthors,]%
\global\bibitemcounter\commalistsize
+ \global\advance\bibitemcounter\minusone
+ \global\bibitemwanted \zerocount
\processcommacommand[\thebibauthors]\docomparemyauthor}}
%D The outer \type{\ifnum} accomplishes the addition of
@@ -971,16 +1339,15 @@
\def\docomparemyauthor#1%
{\global\advance\bibitemwanted \plusone
\def\mytempc{#1}%
- \ifnum\bibitemwanted = \commalistsize\relax
- \ifx\mytempc\myauthor \else
+% \message{authors: \myauthor <=>\mytempc \ifx\mytempc\myauthor :Y \else :N
+% \meaning \myauthor, \meaning\mytempc\fi (\the\bibitemwanted = \the\bibitemcounter)}%
+ \ifx\mytempc\myauthor
+ \quitcommalist
+ \else
+ \ifnum\bibitemwanted = \bibitemcounter\relax
\global\advance\bibitemwanted \plusone
\global\bibitemcounter\bibitemwanted\relax
- \@EA\doglobal\@EA\addtocommalist\@EA{\myauthor}\thebibauthors
- \quitcommalist
- \fi
- \else
- \ifx\mytempc\myauthor
- \quitcommalist
+ \@EA\doglobal\@EA\robustaddtocommalist\@EA{{\myauthor}}\thebibauthors
\fi
\fi}
@@ -997,48 +1364,174 @@
\edef\newcommalistelement{\myyear}%
\doglobal\replaceincommalist \thebibyears \wantednumber}
+
+%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 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.
+%D
+%D Because this macro is used within \type{\cite } that itself
+%D can be used within lists like the table of contents, it needs
+%D to save and restore \type{\savedalltoclevels} and
+%D \type{\currentlevel} (\type{\dosetfilterlevel} needs to change
+%D their values globally).
+
+\def\preparebibrefprefix
+ {\chardef\savedalltoclevels \alltoclevels
+ \let\savedcurrentlevel\currentlevel
+ \let\dosetfilterlevel\patcheddosetfilterlevel
+ \dosettoclevel\??li{pubs}%
+ \edef\bibrefprefix{\@@sectiontype\currentlevel\sectionseparator}%
+ \let\dosetfilterlevel\normaldosetfilterlevel
+ \global\let\currentlevel\savedcurrentlevel
+ \global\chardef\alltoclevels \savedalltoclevels }
+
+%D \macros{preparebibreflist}
+%D
+%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 \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
+%D \def\bibreflist%
+%D {1:2:0:3:4:article-full,
+%D 1:2:0:3:article-full,
+%D 1:2:0:article-full,
+%D 1:2:article-full,
+%D 1:article-full,
+%D article-full}
+%D \stoptyping
+
+\def\preparebibreflist#1%
+ {\let\bibreflist\empty
+ \def\storeitem##1%
+ {\ifx\bibreflist\empty
+ \edef\prefix{##1\sectionseparator}%
+ \edef\bibreflist{\prefix#1,#1}%
+ \else
+ \edef\prefix{\prefix##1\sectionseparator}%
+ \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.
+
+\newif\ifbibreffound
+
+\def\gotobiblink#1[#2]%
+ {\bgroup
+ \preparebibrefprefix
+ \preparebibreflist{#2}%
+ \global\bibreffoundfalse
+ \def\setuplink##1%
+ {\ifbibreffound\else
+ \doifreferencefoundelse
+ {##1}
+ {\global\bibreffoundtrue \goto{#1}[##1]}%
+ {}\fi}%
+ \processcommacommand[\bibreflist]\setuplink
+ \ifbibreffound \else \unknownreference{#2}\fi
+ \egroup }
+
+\def\atbiblink[#1]%
+ {\bgroup
+ \preparebibrefprefix
+ \preparebibreflist{#1}%
+ \global\bibreffoundfalse
+ \def\setuplink##1%
+ {\ifbibreffound\else
+ \doifreferencefoundelse
+ {##1}
+ {\global\bibreffoundtrue \at[##1]}%
+ {}\fi}%
+ \processcommacommand[\bibreflist]\setuplink
+ \ifbibreffound \else \unknownreference{#1}\fi
+ \egroup }
+
+\def\inbiblink[#1]%
+ {\bgroup
+ \preparebibrefprefix
+ \preparebibreflist{#1}%
+ \global\bibreffoundfalse
+ \def\setuplink##1%
+ {\ifbibreffound\else
+ \doifreferencefoundelse
+ {##1}
+ {\global\bibreffoundtrue \in[##1]}%
+ {}\fi}%
+ \processcommacommand[\bibreflist]\setuplink
+ \ifbibreffound \else \unknownreference{#1}\fi
+ \egroup }
+
%D \macros{bibauthoryearref,bibauthoryearsref,bibauthorref,bibyearref}
%D
%D Now that all the hard work has been done, these are simple.
%D \type{\ixbibauthoryearref} stores the data in the macros
-%D \type{\AU} and \type{\YR}.
+%D \type{\currentbibauthor} and \type{\currentbibyear}.
+
+\def\ifbibinteractionelse%
+ {\iflocation
+ \edef\test{\bibalternative\c!interaction}%
+ \ifx\test\v!stop
+ \@EA\@EA\@EA\secondoftwoarguments
+ \else
+ \@EA\@EA\@EA\firstoftwoarguments
+ \fi
+ \else
+ \@EA\secondoftwoarguments
+ \fi
+ }
+
+\def\bibmaybeinteractive#1#2%
+ {\ifbibcitecompress #2\else
+ \ifbibinteractionelse{\gotobiblink{#2}[#1]}{#2}\fi }
\def\bibauthoryearref[#1]%
{\ixbibauthoryear{#1}%
- {{\AU}\bibalternative\c!inbetween
- \bibalternative\v!left{\YR}\bibalternative\v!right}
- {\bibalternative\c!pubsep{\AU}\bibalternative\c!inbetween
- \bibalternative\v!left {\YR}\bibalternative\v!right}
- {\bibalternative\c!lastpubsep{\AU}\bibalternative\c!inbetween
- \bibalternative\v!left {\YR}\bibalternative\v!right}}
+ {\bibmaybeinteractive{#1}{{\currentbibauthor}\bibalternative\c!inbetween
+ \bibalternative\v!left{\currentbibyear}\bibalternative\v!right}}
+ {\bibalternative\c!pubsep
+ \bibmaybeinteractive{#1}{{\currentbibauthor}\bibalternative\c!inbetween
+ \bibalternative\v!left {\currentbibyear}\bibalternative\v!right}}
+ {\bibalternative\c!lastpubsep
+ \bibmaybeinteractive{#1}{{\currentbibauthor}\bibalternative\c!inbetween
+ \bibalternative\v!left {\currentbibyear}\bibalternative\v!right}}}
\def\bibauthoryearsref[#1]%
{\bibalternative\v!left
\ixbibauthoryear{#1}
- {{\AU}\bibalternative\c!inbetween{\YR}}
- {\bibalternative\c!pubsep {\AU}\bibalternative\c!inbetween{\YR}}
- {\bibalternative\c!lastpubsep{\AU}\bibalternative\c!inbetween{\YR}}%
+ {\bibmaybeinteractive{#1}{{\currentbibauthor}\bibalternative\c!inbetween{\currentbibyear}}}
+ {\bibalternative\c!pubsep
+ \bibmaybeinteractive{#1}{{\currentbibauthor}\bibalternative\c!inbetween{\currentbibyear}}}
+ {\bibalternative\c!lastpubsep
+ \bibmaybeinteractive{#1}{{\currentbibauthor}\bibalternative\c!inbetween{\currentbibyear}}}%
\bibalternative\v!right}
\def\bibauthorref[#1]%
{\bibalternative\v!left
\ixbibauthoryear{#1}%
- {{\AU}}
- {\bibalternative\c!pubsep {\AU}}
- {\bibalternative\c!lastpubsep{\AU}}%
+ {\bibmaybeinteractive{#1}{{\currentbibauthor}}}
+ {\bibalternative\c!pubsep \bibmaybeinteractive{#1}{{\currentbibauthor}}}
+ {\bibalternative\c!lastpubsep\bibmaybeinteractive{#1}{{\currentbibauthor}}}%
\bibalternative\v!right}
\def\bibyearref[#1]%
{\bibalternative\v!left
\ixbibauthoryear{#1}%
- {{\YR}}
- {\bibalternative\c!pubsep {\YR}}
- {\bibalternative\c!lastpubsep{\YR}}%
+ {\bibmaybeinteractive{#1}{{\currentbibyear}}}
+ {\bibalternative\c!pubsep \bibmaybeinteractive{#1}{{\currentbibyear}}}
+ {\bibalternative\c!lastpubsep\bibmaybeinteractive{#1}{{\currentbibyear}}}%
\bibalternative\v!right}
%D ML problems:
-%D \macros{bibshortref,bibkeyref,bibpageref,bibtyperef,bibnumberref}
+%D \macros{bibshortref,bibkeyref,bibpageref,bibtyperef,bibserialref}
%D
%D There is hardly any point in trying to compress these. The only
%D thing that needs to be done is making sure that
@@ -1051,22 +1544,24 @@
\def\bibshortref[#1]%
{\bibalternative\v!left
- \firstreftrue\processcommalist[#1]\dobibshort
+ \firstreftrue\processcommalist[#1]\dobibshortref
\bibalternative\v!right}
-\def\dobibshort#1%
+\def\dobibshortref#1%
{\addthisref{#1}\refsep
- \doifbibreferencefoundelse{#1}{\@@pbs}{??}}
+ \doifbibreferencefoundelse{#1}{\gotobiblink{\getvalue{pbds-#1}}[#1]}
+ {\unknownreference{#1}}}
-\def\bibnumberref[#1]%
+\def\bibserialref[#1]%
{\bibalternative\v!left
- \firstreftrue\processcommalist[#1]\dobibnumbered
+ \firstreftrue\processcommalist[#1]\dobibserialref
\bibalternative\v!right}
-\def\dobibnumbered#1%
+\def\dobibserialref#1%
{\addthisref{#1}\refsep
- \doifbibreferencefoundelse{#1}{\@@pbn}{??}}
+ \doifbibreferencefoundelse{#1}{\gotobiblink{\getvalue{pbdn-#1}}[#1]}
+ {\unknownreference{#1}}}
\def\bibkeyref[#1]%
{\bibalternative\v!left
@@ -1074,7 +1569,12 @@
\bibalternative\v!right}
\def\dobibkeyref#1%
- {\addthisref{#1}\refsep#1}
+ {\addthisref{#1}\refsep\gotobiblink{#1}[#1]}
+
+\def\gotoDOI#1#2%
+ {\ifbibinteractionelse
+ {\useURL[bibfoo#1][http://dx.doi.org/#2]\goto{\url[bibfoo#1]}[url(bibfoo#1)]}
+ {\hyphenatedurl{#2}}}
\def\bibdoiref[#1]%
{\bibalternative\v!left
@@ -1082,7 +1582,25 @@
\bibalternative\v!right}
\def\dobibdoiref#1%
- {\addthisref{#1}\refsep#1}
+ {\addthisref{#1}\refsep
+ \doifbibreferencefoundelse{#1}{\expanded{\gotoDOI{#1}{\getvalue{pbdo-#1}}}}
+ {\unknownreference{#1}}}
+
+
+\def\biburlref[#1]%
+ {\bibalternative\v!left
+ \firstreftrue\processcommalist[#1]\dobiburlref
+ \bibalternative\v!right}
+
+\def\gotoURL#1#2%
+ {\ifbibinteractionelse
+ {\useURL[bibfoo#1][#2]\goto{\url[bibfoo#1]}[url(bibfoo#1)]}
+ {\hyphenatedurl{#2}}}
+
+\def\dobiburlref#1%
+ {\addthisref{#1}\refsep
+ \doifbibreferencefoundelse{#1}{\expanded{\gotoURL{#1}{\getvalue{pbdu-#1}}}}
+ {\unknownreference{#1}}}
\def\bibtyperef[#1]%
{\bibalternative\v!left
@@ -1091,7 +1609,8 @@
\def\dobibtyperef#1%
{\addthisref{#1}\refsep
- \doifbibreferencefoundelse{#1}{\@@pbt}{??}}
+ \doifbibreferencefoundelse{#1}{\gotobiblink{\getvalue{pbdt-#1}}[#1]}
+ {\unknownreference{#1}}}
\def\bibpageref[#1]%
{\bibalternative\v!left
@@ -1099,7 +1618,8 @@
\bibalternative\v!right}
\def\dobibpageref#1%
- {\addthisref{#1}\refsep\at[#1]}
+ {\addthisref{#1}\refsep
+ \ifbibinteractionelse{\atbiblink[#1]}{{\referencingfalse\at[#1]}}}
\def\bibdataref[#1]%
{\bibalternative\v!left
@@ -1108,7 +1628,10 @@
\def\dobibdata#1%
{\addthisref{#1}\refsep
- \doifbibreferencefoundelse{#1}{\dotypesetapublication{#1}}{??}}
+ \doifbibreferencefoundelse{#1}{\dotypesetapublication{#1}}
+ {\unknownreference{#1}}}
+
+\let\bibnoneref\nocite
%D \macros{bibnumref}
%D
@@ -1122,20 +1645,27 @@
%D so that the macro \type{\expandrefs} is needed.
\def\expandrefs#1%
- {\doifreferencefoundelse{#1}
- {\@EA\doglobal\@EA\addtocommalist\@EA{\reftypet}\therefs }
- {\showmessage\m!bib{5}{#1 unknown}%
- \doglobal\addtocommalist{0}\therefs}}
+ {\bgroup
+ \preparebibrefprefix
+ \preparebibreflist{#1}%
+ \global\bibreffoundfalse
+ \def\setuplink##1%
+ {\ifbibreffound\else
+ \doifreferencefoundelse
+ {##1}
+ {\global\bibreffoundtrue
+ \@EA\doglobal\@EA\addtocommalist\@EA{\reftypet}\therefs }%
+ {}\fi}%
+ \processcommacommand[\bibreflist]\setuplink
+ \ifbibreffound \else \showmessage\m!bib{5}{#1 unknown}%
+ \doglobal\addtocommalist{0}\therefs\fi
+ \egroup }
+
%D But at least the actual sorting code is simple (note that sorting
%D a list with exactly one entry fails to return anything, which
%D is why the \type{\ifx} is needed).
-\ifx\compresscommacommandnrs\undefined
- \usemodule[list]
- \let\compresscommacommandnrs\compresscommacommand
-\fi
-
\def\bibnumref[#1]%
{\bibalternative\v!left
\penalty\!!tenthousand
@@ -1149,31 +1679,49 @@
\let\therefs\sortedcommalist
\fi
\compresscommacommandnrs[\therefs]%
- % \message{\meaning\therefs, \meaning\compressedlist}%
\processcommacommand[\compressedlist]\verysimplebibnumref
\else
\processcommalist[#1]\dosimplebibnumref
\fi
\bibalternative\v!right}
-%D Here is the simple case first:
+\def\dosimplebibnumref #1%
+ {\refsep\ifbibinteractionelse
+ {\inbiblink[#1]}{{\referencingfalse\inbiblink[#1]}}}
-\def\dosimplebibnumref #1{\refsep\in[#1]}
\def\verysimplebibnumref#1{\doverysimplebibnumref#1}
\def\doverysimplebibnumref#1#2%
{\refsep
- \ifcase#1\relax ??\else
+ \ifcase#1\relax \unknownreference{#1}\else
\def\tempa{#2}\ifx\empty\tempa#1\else#1\bibalternative\c!inbetween#2\fi
\fi}
-%D And some defaults are loaded from bibl-apa:
+%D By request from Sanjoy. This makes it easier to implement
+%D \type{\citeasnoun}.
+
+\def\bibauthornumref[#1]%
+ {\getcommalistsize[#1]
+ \global\bibitemcounter\commalistsize
+ \firstreftrue
+ \processcommalist[#1]\dobibauthornumref }
-% hh: shouldn't those bibl files be made international ?
+\def\dobibauthornumref#1%
+ {\addthisref{#1}\refsep
+ \doifbibreferencefoundelse{#1}
+ {\getvalue{pbda-#1}%
+ \bibalternative\c!inbetween
+ \bibalternative\v!left
+ \ifbibinteractionelse{\inbiblink[#1]}
+ {{\referencingfalse\inbiblink[#1]}}%
+ \bibalternative\v!right}
+ {\unknownreference{#1}}}
+
+%D And some defaults are loaded from bibl-apa:
\setuppublications
- [\c!alternative=apa]
+ [\v!month\v!conversion=,\c!alternative=apa]
-%D \completepublications
+\preloadbiblist
-\protect \endinput
+\protect \endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/config/cont-fr.ini b/Master/texmf-dist/tex/context/config/cont-fr.ini
new file mode 100644
index 00000000000..d65044ff02f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/config/cont-fr.ini
@@ -0,0 +1,5 @@
+% This is a configuration file needed for Thomas Esser's teTeX. Don't
+% forget to uncomment the context specific lines in "fmtutil --edit".
+% You may want to read the ConTeXt installation manual "minstall.pdf".
+\input cont-fr.tex
+\endinput
diff --git a/Master/texmf-dist/tex/context/extra/mag-0000.tex b/Master/texmf-dist/tex/context/extra/mag-0000.tex
index 52cff1eea7b..baad957b8a1 100644
--- a/Master/texmf-dist/tex/context/extra/mag-0000.tex
+++ b/Master/texmf-dist/tex/context/extra/mag-0000.tex
@@ -1,3 +1,7 @@
+% content=tex
+%
+% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa
+
\usemodule[mag-01]
\setvariables
diff --git a/Master/texmf-dist/tex/context/interface/cont-cz.xml b/Master/texmf-dist/tex/context/interface/cont-cz.xml
index c131ba7ca10..50e15bb31b0 100644
--- a/Master/texmf-dist/tex/context/interface/cont-cz.xml
+++ b/Master/texmf-dist/tex/context/interface/cont-cz.xml
@@ -1,6 +1,81 @@
-<?xml version="1.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="nastred"/>
+ <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:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2004.11.17">
+<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:command name="installlanguage" file="lang-ini.tex">
<cd:sequence>
@@ -62,14 +137,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords>
- <cd:constant type="nl" default="yes"/>
- <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:resolve name="language"/>
</cd:keywords>
<cd:assignments list="yes">
<cd:inherit name="instalacejazyka"/>
@@ -83,14 +151,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords>
- <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:resolve name="language"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -101,14 +162,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords>
- <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:resolve name="language"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -365,20 +419,6 @@
</cd:arguments>
</cd:command>
-<cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="setupstrut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <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="setupcolor" file="colo-ini.tex">
<cd:sequence>
<cd:string value="nastavbarvu"/>
@@ -620,7 +660,7 @@
<cd:constant type="vertikalne"/>
<cd:constant type="jmeno"/>
<cd:constant type="hodnota"/>
- <cd:variable type="cd:number"/>
+ <cd:constant type="cd:number"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -683,14 +723,7 @@
<cd:constant type="zadny"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="barva">
<cd:constant type="cd:name"/>
@@ -834,18 +867,10 @@
<cd:constant type="ne"/>
</cd:parameter>
<cd:parameter name="odsadpristi">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="barva">
<cd:constant type="cd:name"/>
@@ -858,6 +883,16 @@
<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>
@@ -899,7 +934,7 @@
</cd:parameter>
<cd:parameter name="misto">
<cd:constant type="stranka"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="sloupce"/>
<cd:constant type="firstcolumn"/>
<cd:constant type="lastcolumn"/>
@@ -930,14 +965,7 @@
<cd:constant type="velke"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="vzdalenost">
<cd:constant type="cd:dimension"/>
@@ -964,14 +992,7 @@
<cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="styltextu">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="barvatextu">
<cd:constant type="cd:name"/>
@@ -1473,14 +1494,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:constant type="nl" default="yes"/>
- <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:resolve name="language"/>
</cd:keywords>
<cd:assignments>
<cd:parameter name="cd:name">
@@ -1496,14 +1510,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:constant type="nl" default="yes"/>
- <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:resolve name="language"/>
</cd:keywords>
<cd:assignments>
<cd:parameter name="cd:name">
@@ -1599,6 +1606,11 @@
<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"/>
@@ -1626,14 +1638,7 @@
<cd:constant type="lokalne"/>
</cd:parameter>
<cd:parameter name="zarovnani">
- <cd:constant type="ne"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="normalni"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="nizko"/>
- <cd:constant type="nivy"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="spodek">
<cd:constant type="cd:command"/>
@@ -1724,7 +1729,7 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="foregroundstyle">
- <cd:constant type="cd:name"/>
+ <cd:resolve name="style"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -1878,13 +1883,7 @@
<cd:constant type="velke"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <cd:constant type="normalni"/>
- <cd:constant type="tucne"/>
- <cd:constant type="sklonene"/>
- <cd:constant type="tucnesklonene"/>
- <cd:constant type="opis"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="vlevo">
<cd:constant type="cd:command"/>
@@ -1920,6 +1919,9 @@
<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>
@@ -2045,14 +2047,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="n">
<cd:constant type="cd:number"/>
@@ -2142,14 +2137,7 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="barvalinky">
<cd:constant type="cd:name"/>
@@ -2361,7 +2349,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="marginalie"/>
<cd:constant type="hrana"/>
</cd:keywords>
@@ -2546,23 +2534,13 @@
<cd:constant type="vpravo"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="sirka">
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="zarovnani">
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="ne"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="vrsek">
<cd:constant type="cd:command"/>
@@ -2936,24 +2914,10 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="stylhlavicky">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="barva">
<cd:constant type="cd:name"/>
@@ -2973,9 +2937,7 @@
<cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="zarovnani">
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="vpravo"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="marginalie">
<cd:constant type="standardni"/>
@@ -2988,13 +2950,13 @@
<cd:constant type="vpravo"/>
<cd:constant type="vrsek"/>
<cd:constant type="semknuto"/>
- <cd:variable type="cd:command"/>
<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"/>
@@ -3011,17 +2973,10 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="odsadpristi">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="odsazovani">
- <cd:constant type="nikdy"/>
- <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:resolve name="indenting"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -3116,24 +3071,10 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stylhlavicky">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="sirka">
<cd:constant type="prizpusobive"/>
@@ -3209,14 +3150,7 @@
<cd:constant type="ne"/>
</cd:parameter>
<cd:parameter name="stylhlavicky">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="barvahlavicky">
<cd:constant type="cd:name"/>
@@ -3274,9 +3208,7 @@
<cd:constant type="ne"/>
</cd:parameter>
<cd:parameter name="zarovnani">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:variable type="cd:text"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="prazdny">
<cd:constant type="fixne"/>
@@ -3340,7 +3272,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="marginalie"/>
<cd:constant type="hrana"/>
</cd:keywords>
@@ -3360,34 +3292,13 @@
<cd:constant type="ne"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stylvlevo">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stylvpravo">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="sirkavlevo">
<cd:constant type="cd:dimension"/>
@@ -3479,23 +3390,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="marginalie"/>
<cd:constant type="hrana"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="cislostranky"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="cislostranky"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3506,23 +3409,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="marginalie"/>
<cd:constant type="hrana"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="cislostranky"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="cislostranky"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3533,23 +3428,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="marginalie"/>
<cd:constant type="hrana"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="cislostranky"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="cislostranky"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3560,23 +3447,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="marginalie"/>
<cd:constant type="hrana"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="cislostranky"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="cislostranky"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3587,23 +3466,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="marginalie"/>
<cd:constant type="hrana"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="cislostranky"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="cislostranky"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3802,14 +3673,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="barva">
<cd:constant type="cd:name"/>
@@ -3819,7 +3683,7 @@
<cd:constant type="vyp"/>
<cd:constant type="barevne"/>
<cd:constant type="rastr"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="misto">
<cd:constant type="vlevo"/>
@@ -3936,7 +3800,7 @@
<cd:constant type="-top"/>
<cd:constant type="-both"/>
<cd:constant type="-bottom"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="vysoko"/>
<cd:constant type="nastred"/>
<cd:constant type="nizko"/>
@@ -3994,20 +3858,28 @@
</cd:sequence>
</cd:command>
-<cd:command name="setupinterlinespace">
+<cd:command name="setupinterlinespace" variant="1">
<cd:sequence>
<cd:string value="nastavmeziradkovoumezeru"/>
</cd:sequence>
<cd:arguments>
- <cd:choice>
<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"/>
@@ -4025,7 +3897,6 @@
<cd:constant type="cd:number"/>
</cd:parameter>
</cd:assignments>
- </cd:choice>
</cd:arguments>
</cd:command>
@@ -4058,14 +3929,7 @@
<cd:constant type="Rimskecislice"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="vlevo">
<cd:constant type="cd:text"/>
@@ -4168,14 +4032,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="prikazy">
<cd:constant type="cd:command"/>
@@ -4192,27 +4049,28 @@
<cd:assignments list="yes">
<cd:parameter name="cislooddilu">
<cd:constant type="ano"/>
- <cd:variable type="cd:number"/>
+ <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:variable type="cd:text"/>
+ <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:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="normalni"/>
- <cd:constant type="siroky"/>
+ <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">
@@ -4223,8 +4081,7 @@
<cd:constant type="natahnout"/>
</cd:parameter>
<cd:parameter name="odsadpristi">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="prikaz">
<cd:constant type="cd:twoarguments"/>
@@ -4261,24 +4118,10 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="stylhlavicky">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="cislo">
<cd:constant type="ano"/>
@@ -4288,10 +4131,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="zarovnani">
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="ne"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="konverze">
<cd:constant type="cisla"/>
@@ -4307,6 +4147,9 @@
<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>
@@ -4380,8 +4223,7 @@
<cd:constant type="zadny"/>
</cd:parameter>
<cd:parameter name="odsadpristi">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="nvrsek">
<cd:constant type="cd:number"/>
@@ -4413,7 +4255,7 @@
<cd:parameter name="cislovani">
<cd:constant type="ano"/>
<cd:constant type="nocheck"/>
- </cd:parameter>
+ </cd:parameter>
<cd:inherit name="nastavoramovani"/>
</cd:assignments>
</cd:arguments>
@@ -4653,7 +4495,7 @@
</cd:parameter>
<cd:parameter name="interakce">
<cd:constant type="popisek"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="vse"/>
<cd:constant type="symbol"/>
</cd:parameter>
@@ -4695,14 +4537,7 @@
<cd:arguments>
<cd:assignments list="yes">
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="urlalternativa">
<cd:constant type="zadny"/>
@@ -4864,7 +4699,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
<cd:sequence>
<cd:string value="umistikombinovanyseznam"/>
</cd:sequence>
@@ -4914,7 +4749,7 @@
<cd:constant type="c"/>
<cd:constant type="..."/>
<cd:constant type="zadny"/>
- <cd:variable type="cd:command"/>
+ <cd:constant type="prikaz"/>
</cd:parameter>
<cd:parameter name="propojeni">
<cd:constant type="zap"/>
@@ -4931,44 +4766,16 @@
<cd:constant type="cd:list"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stylcisla">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="styltextu">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stylstranky">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="barva">
<cd:constant type="cd:name"/>
@@ -4986,8 +4793,8 @@
<cd:constant type="cd:oneargument"/>
</cd:parameter>
<cd:parameter name="interakce">
- <cd:variable type="cd:sectionnumber"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:sectionnumber"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="cislostranky"/>
<cd:constant type="vse"/>
</cd:parameter>
@@ -5067,7 +4874,7 @@
<cd:parameter name="expanzen">
<cd:constant type="ano"/>
<cd:constant type="ne"/>
- <cd:variable type="cd:command"/>
+ <cd:constant type="prikaz"/>
</cd:parameter>
<cd:parameter name="maxsirka">
<cd:constant type="cd:dimension"/>
@@ -5077,6 +4884,34 @@
</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"/>
@@ -5116,7 +4951,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" generated="yes" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="combinedlist"/>
@@ -5181,9 +5016,10 @@
<cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="zarovnani">
- <cd:constant type="vlevo"/>
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="volba">
<cd:constant type="nastred"/>
- <cd:constant type="vpravo"/>
</cd:parameter>
<cd:parameter name="strut">
<cd:constant type="ano"/>
@@ -5205,8 +5041,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="odsadpristi">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="alternativa">
<cd:constant type="cd:name"/>
@@ -5220,6 +5055,14 @@
<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>
@@ -5264,10 +5107,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="odsazovani">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="sude"/>
- <cd:constant type="liche"/>
+ <cd:resolve name="indenting"/>
</cd:parameter>
<cd:parameter name="mezera">
<cd:constant type="ano"/>
@@ -5296,14 +5136,7 @@
<cd:constant type="radek"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="vzdalenost">
<cd:constant type="cd:dimension"/>
@@ -5324,7 +5157,7 @@
<cd:constant type="Pismena"/>
<cd:constant type="rimskecislice"/>
<cd:constant type="Rimskecislice"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="start">
<cd:constant type="cd:number"/>
@@ -5340,14 +5173,7 @@
<cd:constant type="naokraji"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="prefix">
<cd:constant type="cd:text"/>
@@ -5415,14 +5241,7 @@
<cd:constant type="obe"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="pred">
<cd:constant type="cd:command"/>
@@ -5431,14 +5250,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="zarovnani">
- <cd:constant type="uvnitr"/>
- <cd:constant type="vnejsi"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="normalni"/>
- <cd:constant type="ne"/>
- <cd:constant type="ano"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="radek">
<cd:constant type="cd:number"/>
@@ -5756,16 +5568,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords list="yes">
- <cd:constant type="zadny" default="yes"/>
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="dalsi"/>
- <cd:constant type="prvni"/>
- <cd:constant type="normalni"/>
- <cd:constant type="liche"/>
- <cd:constant type="sude"/>
- <cd:constant type="cd:dimension"/>
+ <cd:resolve name="indenting"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -5859,34 +5662,13 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="styltextu">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stylcisla">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="barva">
<cd:constant type="cd:name"/>
@@ -5945,14 +5727,14 @@
<cd:constant type="normalni"/>
<cd:constant type="naokraji"/>
<cd:constant type="nastred"/>
- <cd:variable type="cd:text"/>
+ <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:variable type="cd:number"/>
+ <cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="prikaz">
<cd:constant type="cd:twoarguments"/>
@@ -5963,6 +5745,12 @@
<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="-"/>
@@ -5976,7 +5764,7 @@
<cd:parameter name="zvysujicicislo">
<cd:constant type="ano"/>
<cd:constant type="ne"/>
- <cd:variable type="cd:list"/>
+ <cd:constant type="cd:list"/>
<cd:constant type="cd:file"/>
</cd:parameter>
<cd:parameter name="resetnumber">
@@ -5988,8 +5776,8 @@
</cd:parameter>
<cd:parameter name="expanzen">
<cd:constant type="ano"/>
- <cd:variable type="cd:command"/>
<cd:constant type="ne"/>
+ <cd:constant type="prikaz"/>
</cd:parameter>
<cd:parameter name="textmarginalie">
<cd:constant type="ano"/>
@@ -6090,8 +5878,10 @@
<cd:constant type="autouvod"/>
<cd:constant type="uvolnene"/>
<cd:constant type="opakovat"/>
- <cd:variable type="cd:section"/>
+ <cd:constant type="cd:section"/>
+ <cd:constant type="odstavec"/>
<cd:constant type="dotextu"/>
+ <cd:constant type="nahodny"/>
</cd:keywords>
<cd:assignments optional="yes" list="yes">
<cd:parameter name="marginalie">
@@ -6146,34 +5936,13 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="stylhlavicky">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stylsnacky">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stylsymboly">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="predel">
<cd:constant type="cd:text"/>
@@ -6185,13 +5954,10 @@
<cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="zarovnani">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="normalni"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="odsadpristi">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -6227,6 +5993,9 @@
<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"/>
@@ -6347,38 +6116,16 @@
<cd:constant type="ne"/>
</cd:parameter>
<cd:parameter name="zarovnani">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stylstranky">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="styltextu">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="indikator">
<cd:constant type="ano"/>
@@ -6411,12 +6158,12 @@
</cd:parameter>
<cd:parameter name="interakce">
<cd:constant type="cislostranky"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="expanzen">
<cd:constant type="ano"/>
- <cd:variable type="cd:command"/>
<cd:constant type="ne"/>
+ <cd:constant type="prikaz"/>
</cd:parameter>
<cd:parameter name="odkazujici">
<cd:constant type="zap"/>
@@ -6443,6 +6190,18 @@
<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>
@@ -6511,7 +6270,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" file="core-reg.tex">
+<cd:command name="placeregister" variant="1" file="core-reg.tex">
<cd:sequence>
<cd:string value="umistirejstrik"/>
</cd:sequence>
@@ -6551,7 +6310,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" generated="yes" file="core-reg.tex">
+<cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="rejstrik"/>
@@ -6593,24 +6352,10 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="styltextu">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stylsynonyma">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="misto">
<cd:constant type="vlevo"/>
@@ -6638,8 +6383,8 @@
</cd:parameter>
<cd:parameter name="expanzen">
<cd:constant type="ano"/>
- <cd:variable type="cd:command"/>
<cd:constant type="ne"/>
+ <cd:constant type="prikaz"/>
</cd:parameter>
<cd:parameter name="prikaz">
<cd:constant type="cd:threearguments"/>
@@ -6726,19 +6471,12 @@
<cd:constant type="uzito"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="expanzen">
<cd:constant type="ano"/>
- <cd:variable type="cd:command"/>
<cd:constant type="ne"/>
+ <cd:constant type="prikaz"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -6946,13 +6684,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords list="yes">
- <cd:constant type="nikdy" default="yes"/>
- <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:resolve name="indenting"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -6980,7 +6712,7 @@
<cd:constant type="reset"/>
<cd:constant type="radek"/>
<cd:constant type="pulradku"/>
- <cd:variable type="cd:formula"/>
+ <cd:constant type="cd:formula"/>
<cd:constant type="fixne"/>
<cd:constant type="prizpusobive"/>
<cd:constant type="zadny"/>
@@ -7208,7 +6940,7 @@
<cd:keywords optional="yes">
<cd:constant type="vrsek"/>
<cd:constant type="zahlavi"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="upati"/>
<cd:constant type="spodek"/>
<cd:constant type="stranka"/>
@@ -7219,7 +6951,7 @@
<cd:keywords optional="yes" list="yes">
<cd:constant type="levahrana"/>
<cd:constant type="levyokraj"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="pravyokraj"/>
<cd:constant type="pravahrana"/>
</cd:keywords>
@@ -7227,7 +6959,7 @@
<cd:parameter name="status">
<cd:constant type="start"/>
<cd:constant type="stop"/>
- <cd:variable type="cd:repeat"/>
+ <cd:constant type="cd:repeat"/>
</cd:parameter>
<cd:inherit name="nastavoramovani"/>
</cd:assignments>
@@ -7441,14 +7173,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="soubor">
<cd:constant type="cd:file"/>
@@ -7497,7 +7222,7 @@
<cd:command name="placefloat" generated="yes" file="page-flt.tex">
<cd:sequence>
<cd:string value="place"/>
- <cd:variable value="float"/>
+ <cd:variable value="plvouciobjekt"/>
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
@@ -7525,14 +7250,18 @@
<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:keywords>
<cd:reference optional="yes" list="yes"/>
<cd:content/>
@@ -7543,7 +7272,7 @@
<cd:command name="reservefloat" generated="yes">
<cd:sequence>
<cd:string value="reserve"/>
- <cd:variable value="float"/>
+ <cd:variable value="plvouciobjekt"/>
</cd:sequence>
<cd:arguments>
<cd:assignments optional="yes" list="yes">
@@ -7628,7 +7357,7 @@
<cd:command name="floattext" type="environment" generated="yes">
<cd:sequence>
- <cd:variable value="float"/>
+ <cd:variable value="plvouciobjekt"/>
<cd:string value="text"/>
</cd:sequence>
<cd:arguments>
@@ -7795,10 +7524,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="zarovnani">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="marginalie"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="po">
<cd:constant type="cd:command"/>
@@ -7851,20 +7577,13 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="barva">
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="misto">
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="marginalie"/>
</cd:parameter>
</cd:assignments>
@@ -7924,9 +7643,7 @@
<cd:constant type="natahnout"/>
</cd:parameter>
<cd:parameter name="zarovnani">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="nastred"/>
+ <cd:resolve name="align"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -7958,14 +7675,7 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="sirka">
<cd:constant type="cd:dimension"/>
@@ -7974,10 +7684,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="zarovnani">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="sirka"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="tolerance">
<cd:constant type="velmistriktni"/>
@@ -8022,14 +7729,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="stylhlavicky">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="misto">
<cd:constant type="vlevo"/>
@@ -8115,8 +7815,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="odsazovani">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
+ <cd:resolve name="indenting"/>
</cd:parameter>
<cd:parameter name="pred">
<cd:constant type="cd:command"/>
@@ -8134,10 +7833,7 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="zarovnani">
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="normalni"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="tloustkalinky">
<cd:constant type="cd:dimension"/>
@@ -8218,19 +7914,13 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="zarovnani">
- <cd:constant type="vpravo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="normalni"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="prikazy">
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="zarovnani">
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="normalni"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="pozadi">
<cd:constant type="rastr"/>
@@ -8362,6 +8052,12 @@
<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"/>
@@ -8416,7 +8112,7 @@
<cd:constant type="png"/>
<cd:constant type="jpg"/>
<cd:constant type="mov"/>
- <cd:variable type="cd:tex"/>
+ <cd:constant type="cd:tex"/>
</cd:parameter>
<cd:parameter name="metoda">
<cd:constant type="eps"/>
@@ -8426,7 +8122,7 @@
<cd:constant type="png"/>
<cd:constant type="jpg"/>
<cd:constant type="mov"/>
- <cd:variable type="cd:tex"/>
+ <cd:constant type="cd:tex"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -8629,13 +8325,13 @@
<cd:arguments>
<cd:assignments list="yes">
<cd:parameter name="pred">
- <cd:variable type="cd:command"/>
+ <cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="mezi">
- <cd:variable type="cd:command"/>
+ <cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="po">
- <cd:variable type="cd:command"/>
+ <cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="vzdalenost">
<cd:constant type="cd:dimension"/>
@@ -8656,20 +8352,10 @@
<cd:constant type="vpravo"/>
</cd:parameter>
<cd:parameter name="zarovnani">
- <cd:constant type="ne"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="normalni"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="barva">
<cd:constant type="cd:name"/>
@@ -8848,13 +8534,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="barva">
<cd:constant type="cd:name"/>
@@ -8880,11 +8560,16 @@
<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" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
<cd:sequence>
<cd:string value="definujinterakcnimenu"/>
</cd:sequence>
@@ -8922,13 +8607,7 @@
<cd:constant type="lokalne"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="barva">
<cd:constant type="cd:name"/>
@@ -8970,7 +8649,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="defineinteractionmenu" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
<cd:sequence>
<cd:string value="definujinterakcnimenu"/>
</cd:sequence>
@@ -9191,14 +8870,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
<cd:parameter name="barva">
<cd:constant type="cd:name"/>
@@ -9299,6 +8971,8 @@
<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>
@@ -9336,14 +9010,7 @@
<cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <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:resolve name="style"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -9801,16 +9468,10 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="pismeno">
- <cd:constant type="normalni"/>
- <cd:constant type="tucne"/>
- <cd:constant type="sklonene"/>
- <cd:constant type="tucnesklonene"/>
- <cd:constant type="opis"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="zarovnani">
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="vpravo"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="volba">
<cd:constant type="pouzeprocteni"/>
diff --git a/Master/texmf-dist/tex/context/interface/cont-de.xml b/Master/texmf-dist/tex/context/interface/cont-de.xml
index db05e98e349..21221582c7a 100644
--- a/Master/texmf-dist/tex/context/interface/cont-de.xml
+++ b/Master/texmf-dist/tex/context/interface/cont-de.xml
@@ -1,6 +1,81 @@
-<?xml version="1.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="de" version="2006.08.02">
+
+<cd:define name="align">
+ <cd:constant type="innen"/>
+ <cd:constant type="aussen"/>
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="mittig"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="nein"/>
+ <cd:constant type="ja"/>
+</cd:define>
+
+<cd:define name="indenting">
+ <cd:constant type="nie"/>
+ <cd:constant type="kein"/>
+ <cd:constant type="nicht"/>
+ <cd:constant type="nein"/>
+ <cd:constant type="ja"/>
+ <cd:constant type="immer"/>
+ <cd:constant type="erste"/>
+ <cd:constant type="folgende"/>
+ <cd:constant type="klein"/>
+ <cd:constant type="mittel"/>
+ <cd:constant type="gross"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="ungerade"/>
+ <cd:constant type="gerade"/>
+ <cd:constant type="cd:dimension"/>
+</cd:define>
+
+<cd:define name="indentnext">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+</cd:define>
+
+<cd:define name="style">
+ <cd:constant type="normal"/>
+ <cd:constant type="fett"/>
+ <cd:constant type="geneigt"/>
+ <cd:constant type="fettgeneigt"/>
+ <cd:constant type="tippen"/>
+ <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:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2004.11.17">
+<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:command name="installlanguage" file="lang-ini.tex">
<cd:sequence>
@@ -62,14 +137,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords>
- <cd:constant type="nl" default="yes"/>
- <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:resolve name="language"/>
</cd:keywords>
<cd:assignments list="yes">
<cd:inherit name="installieresprache"/>
@@ -83,14 +151,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords>
- <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:resolve name="language"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -101,14 +162,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords>
- <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:resolve name="language"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -365,20 +419,6 @@
</cd:arguments>
</cd:command>
-<cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="setupstrut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <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:command name="setupcolor" file="colo-ini.tex">
<cd:sequence>
<cd:string value="stellefarbeein"/>
@@ -620,7 +660,7 @@
<cd:constant type="vertikal"/>
<cd:constant type="name"/>
<cd:constant type="wert"/>
- <cd:variable type="cd:number"/>
+ <cd:constant type="cd:number"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -683,14 +723,7 @@
<cd:constant type="kein"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="farbe">
<cd:constant type="cd:name"/>
@@ -834,18 +867,10 @@
<cd:constant type="nein"/>
</cd:parameter>
<cd:parameter name="ziehefolgendeein">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="farbe">
<cd:constant type="cd:name"/>
@@ -858,6 +883,16 @@
<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>
@@ -899,7 +934,7 @@
</cd:parameter>
<cd:parameter name="platz">
<cd:constant type="seite"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="spalten"/>
<cd:constant type="firstcolumn"/>
<cd:constant type="lastcolumn"/>
@@ -930,14 +965,7 @@
<cd:constant type="gross"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="abstand">
<cd:constant type="cd:dimension"/>
@@ -964,14 +992,7 @@
<cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="textstil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="textfarbe">
<cd:constant type="cd:name"/>
@@ -1473,14 +1494,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:constant type="nl" default="yes"/>
- <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:resolve name="language"/>
</cd:keywords>
<cd:assignments>
<cd:parameter name="cd:name">
@@ -1496,14 +1510,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:constant type="nl" default="yes"/>
- <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:resolve name="language"/>
</cd:keywords>
<cd:assignments>
<cd:parameter name="cd:name">
@@ -1599,6 +1606,11 @@
<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"/>
@@ -1626,14 +1638,7 @@
<cd:constant type="lokal"/>
</cd:parameter>
<cd:parameter name="ausrichtung">
- <cd:constant type="nein"/>
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="mittig"/>
- <cd:constant type="normal"/>
- <cd:constant type="hoch"/>
- <cd:constant type="tief"/>
- <cd:constant type="hoti"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="unten">
<cd:constant type="cd:command"/>
@@ -1724,7 +1729,7 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="foregroundstyle">
- <cd:constant type="cd:name"/>
+ <cd:resolve name="style"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -1878,13 +1883,7 @@
<cd:constant type="gross"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="links">
<cd:constant type="cd:command"/>
@@ -1920,6 +1919,9 @@
<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>
@@ -2045,14 +2047,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="n">
<cd:constant type="cd:number"/>
@@ -2142,14 +2137,7 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="linienfarbe">
<cd:constant type="cd:name"/>
@@ -2361,7 +2349,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="marginalie"/>
<cd:constant type="kante"/>
</cd:keywords>
@@ -2546,23 +2534,13 @@
<cd:constant type="rechts"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="breite">
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="ausrichtung">
- <cd:constant type="links"/>
- <cd:constant type="mittig"/>
- <cd:constant type="rechts"/>
- <cd:constant type="nein"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="oben">
<cd:constant type="cd:command"/>
@@ -2936,24 +2914,10 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="kopfstil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="farbe">
<cd:constant type="cd:name"/>
@@ -2973,9 +2937,7 @@
<cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="ausrichtung">
- <cd:constant type="links"/>
- <cd:constant type="mittig"/>
- <cd:constant type="rechts"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="marginalie">
<cd:constant type="standard"/>
@@ -2988,13 +2950,13 @@
<cd:constant type="rechts"/>
<cd:constant type="oben"/>
<cd:constant type="kleinerabstand"/>
- <cd:variable type="cd:command"/>
<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"/>
@@ -3011,17 +2973,10 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="ziehefolgendeein">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="einziehen">
- <cd:constant type="nie"/>
- <cd:constant type="nicht"/>
- <cd:constant type="nein"/>
- <cd:constant type="ja"/>
- <cd:constant type="immer"/>
- <cd:constant type="erste"/>
- <cd:constant type="folgende"/>
+ <cd:resolve name="indenting"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -3116,24 +3071,10 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="kopfstil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="breite">
<cd:constant type="passend"/>
@@ -3209,14 +3150,7 @@
<cd:constant type="nein"/>
</cd:parameter>
<cd:parameter name="kopfstil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="kopffarbe">
<cd:constant type="cd:name"/>
@@ -3274,9 +3208,7 @@
<cd:constant type="nein"/>
</cd:parameter>
<cd:parameter name="ausrichtung">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:variable type="cd:text"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="blanko">
<cd:constant type="fest"/>
@@ -3340,7 +3272,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="marginalie"/>
<cd:constant type="kante"/>
</cd:keywords>
@@ -3360,34 +3292,13 @@
<cd:constant type="nein"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="linkerstil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="rechterstil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="linkerbreite">
<cd:constant type="cd:dimension"/>
@@ -3479,23 +3390,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="marginalie"/>
<cd:constant type="kante"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="seitennummer"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="seitennummer"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3506,23 +3409,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="marginalie"/>
<cd:constant type="kante"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="seitennummer"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="seitennummer"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3533,23 +3428,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="marginalie"/>
<cd:constant type="kante"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="seitennummer"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="seitennummer"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3560,23 +3447,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="marginalie"/>
<cd:constant type="kante"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="seitennummer"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="seitennummer"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3587,23 +3466,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="marginalie"/>
<cd:constant type="kante"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="seitennummer"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="seitennummer"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3802,14 +3673,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="farbe">
<cd:constant type="cd:name"/>
@@ -3819,7 +3683,7 @@
<cd:constant type="aus"/>
<cd:constant type="farbe"/>
<cd:constant type="raster"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="platz">
<cd:constant type="links"/>
@@ -3936,7 +3800,7 @@
<cd:constant type="-top"/>
<cd:constant type="-both"/>
<cd:constant type="-bottom"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="hoch"/>
<cd:constant type="mittig"/>
<cd:constant type="tief"/>
@@ -3994,20 +3858,28 @@
</cd:sequence>
</cd:command>
-<cd:command name="setupinterlinespace">
+<cd:command name="setupinterlinespace" variant="1">
<cd:sequence>
<cd:string value="stellezeilenabstandein"/>
</cd:sequence>
<cd:arguments>
- <cd:choice>
<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:constant type="cd:number"/>
@@ -4025,7 +3897,6 @@
<cd:constant type="cd:number"/>
</cd:parameter>
</cd:assignments>
- </cd:choice>
</cd:arguments>
</cd:command>
@@ -4058,14 +3929,7 @@
<cd:constant type="Roemischezahlen"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="links">
<cd:constant type="cd:text"/>
@@ -4168,14 +4032,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="befehle">
<cd:constant type="cd:command"/>
@@ -4192,27 +4049,28 @@
<cd:assignments list="yes">
<cd:parameter name="abschnittsnummer">
<cd:constant type="ja"/>
- <cd:variable type="cd:number"/>
+ <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:variable type="cd:text"/>
+ <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:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="normal"/>
- <cd:constant type="breit"/>
+ <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">
@@ -4223,8 +4081,7 @@
<cd:constant type="strecken"/>
</cd:parameter>
<cd:parameter name="ziehefolgendeein">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="befehl">
<cd:constant type="cd:twoarguments"/>
@@ -4261,24 +4118,10 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="kopfstil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="nummer">
<cd:constant type="ja"/>
@@ -4288,10 +4131,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="ausrichtung">
- <cd:constant type="links"/>
- <cd:constant type="mittig"/>
- <cd:constant type="rechts"/>
- <cd:constant type="nein"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="konversion">
<cd:constant type="ziffern"/>
@@ -4307,6 +4147,9 @@
<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>
@@ -4380,8 +4223,7 @@
<cd:constant type="kein"/>
</cd:parameter>
<cd:parameter name="ziehefolgendeein">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="noben">
<cd:constant type="cd:number"/>
@@ -4413,7 +4255,7 @@
<cd:parameter name="nummerierung">
<cd:constant type="ja"/>
<cd:constant type="nocheck"/>
- </cd:parameter>
+ </cd:parameter>
<cd:inherit name="stelleumrahmtein"/>
</cd:assignments>
</cd:arguments>
@@ -4653,7 +4495,7 @@
</cd:parameter>
<cd:parameter name="interaktion">
<cd:constant type="label"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="alles"/>
<cd:constant type="symbol"/>
</cd:parameter>
@@ -4695,14 +4537,7 @@
<cd:arguments>
<cd:assignments list="yes">
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="urlalternative">
<cd:constant type="kein"/>
@@ -4864,7 +4699,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
<cd:sequence>
<cd:string value="platzierezusammengestellteliste"/>
</cd:sequence>
@@ -4914,7 +4749,7 @@
<cd:constant type="c"/>
<cd:constant type="..."/>
<cd:constant type="kein"/>
- <cd:variable type="cd:command"/>
+ <cd:constant type="befehl"/>
</cd:parameter>
<cd:parameter name="verknuepfung">
<cd:constant type="an"/>
@@ -4931,44 +4766,16 @@
<cd:constant type="cd:list"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="nummernstil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="textstil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="seitenstil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="farbe">
<cd:constant type="cd:name"/>
@@ -4986,8 +4793,8 @@
<cd:constant type="cd:oneargument"/>
</cd:parameter>
<cd:parameter name="interaktion">
- <cd:variable type="cd:sectionnumber"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:sectionnumber"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="seitennummer"/>
<cd:constant type="alles"/>
</cd:parameter>
@@ -5067,7 +4874,7 @@
<cd:parameter name="expansion">
<cd:constant type="ja"/>
<cd:constant type="nein"/>
- <cd:variable type="cd:command"/>
+ <cd:constant type="befehl"/>
</cd:parameter>
<cd:parameter name="maxbreite">
<cd:constant type="cd:dimension"/>
@@ -5077,6 +4884,34 @@
</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"/>
@@ -5116,7 +4951,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" generated="yes" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="combinedlist"/>
@@ -5181,9 +5016,10 @@
<cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="ausrichtung">
- <cd:constant type="links"/>
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="option">
<cd:constant type="mittig"/>
- <cd:constant type="rechts"/>
</cd:parameter>
<cd:parameter name="strut">
<cd:constant type="ja"/>
@@ -5205,8 +5041,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="ziehefolgendeein">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="alternative">
<cd:constant type="cd:name"/>
@@ -5220,6 +5055,14 @@
<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>
@@ -5264,10 +5107,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="einziehen">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="gerade"/>
- <cd:constant type="ungerade"/>
+ <cd:resolve name="indenting"/>
</cd:parameter>
<cd:parameter name="spatium">
<cd:constant type="ja"/>
@@ -5296,14 +5136,7 @@
<cd:constant type="zeile"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="abstand">
<cd:constant type="cd:dimension"/>
@@ -5324,7 +5157,7 @@
<cd:constant type="Buchstaben"/>
<cd:constant type="roemischezahlen"/>
<cd:constant type="Roemischezahlen"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="start">
<cd:constant type="cd:number"/>
@@ -5340,14 +5173,7 @@
<cd:constant type="imrand"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="prefix">
<cd:constant type="cd:text"/>
@@ -5415,14 +5241,7 @@
<cd:constant type="beide"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="vor">
<cd:constant type="cd:command"/>
@@ -5431,14 +5250,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="ausrichtung">
- <cd:constant type="innen"/>
- <cd:constant type="aussen"/>
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="mittig"/>
- <cd:constant type="normal"/>
- <cd:constant type="nein"/>
- <cd:constant type="ja"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="zeile">
<cd:constant type="cd:number"/>
@@ -5756,16 +5568,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords list="yes">
- <cd:constant type="kein" default="yes"/>
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- <cd:constant type="folgende"/>
- <cd:constant type="erste"/>
- <cd:constant type="normal"/>
- <cd:constant type="ungerade"/>
- <cd:constant type="gerade"/>
- <cd:constant type="cd:dimension"/>
+ <cd:resolve name="indenting"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -5859,34 +5662,13 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="textstil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="nummernstil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="farbe">
<cd:constant type="cd:name"/>
@@ -5945,14 +5727,14 @@
<cd:constant type="normal"/>
<cd:constant type="imrand"/>
<cd:constant type="mittig"/>
- <cd:variable type="cd:text"/>
+ <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:variable type="cd:number"/>
+ <cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="befehl">
<cd:constant type="cd:twoarguments"/>
@@ -5963,6 +5745,12 @@
<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="-"/>
@@ -5976,7 +5764,7 @@
<cd:parameter name="nummererhoehen">
<cd:constant type="ja"/>
<cd:constant type="nein"/>
- <cd:variable type="cd:list"/>
+ <cd:constant type="cd:list"/>
<cd:constant type="cd:file"/>
</cd:parameter>
<cd:parameter name="resetnumber">
@@ -5988,8 +5776,8 @@
</cd:parameter>
<cd:parameter name="expansion">
<cd:constant type="ja"/>
- <cd:variable type="cd:command"/>
<cd:constant type="nein"/>
+ <cd:constant type="befehl"/>
</cd:parameter>
<cd:parameter name="marginaltext">
<cd:constant type="ja"/>
@@ -6090,8 +5878,10 @@
<cd:constant type="autointro"/>
<cd:constant type="lose"/>
<cd:constant type="wiederholen"/>
- <cd:variable type="cd:section"/>
+ <cd:constant type="cd:section"/>
+ <cd:constant type="absatz"/>
<cd:constant type="imtext"/>
+ <cd:constant type="zufaellig"/>
</cd:keywords>
<cd:assignments optional="yes" list="yes">
<cd:parameter name="marginalie">
@@ -6146,34 +5936,13 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="kopfstil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="beschrstil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="symstil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="abschnitttrenner">
<cd:constant type="cd:text"/>
@@ -6185,13 +5954,10 @@
<cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="ausrichtung">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="normal"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="ziehefolgendeein">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -6227,6 +5993,9 @@
<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"/>
@@ -6347,38 +6116,16 @@
<cd:constant type="nein"/>
</cd:parameter>
<cd:parameter name="ausrichtung">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="seitenstil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="textstil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="indikator">
<cd:constant type="ja"/>
@@ -6411,12 +6158,12 @@
</cd:parameter>
<cd:parameter name="interaktion">
<cd:constant type="seitennummer"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="expansion">
<cd:constant type="ja"/>
- <cd:variable type="cd:command"/>
<cd:constant type="nein"/>
+ <cd:constant type="befehl"/>
</cd:parameter>
<cd:parameter name="referieren">
<cd:constant type="an"/>
@@ -6443,6 +6190,18 @@
<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>
@@ -6511,7 +6270,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" file="core-reg.tex">
+<cd:command name="placeregister" variant="1" file="core-reg.tex">
<cd:sequence>
<cd:string value="platziereregister"/>
</cd:sequence>
@@ -6551,7 +6310,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" generated="yes" file="core-reg.tex">
+<cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="register"/>
@@ -6593,24 +6352,10 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="textstil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="synonymstil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="platz">
<cd:constant type="links"/>
@@ -6638,8 +6383,8 @@
</cd:parameter>
<cd:parameter name="expansion">
<cd:constant type="ja"/>
- <cd:variable type="cd:command"/>
<cd:constant type="nein"/>
+ <cd:constant type="befehl"/>
</cd:parameter>
<cd:parameter name="befehl">
<cd:constant type="cd:threearguments"/>
@@ -6726,19 +6471,12 @@
<cd:constant type="verwende"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="expansion">
<cd:constant type="ja"/>
- <cd:variable type="cd:command"/>
<cd:constant type="nein"/>
+ <cd:constant type="befehl"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -6946,13 +6684,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords list="yes">
- <cd:constant type="nie" default="yes"/>
- <cd:constant type="nicht"/>
- <cd:constant type="nein"/>
- <cd:constant type="ja"/>
- <cd:constant type="immer"/>
- <cd:constant type="erste"/>
- <cd:constant type="folgende"/>
+ <cd:resolve name="indenting"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -6980,7 +6712,7 @@
<cd:constant type="zuruecksetzten"/>
<cd:constant type="zeile"/>
<cd:constant type="halbezeile"/>
- <cd:variable type="cd:formula"/>
+ <cd:constant type="cd:formula"/>
<cd:constant type="fest"/>
<cd:constant type="flexibel"/>
<cd:constant type="kein"/>
@@ -7208,7 +6940,7 @@
<cd:keywords optional="yes">
<cd:constant type="oben"/>
<cd:constant type="kopfzeile"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="fusszeile"/>
<cd:constant type="unten"/>
<cd:constant type="seite"/>
@@ -7219,7 +6951,7 @@
<cd:keywords optional="yes" list="yes">
<cd:constant type="linkekante"/>
<cd:constant type="linkerrand"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="rechterrand"/>
<cd:constant type="rechterkante"/>
</cd:keywords>
@@ -7227,7 +6959,7 @@
<cd:parameter name="status">
<cd:constant type="start"/>
<cd:constant type="stop"/>
- <cd:variable type="cd:repeat"/>
+ <cd:constant type="cd:repeat"/>
</cd:parameter>
<cd:inherit name="stelleumrahmtein"/>
</cd:assignments>
@@ -7441,14 +7173,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="datei">
<cd:constant type="cd:file"/>
@@ -7497,7 +7222,7 @@
<cd:command name="placefloat" generated="yes" file="page-flt.tex">
<cd:sequence>
<cd:string value="place"/>
- <cd:variable value="float"/>
+ <cd:variable value="gleitobjekt"/>
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
@@ -7525,14 +7250,18 @@
<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:keywords>
<cd:reference optional="yes" list="yes"/>
<cd:content/>
@@ -7543,7 +7272,7 @@
<cd:command name="reservefloat" generated="yes">
<cd:sequence>
<cd:string value="reserve"/>
- <cd:variable value="float"/>
+ <cd:variable value="gleitobjekt"/>
</cd:sequence>
<cd:arguments>
<cd:assignments optional="yes" list="yes">
@@ -7628,7 +7357,7 @@
<cd:command name="floattext" type="environment" generated="yes">
<cd:sequence>
- <cd:variable value="float"/>
+ <cd:variable value="gleitobjekt"/>
<cd:string value="text"/>
</cd:sequence>
<cd:arguments>
@@ -7795,10 +7524,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="ausrichtung">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="mittig"/>
- <cd:constant type="marginalie"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="nach">
<cd:constant type="cd:command"/>
@@ -7851,20 +7577,13 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="farbe">
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="platz">
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="marginalie"/>
</cd:parameter>
</cd:assignments>
@@ -7924,9 +7643,7 @@
<cd:constant type="strecken"/>
</cd:parameter>
<cd:parameter name="ausrichtung">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="mittig"/>
+ <cd:resolve name="align"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -7958,14 +7675,7 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="breite">
<cd:constant type="cd:dimension"/>
@@ -7974,10 +7684,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="ausrichtung">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="mittig"/>
- <cd:constant type="breite"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="toleranz">
<cd:constant type="sehrstreng"/>
@@ -8022,14 +7729,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="kopfstil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="platz">
<cd:constant type="links"/>
@@ -8115,8 +7815,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="einziehen">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
+ <cd:resolve name="indenting"/>
</cd:parameter>
<cd:parameter name="vor">
<cd:constant type="cd:command"/>
@@ -8134,10 +7833,7 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="ausrichtung">
- <cd:constant type="links"/>
- <cd:constant type="mittig"/>
- <cd:constant type="rechts"/>
- <cd:constant type="normal"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="liniendicke">
<cd:constant type="cd:dimension"/>
@@ -8218,19 +7914,13 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="ausrichtung">
- <cd:constant type="rechts"/>
- <cd:constant type="mittig"/>
- <cd:constant type="links"/>
- <cd:constant type="normal"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="befehle">
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="ausrichtung">
- <cd:constant type="links"/>
- <cd:constant type="mittig"/>
- <cd:constant type="rechts"/>
- <cd:constant type="normal"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="hintergrund">
<cd:constant type="raster"/>
@@ -8362,6 +8052,12 @@
<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"/>
@@ -8416,7 +8112,7 @@
<cd:constant type="png"/>
<cd:constant type="jpg"/>
<cd:constant type="mov"/>
- <cd:variable type="cd:tex"/>
+ <cd:constant type="cd:tex"/>
</cd:parameter>
<cd:parameter name="methode">
<cd:constant type="eps"/>
@@ -8426,7 +8122,7 @@
<cd:constant type="png"/>
<cd:constant type="jpg"/>
<cd:constant type="mov"/>
- <cd:variable type="cd:tex"/>
+ <cd:constant type="cd:tex"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -8629,13 +8325,13 @@
<cd:arguments>
<cd:assignments list="yes">
<cd:parameter name="vor">
- <cd:variable type="cd:command"/>
+ <cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="zwischen">
- <cd:variable type="cd:command"/>
+ <cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="nach">
- <cd:variable type="cd:command"/>
+ <cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="abstand">
<cd:constant type="cd:dimension"/>
@@ -8656,20 +8352,10 @@
<cd:constant type="rechts"/>
</cd:parameter>
<cd:parameter name="ausrichtung">
- <cd:constant type="nein"/>
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="mittig"/>
- <cd:constant type="normal"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small...cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="farbe">
<cd:constant type="cd:name"/>
@@ -8848,13 +8534,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small...cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="farbe">
<cd:constant type="cd:name"/>
@@ -8880,11 +8560,16 @@
<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" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
<cd:sequence>
<cd:string value="definiereinteraktionsmenue"/>
</cd:sequence>
@@ -8922,13 +8607,7 @@
<cd:constant type="lokal"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small...cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="farbe">
<cd:constant type="cd:name"/>
@@ -8970,7 +8649,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="defineinteractionmenu" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
<cd:sequence>
<cd:string value="definiereinteraktionsmenue"/>
</cd:sequence>
@@ -9191,14 +8870,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="farbe">
<cd:constant type="cd:name"/>
@@ -9299,6 +8971,8 @@
<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>
@@ -9336,14 +9010,7 @@
<cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -9801,16 +9468,10 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="fett"/>
- <cd:constant type="geneigt"/>
- <cd:constant type="fettgeneigt"/>
- <cd:constant type="tippen"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="ausrichtung">
- <cd:constant type="links"/>
- <cd:constant type="mittig"/>
- <cd:constant type="rechts"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="option">
<cd:constant type="nurlesbar"/>
diff --git a/Master/texmf-dist/tex/context/interface/cont-en.xml b/Master/texmf-dist/tex/context/interface/cont-en.xml
index 99caedfc4da..b44992b8fa8 100644
--- a/Master/texmf-dist/tex/context/interface/cont-en.xml
+++ b/Master/texmf-dist/tex/context/interface/cont-en.xml
@@ -1,6 +1,81 @@
-<?xml version="1.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="en" version="2006.08.02">
+
+<cd:define name="align">
+ <cd:constant type="inner"/>
+ <cd:constant type="outer"/>
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="no"/>
+ <cd:constant type="yes"/>
+</cd:define>
+
+<cd:define name="indenting">
+ <cd:constant type="never"/>
+ <cd:constant type="none"/>
+ <cd:constant type="not"/>
+ <cd:constant type="no"/>
+ <cd:constant type="yes"/>
+ <cd:constant type="always"/>
+ <cd:constant type="first"/>
+ <cd:constant type="next"/>
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="odd"/>
+ <cd:constant type="even"/>
+ <cd:constant type="cd:dimension"/>
+</cd:define>
+
+<cd:define name="indentnext">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+</cd:define>
+
+<cd:define name="style">
+ <cd:constant type="normal"/>
+ <cd:constant type="bold"/>
+ <cd:constant type="slanted"/>
+ <cd:constant type="boldslanted"/>
+ <cd:constant type="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:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2004.11.17">
+<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:command name="installlanguage" file="lang-ini.tex">
<cd:sequence>
@@ -62,14 +137,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords>
- <cd:constant type="nl" default="yes"/>
- <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:resolve name="language"/>
</cd:keywords>
<cd:assignments list="yes">
<cd:inherit name="installlanguage"/>
@@ -83,14 +151,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords>
- <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:resolve name="language"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -101,14 +162,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords>
- <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:resolve name="language"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -365,20 +419,6 @@
</cd:arguments>
</cd:command>
-<cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="setupstrut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <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:command name="setupcolor" file="colo-ini.tex">
<cd:sequence>
<cd:string value="setupcolor"/>
@@ -620,7 +660,7 @@
<cd:constant type="vertical"/>
<cd:constant type="name"/>
<cd:constant type="value"/>
- <cd:variable type="cd:number"/>
+ <cd:constant type="cd:number"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -683,14 +723,7 @@
<cd:constant type="none"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="color">
<cd:constant type="cd:name"/>
@@ -834,18 +867,10 @@
<cd:constant type="no"/>
</cd:parameter>
<cd:parameter name="indentnext">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="color">
<cd:constant type="cd:name"/>
@@ -858,6 +883,16 @@
<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>
@@ -899,7 +934,7 @@
</cd:parameter>
<cd:parameter name="location">
<cd:constant type="page"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="columns"/>
<cd:constant type="firstcolumn"/>
<cd:constant type="lastcolumn"/>
@@ -930,14 +965,7 @@
<cd:constant type="big"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="distance">
<cd:constant type="cd:dimension"/>
@@ -964,14 +992,7 @@
<cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="textstyle">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="textcolor">
<cd:constant type="cd:name"/>
@@ -1473,14 +1494,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:constant type="nl" default="yes"/>
- <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:resolve name="language"/>
</cd:keywords>
<cd:assignments>
<cd:parameter name="cd:name">
@@ -1496,14 +1510,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:constant type="nl" default="yes"/>
- <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:resolve name="language"/>
</cd:keywords>
<cd:assignments>
<cd:parameter name="cd:name">
@@ -1599,6 +1606,11 @@
<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"/>
@@ -1626,14 +1638,7 @@
<cd:constant type="local"/>
</cd:parameter>
<cd:parameter name="align">
- <cd:constant type="no"/>
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="middle"/>
- <cd:constant type="normal"/>
- <cd:constant type="high"/>
- <cd:constant type="low"/>
- <cd:constant type="lohi"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="bottom">
<cd:constant type="cd:command"/>
@@ -1724,7 +1729,7 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="foregroundstyle">
- <cd:constant type="cd:name"/>
+ <cd:resolve name="style"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -1878,13 +1883,7 @@
<cd:constant type="big"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="left">
<cd:constant type="cd:command"/>
@@ -1920,6 +1919,9 @@
<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>
@@ -2045,14 +2047,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="n">
<cd:constant type="cd:number"/>
@@ -2142,14 +2137,7 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="rulecolor">
<cd:constant type="cd:name"/>
@@ -2361,7 +2349,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="margin"/>
<cd:constant type="edge"/>
</cd:keywords>
@@ -2546,23 +2534,13 @@
<cd:constant type="right"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="width">
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="align">
- <cd:constant type="left"/>
- <cd:constant type="middle"/>
- <cd:constant type="right"/>
- <cd:constant type="no"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="top">
<cd:constant type="cd:command"/>
@@ -2936,24 +2914,10 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="headstyle">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="color">
<cd:constant type="cd:name"/>
@@ -2973,9 +2937,7 @@
<cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="align">
- <cd:constant type="left"/>
- <cd:constant type="middle"/>
- <cd:constant type="right"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="margin">
<cd:constant type="standard"/>
@@ -2988,13 +2950,13 @@
<cd:constant type="right"/>
<cd:constant type="top"/>
<cd:constant type="serried"/>
- <cd:variable type="cd:command"/>
<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"/>
@@ -3011,17 +2973,10 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="indentnext">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="indenting">
- <cd:constant type="never"/>
- <cd:constant type="not"/>
- <cd:constant type="no"/>
- <cd:constant type="yes"/>
- <cd:constant type="always"/>
- <cd:constant type="first"/>
- <cd:constant type="next"/>
+ <cd:resolve name="indenting"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -3116,24 +3071,10 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="headstyle">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="width">
<cd:constant type="fit"/>
@@ -3209,14 +3150,7 @@
<cd:constant type="no"/>
</cd:parameter>
<cd:parameter name="headstyle">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="headcolor">
<cd:constant type="cd:name"/>
@@ -3274,9 +3208,7 @@
<cd:constant type="no"/>
</cd:parameter>
<cd:parameter name="align">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- <cd:variable type="cd:text"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="blank">
<cd:constant type="fixed"/>
@@ -3340,7 +3272,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="margin"/>
<cd:constant type="edge"/>
</cd:keywords>
@@ -3360,34 +3292,13 @@
<cd:constant type="no"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="leftstyle">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="rightstyle">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="leftwidth">
<cd:constant type="cd:dimension"/>
@@ -3479,23 +3390,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="margin"/>
<cd:constant type="edge"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="date"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="pagenumber"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="date"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="pagenumber"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3506,23 +3409,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="margin"/>
<cd:constant type="edge"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="date"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="pagenumber"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="date"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="pagenumber"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3533,23 +3428,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="margin"/>
<cd:constant type="edge"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="date"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="pagenumber"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="date"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="pagenumber"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3560,23 +3447,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="margin"/>
<cd:constant type="edge"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="date"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="pagenumber"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="date"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="pagenumber"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3587,23 +3466,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="margin"/>
<cd:constant type="edge"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="date"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="pagenumber"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="date"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="pagenumber"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3802,14 +3673,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="color">
<cd:constant type="cd:name"/>
@@ -3819,7 +3683,7 @@
<cd:constant type="off"/>
<cd:constant type="color"/>
<cd:constant type="screen"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="location">
<cd:constant type="left"/>
@@ -3936,7 +3800,7 @@
<cd:constant type="-top"/>
<cd:constant type="-both"/>
<cd:constant type="-bottom"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="high"/>
<cd:constant type="middle"/>
<cd:constant type="low"/>
@@ -3994,20 +3858,28 @@
</cd:sequence>
</cd:command>
-<cd:command name="setupinterlinespace">
+<cd:command name="setupinterlinespace" variant="1">
<cd:sequence>
<cd:string value="setupinterlinespace"/>
</cd:sequence>
<cd:arguments>
- <cd:choice>
<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:constant type="cd:number"/>
@@ -4025,7 +3897,6 @@
<cd:constant type="cd:number"/>
</cd:parameter>
</cd:assignments>
- </cd:choice>
</cd:arguments>
</cd:command>
@@ -4058,14 +3929,7 @@
<cd:constant type="Romannumerals"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="left">
<cd:constant type="cd:text"/>
@@ -4168,14 +4032,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="commands">
<cd:constant type="cd:command"/>
@@ -4192,27 +4049,28 @@
<cd:assignments list="yes">
<cd:parameter name="sectionnumber">
<cd:constant type="yes"/>
- <cd:variable type="cd:number"/>
+ <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:variable type="cd:text"/>
+ <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:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="normal"/>
- <cd:constant type="broad"/>
+ <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">
@@ -4223,8 +4081,7 @@
<cd:constant type="stretch"/>
</cd:parameter>
<cd:parameter name="indentnext">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="command">
<cd:constant type="cd:twoarguments"/>
@@ -4261,24 +4118,10 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="headstyle">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="number">
<cd:constant type="yes"/>
@@ -4288,10 +4131,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="align">
- <cd:constant type="left"/>
- <cd:constant type="middle"/>
- <cd:constant type="right"/>
- <cd:constant type="no"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="conversion">
<cd:constant type="numbers"/>
@@ -4307,6 +4147,9 @@
<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>
@@ -4380,8 +4223,7 @@
<cd:constant type="none"/>
</cd:parameter>
<cd:parameter name="indentnext">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="ntop">
<cd:constant type="cd:number"/>
@@ -4413,7 +4255,7 @@
<cd:parameter name="numbering">
<cd:constant type="yes"/>
<cd:constant type="nocheck"/>
- </cd:parameter>
+ </cd:parameter>
<cd:inherit name="setupframed"/>
</cd:assignments>
</cd:arguments>
@@ -4653,7 +4495,7 @@
</cd:parameter>
<cd:parameter name="interaction">
<cd:constant type="label"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="all"/>
<cd:constant type="symbol"/>
</cd:parameter>
@@ -4695,14 +4537,7 @@
<cd:arguments>
<cd:assignments list="yes">
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="urlalternative">
<cd:constant type="none"/>
@@ -4864,7 +4699,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
<cd:sequence>
<cd:string value="placecombinedlist"/>
</cd:sequence>
@@ -4914,7 +4749,7 @@
<cd:constant type="c"/>
<cd:constant type="..."/>
<cd:constant type="none"/>
- <cd:variable type="cd:command"/>
+ <cd:constant type="command"/>
</cd:parameter>
<cd:parameter name="coupling">
<cd:constant type="on"/>
@@ -4931,44 +4766,16 @@
<cd:constant type="cd:list"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="numberstyle">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="textstyle">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="pagestyle">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="color">
<cd:constant type="cd:name"/>
@@ -4986,8 +4793,8 @@
<cd:constant type="cd:oneargument"/>
</cd:parameter>
<cd:parameter name="interaction">
- <cd:variable type="cd:sectionnumber"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:sectionnumber"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="pagenumber"/>
<cd:constant type="all"/>
</cd:parameter>
@@ -5067,7 +4874,7 @@
<cd:parameter name="expansion">
<cd:constant type="yes"/>
<cd:constant type="no"/>
- <cd:variable type="cd:command"/>
+ <cd:constant type="command"/>
</cd:parameter>
<cd:parameter name="maxwidth">
<cd:constant type="cd:dimension"/>
@@ -5077,6 +4884,34 @@
</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"/>
@@ -5116,7 +4951,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" generated="yes" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="combinedlist"/>
@@ -5181,9 +5016,10 @@
<cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="align">
- <cd:constant type="left"/>
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="option">
<cd:constant type="middle"/>
- <cd:constant type="right"/>
</cd:parameter>
<cd:parameter name="strut">
<cd:constant type="yes"/>
@@ -5205,8 +5041,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="indentnext">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="alternative">
<cd:constant type="cd:name"/>
@@ -5220,6 +5055,14 @@
<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>
@@ -5264,10 +5107,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="indenting">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="even"/>
- <cd:constant type="odd"/>
+ <cd:resolve name="indenting"/>
</cd:parameter>
<cd:parameter name="space">
<cd:constant type="yes"/>
@@ -5296,14 +5136,7 @@
<cd:constant type="line"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="distance">
<cd:constant type="cd:dimension"/>
@@ -5324,7 +5157,7 @@
<cd:constant type="Characters"/>
<cd:constant type="romannumerals"/>
<cd:constant type="Romannumerals"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="start">
<cd:constant type="cd:number"/>
@@ -5340,14 +5173,7 @@
<cd:constant type="inmargin"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="prefix">
<cd:constant type="cd:text"/>
@@ -5415,14 +5241,7 @@
<cd:constant type="both"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="before">
<cd:constant type="cd:command"/>
@@ -5431,14 +5250,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="align">
- <cd:constant type="inner"/>
- <cd:constant type="outer"/>
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="middle"/>
- <cd:constant type="normal"/>
- <cd:constant type="no"/>
- <cd:constant type="yes"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="line">
<cd:constant type="cd:number"/>
@@ -5756,16 +5568,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords list="yes">
- <cd:constant type="none" default="yes"/>
- <cd:constant type="small"/>
- <cd:constant type="medium"/>
- <cd:constant type="big"/>
- <cd:constant type="next"/>
- <cd:constant type="first"/>
- <cd:constant type="normal"/>
- <cd:constant type="odd"/>
- <cd:constant type="even"/>
- <cd:constant type="cd:dimension"/>
+ <cd:resolve name="indenting"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -5859,34 +5662,13 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="textstyle">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="numberstyle">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="color">
<cd:constant type="cd:name"/>
@@ -5945,14 +5727,14 @@
<cd:constant type="normal"/>
<cd:constant type="inmargin"/>
<cd:constant type="middle"/>
- <cd:variable type="cd:text"/>
+ <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:variable type="cd:number"/>
+ <cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="command">
<cd:constant type="cd:twoarguments"/>
@@ -5963,6 +5745,12 @@
<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="-"/>
@@ -5976,7 +5764,7 @@
<cd:parameter name="incrementnumber">
<cd:constant type="yes"/>
<cd:constant type="no"/>
- <cd:variable type="cd:list"/>
+ <cd:constant type="cd:list"/>
<cd:constant type="cd:file"/>
</cd:parameter>
<cd:parameter name="resetnumber">
@@ -5988,8 +5776,8 @@
</cd:parameter>
<cd:parameter name="expansion">
<cd:constant type="yes"/>
- <cd:variable type="cd:command"/>
<cd:constant type="no"/>
+ <cd:constant type="command"/>
</cd:parameter>
<cd:parameter name="margintext">
<cd:constant type="yes"/>
@@ -6090,8 +5878,10 @@
<cd:constant type="autointro"/>
<cd:constant type="loose"/>
<cd:constant type="repeat"/>
- <cd:variable type="cd:section"/>
+ <cd:constant type="cd:section"/>
+ <cd:constant type="paragraph"/>
<cd:constant type="intext"/>
+ <cd:constant type="random"/>
</cd:keywords>
<cd:assignments optional="yes" list="yes">
<cd:parameter name="margin">
@@ -6146,34 +5936,13 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="headstyle">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="marstyle">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="symstyle">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stopper">
<cd:constant type="cd:text"/>
@@ -6185,13 +5954,10 @@
<cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="align">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="normal"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="indentnext">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -6227,6 +5993,9 @@
<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"/>
@@ -6347,38 +6116,16 @@
<cd:constant type="no"/>
</cd:parameter>
<cd:parameter name="align">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="pagestyle">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="textstyle">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="indicator">
<cd:constant type="yes"/>
@@ -6411,12 +6158,12 @@
</cd:parameter>
<cd:parameter name="interaction">
<cd:constant type="pagenumber"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="expansion">
<cd:constant type="yes"/>
- <cd:variable type="cd:command"/>
<cd:constant type="no"/>
+ <cd:constant type="command"/>
</cd:parameter>
<cd:parameter name="referencing">
<cd:constant type="on"/>
@@ -6443,6 +6190,18 @@
<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>
@@ -6511,7 +6270,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" file="core-reg.tex">
+<cd:command name="placeregister" variant="1" file="core-reg.tex">
<cd:sequence>
<cd:string value="placeregister"/>
</cd:sequence>
@@ -6551,7 +6310,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" generated="yes" file="core-reg.tex">
+<cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="register"/>
@@ -6593,24 +6352,10 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="textstyle">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="synonymstyle">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="location">
<cd:constant type="left"/>
@@ -6638,8 +6383,8 @@
</cd:parameter>
<cd:parameter name="expansion">
<cd:constant type="yes"/>
- <cd:variable type="cd:command"/>
<cd:constant type="no"/>
+ <cd:constant type="command"/>
</cd:parameter>
<cd:parameter name="command">
<cd:constant type="cd:threearguments"/>
@@ -6726,19 +6471,12 @@
<cd:constant type="used"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="expansion">
<cd:constant type="yes"/>
- <cd:variable type="cd:command"/>
<cd:constant type="no"/>
+ <cd:constant type="command"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -6946,13 +6684,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords list="yes">
- <cd:constant type="never" default="yes"/>
- <cd:constant type="not"/>
- <cd:constant type="no"/>
- <cd:constant type="yes"/>
- <cd:constant type="always"/>
- <cd:constant type="first"/>
- <cd:constant type="next"/>
+ <cd:resolve name="indenting"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -6980,7 +6712,7 @@
<cd:constant type="reset"/>
<cd:constant type="line"/>
<cd:constant type="halfline"/>
- <cd:variable type="cd:formula"/>
+ <cd:constant type="cd:formula"/>
<cd:constant type="fixed"/>
<cd:constant type="flexible"/>
<cd:constant type="none"/>
@@ -7208,7 +6940,7 @@
<cd:keywords optional="yes">
<cd:constant type="top"/>
<cd:constant type="header"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="footer"/>
<cd:constant type="bottom"/>
<cd:constant type="page"/>
@@ -7219,7 +6951,7 @@
<cd:keywords optional="yes" list="yes">
<cd:constant type="leftedge"/>
<cd:constant type="leftmargin"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="rightmargin"/>
<cd:constant type="rightedge"/>
</cd:keywords>
@@ -7227,7 +6959,7 @@
<cd:parameter name="state">
<cd:constant type="start"/>
<cd:constant type="stop"/>
- <cd:variable type="cd:repeat"/>
+ <cd:constant type="cd:repeat"/>
</cd:parameter>
<cd:inherit name="setupframed"/>
</cd:assignments>
@@ -7441,14 +7173,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="file">
<cd:constant type="cd:file"/>
@@ -7525,14 +7250,18 @@
<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:keywords>
<cd:reference optional="yes" list="yes"/>
<cd:content/>
@@ -7795,10 +7524,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="align">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="middle"/>
- <cd:constant type="margin"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="after">
<cd:constant type="cd:command"/>
@@ -7851,20 +7577,13 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="color">
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="location">
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="margin"/>
</cd:parameter>
</cd:assignments>
@@ -7924,9 +7643,7 @@
<cd:constant type="stretch"/>
</cd:parameter>
<cd:parameter name="align">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="middle"/>
+ <cd:resolve name="align"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -7958,14 +7675,7 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="width">
<cd:constant type="cd:dimension"/>
@@ -7974,10 +7684,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="align">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="middle"/>
- <cd:constant type="width"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="tolerance">
<cd:constant type="verystrict"/>
@@ -8022,14 +7729,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="headstyle">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="location">
<cd:constant type="left"/>
@@ -8115,8 +7815,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="indenting">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
+ <cd:resolve name="indenting"/>
</cd:parameter>
<cd:parameter name="before">
<cd:constant type="cd:command"/>
@@ -8134,10 +7833,7 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="align">
- <cd:constant type="left"/>
- <cd:constant type="middle"/>
- <cd:constant type="right"/>
- <cd:constant type="normal"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="rulethickness">
<cd:constant type="cd:dimension"/>
@@ -8218,19 +7914,13 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="align">
- <cd:constant type="right"/>
- <cd:constant type="middle"/>
- <cd:constant type="left"/>
- <cd:constant type="normal"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="commands">
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="align">
- <cd:constant type="left"/>
- <cd:constant type="middle"/>
- <cd:constant type="right"/>
- <cd:constant type="normal"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="background">
<cd:constant type="screen"/>
@@ -8362,6 +8052,12 @@
<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"/>
@@ -8416,7 +8112,7 @@
<cd:constant type="png"/>
<cd:constant type="jpg"/>
<cd:constant type="mov"/>
- <cd:variable type="cd:tex"/>
+ <cd:constant type="cd:tex"/>
</cd:parameter>
<cd:parameter name="method">
<cd:constant type="eps"/>
@@ -8426,7 +8122,7 @@
<cd:constant type="png"/>
<cd:constant type="jpg"/>
<cd:constant type="mov"/>
- <cd:variable type="cd:tex"/>
+ <cd:constant type="cd:tex"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -8629,13 +8325,13 @@
<cd:arguments>
<cd:assignments list="yes">
<cd:parameter name="before">
- <cd:variable type="cd:command"/>
+ <cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="inbetween">
- <cd:variable type="cd:command"/>
+ <cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="after">
- <cd:variable type="cd:command"/>
+ <cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="distance">
<cd:constant type="cd:dimension"/>
@@ -8656,20 +8352,10 @@
<cd:constant type="right"/>
</cd:parameter>
<cd:parameter name="align">
- <cd:constant type="no"/>
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="middle"/>
- <cd:constant type="normal"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small...cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="color">
<cd:constant type="cd:name"/>
@@ -8848,13 +8534,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small...cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="color">
<cd:constant type="cd:name"/>
@@ -8880,11 +8560,16 @@
<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" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
<cd:sequence>
<cd:string value="defineinteractionmenu"/>
</cd:sequence>
@@ -8922,13 +8607,7 @@
<cd:constant type="local"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small...cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="color">
<cd:constant type="cd:name"/>
@@ -8970,7 +8649,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="defineinteractionmenu" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
<cd:sequence>
<cd:string value="defineinteractionmenu"/>
</cd:sequence>
@@ -9191,14 +8870,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="color">
<cd:constant type="cd:name"/>
@@ -9299,6 +8971,8 @@
<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>
@@ -9336,14 +9010,7 @@
<cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -9801,16 +9468,10 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="style">
- <cd:constant type="normal"/>
- <cd:constant type="bold"/>
- <cd:constant type="slanted"/>
- <cd:constant type="boldslanted"/>
- <cd:constant type="type"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="align">
- <cd:constant type="left"/>
- <cd:constant type="middle"/>
- <cd:constant type="right"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="option">
<cd:constant type="readonly"/>
diff --git a/Master/texmf-dist/tex/context/interface/cont-fr.xml b/Master/texmf-dist/tex/context/interface/cont-fr.xml
new file mode 100644
index 00000000000..4cacc10a502
--- /dev/null
+++ b/Master/texmf-dist/tex/context/interface/cont-fr.xml
@@ -0,0 +1,9890 @@
+<?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="fr" version="2006.08.02">
+
+<cd:define name="align">
+ <cd:constant type="interieur"/>
+ <cd:constant type="exterieur"/>
+ <cd:constant type="gauche"/>
+ <cd:constant type="droite"/>
+ <cd:constant type="milieu"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="non"/>
+ <cd:constant type="oui"/>
+</cd:define>
+
+<cd:define name="indenting">
+ <cd:constant type="jamais"/>
+ <cd:constant type="rien"/>
+ <cd:constant type="pas"/>
+ <cd:constant type="non"/>
+ <cd:constant type="oui"/>
+ <cd:constant type="toujours"/>
+ <cd:constant type="premier"/>
+ <cd:constant type="prochain"/>
+ <cd:constant type="petit"/>
+ <cd:constant type="moyen"/>
+ <cd:constant type="grand"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="impair"/>
+ <cd:constant type="paire"/>
+ <cd:constant type="cd:dimension"/>
+</cd:define>
+
+<cd:define name="indentnext">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+</cd:define>
+
+<cd:define name="style">
+ <cd:constant type="normal"/>
+ <cd:constant type="gras"/>
+ <cd:constant type="incline"/>
+ <cd:constant type="inclinegras"/>
+ <cd:constant type="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="date"/>
+ <cd:constant type="cd:mark"/>
+ <cd:constant type="numeropage"/>
+</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: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:constant type="global"/>
+ </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: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">
+ <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: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: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: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: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>
+ <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="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: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: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: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">
+ <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="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: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:sequence>
+ <cd:variable value="description"/>
+ </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: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>
+ <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: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"/>
+ </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: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"/>
+ </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="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 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:constant type="cd:text" default="yes"/>
+ <cd:constant type="marge"/>
+ <cd:constant type="bord"/>
+ </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:constant type="cd:text" default="yes"/>
+ <cd:constant type="marge"/>
+ <cd:constant type="bord"/>
+ </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:constant type="cd:text" default="yes"/>
+ <cd:constant type="marge"/>
+ <cd:constant type="bord"/>
+ </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:constant type="cd:text" default="yes"/>
+ <cd:constant type="marge"/>
+ <cd:constant type="bord"/>
+ </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:constant type="cd:text" default="yes"/>
+ <cd:constant type="marge"/>
+ <cd:constant type="bord"/>
+ </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="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:command name="setuplayout" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="regledisposition"/>
+ </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="brodgauche">
+ <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: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 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: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: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 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 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: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="sup"/>
+ <cd:constant type="inf"/>
+ <cd:constant type="rien"/>
+ <cd:constant type="haut"/>
+ <cd:constant type="bas"/>
+ <cd:constant type="milieu"/>
+ </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: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: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"/>
+ </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: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: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 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="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="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="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="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: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="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/>
+ </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: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: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: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: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"/>
+ </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: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: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="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: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: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: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"/>
+ </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="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: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: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="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="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="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 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="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>
+ <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: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: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: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: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:constant type="gauche"/>
+ <cd:constant type="milieu"/>
+ <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: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 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: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="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="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="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="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: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"/>
+ </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: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: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: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: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: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:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="droite">
+ <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: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:interface>
diff --git a/Master/texmf-dist/tex/context/interface/cont-it.xml b/Master/texmf-dist/tex/context/interface/cont-it.xml
index e9758b989f7..d69165d5234 100644
--- a/Master/texmf-dist/tex/context/interface/cont-it.xml
+++ b/Master/texmf-dist/tex/context/interface/cont-it.xml
@@ -1,6 +1,81 @@
-<?xml version="1.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="it" version="2006.08.02">
+
+<cd:define name="align">
+ <cd:constant type="interno"/>
+ <cd:constant type="esterno"/>
+ <cd:constant type="sinistra"/>
+ <cd:constant type="destra"/>
+ <cd:constant type="centro"/>
+ <cd:constant type="normale"/>
+ <cd:constant type="no"/>
+ <cd:constant type="si"/>
+</cd:define>
+
+<cd:define name="indenting">
+ <cd:constant type="mai"/>
+ <cd:constant type="nessuno"/>
+ <cd:constant type="non"/>
+ <cd:constant type="no"/>
+ <cd:constant type="si"/>
+ <cd:constant type="sempre"/>
+ <cd:constant type="primo"/>
+ <cd:constant type="successivo"/>
+ <cd:constant type="piccolo"/>
+ <cd:constant type="medio"/>
+ <cd:constant type="grande"/>
+ <cd:constant type="normale"/>
+ <cd:constant type="dispari"/>
+ <cd:constant type="pari"/>
+ <cd:constant type="cd:dimension"/>
+</cd:define>
+
+<cd:define name="indentnext">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+</cd:define>
+
+<cd:define name="style">
+ <cd:constant type="normale"/>
+ <cd:constant type="grassetto"/>
+ <cd:constant type="inclinato"/>
+ <cd:constant type="grassettoinclinato"/>
+ <cd:constant type="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:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2004.11.17">
+<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:command name="installlanguage" file="lang-ini.tex">
<cd:sequence>
@@ -62,14 +137,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords>
- <cd:constant type="nl" default="yes"/>
- <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:resolve name="language"/>
</cd:keywords>
<cd:assignments list="yes">
<cd:inherit name="installalingua"/>
@@ -83,14 +151,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords>
- <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:resolve name="language"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -101,14 +162,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords>
- <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:resolve name="language"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -365,20 +419,6 @@
</cd:arguments>
</cd:command>
-<cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="impostastrut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <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:command name="setupcolor" file="colo-ini.tex">
<cd:sequence>
<cd:string value="impostacolore"/>
@@ -620,7 +660,7 @@
<cd:constant type="verticale"/>
<cd:constant type="nome"/>
<cd:constant type="valore"/>
- <cd:variable type="cd:number"/>
+ <cd:constant type="cd:number"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -683,14 +723,7 @@
<cd:constant type="nessuno"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="colore">
<cd:constant type="cd:name"/>
@@ -834,18 +867,10 @@
<cd:constant type="no"/>
</cd:parameter>
<cd:parameter name="rientrasuccessivo">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="colore">
<cd:constant type="cd:name"/>
@@ -858,6 +883,16 @@
<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>
@@ -899,7 +934,7 @@
</cd:parameter>
<cd:parameter name="luogo">
<cd:constant type="pagina"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="colonne"/>
<cd:constant type="firstcolumn"/>
<cd:constant type="lastcolumn"/>
@@ -930,14 +965,7 @@
<cd:constant type="grande"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="distanza">
<cd:constant type="cd:dimension"/>
@@ -964,14 +992,7 @@
<cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="stiletesto">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="coloretesto">
<cd:constant type="cd:name"/>
@@ -1473,14 +1494,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:constant type="nl" default="yes"/>
- <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:resolve name="language"/>
</cd:keywords>
<cd:assignments>
<cd:parameter name="cd:name">
@@ -1496,14 +1510,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:constant type="nl" default="yes"/>
- <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:resolve name="language"/>
</cd:keywords>
<cd:assignments>
<cd:parameter name="cd:name">
@@ -1599,6 +1606,11 @@
<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"/>
@@ -1626,14 +1638,7 @@
<cd:constant type="locale"/>
</cd:parameter>
<cd:parameter name="allinea">
- <cd:constant type="no"/>
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="centro"/>
- <cd:constant type="normale"/>
- <cd:constant type="alto"/>
- <cd:constant type="basso"/>
- <cd:constant type="pedap"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="fondo">
<cd:constant type="cd:command"/>
@@ -1724,7 +1729,7 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="foregroundstyle">
- <cd:constant type="cd:name"/>
+ <cd:resolve name="style"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -1878,13 +1883,7 @@
<cd:constant type="grande"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="sinistra">
<cd:constant type="cd:command"/>
@@ -1920,6 +1919,9 @@
<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>
@@ -2045,14 +2047,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="n">
<cd:constant type="cd:number"/>
@@ -2142,14 +2137,7 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="colorelinea">
<cd:constant type="cd:name"/>
@@ -2361,7 +2349,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="margine"/>
<cd:constant type="bordo"/>
</cd:keywords>
@@ -2546,23 +2534,13 @@
<cd:constant type="destra"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="ampiezza">
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="allinea">
- <cd:constant type="sinistra"/>
- <cd:constant type="centro"/>
- <cd:constant type="destra"/>
- <cd:constant type="no"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="cima">
<cd:constant type="cd:command"/>
@@ -2936,24 +2914,10 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="stiletesta">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="colore">
<cd:constant type="cd:name"/>
@@ -2973,9 +2937,7 @@
<cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="allinea">
- <cd:constant type="sinistra"/>
- <cd:constant type="centro"/>
- <cd:constant type="destra"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="margine">
<cd:constant type="standard"/>
@@ -2988,13 +2950,13 @@
<cd:constant type="destra"/>
<cd:constant type="cima"/>
<cd:constant type="vicino"/>
- <cd:variable type="cd:command"/>
<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"/>
@@ -3011,17 +2973,10 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="rientrasuccessivo">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="rientro">
- <cd:constant type="mai"/>
- <cd:constant type="non"/>
- <cd:constant type="no"/>
- <cd:constant type="si"/>
- <cd:constant type="sempre"/>
- <cd:constant type="primo"/>
- <cd:constant type="successivo"/>
+ <cd:resolve name="indenting"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -3116,24 +3071,10 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stiletesta">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="ampiezza">
<cd:constant type="adatta"/>
@@ -3209,14 +3150,7 @@
<cd:constant type="no"/>
</cd:parameter>
<cd:parameter name="stiletesta">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="coloretesta">
<cd:constant type="cd:name"/>
@@ -3274,9 +3208,7 @@
<cd:constant type="no"/>
</cd:parameter>
<cd:parameter name="allinea">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:variable type="cd:text"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="rigovuoto">
<cd:constant type="fisso"/>
@@ -3340,7 +3272,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="margine"/>
<cd:constant type="bordo"/>
</cd:keywords>
@@ -3360,34 +3292,13 @@
<cd:constant type="no"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stilesinistra">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stiledestra">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="ampiezzasinistra">
<cd:constant type="cd:dimension"/>
@@ -3479,23 +3390,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="margine"/>
<cd:constant type="bordo"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="data"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="numeropagina"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="data"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="numeropagina"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3506,23 +3409,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="margine"/>
<cd:constant type="bordo"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="data"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="numeropagina"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="data"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="numeropagina"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3533,23 +3428,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="margine"/>
<cd:constant type="bordo"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="data"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="numeropagina"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="data"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="numeropagina"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3560,23 +3447,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="margine"/>
<cd:constant type="bordo"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="data"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="numeropagina"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="data"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="numeropagina"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3587,23 +3466,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="margine"/>
<cd:constant type="bordo"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="data"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="numeropagina"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="data"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="numeropagina"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3802,14 +3673,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="colore">
<cd:constant type="cd:name"/>
@@ -3819,7 +3683,7 @@
<cd:constant type="disattivo"/>
<cd:constant type="colore"/>
<cd:constant type="schermo"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="luogo">
<cd:constant type="sinistra"/>
@@ -3936,7 +3800,7 @@
<cd:constant type="-top"/>
<cd:constant type="-both"/>
<cd:constant type="-bottom"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="alto"/>
<cd:constant type="centro"/>
<cd:constant type="basso"/>
@@ -3994,20 +3858,28 @@
</cd:sequence>
</cd:command>
-<cd:command name="setupinterlinespace">
+<cd:command name="setupinterlinespace" variant="1">
<cd:sequence>
<cd:string value="impostainterlinea"/>
</cd:sequence>
<cd:arguments>
- <cd:choice>
<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:constant type="cd:number"/>
@@ -4025,7 +3897,6 @@
<cd:constant type="cd:number"/>
</cd:parameter>
</cd:assignments>
- </cd:choice>
</cd:arguments>
</cd:command>
@@ -4058,14 +3929,7 @@
<cd:constant type="Numeriromani"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="sinistra">
<cd:constant type="cd:text"/>
@@ -4168,14 +4032,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="comandi">
<cd:constant type="cd:command"/>
@@ -4192,27 +4049,28 @@
<cd:assignments list="yes">
<cd:parameter name="numerosezione">
<cd:constant type="si"/>
- <cd:variable type="cd:number"/>
+ <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:variable type="cd:text"/>
+ <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:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="normale"/>
- <cd:constant type="ampio"/>
+ <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">
@@ -4223,8 +4081,7 @@
<cd:constant type="dilata"/>
</cd:parameter>
<cd:parameter name="rientrasuccessivo">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="comando">
<cd:constant type="cd:twoarguments"/>
@@ -4261,24 +4118,10 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="stiletesta">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="numero">
<cd:constant type="si"/>
@@ -4288,10 +4131,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="allinea">
- <cd:constant type="sinistra"/>
- <cd:constant type="centro"/>
- <cd:constant type="destra"/>
- <cd:constant type="no"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="conversione">
<cd:constant type="numeri"/>
@@ -4307,6 +4147,9 @@
<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>
@@ -4380,8 +4223,7 @@
<cd:constant type="nessuno"/>
</cd:parameter>
<cd:parameter name="rientrasuccessivo">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="ncima">
<cd:constant type="cd:number"/>
@@ -4413,7 +4255,7 @@
<cd:parameter name="numerazione">
<cd:constant type="si"/>
<cd:constant type="nocheck"/>
- </cd:parameter>
+ </cd:parameter>
<cd:inherit name="impostaincorniciato"/>
</cd:assignments>
</cd:arguments>
@@ -4653,7 +4495,7 @@
</cd:parameter>
<cd:parameter name="interazione">
<cd:constant type="etichetta"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="tutti"/>
<cd:constant type="simbolo"/>
</cd:parameter>
@@ -4695,14 +4537,7 @@
<cd:arguments>
<cd:assignments list="yes">
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="alternativaurl">
<cd:constant type="nessuno"/>
@@ -4864,7 +4699,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
<cd:sequence>
<cd:string value="mettielencocombinato"/>
</cd:sequence>
@@ -4914,7 +4749,7 @@
<cd:constant type="c"/>
<cd:constant type="..."/>
<cd:constant type="nessuno"/>
- <cd:variable type="cd:command"/>
+ <cd:constant type="comando"/>
</cd:parameter>
<cd:parameter name="accoppiamento">
<cd:constant type="attivo"/>
@@ -4931,44 +4766,16 @@
<cd:constant type="cd:list"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stilenumero">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stiletesto">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stilepagina">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="colore">
<cd:constant type="cd:name"/>
@@ -4986,8 +4793,8 @@
<cd:constant type="cd:oneargument"/>
</cd:parameter>
<cd:parameter name="interazione">
- <cd:variable type="cd:sectionnumber"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:sectionnumber"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="numeropagina"/>
<cd:constant type="tutti"/>
</cd:parameter>
@@ -5067,7 +4874,7 @@
<cd:parameter name="espansione">
<cd:constant type="si"/>
<cd:constant type="no"/>
- <cd:variable type="cd:command"/>
+ <cd:constant type="comando"/>
</cd:parameter>
<cd:parameter name="ampiezzamax">
<cd:constant type="cd:dimension"/>
@@ -5077,6 +4884,34 @@
</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"/>
@@ -5116,7 +4951,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" generated="yes" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="combinedlist"/>
@@ -5181,9 +5016,10 @@
<cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="allinea">
- <cd:constant type="sinistra"/>
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="opzione">
<cd:constant type="centro"/>
- <cd:constant type="destra"/>
</cd:parameter>
<cd:parameter name="strut">
<cd:constant type="si"/>
@@ -5205,8 +5041,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="rientrasuccessivo">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="alternativa">
<cd:constant type="cd:name"/>
@@ -5220,6 +5055,14 @@
<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>
@@ -5264,10 +5107,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="rientro">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="pari"/>
- <cd:constant type="dispari"/>
+ <cd:resolve name="indenting"/>
</cd:parameter>
<cd:parameter name="spazio">
<cd:constant type="si"/>
@@ -5296,14 +5136,7 @@
<cd:constant type="riga"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="distanza">
<cd:constant type="cd:dimension"/>
@@ -5324,7 +5157,7 @@
<cd:constant type="Lettere"/>
<cd:constant type="numeriromani"/>
<cd:constant type="Numeriromani"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="inizia">
<cd:constant type="cd:number"/>
@@ -5340,14 +5173,7 @@
<cd:constant type="inmargine"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="prefisso">
<cd:constant type="cd:text"/>
@@ -5415,14 +5241,7 @@
<cd:constant type="entrambi"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="prima">
<cd:constant type="cd:command"/>
@@ -5431,14 +5250,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="allinea">
- <cd:constant type="interno"/>
- <cd:constant type="esterno"/>
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="centro"/>
- <cd:constant type="normale"/>
- <cd:constant type="no"/>
- <cd:constant type="si"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="riga">
<cd:constant type="cd:number"/>
@@ -5756,16 +5568,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords list="yes">
- <cd:constant type="nessuno" default="yes"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- <cd:constant type="successivo"/>
- <cd:constant type="primo"/>
- <cd:constant type="normale"/>
- <cd:constant type="dispari"/>
- <cd:constant type="pari"/>
- <cd:constant type="cd:dimension"/>
+ <cd:resolve name="indenting"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -5859,34 +5662,13 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stiletesto">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stilenumero">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="colore">
<cd:constant type="cd:name"/>
@@ -5945,14 +5727,14 @@
<cd:constant type="normale"/>
<cd:constant type="inmargine"/>
<cd:constant type="centro"/>
- <cd:variable type="cd:text"/>
+ <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:variable type="cd:number"/>
+ <cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="comando">
<cd:constant type="cd:twoarguments"/>
@@ -5963,6 +5745,12 @@
<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="-"/>
@@ -5976,7 +5764,7 @@
<cd:parameter name="incrementanumero">
<cd:constant type="si"/>
<cd:constant type="no"/>
- <cd:variable type="cd:list"/>
+ <cd:constant type="cd:list"/>
<cd:constant type="cd:file"/>
</cd:parameter>
<cd:parameter name="resetnumber">
@@ -5988,8 +5776,8 @@
</cd:parameter>
<cd:parameter name="espansione">
<cd:constant type="si"/>
- <cd:variable type="cd:command"/>
<cd:constant type="no"/>
+ <cd:constant type="comando"/>
</cd:parameter>
<cd:parameter name="testomargine">
<cd:constant type="si"/>
@@ -6090,8 +5878,10 @@
<cd:constant type="autointro"/>
<cd:constant type="lento"/>
<cd:constant type="ripeti"/>
- <cd:variable type="cd:section"/>
+ <cd:constant type="cd:section"/>
+ <cd:constant type="capoverso"/>
<cd:constant type="intesto"/>
+ <cd:constant type="casuale"/>
</cd:keywords>
<cd:assignments optional="yes" list="yes">
<cd:parameter name="margine">
@@ -6146,34 +5936,13 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="stiletesta">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stilemarcatura">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stilesimbolo">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stopper">
<cd:constant type="cd:text"/>
@@ -6185,13 +5954,10 @@
<cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="allinea">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="normale"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="rientrasuccessivo">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -6227,6 +5993,9 @@
<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"/>
@@ -6347,38 +6116,16 @@
<cd:constant type="no"/>
</cd:parameter>
<cd:parameter name="allinea">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stilepagina">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stiletesto">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="indicatore">
<cd:constant type="si"/>
@@ -6411,12 +6158,12 @@
</cd:parameter>
<cd:parameter name="interazione">
<cd:constant type="numeropagina"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="espansione">
<cd:constant type="si"/>
- <cd:variable type="cd:command"/>
<cd:constant type="no"/>
+ <cd:constant type="comando"/>
</cd:parameter>
<cd:parameter name="referencing">
<cd:constant type="attivo"/>
@@ -6443,6 +6190,18 @@
<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>
@@ -6511,7 +6270,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" file="core-reg.tex">
+<cd:command name="placeregister" variant="1" file="core-reg.tex">
<cd:sequence>
<cd:string value="mettiregistro"/>
</cd:sequence>
@@ -6551,7 +6310,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" generated="yes" file="core-reg.tex">
+<cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="registro"/>
@@ -6593,24 +6352,10 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="stiletesto">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stilesinonimi">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="luogo">
<cd:constant type="sinistra"/>
@@ -6638,8 +6383,8 @@
</cd:parameter>
<cd:parameter name="espansione">
<cd:constant type="si"/>
- <cd:variable type="cd:command"/>
<cd:constant type="no"/>
+ <cd:constant type="comando"/>
</cd:parameter>
<cd:parameter name="comando">
<cd:constant type="cd:threearguments"/>
@@ -6726,19 +6471,12 @@
<cd:constant type="usato"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="espansione">
<cd:constant type="si"/>
- <cd:variable type="cd:command"/>
<cd:constant type="no"/>
+ <cd:constant type="comando"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -6946,13 +6684,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords list="yes">
- <cd:constant type="mai" default="yes"/>
- <cd:constant type="non"/>
- <cd:constant type="no"/>
- <cd:constant type="si"/>
- <cd:constant type="sempre"/>
- <cd:constant type="primo"/>
- <cd:constant type="successivo"/>
+ <cd:resolve name="indenting"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -6980,7 +6712,7 @@
<cd:constant type="reimposta"/>
<cd:constant type="riga"/>
<cd:constant type="mezzariga"/>
- <cd:variable type="cd:formula"/>
+ <cd:constant type="cd:formula"/>
<cd:constant type="fisso"/>
<cd:constant type="flessibile"/>
<cd:constant type="nessuno"/>
@@ -7208,7 +6940,7 @@
<cd:keywords optional="yes">
<cd:constant type="cima"/>
<cd:constant type="intestazione"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="piedipagina"/>
<cd:constant type="fondo"/>
<cd:constant type="pagina"/>
@@ -7219,7 +6951,7 @@
<cd:keywords optional="yes" list="yes">
<cd:constant type="bordosinistro"/>
<cd:constant type="marginesinistro"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="marginedestro"/>
<cd:constant type="bordodestro"/>
</cd:keywords>
@@ -7227,7 +6959,7 @@
<cd:parameter name="stato">
<cd:constant type="inizia"/>
<cd:constant type="termina"/>
- <cd:variable type="cd:repeat"/>
+ <cd:constant type="cd:repeat"/>
</cd:parameter>
<cd:inherit name="impostaincorniciato"/>
</cd:assignments>
@@ -7441,14 +7173,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="file">
<cd:constant type="cd:file"/>
@@ -7497,7 +7222,7 @@
<cd:command name="placefloat" generated="yes" file="page-flt.tex">
<cd:sequence>
<cd:string value="place"/>
- <cd:variable value="float"/>
+ <cd:variable value="oggettomobile"/>
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
@@ -7525,14 +7250,18 @@
<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:keywords>
<cd:reference optional="yes" list="yes"/>
<cd:content/>
@@ -7543,7 +7272,7 @@
<cd:command name="reservefloat" generated="yes">
<cd:sequence>
<cd:string value="reserve"/>
- <cd:variable value="float"/>
+ <cd:variable value="oggettomobile"/>
</cd:sequence>
<cd:arguments>
<cd:assignments optional="yes" list="yes">
@@ -7628,7 +7357,7 @@
<cd:command name="floattext" type="environment" generated="yes">
<cd:sequence>
- <cd:variable value="float"/>
+ <cd:variable value="oggettomobile"/>
<cd:string value="text"/>
</cd:sequence>
<cd:arguments>
@@ -7795,10 +7524,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="allinea">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="centro"/>
- <cd:constant type="margine"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="dopo">
<cd:constant type="cd:command"/>
@@ -7851,20 +7577,13 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="colore">
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="luogo">
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="margine"/>
</cd:parameter>
</cd:assignments>
@@ -7924,9 +7643,7 @@
<cd:constant type="dilata"/>
</cd:parameter>
<cd:parameter name="allinea">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="centro"/>
+ <cd:resolve name="align"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -7958,14 +7675,7 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="ampiezza">
<cd:constant type="cd:dimension"/>
@@ -7974,10 +7684,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="allinea">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="centro"/>
- <cd:constant type="ampiezza"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="tolleranza">
<cd:constant type="moltorigido"/>
@@ -8022,14 +7729,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="stiletesta">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="luogo">
<cd:constant type="sinistra"/>
@@ -8115,8 +7815,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="rientro">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
+ <cd:resolve name="indenting"/>
</cd:parameter>
<cd:parameter name="prima">
<cd:constant type="cd:command"/>
@@ -8134,10 +7833,7 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="allinea">
- <cd:constant type="sinistra"/>
- <cd:constant type="centro"/>
- <cd:constant type="destra"/>
- <cd:constant type="normale"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="spessorelinea">
<cd:constant type="cd:dimension"/>
@@ -8218,19 +7914,13 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="allinea">
- <cd:constant type="destra"/>
- <cd:constant type="centro"/>
- <cd:constant type="sinistra"/>
- <cd:constant type="normale"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="comandi">
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="allinea">
- <cd:constant type="sinistra"/>
- <cd:constant type="centro"/>
- <cd:constant type="destra"/>
- <cd:constant type="normale"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="sfondo">
<cd:constant type="schermo"/>
@@ -8362,6 +8052,12 @@
<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"/>
@@ -8416,7 +8112,7 @@
<cd:constant type="png"/>
<cd:constant type="jpg"/>
<cd:constant type="mov"/>
- <cd:variable type="cd:tex"/>
+ <cd:constant type="cd:tex"/>
</cd:parameter>
<cd:parameter name="metodo">
<cd:constant type="eps"/>
@@ -8426,7 +8122,7 @@
<cd:constant type="png"/>
<cd:constant type="jpg"/>
<cd:constant type="mov"/>
- <cd:variable type="cd:tex"/>
+ <cd:constant type="cd:tex"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -8629,13 +8325,13 @@
<cd:arguments>
<cd:assignments list="yes">
<cd:parameter name="prima">
- <cd:variable type="cd:command"/>
+ <cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="tra">
- <cd:variable type="cd:command"/>
+ <cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="dopo">
- <cd:variable type="cd:command"/>
+ <cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="distanza">
<cd:constant type="cd:dimension"/>
@@ -8656,20 +8352,10 @@
<cd:constant type="destra"/>
</cd:parameter>
<cd:parameter name="allinea">
- <cd:constant type="no"/>
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="centro"/>
- <cd:constant type="normale"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small...cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="colore">
<cd:constant type="cd:name"/>
@@ -8848,13 +8534,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small...cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="colore">
<cd:constant type="cd:name"/>
@@ -8880,11 +8560,16 @@
<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="defineinteractionmenu" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
<cd:sequence>
<cd:string value="definiscimenuinterazione"/>
</cd:sequence>
@@ -8922,13 +8607,7 @@
<cd:constant type="locale"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small...cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="colore">
<cd:constant type="cd:name"/>
@@ -8970,7 +8649,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="defineinteractionmenu" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
<cd:sequence>
<cd:string value="definiscimenuinterazione"/>
</cd:sequence>
@@ -9191,14 +8870,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="colore">
<cd:constant type="cd:name"/>
@@ -9299,6 +8971,8 @@
<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>
@@ -9336,14 +9010,7 @@
<cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -9801,16 +9468,10 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="stile">
- <cd:constant type="normale"/>
- <cd:constant type="grassetto"/>
- <cd:constant type="inclinato"/>
- <cd:constant type="grassettoinclinato"/>
- <cd:constant type="type"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="allinea">
- <cd:constant type="sinistra"/>
- <cd:constant type="centro"/>
- <cd:constant type="destra"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="opzione">
<cd:constant type="solalettura"/>
diff --git a/Master/texmf-dist/tex/context/interface/cont-nl.xml b/Master/texmf-dist/tex/context/interface/cont-nl.xml
index 7958298fb75..b75ad033b92 100644
--- a/Master/texmf-dist/tex/context/interface/cont-nl.xml
+++ b/Master/texmf-dist/tex/context/interface/cont-nl.xml
@@ -1,6 +1,81 @@
-<?xml version="1.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="nl" version="2006.08.02">
+
+<cd:define name="align">
+ <cd:constant type="binnen"/>
+ <cd:constant type="buiten"/>
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="midden"/>
+ <cd:constant type="normaal"/>
+ <cd:constant type="nee"/>
+ <cd:constant type="ja"/>
+</cd:define>
+
+<cd:define name="indenting">
+ <cd:constant type="nooit"/>
+ <cd:constant type="geen"/>
+ <cd:constant type="niet"/>
+ <cd:constant type="nee"/>
+ <cd:constant type="ja"/>
+ <cd:constant type="altijd"/>
+ <cd:constant type="eerste"/>
+ <cd:constant type="volgende"/>
+ <cd:constant type="klein"/>
+ <cd:constant type="middel"/>
+ <cd:constant type="groot"/>
+ <cd:constant type="normaal"/>
+ <cd:constant type="oneven"/>
+ <cd:constant type="even"/>
+ <cd:constant type="cd:dimension"/>
+</cd:define>
+
+<cd:define name="indentnext">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+</cd:define>
+
+<cd:define name="style">
+ <cd:constant type="normaal"/>
+ <cd:constant type="vet"/>
+ <cd:constant type="schuin"/>
+ <cd:constant type="vetschuin"/>
+ <cd:constant type="type"/>
+ <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:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2004.11.17">
+<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:command name="installlanguage" file="lang-ini.tex">
<cd:sequence>
@@ -62,14 +137,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords>
- <cd:constant type="nl" default="yes"/>
- <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:resolve name="language"/>
</cd:keywords>
<cd:assignments list="yes">
<cd:inherit name="installeertaal"/>
@@ -83,14 +151,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords>
- <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:resolve name="language"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -101,14 +162,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords>
- <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:resolve name="language"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -365,20 +419,6 @@
</cd:arguments>
</cd:command>
-<cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="stelstrutin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <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:command name="setupcolor" file="colo-ini.tex">
<cd:sequence>
<cd:string value="stelkleurin"/>
@@ -620,7 +660,7 @@
<cd:constant type="vertikaal"/>
<cd:constant type="naam"/>
<cd:constant type="waarde"/>
- <cd:variable type="cd:number"/>
+ <cd:constant type="cd:number"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -683,14 +723,7 @@
<cd:constant type="geen"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="kleur">
<cd:constant type="cd:name"/>
@@ -834,18 +867,10 @@
<cd:constant type="nee"/>
</cd:parameter>
<cd:parameter name="springvolgendein">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="kleur">
<cd:constant type="cd:name"/>
@@ -858,6 +883,16 @@
<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>
@@ -899,7 +934,7 @@
</cd:parameter>
<cd:parameter name="plaats">
<cd:constant type="pagina"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="kolommen"/>
<cd:constant type="eerstekolom"/>
<cd:constant type="laatstekolom"/>
@@ -930,14 +965,7 @@
<cd:constant type="groot"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="afstand">
<cd:constant type="cd:dimension"/>
@@ -964,14 +992,7 @@
<cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="tekstletter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="tekstkleur">
<cd:constant type="cd:name"/>
@@ -1473,14 +1494,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:constant type="nl" default="yes"/>
- <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:resolve name="language"/>
</cd:keywords>
<cd:assignments>
<cd:parameter name="cd:name">
@@ -1496,14 +1510,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:constant type="nl" default="yes"/>
- <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:resolve name="language"/>
</cd:keywords>
<cd:assignments>
<cd:parameter name="cd:name">
@@ -1599,6 +1606,11 @@
<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"/>
@@ -1626,14 +1638,7 @@
<cd:constant type="lokaal"/>
</cd:parameter>
<cd:parameter name="uitlijnen">
- <cd:constant type="nee"/>
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="midden"/>
- <cd:constant type="normaal"/>
- <cd:constant type="hoog"/>
- <cd:constant type="laag"/>
- <cd:constant type="laho"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="onder">
<cd:constant type="cd:command"/>
@@ -1724,7 +1729,7 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="voorgrondletter">
- <cd:constant type="cd:name"/>
+ <cd:resolve name="style"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -1878,13 +1883,7 @@
<cd:constant type="groot"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="links">
<cd:constant type="cd:command"/>
@@ -1920,6 +1919,9 @@
<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>
@@ -2045,14 +2047,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="n">
<cd:constant type="cd:number"/>
@@ -2142,14 +2137,7 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="lijnkleur">
<cd:constant type="cd:name"/>
@@ -2361,7 +2349,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="marge"/>
<cd:constant type="rand"/>
</cd:keywords>
@@ -2546,23 +2534,13 @@
<cd:constant type="rechts"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="breedte">
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="uitlijnen">
- <cd:constant type="links"/>
- <cd:constant type="midden"/>
- <cd:constant type="rechts"/>
- <cd:constant type="nee"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="boven">
<cd:constant type="cd:command"/>
@@ -2936,24 +2914,10 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="kopletter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="kleur">
<cd:constant type="cd:name"/>
@@ -2973,9 +2937,7 @@
<cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="uitlijnen">
- <cd:constant type="links"/>
- <cd:constant type="midden"/>
- <cd:constant type="rechts"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="marge">
<cd:constant type="standaard"/>
@@ -2988,13 +2950,13 @@
<cd:constant type="rechts"/>
<cd:constant type="boven"/>
<cd:constant type="aanelkaar"/>
- <cd:variable type="cd:command"/>
<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"/>
@@ -3011,17 +2973,10 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="springvolgendein">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="inspringen">
- <cd:constant type="nooit"/>
- <cd:constant type="niet"/>
- <cd:constant type="nee"/>
- <cd:constant type="ja"/>
- <cd:constant type="altijd"/>
- <cd:constant type="eerste"/>
- <cd:constant type="volgende"/>
+ <cd:resolve name="indenting"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -3116,24 +3071,10 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="kopletter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="breedte">
<cd:constant type="passend"/>
@@ -3209,14 +3150,7 @@
<cd:constant type="nee"/>
</cd:parameter>
<cd:parameter name="kopletter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="kopkleur">
<cd:constant type="cd:name"/>
@@ -3274,9 +3208,7 @@
<cd:constant type="nee"/>
</cd:parameter>
<cd:parameter name="uitlijnen">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:variable type="cd:text"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="blanko">
<cd:constant type="vast"/>
@@ -3340,7 +3272,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="marge"/>
<cd:constant type="rand"/>
</cd:keywords>
@@ -3360,34 +3292,13 @@
<cd:constant type="nee"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="linkerletter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="rechterletter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="linkerbreedte">
<cd:constant type="cd:dimension"/>
@@ -3479,23 +3390,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="marge"/>
<cd:constant type="rand"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="paginanummer"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="paginanummer"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3506,23 +3409,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="marge"/>
<cd:constant type="rand"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="paginanummer"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="paginanummer"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3533,23 +3428,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="marge"/>
<cd:constant type="rand"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="paginanummer"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="paginanummer"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3560,23 +3447,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="marge"/>
<cd:constant type="rand"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="paginanummer"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="paginanummer"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3587,23 +3466,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="marge"/>
<cd:constant type="rand"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="paginanummer"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="paginanummer"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3802,14 +3673,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="kleur">
<cd:constant type="cd:name"/>
@@ -3819,7 +3683,7 @@
<cd:constant type="uit"/>
<cd:constant type="kleur"/>
<cd:constant type="raster"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="plaats">
<cd:constant type="links"/>
@@ -3936,7 +3800,7 @@
<cd:constant type="-top"/>
<cd:constant type="-both"/>
<cd:constant type="-bottom"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="hoog"/>
<cd:constant type="midden"/>
<cd:constant type="laag"/>
@@ -3954,7 +3818,7 @@
<cd:command name="project" type="environment">
<cd:sequence>
- <cd:string value="project"/>
+ <cd:string value="projekt"/>
</cd:sequence>
<cd:arguments>
<cd:file/>
@@ -3994,20 +3858,28 @@
</cd:sequence>
</cd:command>
-<cd:command name="setupinterlinespace">
+<cd:command name="setupinterlinespace" variant="1">
<cd:sequence>
<cd:string value="stelinterliniein"/>
</cd:sequence>
<cd:arguments>
- <cd:choice>
<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:constant type="cd:number"/>
@@ -4025,7 +3897,6 @@
<cd:constant type="cd:number"/>
</cd:parameter>
</cd:assignments>
- </cd:choice>
</cd:arguments>
</cd:command>
@@ -4058,14 +3929,7 @@
<cd:constant type="Romeins"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="links">
<cd:constant type="cd:text"/>
@@ -4168,14 +4032,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="commandos">
<cd:constant type="cd:command"/>
@@ -4192,27 +4049,28 @@
<cd:assignments list="yes">
<cd:parameter name="sectienummer">
<cd:constant type="ja"/>
- <cd:variable type="cd:number"/>
+ <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:variable type="cd:text"/>
+ <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:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="normaal"/>
- <cd:constant type="ruim"/>
+ <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">
@@ -4223,8 +4081,7 @@
<cd:constant type="rek"/>
</cd:parameter>
<cd:parameter name="springvolgendein">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="commando">
<cd:constant type="cd:twoarguments"/>
@@ -4261,24 +4118,10 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="kopletter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="nummer">
<cd:constant type="ja"/>
@@ -4288,10 +4131,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="uitlijnen">
- <cd:constant type="links"/>
- <cd:constant type="midden"/>
- <cd:constant type="rechts"/>
- <cd:constant type="nee"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="conversie">
<cd:constant type="cijfers"/>
@@ -4307,6 +4147,9 @@
<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>
@@ -4380,8 +4223,7 @@
<cd:constant type="geen"/>
</cd:parameter>
<cd:parameter name="springvolgendein">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="nboven">
<cd:constant type="cd:number"/>
@@ -4413,7 +4255,7 @@
<cd:parameter name="nummeren">
<cd:constant type="ja"/>
<cd:constant type="geencontrole"/>
- </cd:parameter>
+ </cd:parameter>
<cd:inherit name="stelomlijndin"/>
</cd:assignments>
</cd:arguments>
@@ -4653,7 +4495,7 @@
</cd:parameter>
<cd:parameter name="interactie">
<cd:constant type="label"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="alles"/>
<cd:constant type="symbool"/>
</cd:parameter>
@@ -4695,14 +4537,7 @@
<cd:arguments>
<cd:assignments list="yes">
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="urlvariant">
<cd:constant type="geen"/>
@@ -4864,7 +4699,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
<cd:sequence>
<cd:string value="plaatssamengesteldelijst"/>
</cd:sequence>
@@ -4914,7 +4749,7 @@
<cd:constant type="c"/>
<cd:constant type="..."/>
<cd:constant type="geen"/>
- <cd:variable type="cd:command"/>
+ <cd:constant type="commando"/>
</cd:parameter>
<cd:parameter name="koppeling">
<cd:constant type="aan"/>
@@ -4931,44 +4766,16 @@
<cd:constant type="cd:list"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="nummerletter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="tekstletter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="paginaletter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="kleur">
<cd:constant type="cd:name"/>
@@ -4986,8 +4793,8 @@
<cd:constant type="cd:oneargument"/>
</cd:parameter>
<cd:parameter name="interactie">
- <cd:variable type="cd:sectionnumber"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:sectionnumber"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="paginanummer"/>
<cd:constant type="alles"/>
</cd:parameter>
@@ -5067,7 +4874,7 @@
<cd:parameter name="expansie">
<cd:constant type="ja"/>
<cd:constant type="nee"/>
- <cd:variable type="cd:command"/>
+ <cd:constant type="commando"/>
</cd:parameter>
<cd:parameter name="maxbreedte">
<cd:constant type="cd:dimension"/>
@@ -5077,6 +4884,34 @@
</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"/>
@@ -5116,7 +4951,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" generated="yes" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="combinedlist"/>
@@ -5181,9 +5016,10 @@
<cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="uitlijnen">
- <cd:constant type="links"/>
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="optie">
<cd:constant type="midden"/>
- <cd:constant type="rechts"/>
</cd:parameter>
<cd:parameter name="strut">
<cd:constant type="ja"/>
@@ -5205,8 +5041,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="springvolgendein">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="variant">
<cd:constant type="cd:name"/>
@@ -5220,6 +5055,14 @@
<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>
@@ -5264,10 +5107,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="inspringen">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="even"/>
- <cd:constant type="oneven"/>
+ <cd:resolve name="indenting"/>
</cd:parameter>
<cd:parameter name="spatie">
<cd:constant type="ja"/>
@@ -5296,14 +5136,7 @@
<cd:constant type="regel"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="afstand">
<cd:constant type="cd:dimension"/>
@@ -5324,7 +5157,7 @@
<cd:constant type="Letters"/>
<cd:constant type="romeins"/>
<cd:constant type="Romeins"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="start">
<cd:constant type="cd:number"/>
@@ -5340,14 +5173,7 @@
<cd:constant type="inmarge"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="prefix">
<cd:constant type="cd:text"/>
@@ -5415,14 +5241,7 @@
<cd:constant type="beide"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="voor">
<cd:constant type="cd:command"/>
@@ -5431,14 +5250,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="uitlijnen">
- <cd:constant type="binnen"/>
- <cd:constant type="buiten"/>
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="midden"/>
- <cd:constant type="normaal"/>
- <cd:constant type="nee"/>
- <cd:constant type="ja"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="regel">
<cd:constant type="cd:number"/>
@@ -5756,16 +5568,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords list="yes">
- <cd:constant type="geen" default="yes"/>
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- <cd:constant type="volgende"/>
- <cd:constant type="eerste"/>
- <cd:constant type="normaal"/>
- <cd:constant type="oneven"/>
- <cd:constant type="even"/>
- <cd:constant type="cd:dimension"/>
+ <cd:resolve name="indenting"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -5859,34 +5662,13 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="tekstletter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="nummerletter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="kleur">
<cd:constant type="cd:name"/>
@@ -5945,14 +5727,14 @@
<cd:constant type="normaal"/>
<cd:constant type="inmarge"/>
<cd:constant type="midden"/>
- <cd:variable type="cd:text"/>
+ <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:variable type="cd:number"/>
+ <cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="commando">
<cd:constant type="cd:twoarguments"/>
@@ -5963,6 +5745,12 @@
<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="-"/>
@@ -5976,7 +5764,7 @@
<cd:parameter name="verhoognummer">
<cd:constant type="ja"/>
<cd:constant type="nee"/>
- <cd:variable type="cd:list"/>
+ <cd:constant type="cd:list"/>
<cd:constant type="cd:file"/>
</cd:parameter>
<cd:parameter name="resetnummer">
@@ -5988,8 +5776,8 @@
</cd:parameter>
<cd:parameter name="expansie">
<cd:constant type="ja"/>
- <cd:variable type="cd:command"/>
<cd:constant type="nee"/>
+ <cd:constant type="commando"/>
</cd:parameter>
<cd:parameter name="margetekst">
<cd:constant type="ja"/>
@@ -6090,8 +5878,10 @@
<cd:constant type="autointro"/>
<cd:constant type="los"/>
<cd:constant type="herhaal"/>
- <cd:variable type="cd:section"/>
+ <cd:constant type="cd:section"/>
+ <cd:constant type="alinea"/>
<cd:constant type="intekst"/>
+ <cd:constant type="willekeurig"/>
</cd:keywords>
<cd:assignments optional="yes" list="yes">
<cd:parameter name="marge">
@@ -6146,34 +5936,13 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="kopletter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="marletter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="symletter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="afsluiter">
<cd:constant type="cd:text"/>
@@ -6185,13 +5954,10 @@
<cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="uitlijnen">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="normaal"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="springvolgendein">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -6227,6 +5993,9 @@
<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"/>
@@ -6347,38 +6116,16 @@
<cd:constant type="nee"/>
</cd:parameter>
<cd:parameter name="uitlijnen">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="paginaletter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="tekstletter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="aanduiding">
<cd:constant type="ja"/>
@@ -6411,12 +6158,12 @@
</cd:parameter>
<cd:parameter name="interactie">
<cd:constant type="paginanummer"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="expansie">
<cd:constant type="ja"/>
- <cd:variable type="cd:command"/>
<cd:constant type="nee"/>
+ <cd:constant type="commando"/>
</cd:parameter>
<cd:parameter name="refereren">
<cd:constant type="aan"/>
@@ -6443,6 +6190,18 @@
<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>
@@ -6511,7 +6270,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" file="core-reg.tex">
+<cd:command name="placeregister" variant="1" file="core-reg.tex">
<cd:sequence>
<cd:string value="plaatsregister"/>
</cd:sequence>
@@ -6551,7 +6310,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" generated="yes" file="core-reg.tex">
+<cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="register"/>
@@ -6593,24 +6352,10 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="tekstletter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="synoniemletter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="plaats">
<cd:constant type="links"/>
@@ -6638,8 +6383,8 @@
</cd:parameter>
<cd:parameter name="expansie">
<cd:constant type="ja"/>
- <cd:variable type="cd:command"/>
<cd:constant type="nee"/>
+ <cd:constant type="commando"/>
</cd:parameter>
<cd:parameter name="commando">
<cd:constant type="cd:threearguments"/>
@@ -6726,19 +6471,12 @@
<cd:constant type="gebruikt"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="expansie">
<cd:constant type="ja"/>
- <cd:variable type="cd:command"/>
<cd:constant type="nee"/>
+ <cd:constant type="commando"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -6946,13 +6684,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords list="yes">
- <cd:constant type="nooit" default="yes"/>
- <cd:constant type="niet"/>
- <cd:constant type="nee"/>
- <cd:constant type="ja"/>
- <cd:constant type="altijd"/>
- <cd:constant type="eerste"/>
- <cd:constant type="volgende"/>
+ <cd:resolve name="indenting"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -6980,7 +6712,7 @@
<cd:constant type="reset"/>
<cd:constant type="regel"/>
<cd:constant type="halveregel"/>
- <cd:variable type="cd:formula"/>
+ <cd:constant type="cd:formula"/>
<cd:constant type="vast"/>
<cd:constant type="flexibel"/>
<cd:constant type="geen"/>
@@ -7208,7 +6940,7 @@
<cd:keywords optional="yes">
<cd:constant type="boven"/>
<cd:constant type="hoofd"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="voet"/>
<cd:constant type="onder"/>
<cd:constant type="pagina"/>
@@ -7219,7 +6951,7 @@
<cd:keywords optional="yes" list="yes">
<cd:constant type="linkerrand"/>
<cd:constant type="linkermarge"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="rechtermarge"/>
<cd:constant type="rechterrand"/>
</cd:keywords>
@@ -7227,7 +6959,7 @@
<cd:parameter name="status">
<cd:constant type="start"/>
<cd:constant type="stop"/>
- <cd:variable type="cd:repeat"/>
+ <cd:constant type="cd:repeat"/>
</cd:parameter>
<cd:inherit name="stelomlijndin"/>
</cd:assignments>
@@ -7441,14 +7173,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="file">
<cd:constant type="cd:file"/>
@@ -7497,7 +7222,7 @@
<cd:command name="placefloat" generated="yes" file="page-flt.tex">
<cd:sequence>
<cd:string value="place"/>
- <cd:variable value="float"/>
+ <cd:variable value="blok"/>
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
@@ -7525,14 +7250,18 @@
<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:keywords>
<cd:reference optional="yes" list="yes"/>
<cd:content/>
@@ -7543,7 +7272,7 @@
<cd:command name="reservefloat" generated="yes">
<cd:sequence>
<cd:string value="reserve"/>
- <cd:variable value="float"/>
+ <cd:variable value="blok"/>
</cd:sequence>
<cd:arguments>
<cd:assignments optional="yes" list="yes">
@@ -7628,7 +7357,7 @@
<cd:command name="floattext" type="environment" generated="yes">
<cd:sequence>
- <cd:variable value="float"/>
+ <cd:variable value="blok"/>
<cd:string value="text"/>
</cd:sequence>
<cd:arguments>
@@ -7795,10 +7524,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="uitlijnen">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="midden"/>
- <cd:constant type="marge"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="na">
<cd:constant type="cd:command"/>
@@ -7851,20 +7577,13 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="kleur">
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="plaats">
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="marge"/>
</cd:parameter>
</cd:assignments>
@@ -7924,9 +7643,7 @@
<cd:constant type="rek"/>
</cd:parameter>
<cd:parameter name="uitlijnen">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="midden"/>
+ <cd:resolve name="align"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -7958,14 +7675,7 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="breedte">
<cd:constant type="cd:dimension"/>
@@ -7974,10 +7684,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="uitlijnen">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="midden"/>
- <cd:constant type="breedte"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="tolerantie">
<cd:constant type="zeerstreng"/>
@@ -8022,14 +7729,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="kopletter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="plaats">
<cd:constant type="links"/>
@@ -8115,8 +7815,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="inspringen">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
+ <cd:resolve name="indenting"/>
</cd:parameter>
<cd:parameter name="voor">
<cd:constant type="cd:command"/>
@@ -8134,10 +7833,7 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="uitlijnen">
- <cd:constant type="links"/>
- <cd:constant type="midden"/>
- <cd:constant type="rechts"/>
- <cd:constant type="normaal"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="lijndikte">
<cd:constant type="cd:dimension"/>
@@ -8218,19 +7914,13 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="uitlijnen">
- <cd:constant type="rechts"/>
- <cd:constant type="midden"/>
- <cd:constant type="links"/>
- <cd:constant type="normaal"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="commandos">
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="uitlijnen">
- <cd:constant type="links"/>
- <cd:constant type="midden"/>
- <cd:constant type="rechts"/>
- <cd:constant type="normaal"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="achtergrond">
<cd:constant type="raster"/>
@@ -8362,6 +8052,12 @@
<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"/>
@@ -8416,7 +8112,7 @@
<cd:constant type="png"/>
<cd:constant type="jpg"/>
<cd:constant type="mov"/>
- <cd:variable type="cd:tex"/>
+ <cd:constant type="cd:tex"/>
</cd:parameter>
<cd:parameter name="methode">
<cd:constant type="eps"/>
@@ -8426,7 +8122,7 @@
<cd:constant type="png"/>
<cd:constant type="jpg"/>
<cd:constant type="mov"/>
- <cd:variable type="cd:tex"/>
+ <cd:constant type="cd:tex"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -8629,13 +8325,13 @@
<cd:arguments>
<cd:assignments list="yes">
<cd:parameter name="voor">
- <cd:variable type="cd:command"/>
+ <cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="tussen">
- <cd:variable type="cd:command"/>
+ <cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="na">
- <cd:variable type="cd:command"/>
+ <cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="afstand">
<cd:constant type="cd:dimension"/>
@@ -8656,20 +8352,10 @@
<cd:constant type="rechts"/>
</cd:parameter>
<cd:parameter name="uitlijnen">
- <cd:constant type="nee"/>
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="midden"/>
- <cd:constant type="normaal"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small...cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="kleur">
<cd:constant type="cd:name"/>
@@ -8848,13 +8534,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small...cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="kleur">
<cd:constant type="cd:name"/>
@@ -8880,11 +8560,16 @@
<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="defineinteractionmenu" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
<cd:sequence>
<cd:string value="definieerinteractiemenu"/>
</cd:sequence>
@@ -8922,13 +8607,7 @@
<cd:constant type="lokaal"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small...cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="kleur">
<cd:constant type="cd:name"/>
@@ -8970,7 +8649,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="defineinteractionmenu" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
<cd:sequence>
<cd:string value="definieerinteractiemenu"/>
</cd:sequence>
@@ -9191,14 +8870,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="kleur">
<cd:constant type="cd:name"/>
@@ -9299,6 +8971,8 @@
<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>
@@ -9336,14 +9010,7 @@
<cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -9801,16 +9468,10 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="letter">
- <cd:constant type="normaal"/>
- <cd:constant type="vet"/>
- <cd:constant type="schuin"/>
- <cd:constant type="vetschuin"/>
- <cd:constant type="type"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="uitlijnen">
- <cd:constant type="links"/>
- <cd:constant type="midden"/>
- <cd:constant type="rechts"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="optie">
<cd:constant type="alleenleesbaar"/>
diff --git a/Master/texmf-dist/tex/context/interface/cont-ro.xml b/Master/texmf-dist/tex/context/interface/cont-ro.xml
index bd91e522315..9d2eae7fdb9 100644
--- a/Master/texmf-dist/tex/context/interface/cont-ro.xml
+++ b/Master/texmf-dist/tex/context/interface/cont-ro.xml
@@ -1,6 +1,81 @@
-<?xml version="1.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="ro" version="2006.08.02">
+
+<cd:define name="align">
+ <cd:constant type="intern"/>
+ <cd:constant type="extern"/>
+ <cd:constant type="stanga"/>
+ <cd:constant type="dreapta"/>
+ <cd:constant type="centru"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="da"/>
+</cd:define>
+
+<cd:define name="indenting">
+ <cd:constant type="niciodata"/>
+ <cd:constant type="niciunul"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="da"/>
+ <cd:constant type="totdeauna"/>
+ <cd:constant type="primul"/>
+ <cd:constant type="urmatorul"/>
+ <cd:constant type="mic"/>
+ <cd:constant type="mediu"/>
+ <cd:constant type="mare"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="impar"/>
+ <cd:constant type="par"/>
+ <cd:constant type="cd:dimension"/>
+</cd:define>
+
+<cd:define name="indentnext">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+</cd:define>
+
+<cd:define name="style">
+ <cd:constant type="normal"/>
+ <cd:constant type="aldin"/>
+ <cd:constant type="inclinat"/>
+ <cd:constant type="aldininclinat"/>
+ <cd:constant type="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:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2004.11.17">
+<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:command name="installlanguage" file="lang-ini.tex">
<cd:sequence>
@@ -62,14 +137,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords>
- <cd:constant type="nl" default="yes"/>
- <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:resolve name="language"/>
</cd:keywords>
<cd:assignments list="yes">
<cd:inherit name="instalarelimba"/>
@@ -83,14 +151,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords>
- <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:resolve name="language"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -101,14 +162,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords>
- <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:resolve name="language"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -365,20 +419,6 @@
</cd:arguments>
</cd:command>
-<cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="seteazastrut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <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:command name="setupcolor" file="colo-ini.tex">
<cd:sequence>
<cd:string value="seteazaculoare"/>
@@ -620,7 +660,7 @@
<cd:constant type="vertical"/>
<cd:constant type="nume"/>
<cd:constant type="valoare"/>
- <cd:variable type="cd:number"/>
+ <cd:constant type="cd:number"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -683,14 +723,7 @@
<cd:constant type="niciunul"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="culoare">
<cd:constant type="cd:name"/>
@@ -834,18 +867,10 @@
<cd:constant type="nu"/>
</cd:parameter>
<cd:parameter name="aliniaturmator">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="culoare">
<cd:constant type="cd:name"/>
@@ -858,6 +883,16 @@
<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>
@@ -899,7 +934,7 @@
</cd:parameter>
<cd:parameter name="locatie">
<cd:constant type="pagina"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="coloane"/>
<cd:constant type="firstcolumn"/>
<cd:constant type="lastcolumn"/>
@@ -930,14 +965,7 @@
<cd:constant type="mare"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="distanta">
<cd:constant type="cd:dimension"/>
@@ -964,14 +992,7 @@
<cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="stiltext">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="culoaretext">
<cd:constant type="cd:name"/>
@@ -1473,14 +1494,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:constant type="nl" default="yes"/>
- <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:resolve name="language"/>
</cd:keywords>
<cd:assignments>
<cd:parameter name="cd:name">
@@ -1496,14 +1510,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:constant type="nl" default="yes"/>
- <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:resolve name="language"/>
</cd:keywords>
<cd:assignments>
<cd:parameter name="cd:name">
@@ -1599,6 +1606,11 @@
<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"/>
@@ -1626,14 +1638,7 @@
<cd:constant type="local"/>
</cd:parameter>
<cd:parameter name="aliniere">
- <cd:constant type="nu"/>
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="centru"/>
- <cd:constant type="normal"/>
- <cd:constant type="inalt"/>
- <cd:constant type="jos"/>
- <cd:constant type="lohi"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="jos">
<cd:constant type="cd:command"/>
@@ -1724,7 +1729,7 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="foregroundstyle">
- <cd:constant type="cd:name"/>
+ <cd:resolve name="style"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -1878,13 +1883,7 @@
<cd:constant type="mare"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stanga">
<cd:constant type="cd:command"/>
@@ -1920,6 +1919,9 @@
<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>
@@ -2045,14 +2047,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="n">
<cd:constant type="cd:number"/>
@@ -2142,14 +2137,7 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="culoarerigla">
<cd:constant type="cd:name"/>
@@ -2361,7 +2349,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="margine"/>
<cd:constant type="bordura"/>
</cd:keywords>
@@ -2546,23 +2534,13 @@
<cd:constant type="dreapta"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="latime">
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="aliniere">
- <cd:constant type="stanga"/>
- <cd:constant type="centru"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="nu"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="sus">
<cd:constant type="cd:command"/>
@@ -2936,24 +2914,10 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="stiltitlu">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="culoare">
<cd:constant type="cd:name"/>
@@ -2973,9 +2937,7 @@
<cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="aliniere">
- <cd:constant type="stanga"/>
- <cd:constant type="centru"/>
- <cd:constant type="dreapta"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="margine">
<cd:constant type="standard"/>
@@ -2988,13 +2950,13 @@
<cd:constant type="dreapta"/>
<cd:constant type="sus"/>
<cd:constant type="serried"/>
- <cd:variable type="cd:command"/>
<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"/>
@@ -3011,17 +2973,10 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="aliniaturmator">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="aliniat">
- <cd:constant type="niciodata"/>
- <cd:constant type="nu"/>
- <cd:constant type="nu"/>
- <cd:constant type="da"/>
- <cd:constant type="totdeauna"/>
- <cd:constant type="primul"/>
- <cd:constant type="urmatorul"/>
+ <cd:resolve name="indenting"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -3116,24 +3071,10 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stiltitlu">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="latime">
<cd:constant type="ajustat"/>
@@ -3209,14 +3150,7 @@
<cd:constant type="nu"/>
</cd:parameter>
<cd:parameter name="stiltitlu">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="culoaretitlu">
<cd:constant type="cd:name"/>
@@ -3274,9 +3208,7 @@
<cd:constant type="nu"/>
</cd:parameter>
<cd:parameter name="aliniere">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:variable type="cd:text"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="blanc">
<cd:constant type="fixat"/>
@@ -3340,7 +3272,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="margine"/>
<cd:constant type="bordura"/>
</cd:keywords>
@@ -3360,34 +3292,13 @@
<cd:constant type="nu"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stilstanga">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stildreapta">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="latimestanga">
<cd:constant type="cd:dimension"/>
@@ -3479,23 +3390,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="margine"/>
<cd:constant type="bordura"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="data"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="numarpagina"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="data"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="numarpagina"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3506,23 +3409,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="margine"/>
<cd:constant type="bordura"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="data"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="numarpagina"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="data"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="numarpagina"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3533,23 +3428,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="margine"/>
<cd:constant type="bordura"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="data"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="numarpagina"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="data"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="numarpagina"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3560,23 +3447,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="margine"/>
<cd:constant type="bordura"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="data"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="numarpagina"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="data"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="numarpagina"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3587,23 +3466,15 @@
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
- <cd:variable type="cd:text" default="yes"/>
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="margine"/>
<cd:constant type="bordura"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="data"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="numarpagina"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
<cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="data"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="numarpagina"/>
+ <cd:resolve name="texts"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -3802,14 +3673,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="culoare">
<cd:constant type="cd:name"/>
@@ -3819,7 +3683,7 @@
<cd:constant type="dezactivat"/>
<cd:constant type="culoare"/>
<cd:constant type="ecran"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="locatie">
<cd:constant type="stanga"/>
@@ -3936,7 +3800,7 @@
<cd:constant type="-top"/>
<cd:constant type="-both"/>
<cd:constant type="-bottom"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="inalt"/>
<cd:constant type="centru"/>
<cd:constant type="jos"/>
@@ -3994,20 +3858,28 @@
</cd:sequence>
</cd:command>
-<cd:command name="setupinterlinespace">
+<cd:command name="setupinterlinespace" variant="1">
<cd:sequence>
<cd:string value="seteazaspatiuinterliniar"/>
</cd:sequence>
<cd:arguments>
- <cd:choice>
<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:constant type="cd:number"/>
@@ -4025,7 +3897,6 @@
<cd:constant type="cd:number"/>
</cd:parameter>
</cd:assignments>
- </cd:choice>
</cd:arguments>
</cd:command>
@@ -4058,14 +3929,7 @@
<cd:constant type="Numereromane"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stanga">
<cd:constant type="cd:text"/>
@@ -4168,14 +4032,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="comenzi">
<cd:constant type="cd:command"/>
@@ -4192,27 +4049,28 @@
<cd:assignments list="yes">
<cd:parameter name="numarsectiune">
<cd:constant type="da"/>
- <cd:variable type="cd:number"/>
+ <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:variable type="cd:text"/>
+ <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:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="normal"/>
- <cd:constant type="broad"/>
+ <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">
@@ -4223,8 +4081,7 @@
<cd:constant type="dilatat"/>
</cd:parameter>
<cd:parameter name="aliniaturmator">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="comanda">
<cd:constant type="cd:twoarguments"/>
@@ -4261,24 +4118,10 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="stiltitlu">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="numar">
<cd:constant type="da"/>
@@ -4288,10 +4131,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="aliniere">
- <cd:constant type="stanga"/>
- <cd:constant type="centru"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="nu"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="conversie">
<cd:constant type="numere"/>
@@ -4307,6 +4147,9 @@
<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>
@@ -4380,8 +4223,7 @@
<cd:constant type="niciunul"/>
</cd:parameter>
<cd:parameter name="aliniaturmator">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="nsus">
<cd:constant type="cd:number"/>
@@ -4413,7 +4255,7 @@
<cd:parameter name="numerotare">
<cd:constant type="da"/>
<cd:constant type="nocheck"/>
- </cd:parameter>
+ </cd:parameter>
<cd:inherit name="seteazainconjurat"/>
</cd:assignments>
</cd:arguments>
@@ -4653,7 +4495,7 @@
</cd:parameter>
<cd:parameter name="interactiune">
<cd:constant type="eticheta"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="tot"/>
<cd:constant type="simbol"/>
</cd:parameter>
@@ -4695,14 +4537,7 @@
<cd:arguments>
<cd:assignments list="yes">
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="urlalternativ">
<cd:constant type="niciunul"/>
@@ -4864,7 +4699,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
<cd:sequence>
<cd:string value="punelistacombinata"/>
</cd:sequence>
@@ -4914,7 +4749,7 @@
<cd:constant type="c"/>
<cd:constant type="..."/>
<cd:constant type="niciunul"/>
- <cd:variable type="cd:command"/>
+ <cd:constant type="comanda"/>
</cd:parameter>
<cd:parameter name="cuplare">
<cd:constant type="on"/>
@@ -4931,44 +4766,16 @@
<cd:constant type="cd:list"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stilnumar">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stiltext">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stilpagina">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="culoare">
<cd:constant type="cd:name"/>
@@ -4986,8 +4793,8 @@
<cd:constant type="cd:oneargument"/>
</cd:parameter>
<cd:parameter name="interactiune">
- <cd:variable type="cd:sectionnumber"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:sectionnumber"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="numarpagina"/>
<cd:constant type="tot"/>
</cd:parameter>
@@ -5067,7 +4874,7 @@
<cd:parameter name="expansiune">
<cd:constant type="da"/>
<cd:constant type="nu"/>
- <cd:variable type="cd:command"/>
+ <cd:constant type="comanda"/>
</cd:parameter>
<cd:parameter name="latimemaxima">
<cd:constant type="cd:dimension"/>
@@ -5077,6 +4884,34 @@
</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"/>
@@ -5116,7 +4951,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placecombinedlist" generated="yes" file="core-lst.tex">
+<cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="combinedlist"/>
@@ -5181,9 +5016,10 @@
<cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="aliniere">
- <cd:constant type="stanga"/>
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="optiune">
<cd:constant type="centru"/>
- <cd:constant type="dreapta"/>
</cd:parameter>
<cd:parameter name="strut">
<cd:constant type="da"/>
@@ -5205,8 +5041,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="aliniaturmator">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
<cd:parameter name="alternativ">
<cd:constant type="cd:name"/>
@@ -5220,6 +5055,14 @@
<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>
@@ -5264,10 +5107,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="aliniat">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="par"/>
- <cd:constant type="impar"/>
+ <cd:resolve name="indenting"/>
</cd:parameter>
<cd:parameter name="spatiu">
<cd:constant type="da"/>
@@ -5296,14 +5136,7 @@
<cd:constant type="linie"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="distanta">
<cd:constant type="cd:dimension"/>
@@ -5324,7 +5157,7 @@
<cd:constant type="Caractere"/>
<cd:constant type="numereromane"/>
<cd:constant type="Numereromane"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="start">
<cd:constant type="cd:number"/>
@@ -5340,14 +5173,7 @@
<cd:constant type="inmargine"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="prefix">
<cd:constant type="cd:text"/>
@@ -5415,14 +5241,7 @@
<cd:constant type="ambele"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="inainte">
<cd:constant type="cd:command"/>
@@ -5431,14 +5250,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="aliniere">
- <cd:constant type="intern"/>
- <cd:constant type="extern"/>
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="centru"/>
- <cd:constant type="normal"/>
- <cd:constant type="nu"/>
- <cd:constant type="da"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="linie">
<cd:constant type="cd:number"/>
@@ -5756,16 +5568,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords list="yes">
- <cd:constant type="niciunul" default="yes"/>
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- <cd:constant type="urmatorul"/>
- <cd:constant type="primul"/>
- <cd:constant type="normal"/>
- <cd:constant type="impar"/>
- <cd:constant type="par"/>
- <cd:constant type="cd:dimension"/>
+ <cd:resolve name="indenting"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -5859,34 +5662,13 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stiltext">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stilnumar">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="culoare">
<cd:constant type="cd:name"/>
@@ -5945,14 +5727,14 @@
<cd:constant type="normal"/>
<cd:constant type="inmargine"/>
<cd:constant type="centru"/>
- <cd:variable type="cd:text"/>
+ <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:variable type="cd:number"/>
+ <cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="comanda">
<cd:constant type="cd:twoarguments"/>
@@ -5963,6 +5745,12 @@
<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="-"/>
@@ -5976,7 +5764,7 @@
<cd:parameter name="numarincrement">
<cd:constant type="da"/>
<cd:constant type="nu"/>
- <cd:variable type="cd:list"/>
+ <cd:constant type="cd:list"/>
<cd:constant type="cd:file"/>
</cd:parameter>
<cd:parameter name="resetnumber">
@@ -5988,8 +5776,8 @@
</cd:parameter>
<cd:parameter name="expansiune">
<cd:constant type="da"/>
- <cd:variable type="cd:command"/>
<cd:constant type="nu"/>
+ <cd:constant type="comanda"/>
</cd:parameter>
<cd:parameter name="textmargine">
<cd:constant type="da"/>
@@ -6090,8 +5878,10 @@
<cd:constant type="autointro"/>
<cd:constant type="larg"/>
<cd:constant type="repetat"/>
- <cd:variable type="cd:section"/>
+ <cd:constant type="cd:section"/>
+ <cd:constant type="paragraf"/>
<cd:constant type="intext"/>
+ <cd:constant type="aleator"/>
</cd:keywords>
<cd:assignments optional="yes" list="yes">
<cd:parameter name="margine">
@@ -6146,34 +5936,13 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="stiltitlu">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stilmarcaj">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stilsimbol">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stopper">
<cd:constant type="cd:text"/>
@@ -6185,13 +5954,10 @@
<cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="aliniere">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="normal"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="aliniaturmator">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
+ <cd:resolve name="indentnext"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -6227,6 +5993,9 @@
<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"/>
@@ -6347,38 +6116,16 @@
<cd:constant type="nu"/>
</cd:parameter>
<cd:parameter name="aliniere">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stilpagina">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stiltext">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="indicator">
<cd:constant type="da"/>
@@ -6411,12 +6158,12 @@
</cd:parameter>
<cd:parameter name="interactiune">
<cd:constant type="numarpagina"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
</cd:parameter>
<cd:parameter name="expansiune">
<cd:constant type="da"/>
- <cd:variable type="cd:command"/>
<cd:constant type="nu"/>
+ <cd:constant type="comanda"/>
</cd:parameter>
<cd:parameter name="referinta">
<cd:constant type="on"/>
@@ -6443,6 +6190,18 @@
<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>
@@ -6511,7 +6270,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" file="core-reg.tex">
+<cd:command name="placeregister" variant="1" file="core-reg.tex">
<cd:sequence>
<cd:string value="puneregistru"/>
</cd:sequence>
@@ -6551,7 +6310,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="placeregister" generated="yes" file="core-reg.tex">
+<cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
<cd:sequence>
<cd:string value="place"/>
<cd:variable value="registru"/>
@@ -6593,24 +6352,10 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="stiltext">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="stilsinonim">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="locatie">
<cd:constant type="stanga"/>
@@ -6638,8 +6383,8 @@
</cd:parameter>
<cd:parameter name="expansiune">
<cd:constant type="da"/>
- <cd:variable type="cd:command"/>
<cd:constant type="nu"/>
+ <cd:constant type="comanda"/>
</cd:parameter>
<cd:parameter name="comanda">
<cd:constant type="cd:threearguments"/>
@@ -6726,19 +6471,12 @@
<cd:constant type="folosit"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="expansiune">
<cd:constant type="da"/>
- <cd:variable type="cd:command"/>
<cd:constant type="nu"/>
+ <cd:constant type="comanda"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -6946,13 +6684,7 @@
</cd:sequence>
<cd:arguments>
<cd:keywords list="yes">
- <cd:constant type="niciodata" default="yes"/>
- <cd:constant type="nu"/>
- <cd:constant type="nu"/>
- <cd:constant type="da"/>
- <cd:constant type="totdeauna"/>
- <cd:constant type="primul"/>
- <cd:constant type="urmatorul"/>
+ <cd:resolve name="indenting"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -6980,7 +6712,7 @@
<cd:constant type="reset"/>
<cd:constant type="linie"/>
<cd:constant type="jumatatelinie"/>
- <cd:variable type="cd:formula"/>
+ <cd:constant type="cd:formula"/>
<cd:constant type="fixat"/>
<cd:constant type="flexibil"/>
<cd:constant type="niciunul"/>
@@ -7208,7 +6940,7 @@
<cd:keywords optional="yes">
<cd:constant type="sus"/>
<cd:constant type="antet"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="subsol"/>
<cd:constant type="subsol"/>
<cd:constant type="pagina"/>
@@ -7219,7 +6951,7 @@
<cd:keywords optional="yes" list="yes">
<cd:constant type="bordurastanga"/>
<cd:constant type="marginestanga"/>
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="marginedreapta"/>
<cd:constant type="borduradreapta"/>
</cd:keywords>
@@ -7227,7 +6959,7 @@
<cd:parameter name="stare">
<cd:constant type="start"/>
<cd:constant type="stop"/>
- <cd:variable type="cd:repeat"/>
+ <cd:constant type="cd:repeat"/>
</cd:parameter>
<cd:inherit name="seteazainconjurat"/>
</cd:assignments>
@@ -7441,14 +7173,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="fisier">
<cd:constant type="cd:file"/>
@@ -7497,7 +7222,7 @@
<cd:command name="placefloat" generated="yes" file="page-flt.tex">
<cd:sequence>
<cd:string value="place"/>
- <cd:variable value="float"/>
+ <cd:variable value="obiectmobil"/>
</cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
@@ -7525,14 +7250,18 @@
<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:keywords>
<cd:reference optional="yes" list="yes"/>
<cd:content/>
@@ -7543,7 +7272,7 @@
<cd:command name="reservefloat" generated="yes">
<cd:sequence>
<cd:string value="reserve"/>
- <cd:variable value="float"/>
+ <cd:variable value="obiectmobil"/>
</cd:sequence>
<cd:arguments>
<cd:assignments optional="yes" list="yes">
@@ -7628,7 +7357,7 @@
<cd:command name="floattext" type="environment" generated="yes">
<cd:sequence>
- <cd:variable value="float"/>
+ <cd:variable value="obiectmobil"/>
<cd:string value="text"/>
</cd:sequence>
<cd:arguments>
@@ -7795,10 +7524,7 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="aliniere">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="centru"/>
- <cd:constant type="margine"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="dupa">
<cd:constant type="cd:command"/>
@@ -7851,20 +7577,13 @@
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="culoare">
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="locatie">
- <cd:variable type="cd:text"/>
+ <cd:constant type="cd:text"/>
<cd:constant type="margine"/>
</cd:parameter>
</cd:assignments>
@@ -7924,9 +7643,7 @@
<cd:constant type="dilatat"/>
</cd:parameter>
<cd:parameter name="aliniere">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="centru"/>
+ <cd:resolve name="align"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -7958,14 +7675,7 @@
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="latime">
<cd:constant type="cd:dimension"/>
@@ -7974,10 +7684,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="aliniere">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="centru"/>
- <cd:constant type="latime"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="toleranta">
<cd:constant type="foartestrict"/>
@@ -8022,14 +7729,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="stiltitlu">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="locatie">
<cd:constant type="stanga"/>
@@ -8115,8 +7815,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="aliniat">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
+ <cd:resolve name="indenting"/>
</cd:parameter>
<cd:parameter name="inainte">
<cd:constant type="cd:command"/>
@@ -8134,10 +7833,7 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="aliniere">
- <cd:constant type="stanga"/>
- <cd:constant type="centru"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="normal"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="grosimerigla">
<cd:constant type="cd:dimension"/>
@@ -8218,19 +7914,13 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="aliniere">
- <cd:constant type="dreapta"/>
- <cd:constant type="centru"/>
- <cd:constant type="stanga"/>
- <cd:constant type="normal"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="comenzi">
<cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="aliniere">
- <cd:constant type="stanga"/>
- <cd:constant type="centru"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="normal"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="fundal">
<cd:constant type="ecran"/>
@@ -8362,6 +8052,12 @@
<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"/>
@@ -8416,7 +8112,7 @@
<cd:constant type="png"/>
<cd:constant type="jpg"/>
<cd:constant type="mov"/>
- <cd:variable type="cd:tex"/>
+ <cd:constant type="cd:tex"/>
</cd:parameter>
<cd:parameter name="metoda">
<cd:constant type="eps"/>
@@ -8426,7 +8122,7 @@
<cd:constant type="png"/>
<cd:constant type="jpg"/>
<cd:constant type="mov"/>
- <cd:variable type="cd:tex"/>
+ <cd:constant type="cd:tex"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -8455,7 +8151,7 @@
<cd:parameter name="optiune">
<cd:constant type="incadrat"/>
<cd:constant type="gol"/>
- <cd:constant type="text"/>
+ <cd:constant type="test"/>
</cd:parameter>
<cd:parameter name="obiect">
<cd:constant type="da"/>
@@ -8629,13 +8325,13 @@
<cd:arguments>
<cd:assignments list="yes">
<cd:parameter name="inainte">
- <cd:variable type="cd:command"/>
+ <cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="intre">
- <cd:variable type="cd:command"/>
+ <cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="dupa">
- <cd:variable type="cd:command"/>
+ <cd:constant type="cd:command"/>
</cd:parameter>
<cd:parameter name="distanta">
<cd:constant type="cd:dimension"/>
@@ -8656,20 +8352,10 @@
<cd:constant type="dreapta"/>
</cd:parameter>
<cd:parameter name="aliniere">
- <cd:constant type="nu"/>
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="centru"/>
- <cd:constant type="normal"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small...cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="culoare">
<cd:constant type="cd:name"/>
@@ -8848,13 +8534,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small...cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="culoare">
<cd:constant type="cd:name"/>
@@ -8880,11 +8560,16 @@
<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" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
<cd:sequence>
<cd:string value="definestemeniuinteractiune"/>
</cd:sequence>
@@ -8922,13 +8607,7 @@
<cd:constant type="local"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small...cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="culoare">
<cd:constant type="cd:name"/>
@@ -8970,7 +8649,7 @@
</cd:arguments>
</cd:command>
-<cd:command name="defineinteractionmenu" file="core-int.tex">
+<cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
<cd:sequence>
<cd:string value="definestemeniuinteractiune"/>
</cd:sequence>
@@ -9191,14 +8870,7 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="culoare">
<cd:constant type="cd:name"/>
@@ -9261,7 +8933,7 @@
<cd:arguments>
<cd:assignments interactive="exclusive" list="yes">
<cd:parameter name="optiune">
- <cd:constant type="text"/>
+ <cd:constant type="test"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -9299,6 +8971,8 @@
<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>
@@ -9336,14 +9010,7 @@
<cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
+ <cd:resolve name="style"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
@@ -9801,16 +9468,10 @@
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="stil">
- <cd:constant type="normal"/>
- <cd:constant type="aldin"/>
- <cd:constant type="inclinat"/>
- <cd:constant type="aldininclinat"/>
- <cd:constant type="type"/>
+ <cd:resolve name="style"/>
</cd:parameter>
<cd:parameter name="aliniere">
- <cd:constant type="stanga"/>
- <cd:constant type="centru"/>
- <cd:constant type="dreapta"/>
+ <cd:resolve name="align"/>
</cd:parameter>
<cd:parameter name="optiune">
<cd:constant type="readonly"/>
diff --git a/Master/texmf-dist/tex/context/interface/keys-cz.xml b/Master/texmf-dist/tex/context/interface/keys-cz.xml
index e0e1423d9f3..13b363f09ae 100644
--- a/Master/texmf-dist/tex/context/interface/keys-cz.xml
+++ b/Master/texmf-dist/tex/context/interface/keys-cz.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2005.10.27">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2006.08.08 21:51">
<cd:variables>
<cd:variable name="one" value="jedna"/>
@@ -49,7 +49,6 @@
</cd:variables>
<cd:variables>
- <cd:variable name="sectionlevel" value="oddil"/>
<cd:variable name="part" value="cast"/>
<cd:variable name="chapter" value="kapitola"/>
<cd:variable name="subject" value="tema"/>
@@ -121,9 +120,16 @@
<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"/>
@@ -180,6 +186,7 @@
<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"/>
@@ -234,6 +241,7 @@
<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"/>
@@ -480,8 +488,11 @@
<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>
@@ -490,6 +501,7 @@
<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"/>
@@ -510,6 +522,7 @@
<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"/>
@@ -520,6 +533,7 @@
<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"/>
@@ -556,6 +570,7 @@
<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"/>
@@ -587,6 +602,7 @@
<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"/>
@@ -614,6 +630,7 @@
<cd:variable name="MONTH" value="MESIC"/>
<cd:variable name="month" value="mesic"/>
<cd:variable name="mar" value="mar"/>
+ <cd:variable name="marking" value="znaceni"/>
<cd:variable name="margin" value="marginalie"/>
<cd:variable name="max" value="max"/>
<cd:variable name="min" value="min"/>
@@ -660,6 +677,7 @@
<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"/>
@@ -689,6 +707,7 @@
<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"/>
@@ -792,6 +811,7 @@
<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"/>
@@ -1191,6 +1211,7 @@
<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"/>
@@ -1522,6 +1543,8 @@
<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>
@@ -1585,6 +1608,7 @@
<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>
diff --git a/Master/texmf-dist/tex/context/interface/keys-de.xml b/Master/texmf-dist/tex/context/interface/keys-de.xml
index 831fd37c18b..598bf64fb9b 100644
--- a/Master/texmf-dist/tex/context/interface/keys-de.xml
+++ b/Master/texmf-dist/tex/context/interface/keys-de.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2005.10.27">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2006.08.08 21:51">
<cd:variables>
<cd:variable name="one" value="eins"/>
@@ -49,7 +49,6 @@
</cd:variables>
<cd:variables>
- <cd:variable name="sectionlevel" value="abschnitt"/>
<cd:variable name="part" value="teil"/>
<cd:variable name="chapter" value="kapitel"/>
<cd:variable name="subject" value="thema"/>
@@ -121,9 +120,16 @@
<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"/>
@@ -180,6 +186,7 @@
<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"/>
@@ -234,6 +241,7 @@
<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"/>
@@ -480,8 +488,11 @@
<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>
@@ -490,6 +501,7 @@
<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"/>
@@ -510,6 +522,7 @@
<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"/>
@@ -520,6 +533,7 @@
<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"/>
@@ -556,6 +570,7 @@
<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"/>
@@ -587,6 +602,7 @@
<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"/>
@@ -614,6 +630,7 @@
<cd:variable name="MONTH" value="MONAT"/>
<cd:variable name="month" value="monat"/>
<cd:variable name="mar" value="mar"/>
+ <cd:variable name="marking" value="beschriftung"/>
<cd:variable name="margin" value="marginalie"/>
<cd:variable name="max" value="max"/>
<cd:variable name="min" value="min"/>
@@ -660,6 +677,7 @@
<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"/>
@@ -689,6 +707,7 @@
<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"/>
@@ -792,6 +811,7 @@
<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"/>
@@ -1191,6 +1211,7 @@
<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"/>
@@ -1522,6 +1543,8 @@
<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>
@@ -1585,6 +1608,7 @@
<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>
diff --git a/Master/texmf-dist/tex/context/interface/keys-en.xml b/Master/texmf-dist/tex/context/interface/keys-en.xml
index d913ebe679e..5fc33fb5ab2 100644
--- a/Master/texmf-dist/tex/context/interface/keys-en.xml
+++ b/Master/texmf-dist/tex/context/interface/keys-en.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2005.10.27">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2006.08.08 21:51">
<cd:variables>
<cd:variable name="one" value="one"/>
@@ -49,7 +49,6 @@
</cd:variables>
<cd:variables>
- <cd:variable name="sectionlevel" value="section"/>
<cd:variable name="part" value="part"/>
<cd:variable name="chapter" value="chapter"/>
<cd:variable name="subject" value="subject"/>
@@ -121,9 +120,16 @@
<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"/>
@@ -180,6 +186,7 @@
<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"/>
@@ -234,6 +241,7 @@
<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"/>
@@ -480,8 +488,11 @@
<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>
@@ -490,6 +501,7 @@
<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"/>
@@ -510,6 +522,7 @@
<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"/>
@@ -520,6 +533,7 @@
<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"/>
@@ -556,6 +570,7 @@
<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"/>
@@ -587,6 +602,7 @@
<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"/>
@@ -614,6 +630,7 @@
<cd:variable name="MONTH" value="MONTH"/>
<cd:variable name="month" value="month"/>
<cd:variable name="mar" value="mar"/>
+ <cd:variable name="marking" value="marking"/>
<cd:variable name="margin" value="margin"/>
<cd:variable name="max" value="max"/>
<cd:variable name="min" value="min"/>
@@ -660,6 +677,7 @@
<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"/>
@@ -689,6 +707,7 @@
<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"/>
@@ -792,6 +811,7 @@
<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"/>
@@ -1191,6 +1211,7 @@
<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"/>
@@ -1522,6 +1543,8 @@
<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>
@@ -1585,6 +1608,7 @@
<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>
diff --git a/Master/texmf-dist/tex/context/interface/keys-fr.xml b/Master/texmf-dist/tex/context/interface/keys-fr.xml
new file mode 100644
index 00000000000..4fa12b0a5fb
--- /dev/null
+++ b/Master/texmf-dist/tex/context/interface/keys-fr.xml
@@ -0,0 +1,1623 @@
+<?xml version="1.0"?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="fr" version="2006.08.08 21:51">
+
+ <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="environment" value="environement"/>
+ <cd:variable name="component" value="composant"/>
+ <cd:variable name="product" value="produit"/>
+ <cd:variable name="project" value="projet"/>
+ </cd:variables>
+
+ <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: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>
+
+ <cd:variables>
+ <cd:variable name="atpage" value="alapage"/>
+ <cd:variable name="hencefore" value="precedent"/>
+ <cd:variable name="hereafter" value="suivant"/>
+ </cd:variables>
+
+ <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>
+
+ <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:variables>
+ <cd:variable name="flushleft" value="flushleft"/>
+ <cd:variable name="flushright" value="flushright"/>
+ <cd:variable name="center" value="center"/>
+ </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="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="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="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="leftmargindistance" value="distancemargegauche"/>
+ <cd:constant name="leftoffset" value="decalagegauche"/>
+ <cd:constant name="leftedge" value="brodgauche"/>
+ <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="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="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="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="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="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="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="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="MONTH" value="MOIS"/>
+ <cd:variable name="month" value="mois"/>
+ <cd:variable name="mar" value="mar"/>
+ <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="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="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: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: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="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="largeurbrodgauche"/>
+ <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>
diff --git a/Master/texmf-dist/tex/context/interface/keys-it.xml b/Master/texmf-dist/tex/context/interface/keys-it.xml
index 63f45e6dc02..e659a0df724 100644
--- a/Master/texmf-dist/tex/context/interface/keys-it.xml
+++ b/Master/texmf-dist/tex/context/interface/keys-it.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2005.10.27">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2006.08.08 21:51">
<cd:variables>
<cd:variable name="one" value="uno"/>
@@ -49,7 +49,6 @@
</cd:variables>
<cd:variables>
- <cd:variable name="sectionlevel" value="paragrafo"/>
<cd:variable name="part" value="parte"/>
<cd:variable name="chapter" value="capitolo"/>
<cd:variable name="subject" value="argomento"/>
@@ -121,9 +120,16 @@
<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"/>
@@ -180,6 +186,7 @@
<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"/>
@@ -234,6 +241,7 @@
<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"/>
@@ -480,8 +488,11 @@
<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>
@@ -490,6 +501,7 @@
<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"/>
@@ -510,6 +522,7 @@
<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"/>
@@ -520,6 +533,7 @@
<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"/>
@@ -556,6 +570,7 @@
<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"/>
@@ -587,6 +602,7 @@
<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"/>
@@ -614,6 +630,7 @@
<cd:variable name="MONTH" value="MESE"/>
<cd:variable name="month" value="mese"/>
<cd:variable name="mar" value="mar"/>
+ <cd:variable name="marking" value="marcatura"/>
<cd:variable name="margin" value="margine"/>
<cd:variable name="max" value="max"/>
<cd:variable name="min" value="min"/>
@@ -660,6 +677,7 @@
<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"/>
@@ -689,6 +707,7 @@
<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"/>
@@ -792,6 +811,7 @@
<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"/>
@@ -1191,6 +1211,7 @@
<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"/>
@@ -1522,6 +1543,8 @@
<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>
@@ -1585,6 +1608,7 @@
<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>
diff --git a/Master/texmf-dist/tex/context/interface/keys-nl.xml b/Master/texmf-dist/tex/context/interface/keys-nl.xml
index ee84ea394bf..71c954ec3a4 100644
--- a/Master/texmf-dist/tex/context/interface/keys-nl.xml
+++ b/Master/texmf-dist/tex/context/interface/keys-nl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2005.10.27">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2006.08.08 21:51">
<cd:variables>
<cd:variable name="one" value="een"/>
@@ -49,7 +49,6 @@
</cd:variables>
<cd:variables>
- <cd:variable name="sectionlevel" value="sectie"/>
<cd:variable name="part" value="deel"/>
<cd:variable name="chapter" value="hoofdstuk"/>
<cd:variable name="subject" value="onderwerp"/>
@@ -121,9 +120,16 @@
<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"/>
@@ -180,6 +186,7 @@
<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"/>
@@ -234,6 +241,7 @@
<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"/>
@@ -480,8 +488,11 @@
<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>
@@ -490,6 +501,7 @@
<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"/>
@@ -510,6 +522,7 @@
<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"/>
@@ -520,6 +533,7 @@
<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"/>
@@ -556,6 +570,7 @@
<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"/>
@@ -587,6 +602,7 @@
<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"/>
@@ -614,6 +630,7 @@
<cd:variable name="MONTH" value="MAAND"/>
<cd:variable name="month" value="maand"/>
<cd:variable name="mar" value="mar"/>
+ <cd:variable name="marking" value="markering"/>
<cd:variable name="margin" value="marge"/>
<cd:variable name="max" value="max"/>
<cd:variable name="min" value="min"/>
@@ -660,6 +677,7 @@
<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"/>
@@ -689,6 +707,7 @@
<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"/>
@@ -792,6 +811,7 @@
<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"/>
@@ -1191,6 +1211,7 @@
<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"/>
@@ -1411,10 +1432,10 @@
<cd:command name="stopcomponent" value="stoponderdeel"/>
<cd:command name="startproduct" value="startprodukt"/>
<cd:command name="stopproduct" value="stopprodukt"/>
- <cd:command name="startproject" value="startproject"/>
- <cd:command name="stopproject" value="stopproject"/>
+ <cd:command name="startproject" value="startprojekt"/>
+ <cd:command name="stopproject" value="stopprojekt"/>
<cd:command name="setups" value="instellingen"/>
- <cd:command name="project" value="project"/>
+ <cd:command name="project" value="projekt"/>
<cd:command name="component" value="onderdeel"/>
<cd:command name="product" value="produkt"/>
<cd:command name="environment" value="omgeving"/>
@@ -1522,6 +1543,8 @@
<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>
@@ -1585,6 +1608,7 @@
<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>
diff --git a/Master/texmf-dist/tex/context/interface/keys-ro.xml b/Master/texmf-dist/tex/context/interface/keys-ro.xml
index 5e86b26dbf5..159e06014ce 100644
--- a/Master/texmf-dist/tex/context/interface/keys-ro.xml
+++ b/Master/texmf-dist/tex/context/interface/keys-ro.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2005.10.27">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2006.08.08 21:51">
<cd:variables>
<cd:variable name="one" value="unu"/>
@@ -49,7 +49,6 @@
</cd:variables>
<cd:variables>
- <cd:variable name="sectionlevel" value="sectiune"/>
<cd:variable name="part" value="parte"/>
<cd:variable name="chapter" value="capitol"/>
<cd:variable name="subject" value="subiect"/>
@@ -121,9 +120,16 @@
<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"/>
@@ -180,6 +186,7 @@
<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"/>
@@ -234,6 +241,7 @@
<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"/>
@@ -480,8 +488,11 @@
<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>
@@ -490,6 +501,7 @@
<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"/>
@@ -510,6 +522,7 @@
<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"/>
@@ -520,6 +533,7 @@
<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"/>
@@ -556,6 +570,7 @@
<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"/>
@@ -587,6 +602,7 @@
<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"/>
@@ -614,6 +630,7 @@
<cd:variable name="MONTH" value="LUNA"/>
<cd:variable name="month" value="luna"/>
<cd:variable name="mar" value="mar"/>
+ <cd:variable name="marking" value="marcaje"/>
<cd:variable name="margin" value="margine"/>
<cd:variable name="max" value="max"/>
<cd:variable name="min" value="min"/>
@@ -660,6 +677,7 @@
<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"/>
@@ -689,10 +707,11 @@
<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="text"/>
+ <cd:variable name="test" value="test"/>
<cd:variable name="inbetween" value="intre"/>
<cd:variable name="type" value="type"/>
<cd:variable name="off" value="dezactivat"/>
@@ -792,6 +811,7 @@
<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"/>
@@ -1191,6 +1211,7 @@
<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"/>
@@ -1522,6 +1543,8 @@
<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>
@@ -1585,6 +1608,7 @@
<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>
diff --git a/Master/texmf-dist/tex/context/interface/t-bib.xml b/Master/texmf-dist/tex/context/interface/t-bib.xml
new file mode 100644
index 00000000000..dc7bd38f43a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/interface/t-bib.xml
@@ -0,0 +1,403 @@
+<?xml version="1.0"?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands"
+ name="context/third/t-bib"
+ language="all" version="2006.08.04">
+
+<cd:command name="setuppublications" file="t-bib.tex">
+ <cd:sequence>
+ <cd:string value="setuppublications"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="ams"/>
+ <cd:constant type="apa" default="yes"/>
+ <cd:constant type="apa-de"/>
+ <cd:constant type="apa-fr"/>
+ <cd:constant type="aps"/>
+ <cd:constant type="num"/>
+ <cd:constant type="num-fr"/>
+ <cd:constant type="ssa"/>
+ </cd:parameter>
+ <cd:parameter name="refcommand">
+ <cd:constant type="author"/>
+ <cd:constant type="authornum"/>
+ <cd:constant type="authoryear"/>
+ <cd:constant type="authoryears" default="yes"/>
+ <cd:constant type="key"/>
+ <cd:constant type="num"/>
+ <cd:constant type="serial"/>
+ <cd:constant type="page"/>
+ <cd:constant type="short"/>
+ <cd:constant type="type"/>
+ <cd:constant type="year"/>
+ <cd:constant type="data"/>
+ <cd:constant type="doi"/>
+ <cd:constant type="url"/>
+ </cd:parameter>
+ <cd:parameter name="sorttype">
+ <cd:constant type="cite" default="yes"/>
+ <cd:constant type="bbl"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="all" />
+ <cd:constant type="cite" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="numbering">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="short"/>
+ <cd:constant type="bib"/>
+ </cd:parameter>
+ <cd:parameter name="autohang">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="monthconversion">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="setuppublicationlist" file="t-bib.tex">
+ <cd:sequence>
+ <cd:string value="setuppublicationlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="totalnumber">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="samplesize">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="title">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="local"/>
+ <cd:constant type="previous"/>
+ <cd:constant type="current" default="yes"/>
+ <cd:constant type="all"/>
+ </cd:parameter>
+ <cd:parameter name="pagenumber">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="artauthor">
+ <cd:constant type="\normalauthor"/>
+ <cd:constant type="\normalshortauthor"/>
+ <cd:constant type="\invertedauthor"/>
+ <cd:constant type="\invertedshortauthor" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="author">
+ <cd:constant type="\normalauthor"/>
+ <cd:constant type="\normalshortauthor"/>
+ <cd:constant type="\invertedauthor"/>
+ <cd:constant type="\invertedshortauthor" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="editor">
+ <cd:constant type="\normalauthor"/>
+ <cd:constant type="\normalshortauthor"/>
+ <cd:constant type="\invertedauthor"/>
+ <cd:constant type="\invertedshortauthor" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="namesep">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="lastnamesep">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="finalnamesep">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="firstnamesep">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="juniorsep">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="vonsep">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="surnamesep">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="authoretallimit">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="authoretaltext">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="authoretaldisplay">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="authorcommand">
+ <cd:constant type="cd:threearguments"/>
+ </cd:parameter>
+ <cd:parameter name="artauthoretallimit">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="artauthoretaltext">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="artauthoretaldisplay">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="artauthorcommand">
+ <cd:constant type="cd:threearguments"/>
+ </cd:parameter>
+ <cd:parameter name="editoretallimit">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="editoretaltext">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="editoretaldisplay">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="editorcommand">
+ <cd:constant type="cd:threearguments"/>
+ </cd:parameter>
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+
+<cd:command name="setupcite" file="t-bib.tex">
+ <cd:sequence>
+ <cd:string value="setupcite"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:constant type="author"/>
+ <cd:constant type="year"/>
+ <cd:constant type="authoryear"/>
+ <cd:constant type="authoryears"/>
+ <cd:constant type="key"/>
+ <cd:constant type="serial"/>
+ <cd:constant type="page"/>
+ <cd:constant type="short"/>
+ <cd:constant type="type"/>
+ <cd:constant type="data"/>
+ <cd:constant type="doi"/>
+ <cd:constant type="url"/>
+ <cd:constant type="num"/>
+ </cd:keywords>
+ <cd:assignments list="yes">
+ <cd:parameter name="andtext">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="otherstext">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="pubsep">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="lastpubsep">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="compress">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:text"/>
+ </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:assignments>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="setuppublicationlayout" file="t-bib.tex">
+ <cd:sequence>
+ <cd:string value="setuppublicationlayout"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:constant type="article"/>
+ <cd:constant type="book"/>
+ <cd:constant type="booklet"/>
+ <cd:constant type="conference"/>
+ <cd:constant type="electronic"/>
+ <cd:constant type="inbook"/>
+ <cd:constant type="incollection"/>
+ <cd:constant type="inproceedings"/>
+ <cd:constant type="manual"/>
+ <cd:constant type="mastersthesis"/>
+ <cd:constant type="misc"/>
+ <cd:constant type="patent"/>
+ <cd:constant type="periodical"/>
+ <cd:constant type="phdthesis"/>
+ <cd:constant type="proceedings"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="techreport"/>
+ <cd:constant type="unpublished"/>
+ </cd:keywords>
+ <cd:content/>
+ </cd:arguments>
+</cd:command>
+
+
+<cd:command name="setupbibtex" file="t-bib.tex">
+ <cd:sequence>
+ <cd:string value="setupbibtex"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="database">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sort">
+ <cd:constant type="title"/>
+ <cd:constant type="author"/>
+ <cd:constant type="short"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+
+<cd:command name="usepublications" file="t-bib.tex">
+ <cd:sequence>
+ <cd:string value="usepublications"/>
+ </cd:sequence>
+ <cd:arguments list="yes">
+ <cd:keywords>
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+</cd:command>
+
+
+<cd:command name="publication" file="t-bib.tex" type="environment">
+ <cd:sequence>
+ <cd:string value="publication"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="k">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="a">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="s">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="t">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="u">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="o">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="cite" file="t-bib.tex">
+ <cd:sequence>
+ <cd:string value="cite"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="author"/>
+ <cd:constant type="year"/>
+ <cd:constant type="authoryear"/>
+ <cd:constant type="authoryears"/>
+ <cd:constant type="key"/>
+ <cd:constant type="serial"/>
+ <cd:constant type="page"/>
+ <cd:constant type="short"/>
+ <cd:constant type="type"/>
+ <cd:constant type="doi"/>
+ <cd:constant type="data"/>
+ <cd:constant type="url"/>
+ <cd:constant type="num"/>
+ </cd:keywords>
+ <cd:reference list="yes"/>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="nocite" file="t-bib.tex">
+ <cd:sequence>
+ <cd:string value="nocite"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference list="yes"/>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="citealt" file="t-bib.tex">
+ <cd:sequence>
+ <cd:string value="cite"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments optional="yes" list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="author"/>
+ <cd:constant type="year"/>
+ <cd:constant type="authoryear"/>
+ <cd:constant type="authoryears"/>
+ <cd:constant type="key"/>
+ <cd:constant type="serial"/>
+ <cd:constant type="page"/>
+ <cd:constant type="short"/>
+ <cd:constant type="type"/>
+ <cd:constant type="doi"/>
+ <cd:constant type="data"/>
+ <cd:constant type="url"/>
+ <cd:constant type="num"/>
+ </cd:parameter>
+ <cd:parameter name="extras">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:inherit name="setupcite"/>
+ </cd:assignments>
+ <cd:reference list="yes"/>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="placepublications" file="t-bib.tex">
+ <cd:sequence>
+ <cd:string value="placepublications"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments optional="yes" list="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="completepublications" file="t-bib.tex">
+ <cd:sequence>
+ <cd:string value="completepublications"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments optional="yes" list="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+
+</cd:interface>
diff --git a/Master/texmf-dist/tex/context/patterns/lang-agr.hyp b/Master/texmf-dist/tex/context/patterns/lang-agr.hyp
new file mode 100644
index 00000000000..9e36be3de79
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-agr.hyp
@@ -0,0 +1,32 @@
+% context hyphenation file, see lang-all.xml for original comment
+
+% source of data: grahyph4.tex oldgrhyph.tex
+
+% begin description data
+
+% <!-- copied from lang-all.xml
+%
+% <?xml version='1.0' standalone='yes'?>
+%
+% <description language='agr'>
+% <sourcefile>grahyph4.tex</sourcefile>
+% <title>TeX hyphenation patterns for the ancient Greek language</title>
+% <copyright>
+% <year>2004</year>
+% <owner>Dimitrios Filippou</owner>
+% <comment>These hyphenation patterns are explained in "ancient.pdf".
+% Hyphenation examples are given in the file "anc-test.pdf".
+% Some doubtful patterns are marked by three question marks "???".</comment>
+% </copyright>
+% </description>
+%
+% end of copy -->
+
+% end description data
+
+% begin hyphenation data
+
+\hyphenation {}
+
+% end hyphenation data
+
diff --git a/Master/texmf-dist/tex/context/patterns/lang-agr.pat b/Master/texmf-dist/tex/context/patterns/lang-agr.pat
new file mode 100644
index 00000000000..d92d2e17d8b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-agr.pat
@@ -0,0 +1,2048 @@
+% context pattern file, see lang-all.xml for original comment
+
+% source of data: grahyph4.tex oldgrhyph.tex
+
+% begin description data
+
+% <!-- copied from lang-all.xml
+%
+% <?xml version='1.0' standalone='yes'?>
+%
+% <description language='agr'>
+% <sourcefile>grahyph4.tex</sourcefile>
+% <title>TeX hyphenation patterns for the ancient Greek language</title>
+% <copyright>
+% <year>2004</year>
+% <owner>Dimitrios Filippou</owner>
+% <comment>These hyphenation patterns are explained in "ancient.pdf".
+% Hyphenation examples are given in the file "anc-test.pdf".
+% Some doubtful patterns are marked by three question marks "???".</comment>
+% </copyright>
+% </description>
+%
+% end of copy -->
+
+% end description data
+
+% begin pattern data
+
+\patterns {
+α1
+ε1
+η1
+ι1
+ο1
+Ï…1
+ω1
+α2Ϊ1
+η2Ϊ1
+ω2Ϊ1
+α2ι
+α2ί
+α2ὶ
+α2ῖ
+α2ἰ
+α2ἴ
+α2ἲ
+α2ἶ
+α2ἱ
+α2ἵ
+α2ἳ
+α2ἷ
+ά3ι
+ᾶ3ι
+ἀ3ι
+á¼3ι
+α2υ
+α2ύ
+α2ὺ
+α2ῦ
+α2á½
+α2ὔ
+α2psiliὺ
+α2ὖ
+α2ὑ
+α2ὕ
+α2ὓ
+α2ὗ
+á½±3Ï…
+ᾶ3υ
+á¼€3Ï…
+á¼3Ï…
+ε2ι
+ε2ί
+ε2ὶ
+ε2ῖ
+ε2ἰ
+ε2ἴ
+ε2ἲ
+ε2ἶ
+ε2ἱ
+ε2ἵ
+ε2ἳ
+ε2ἷ
+έ3ι
+á¼3ι
+ἑ3ι
+ε2υ
+ε2ύ
+ε2ὺ
+ε2ῦ
+ε2á½
+ε2ὔ
+ε2psiliὺ
+ε2ὖ
+ε2ὑ
+ε2ὕ
+ε2ὓ
+ε2ὗ
+á½³3Ï…
+ἑ3υ
+á¼3Ï…
+η2υ
+η2ύ
+η2ὺ
+η2ῦ
+η2á½
+η2ὔ
+η2psiliὺ
+η2ὖ
+η2ὑ
+η2ὕ
+η2ὓ
+η2ὗ
+á½µ3Ï…
+ῆ3υ
+á¼ 3Ï…
+ἡ3υ
+ο2ι
+ο2ί
+ο2ὶ
+ο2ῖ
+ο2ἰ
+ο2ἴ
+ο2ἲ
+ο2ἶ
+ο2ἱ
+ο2ἵ
+ο2ἳ
+ο2ἷ
+ό3ι
+ὀ3ι
+á½3ι
+ο2υ
+ο2ύ
+ο2ὺ
+ο2ῦ
+ο2á½
+ο2ὔ
+ο2psiliὺ
+ο2ὖ
+ο2ὑ
+ο2ὕ
+ο2ὓ
+ο2ὗ
+á½¹3Ï…
+á½€3Ï…
+á½3Ï…
+υ2ι
+Ï…2á½·
+υ2ὶ
+Ï…2á¿–
+Ï…2á¼°
+Ï…2á¼´
+Ï…2á¼²
+υ2ἶ
+Ï…2á¼±
+Ï…2á¼µ
+Ï…2á¼³
+Ï…2á¼·
+ύ3ι
+ῦ3ι
+á½3ι
+ὑ3ι
+ου3ι
+όυ4ι
+ὀυ4ι
+á½Ï…4ι
+ο3υί
+ο3υῖ
+4β.
+4γ.
+4δ.
+4ζ.
+4θ.
+4κ.
+4λ.
+4μ.
+4ν.
+4ξ.
+4Ï€.
+4Ï.
+4σ.
+4Ï‚.
+4Ï„.
+4φ.
+4χ.
+4ψ.
+4oxiaoxia
+4βoxiaoxia
+4γoxiaoxia
+4δoxiaoxia
+4ζoxiaoxia
+4θoxiaoxia
+4κoxiaoxia
+4λoxiaoxia
+4μoxiaoxia
+4νoxiaoxia
+4ξoxiaoxia
+4Ï€oxiaoxia
+4Ïoxiaoxia
+4σoxiaoxia
+4Ï„oxiaoxia
+4φoxiaoxia
+4χoxiaoxia
+4ψoxiaoxia
+.β4
+.γ4
+.δ4
+.ζ4
+.θ4
+.κ4
+.λ4
+.μ4
+.ν4
+.ξ4
+.Ï€4
+.Ï4
+.σ4
+.Ï„4
+.φ4
+.χ4
+.ψ4
+2β1β
+2γ1γ
+2δ1δ
+2ζ1ζ
+2θ1θ
+2κ1κ
+2λ1λ
+2μ1μ
+2ν1ν
+2Ï€1Ï€
+2Ï1Ï
+psili2Ï1dasia2Ï
+2σ1σ
+2Ï„1Ï„
+2φ1φ
+2χ1χ
+2ψ1ψ
+2β1γ
+2β1ζ
+2β1θ
+2β1κ
+2β1ξ
+2β1π
+2β1σ
+2β1τ
+2β1φ
+2β1χ
+2β1ψ
+2γ1β
+2γ1ζ
+2γ1θ
+2γ1κ
+2γ1ξ
+2γ1π
+2γ1σ
+2γ1τ
+2γ1φ
+2γ1χ
+2γ1ψ
+2δ1β
+2δ1γ
+2δ1ζ
+2δ1θ
+2δ1κ
+2δ1λ
+2δ1ξ
+2δ1π
+2δ1σ
+2δ1τ
+2δ1φ
+2δ1χ
+2δ1ψ
+2ζ1β
+2ζ1γ
+2ζ1δ
+2ζ1θ
+2ζ1κ
+2ζ1λ
+2ζ1μ
+2ζ1ν
+2ζ1ξ
+2ζ1π
+2ζ1Ï
+2ζ1σ
+2ζ1τ
+2ζ1φ
+2ζ1χ
+2ζ1ψ
+2θ1β
+2θ1γ
+2θ1δ
+2θ1ζ
+2θ1κ
+2θ1ξ
+2θ1π
+2θ1σ
+2θ1τ
+2θ1φ
+2θ1χ
+2θ1ψ
+2κ1β
+2κ1γ
+2κ1δ
+2κ1ζ
+2κ1θ
+2κ1ξ
+2κ1π
+2κ1σ
+2κ1φ
+2κ1χ
+2κ1ψ
+2λ1β
+2λ1γ
+2λ1δ
+2λ1ζ
+2λ1θ
+2λ1κ
+2λ1μ
+2λ1ν
+2λ1ξ
+2λ1π
+2λ1Ï
+2λ1σ
+2λ1τ
+2λ1φ
+2λ1χ
+2λ1ψ
+2μ1β
+2μ1γ
+2μ1δ
+2μ1ζ
+2μ1θ
+2μ1κ
+2μ1λ
+2μ1ξ
+2μ1π
+2μ1Ï
+2μ1σ
+2μ1τ
+2μ1φ
+2μ1χ
+2μ1ψ
+2ν1β
+2ν1γ
+2ν1δ
+2ν1ζ
+2ν1θ
+2ν1κ
+2ν1λ
+2ν1μ
+2ν1ξ
+2ν1π
+2ν1Ï
+2ν1σ
+2νς.
+2ν1τ
+2ν1φ
+2ν1χ
+2ν1ψ
+2ξ1β
+2ξ1γ
+2ξ1δ
+2ξ1ζ
+2ξ1θ
+2ξ1κ
+2ξ1λ
+2ξ1μ
+2ξ1ν
+2ξ1π
+2ξ1Ï
+2ξ1σ
+2ξ1τ
+2ξ1φ
+2ξ1χ
+2ξ1ψ
+2π1β
+2π1γ
+2π1δ
+2π1ζ
+2π1θ
+2π1κ
+2π1ξ
+2π1σ
+2π1φ
+2π1χ
+2π1ψ
+2Ï1β
+2Ï1γ
+2Ï1δ
+2Ï1ζ
+2Ï1θ
+2Ï1κ
+2Ï1λ
+2Ï1μ
+2Ï1ν
+2Ï1ξ
+2Ï1Ï€
+2Ï1σ
+2Ï1Ï„
+2Ï1φ
+2Ï1χ
+2Ï1ψ
+2σ1δ
+2σ1ζ
+2σ1λ
+2σ1ν
+2σ1ξ
+2σ1Ï
+2σ1ψ
+2τ1β
+2τ1γ
+2τ1δ
+2τ1ζ
+2τ1θ
+2τ1κ
+2τ1ξ
+2Ï„1Ï€
+2τ1σ
+2τ1φ
+2τ1χ
+2τ1ψ
+2φ1β
+2φ1γ
+2φ1δ
+2φ1ζ
+2φ1κ
+2φ1ξ
+2φ1π
+2φ1σ
+2φ1τ
+2φ1χ
+2φ1ψ
+2χ1β
+2χ1γ
+2χ1δ
+2χ1ζ
+2χ1κ
+2χ1ξ
+2χ1π
+2χ1σ
+2χ1τ
+2χ1φ
+2χ1ψ
+2ψ1β
+2ψ1γ
+2ψ1δ
+2ψ1ζ
+2ψ1θ
+2ψ1κ
+2ψ1λ
+2ψ1μ
+2ψ1ν
+2ψ1ξ
+2ψ1π
+2ψ1Ï
+2ψ1σ
+2ψ1τ
+2ψ1φ
+2ψ1χ
+4βδoxiaoxia
+4βλoxiaoxia
+4βμoxiaoxia
+4βνoxiaoxia
+4βÏoxiaoxia
+4γδoxiaoxia
+4γλoxiaoxia
+4γμoxiaoxia
+4γνoxiaoxia
+4γÏoxiaoxia
+4δμoxiaoxia
+4δνoxiaoxia
+4δÏoxiaoxia
+4ζβoxiaoxia
+4θλoxiaoxia
+4λμoxiaoxia
+4θνoxiaoxia
+4θÏoxiaoxia
+4κλoxiaoxia
+4κμoxiaoxia
+4κνoxiaoxia
+4κÏoxiaoxia
+4κτoxiaoxia
+4μνoxiaoxia
+4πλoxiaoxia
+4πμoxiaoxia
+4πνoxiaoxia
+4Ï€Ïoxiaoxia
+4πτoxiaoxia
+4σβoxiaoxia
+4σγoxiaoxia
+4σδoxiaoxia
+4σθoxiaoxia
+4σκoxiaoxia
+4σμoxiaoxia
+4σπoxiaoxia
+4στoxiaoxia
+4σφoxiaoxia
+4σχoxiaoxia
+4φθoxiaoxia
+4φλoxiaoxia
+4φμoxiaoxia
+4φνoxiaoxia
+4φÏoxiaoxia
+4χθoxiaoxia
+4χλoxiaoxia
+4χμoxiaoxia
+4χνoxiaoxia
+4χÏoxiaoxia
+ἀγω2ν1á½±Ï
+ἀγω2ν1αÏ
+ἀδιέ2ξ1
+ἀδιε2ξ1
+ἀδυ2σ1ώ
+ἀδυ2σ1ω
+á¼Î»á½¹2σ1
+á¼Î»Î¿2σ1
+ἀμπαλί2ν1
+ἀμπαλι2ν1
+ἀμφί2σ1β
+ἀμφι2σ1β
+ἀμφί2σ1ω
+ἀμφι2σ1ώ
+ἀ2ν1αγής.
+ἀ2ν1αγὴς.
+ἀ2ν1αγήσ.
+ἀ2ν1αγὴσ.
+ἀ2ν1αγο
+ἀ2ν1αγεῖ.
+ἀ2ν1αγῆ.
+ἀ2ν1αγές.
+ἀ2ν1αγὲς.
+ἀ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ν2αγνά
+ἀ3ν2αγνω
+ἀ3ν2άγνω
+ἀ3ν2αγνώ
+á¼€2ν1αγÏá½·
+á¼€2ν1αγÏá¿–
+á¼€2ν1αγÏι
+ἀ2ν1άγωγ
+ἀ2ν1αγώγ
+ἀ3ν2αγώγι
+ἀ3ν2αγωγί
+ἀ4ν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αλδ
+ἀ3ν2αλδα
+ἀ3ν2αλδήσκ
+ἀ2ν1άλειπ
+ἀ2ν1αλείπ
+ἀ2ν1αλειφ
+ἀ2ν1άλειφ
+ἀ2ν1αλείφ
+ἀ2ν1αλήθ
+ἀ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ν2άλλο
+ἀ3ν2άλλε
+ἄ2ν1αλμ
+ἀ2ν1άλμ
+ἀ2ν1αλμ
+ἄ2ν1αλο
+ἀ2ν1άλου
+ἀ2ν1άλῳ.
+ἄ2ν1αλε.
+ἀ2ν1άλοι
+ἀ2ν1άλων.
+ἄ2ν1αλτ
+ἀ2ν1άλτ
+ἀ2ν1αμάξ
+ἀ2ν1αμαξ
+á¼€2ν1αμάÏÏ„
+á¼€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ν2ανθέ
+ἀ4ν3ανθές.
+ἀ4ν3ανθὲς.
+ἀ4ν3ανθέσ.
+ἀ4ν3ανθὲσ.
+ἀ4ν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αÏ
+á¼€3ν2αÏá½·Ï„
+á¼€3ν2αÏá¿–Ï„
+á¼€3ν2αÏιτ
+á¼€3ν2αÏÏ€
+á¼€3ν2á½±ÏÏ
+á¼€3ν2αÏÏ
+á¼€4ν3αÏÏαγ
+á¼€3ν2αÏÏ„
+á¼€3ν2αÏύτ
+ἀ2ν1άσκη
+ἀ2ν1ασκή
+ἄ2ν1ασπι
+ἀ2ν1ασπί
+ἀ2ν1άσσατ
+ἀ2ν1ασσάτ
+ἀ2ν1άστει
+ἀ2ν1αστεί
+ἀ3ν2αστείβ
+á¼€3ν2άστειÏ
+á¼€3ν2αστείÏ
+ἀ3ν2άστειχ
+ἀ3ν2αστείχ
+ἀ2ν1ατεὶ.
+ἀ2ν1ατεί.
+ἀ2ν1ατὶ.
+ἀ2ν1ατί.
+ἄ2ν1ατος.
+ἄ2ν1ατοσ.
+ἀ2ν1άτου.
+ἀ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ν2αυδί
+ἀ3ν2αυδι
+ἄ2ν1αυδ
+ἄ2ν1αυλ
+ἀ2ν1αύλ
+ἀ2ν1αύξ
+ἀ2ν1αυξ
+ἀ2ν1αύχ
+ἀ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ν2αφῆν
+á¼€2ν1αφÏόδ
+á¼€2ν1αφÏοδ
+ἄ2ν1αφÏ
+á¼€2ν1άφÏ
+á¼€2ν1αχύÏ
+á¼€2ν1αχυÏ
+ἀνδÏá½¹2σ1α
+ἀνδÏο2σ1α
+ἀ2ν1έγγ
+ἀ2ν1εγγ
+á¼€2ν1έγεÏÏ„
+á¼€2ν1εγέÏÏ„
+ἀ2ν1εγκ
+ἀ2ν1έγκ
+ἀ2ν1εγχ
+ἀ2ν1εδά
+ἀ2ν1εδα
+ἀ2ν1έδεσ
+ἀ2ν1εδέσ
+á¼€2ν1έδÏασ
+á¼€2ν1εδÏάσ
+á¼€2ν1εέÏ
+á¼€2ν1εεÏ
+ἀ2ν1εθέλ
+ἀ2ν1εθελ
+ἀ2ν1έθι
+ἀ2ν1εθί
+ἀ2ν1είδε
+ἀ2ν1ειδέ
+ἀ2ν1είδω
+ἀ2ν1ειδώ
+ἀ2ν1είκα
+ἀ2ν1εικά
+ἀ2ν1εικό
+ἀ2ν1εικο
+ἀ2ν1ειλεί
+ἀ2ν1ειλει
+ἀ2ν1είμα
+ἀ2ν1εί2σ1ακ
+ἀ2ν1ει2σ1άκ
+ἀ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ν2έκα
+ἀ3ν2εκάς.
+ἀ3ν2εκὰς.
+ἀ3ν2εκάσ.
+ἀ3ν2εκὰσ.
+ἀ3ν2εκτ
+ἀ4ν3έ2κ1τιτ
+ἀ4ν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εν
+ἀ3ν2ένει
+ἀ3ν2ενή
+ἀ3ν2έντες.
+ἀ3ν2έντεσ.
+ἀ2ν1ε2ξ1
+ἀ3ν2ε3ξ2ίκα
+ἀ3ν2ε3ξ2ικά
+á¼€2ν1έοÏ
+á¼€2ν1εόÏ
+ἀ2ν1επ
+ἀ3ν2επν
+ἀ3ν2επτ
+á¼€2ν1εÏαστ
+á¼€2ν1á½³Ïαστ
+á¼€2ν1εÏάστ
+á¼€2ν1εÏγ
+ἄ2ν1εÏγ
+á¼€2ν1á½³Ïγ
+á¼€2ν1á½³Ïεικ
+á¼€2ν1εÏείκ
+á¼€2ν1á½³Ïεισ
+á¼€2ν1εÏείσ
+á¼€2ν1εÏεύνητ
+á¼€2ν1εÏευνήτ
+á¼€2ν1εÏá½·
+á¼€2ν1εÏι
+á¼€2ν1εÏυθÏίαστ
+á¼€2ν1εÏυθÏιάστ
+ἀ2ν1έστι
+ἀ2ν1εστί
+ἀ2ν1έται
+ἀ2ν1εταί
+ἀ2ν1έτοι
+ἀ2ν1ετοί
+ἀ2ν1ετυ
+ἀ2ν1έτυ
+ἀ2ν1ετύ
+ἀ2ν1εύθ
+ἀ2ν1ευθ
+ἄ2ν1ευκ
+ἀ2ν1εύκ
+ἀ2ν1ευλ
+á¼€2ν1εύÏετ
+á¼€2ν1ευÏέτ
+ἀ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ν2εφάλ
+ἀ3ν2έφελ
+ἀ3ν2εφέλ
+ἀ2ν1εχέ
+ἀ2ν1εχε
+ἀ2ν1έψα
+ἀ2ν1εψά
+ἀ2ν1ηγεμ
+ἀ2ν1ήδ
+ἀ2ν1ηδ
+ἀ2ν1ήκεσ
+ἀ2ν1ηκέσ
+ἀ2ν1ήκο
+ἀ2ν1ηκό
+ἀ2ν1ηκο
+ἀ2ν1ηλάκ
+ἀ2ν1ηλακ
+ἀ2ν1ήλατος.
+ἀ2ν1ήλατοσ.
+ἀ2ν1ηλάτου
+ἀ2ν1ηλάτω
+ἀ2ν1ήλατον.
+ἀ2ν1ήλατε.
+ἀ2ν1ηλάτοι
+ἀ2ν1ήλατοι
+ἀ2ν1ήλατα
+ἀ2ν1ηλεγ
+ἀ2ν1ηλεή
+ἀ2ν1ηλεὴ
+ἀ2ν1ηλεο
+ἀ2ν1ηλεε
+ἀ2ν1ηλεῶ
+ἀ2ν1ηλεέ
+ἀ2ν1ηλεὲ
+ἀ2ν1ηλεῆ
+ἀ2ν1ηλέη
+ἀ2ν1ήλειπ
+ἀ2ν1ηλείπ
+ἀ2ν1ηλή
+ἀ2ν1ηλὴ
+ἀ2ν1ηλοῦ
+ἀ2ν1ηλεῖ
+ἀ2ν1ηλῆ
+ἀ2ν1ηλέ
+ἀ2ν1ηλὲ
+ἀ2ν1ηλοῖ
+ἀ2ν1ηλῶ
+ἀ2ν1ήλικ
+ἀ2ν1ηλίκ
+ἀ2ν1ήλιο
+ἀ2ν1ηλίο
+ἀ2ν1ηλίω
+ἀ2ν1ήλια
+ἀ2ν1ήλιπ
+ἀ2ν1ηλίπ
+ἀ2ν1ηλιφ
+ἀ2ν1ήμ
+ἀ2ν1ημ
+ἀ2ν1ήνυ
+ἀ2ν1ηνύ
+á¼€2ν1á½µÏει
+á¼€2ν1ηÏεί
+á¼€2ν1ηÏέμ
+á¼€2ν1ηÏεμ
+á¼€2ν1ηÏεφ
+á¼€2ν1á½µÏι
+á¼€2ν1ηÏá½·
+á¼€2ν1á½µÏοτ
+á¼€2ν1ηÏότ
+ἀ2ν1ήσσ
+ἀ2ν1ησσ
+ἀ2ν1ήττ
+ἀ2ν1ηττ
+ἀ2ν1ήφα
+ἀ2ν1ηφα
+ἀ2ν1ίατ
+ἀ2ν1ιάτ
+ἀ2ν1ίδιο
+ἀ2ν1ιδίο
+ἀ2ν1ιδίω
+ἀ2ν1ίδια
+ἀ2ν1ιδιτ
+ἄ2ν1ιδÏος
+ἄ2ν1ιδÏοσ
+á¼€2ν1ίδÏου
+á¼€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ν2ιέÏω
+ἀ2ν1ίκ
+ἀ2ν1ικ
+ἄ2ν1ικ
+ἀ3ν2ίκη
+ἀ3ν2ική
+ἀ2ν1ίλ
+ἀ2ν1ιλ
+ἀ2ν1ίμαστ
+ἀ2ν1ιμάστ
+ἀ2ν1ίου
+ἀ2ν1ιού
+ἄ2ν1ιππ
+ἀ2ν1ίππ
+ἀ2ν1ισ
+ἄ2ν1ισ
+ἀ2ν1ίσ
+ἀ3ν2ισᾶτ
+ἀ3ν2ισάτ
+ἀ3ν2ίστ
+ἀ3ν2ιστ
+á¼€4ν3ιστοÏη
+á¼€4ν3ιστόÏη
+á¼€4ν3ιστοÏá½µ
+ἀ3ν2ίσχ
+ἀ4ν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ολ
+ἀ3ν2ολκ
+ἀ3ν2ολο
+á¼€2ν1ομβÏá½·
+á¼€2ν1ομβÏá¿–
+ἄ2ν1ομβÏο
+á¼€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ν2ομοθ
+ἀ3ν2όμου.
+ἀ3ν2όμῳ.
+ἀ3ν2όμω.
+ἀ2ν2όμοιν.
+ἀ3ν2όμων.
+ἀ3ν2όμοις.
+ἀ3ν2όμοισ.
+ἀ3ν2όμους.
+ἀ3ν2όμουσ.
+ἀ2ν1όν
+ἀ2ν1ον
+ἄ2ν1οπ
+ἀ2ν1όπ
+á¼€2ν1á½¹Ï
+á¼€2ν1οÏ
+ἄ2ν1οÏ
+á¼€3ν2οÏγάζ
+ἄ3ν2οÏθ
+á¼€3ν2á½¹Ïθ
+á¼€3ν2οÏμά
+á¼€3ν2οÏÏ„
+á¼€3ν2οÏá½»
+ἀ2ν1όσι
+ἀ2ν1οσί
+ἀ2ν1οσι
+ἄ2ν1οσμ
+ἀ2ν1όσμ
+á¼€2ν1όσφÏ
+á¼€2ν1οσφÏ
+ἀ2ν1ούα
+ἀ2ν1ουά
+ἀ2ν1ούσι
+ἀ2ν1ουσί
+ἀ2ν1ούτ
+ἀ2ν1ουτ
+ἀ2ν1οφθ
+ἀ2ν1όχευτ
+ἀ2ν1οχεύτ
+ἄ2ν1οχλ
+ἀ2ν1όχλ
+ἀ2ν1οψ
+ἄ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κ2Ï…
+ἀντισύ2ν1
+ἀντισυ2ν1
+ἀ2ν1ύ
+ἀ2ν1υ
+ἀ3ν2υμ
+ἀ3ν2ύσ
+ἀ3ν2υσ
+á¼€2ν1υπέ2Ï1
+á¼€2ν1υπε2Ï1
+ἄ2ν1ῳδ
+ἀ2ν1ῴδ
+ἀ2ν1ώδυ
+ἀ2ν1ωδυoxia
+ἀ2ν1ώι
+ἀ2ν1ωί
+ἀ2ν1ώλ
+ἀ2ν1ωλ
+ἀ2ν1ώμ
+ἀ2ν1ωμ
+ἀ2ν1ών
+ἀ2ν1ων
+á¼€2ν1ωÏ
+ἄ2ν1ωÏ
+á¼€2ν1á½½Ï
+ἄ2ν1ωτο
+ἀ2ν1ώτο
+ἀ2ν1ωφέλ
+ἀ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σ2κε
+ἀπÏο3σ2κέ
+ἀπÏá½¹3σ2κο
+ἀπÏο3σ2κό
+ἀπÏο3σ2Ï„
+á¼Ïπα2ξ1
+á¼€ÏÏε2ν1ω
+á¼€Ïχισυ2ν1
+ἀστε2Ï1ω
+ἀσύ2ν1
+ἀσυ2ν1
+ἀξύ2ν1
+ἀξυ2ν1
+αá½Ï„á½³2κ1μ
+αá½Ï„ε2κ1μ
+αá½Ï„ε2ξ1
+ἀω2σ1φ
+.γεÏα2σ1φ
+.δα2σ1π
+.διαμφι2σ1β
+.διέ2κ1Ïο
+.διε2κ1Ïá½¹
+.διέ2ξ1
+.διε2ξ1
+.δικα2σ1π
+.διό2σ1κ
+.διο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σ2ω.
+δύ3σ2εις.
+δύ3σ2εισ.
+δύ3σ2ει.
+.δύ3σ2ετ
+δύ3σ2ομεν.
+δύ3σ2ουσιν.
+δύ3σ2οιμι.
+δύ3σ2οις.
+δύ3σ2οισ.
+δύ3σ2οι.
+δύ3σ2οιτον.
+δυ3σ2οίτην.
+δύ3σ2οιμεν.
+δύ3σ2οιτε.
+δύ3σ2οιεν.
+δύ3σ2ειν.
+δύ3σ2ων.
+δύ3σ2ον
+δυ3σ2όν
+δύ3σ2ουσ
+δυ3σ2ούσ
+δύ3σ2ῃ
+δύ3σ2ητον.
+δύ3σ2ωμεν.
+δύ3σ2ωσι.
+δύ3σ2αιμι.
+δύ3σ2αις.
+δύ3σ2ειας.
+δύ3σ2αισ.
+δύ3σ2ειασ.
+δύ3σ2αι.
+δύ3σ2ειε.
+δύ3σ2αιτον.
+δυ3σ2αίτην.
+δύ3σ2αιμεν.
+δύ3σ2αιτε.
+δύ3σ2αιεν
+δύ3σ2ειαν.
+δύ3σ2ον.
+δυ3σ2άτω.
+δύ3σ2ατον.
+δυ3σ2άτων.
+δύ3σ2ατε.
+δυ3σ2άντων.
+δύ3σ2ας.
+δύ3σ2αν.
+δύ3σ2αντ
+δυ3σ2άντ
+δύ3σ2ασ
+δυ3σ2άσ
+δύ3σ2ομαι.
+.δύ3σ2εσ
+δυ3σ2όμεθα.
+δύ3σ2ονται.
+δυ3σ2οίμην.
+δύ3σ2οιο.
+δύ3σ2οιτο.
+δύ3σ2οισθον.
+δυ3σ2οίσθην.
+δυ3σ2οίμεθα.
+δύ3σ2οισθε.
+δύ3σ2οιντο.
+δύ3σ2εσθαι.
+.δυ3σ2όμεν
+.δυ3σ2ομέν
+δύ3σ2ωμαι.
+δύ3σ2ηται.
+δυ3σ2ώμεθα
+δύ3σ2ησθε.
+δυ3σ2αίμην.
+δύ3σ2αιο.
+δύ3σ2αιτο.
+δύ3σ2αισθον.
+δυ3σ2αίσθην.
+δυ3σ2αίμεθα.
+δύ3σ2αισθαι.
+δύ3σ2αιντο.
+δυ3σ2άσθω.
+δύ3σ2ασθον.
+δυ3σ2άσθων.
+δύ3σ2ασθε.
+δύ3σ2ασθαι.
+δυ3σ2άμεν
+δυσ3σ2αμέν
+δύ3σ2ατο.
+δύ3σ2ετο.
+δύ3σ2αντο.
+δύ3σ2εο.
+.δυσεί2σ1β
+.δυσει2σ1β
+.δυσέ2κ1
+.δυσε2κ1
+.δυσέ2ξ1
+.δυσε2ξ1
+.δυ3σ2ιθ
+δύ3σ2ις.
+δύ3σ2ισ.
+δύ3σ2εω
+δύ3σ2ιν.
+δύ3σ2ι.
+δυ3σ2έοιν.
+δύ3σ2εσι.
+δύ3σ2εσιν.
+.δύ3σ2κε
+.δυ3σ2μή.
+.δυ3σ2μὴ.
+.δυ3σ2μῆς.
+.δυ3σ2μῆσ.
+.δυ3σ2μῇ
+.δυ3σ2μῆ.
+.δυ3σ2μᾶ
+.δυ3σ2μα
+.δυ3σ2μῶ
+.δυσξύ2ν1
+.δυσξυ2ν1
+.δύ3σ2ταν
+.δυ3σ2τάν
+.δυ3σ2την
+.δυ3σ2τήν
+á¼Î´Ï…2σ1Ï„
+εἰ2ν1όδ
+εἰ2ν1οδ
+εἰ2σ1
+εἴ2σ1
+εἰ3σ2ί.
+εἰ3σ2ὶ.
+εἰ3σ2ι.
+εἰ3σ2ίν.
+εἰ3σ2ὶν.
+εἰ3σ2ιν.
+εἴ3σ2ομ
+εἴ3σ2ῃ.
+εἴσει.
+εἴ3σ2εται.
+εἴ3σ2εσθον.
+εἰ3σ2όμ
+εἴ3σ2εσθε.
+εἴ3σ2ονται
+εἰ3σ2οίμην
+εἴ3σ2οιο
+εἴ3σ2οιτο
+εἴ3σ2οισθον
+εἰ3σ2οίσθην
+εἰ3σ2οίμεθα
+εἴ3σ2οισθε
+εἴ3σ2οιντο
+εἴ3σ2εσθαι
+εἰ3σ2όμεν
+εἰ3σ2ομέν
+εἴ3σ2άμην.
+εἴ3σ2ω
+εἴ3σ2ατο
+εἴ3σ2ασθον
+εἰ3σ2άσθην
+εἰ3σ2άμεθα
+εἴ3σ2ασθε
+εἴ3σ2αντο
+εἴ3σ2ωμαι
+εἴ3σ2ησθον
+εἰ3σ2ώμεθα
+εἴ3σ2ησθε
+εἴ3σ2ωνται
+εἰ3σ2αίμην
+εἴ3σ2αιο
+εἴ3σ2αιτο
+εἴ3σ2αισθον
+εἴ3σ2αίσθην
+εἰ3σ2αίμεθα
+εἴ3σ2αισθε
+εἴ3σ2αιντο
+εἰ3σ2άσθω
+εἰ3σ2άσθων
+εἴ3σ2ασθαι
+εἰ3σ2άμεν
+εἰ3σ2αμέν
+á¼2κ1λ
+á¼3κ2λήθη
+á¼3κ2λάζ
+á¼3κ2λάγ
+á¼3κ2λάο
+á¼3κ2λάσ
+á¼3κ2λαί
+á¼3κ2λαύ
+á¼3κ2λεί
+á¼4κ3λείπ
+á¼4κ3λείψ
+á¼3κ2λῄ
+á¼3κ2κλέπ
+á¼3κ2κλέψ
+á¼3κ2λάπ
+á¼3κ2λαπ
+á¼4κ3λάπτ
+á¼4κ3λαπτ
+á¼3κ2λέφ
+á¼3κ2λεφ
+á¼3κ2λήÏ
+á¼3κ2ληÏ
+á¼3κ2λίν
+á¼3κ2λιν
+á¼3κ2λύ
+á¼4κ3λύσεω
+á¼4κ3λύσει
+á¼4κ3λύσεοι
+á¼4κ3λύσεσι
+á¼3κ2λόμ
+á¼3κ2κλώσ
+ἔ2κ1λει
+ἔ3κ2λεισ
+ἔ2κ1λυσ
+á¼2κ1μ
+ἔ2κ1μ
+á¼2κ1ν
+ἔ2κ1ν
+ἔ3κ2ναι
+á¼3κ2ναί
+ἔ3κ2νησ
+á¼3κ2νήσ
+á¼3κ2νυ
+á¼2κ1Ï
+á¼”2κ1Ï
+á¼3κ2Ïάδ
+á¼3κ2Ïαδ
+á¼”3κ2Ïαζ
+á¼3κ2Ïάζ
+á¼”3κ2Ïαγ
+á¼3κ2Ïάγ
+á¼3κ2Ïάτ
+á¼3κ2Ïατ
+á¼3κ2Ïαύγ
+á¼3κ2Ïαυγ
+á¼”3κ2Ïαι
+á¼3κ2Ïαί
+á¼”3κ2Ïαν
+á¼3κ2Ïάν
+á¼3κ2Ïήη
+á¼3κ2Ïάα
+á¼3κ2Ïαά
+á¼3κ2Ïάθ
+á¼3κ2Ïαθ
+á¼”3κ2Ïεκ
+á¼3κ2Ïέκ
+á¼”3κ2Ïεξ
+á¼3κ2Ïέξ
+á¼3κ2Ïέμ
+á¼3κ2Ïεμ
+á¼3κ2Ïήμ
+á¼3κ2Ïημ
+á¼”3κ2Ïιν
+á¼3κ2Ïίν
+á¼3κ2Ïίθ
+á¼3κ2Ïότ
+á¼3κ2Ïοτ
+á¼”3κ2Ïου
+á¼3κ2Ïού
+á¼”3κ2ÏÏ…Ï€
+á¼3κ2Ïύπ
+á¼”3κ2Ïυψ
+á¼3κ2Ïύψ
+á¼3κ2Ïύβ
+á¼3κ2Ïύφ
+á¼3κ2Ïυσ
+á¼”3κ2Ïωζ
+á¼3κ2Ïώζ
+á¼”3κ2Ïωξ
+á¼3κ2Ïώξ
+á¼2κ1ταθ
+ἔ2κ1ταμε.
+á¼2κ1τάμν
+á¼2κ1ταν
+á¼2κ1ταÏ
+á¼2κ1τάσ
+á¼2κ1τε
+á¼2κ1Ï„á½³
+á¼3κ2τείν
+á¼2κ1τήκ
+á¼2κ1τι
+ἔ2κ1τι
+á¼2κ1Ï„á½·
+ἔ3κ2τιζ
+á¼3κ2τίζ
+ἔ3κ2τισα
+á¼3κ2τίσα
+á¼2κ1Ï„á½¹
+á¼2κ1το
+ἔ2κ1το
+á¼3κ2τός.
+á¼3κ2τὸς.
+á¼3κ2τόσ.
+á¼3κ2τὸσ.
+á¼2κ1Ï„Ï
+ἔ2κ1τυπο
+á¼2κ1τύπου.
+á¼2κ1τύπῳ.
+ἔ2κ1τυπε.
+á¼2κ1τύπω.
+á¼2κτύποι.
+á¼2κ1τύπων.
+á¼2κ1τύποις.
+á¼2κ1τύποισ.
+á¼2κ1τύπους.
+á¼2κ1τύπουσ.
+ἔ2κ1τυπα.
+á¼2κ1Ï„Ï…
+ἑλλή2σ1π
+ἑλλη2σ1π
+á¼2ν1
+ἔ2ν1
+á¼3ν2άκις
+á¼3ν2ακισ
+á¼3ν2ακόσ
+á¼3ν2ακοσ
+á¼”3ν2αÏα.
+á¼3ν2á½±Ïων.
+á¼3ν2á½±Ïοις.
+á¼3ν2á½±Ïοισ.
+á¼3ν2αÏηφ
+á¼4ν3αÏαÏ
+á¼3ν2á½±Ïεε
+á¼3ν2αÏέω
+á¼3ν2αÏέα
+á¼3ν2αÏεά
+á¼3ν2á½±Ïιε
+á¼3ν2αÏίω
+á¼3ν2αÏία
+á¼3ν2αÏιά
+ἔ3ν2ασσ
+á¼3ν2άσσ
+á¼3ν2άσθ
+á¼3ν2ασθ
+ἔ3ν2ατ
+á¼3ν2άτ
+á¼Î½Î´Ï…2σ1Ï„
+á¼3ν2έγκ
+á¼3ν2εγκ
+ἔ3ν2εικ
+á¼3ν2εῖκ
+á¼3ν2εικ
+á¼3ν2είκ
+ἔ3ν2ειμ
+á¼3ν2είμ
+á¼3ν2εμέσσ
+á¼3ν2εμήθ
+á¼3ν2ενή
+á¼3ν2εό
+á¼3ν2εὸ
+á¼3ν2εο
+á¼3ν2εῶ
+á¼3ν2εά
+á¼3ν2εὰ
+á¼3ν2εᾶ
+á¼3ν2έπει
+á¼”3ν2εÏθε
+ἔ3ν2ευσ
+á¼3ν2εύσ
+á¼3ν2έχθ
+á¼3ν2εχθ
+ἔ3ν2ησ
+á¼3ν2ήσ
+á¼3ν2ηή
+á¼3ν2ηὴ
+ἔ3ν2ην.
+á¼3ν2ηεί
+á¼3ν2ηο
+á¼3ν2ηῶ
+á¼3νηέ
+á¼3ν2ήνο
+á¼3ν2á½·
+á¼3ν2ι
+ἔ3ν2ι
+á¼4ν3ιαύ
+á¼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ίσχ
+ἔ3ν2ος.
+ἔ3ν2οσ.
+ἔ3ν2ου.
+ἔ3ν2ον.
+ἔ3ν2ω
+ἔ3ν2οι.
+ἔ3ν2οις.
+ἔ3ν2οισ.
+ἔ3ν2ης.
+ἔ3ν2ησ.
+ἔ3ν2ῃ.
+ἔ3ν2η.
+ἔ3ν2οσι
+á¼3ν2όσε
+á¼3ν2υάλ
+á¼3ν2υαλ
+ἔ3ν2υξ
+á¼3ν2υξ
+á¼3ν2ύξ
+á¼3ν2ύσ
+á¼3ν2υσ
+á¼3ν2Ï…á½½
+á¼3ν2Ï…á½¼
+á¼3ν2υόο
+á¼3ν2υοῦς
+á¼2ξ1
+ἔ2ξ1
+á¼3ξ2á½µÏ
+á¼3ξ2ηÏ
+á¼3ξ2Ï…2ν1
+á¼3ξ2Ï…Ï
+á¼3ξ2á½»Ï
+ἔ3ξ2υσ
+ἔ3ξ2ω.
+ἑ2ξ1á½µÏετμ
+ἑ2ξ1ηÏέτμ
+á¼Ï€Îµá½·2σ1
+á¼Ï€ÎµÎ¹2σ1
+á¼Ï€Îµá½·3σ2ατον.
+á¼Ï€ÎµÎ¹3σ2άτην.
+á¼Ï€Îµá½·3σ2αμεν.
+á¼Ï€Îµá½·3σ2ατε
+á¼Ï€ÎµÎ¹3σ2άμην.
+á¼Ï€Îµá½·3σ2ω.
+á¼Ï€Îµá½·3σ2ατο
+á¼Ï€Îµá½·3σ2ασθον.
+á¼Ï€ÎµÎ¹3σ2άμεθα.
+á¼Ï€Îµá½·3σ2ασθε.
+á¼Ï€Îµá½·3σ2αντο.
+á¼Ï€Îµá½·3σ2θ
+á¼Ï€ÎµÎ¹3σ2θ
+á¼Ï€Îµ2κ1τεί
+á¼Ï€á½³2κ1τει
+á¼Ï€Îµ2κ1Ï„Ï
+á¼Ï€á½³2κ1Ï„Ï
+á¼Ï€Îµ2ξ1
+á¼Ï€Îµ2σ1β
+á¼Ï€Î¹Ï€Ïá½¹2σ1θ
+á¼Ï€Î¹Ï€Ïο2σ1θ
+á¼Ï€Î¹ÏƒÏ…2ν1
+á¼2σ1
+á¼3σ2άω
+á¼3σ2ημ
+á¼3σ2θ
+á¼4σ3θέσ
+á¼3σ2ιγ
+á¼3σ2κ
+á¼4σ3κά
+á¼4σ3κα
+á¼3σ2μὲν.
+á¼3σ2μέν.
+á¼3σ2Ï„
+á¼3σ2όμεθα
+á¼3σ2οίμην
+á¼3σ2όμ
+á¼3σ2ομ
+á¼3σ2οῦ
+á¼3σ2ουoxia
+á¼3σ2Ï…
+á¼3σ2á½»
+á¼Ïƒá½»2ν1
+á¼ÏƒÏ…2ν1
+á¼3σ2χ
+á¼4σ3χέ
+á¼3σ2á½½
+á¼3σ2ω
+ἔ2σ1οπ
+εá½Îµ2ξ1
+εá½Îµ3ξ2á½·
+εá½Îµ3ξ2ι
+εá½Ï€Ïá½¹2σ1
+εá½Ï€Ïο2σ1
+εá½Ïƒá½»2ν1
+εá½ÏƒÏ…2ν1
+εá½Î¾á½»2ν1
+εá½Î¾Ï…2ν1
+á¼Ï‰2σ1φ
+ἤ2ν1οψ.
+ἤ2ν1οπ
+ἠ2ν1όπ
+.θεμι2σ1κÏ
+.θεό2σ1δ
+.θεο2σ1δ
+.θεοι2σ1εχθÏ
+.θη2Ï1αγÏ
+.θυο2σ1κ
+.καθυπε2Ï1
+.καλω2σ1οÏ
+.καλω2σ1á½¹Ï
+.κα2ν1είς.
+.κα2ν1εὶς.
+.κα2ν1είσ.
+.κα2ν1εὶσ.
+.κα2ν1εν
+.κα2ν1έν
+.καταδυ2σ1ωπ
+.κατεδυ2σ1ώπ
+.κατει2σ1
+.κατε2ν1αί
+.κατε2ν1ή
+.κατε2ξ1α2ν1ί
+.κατε2ξ1α2ν1έσ
+.κεÏα2σ1φ
+.κÏá½±2σ1Ï€
+.κÏα2σ1Ï€
+.κυνό2σ1α
+.κυνό2σ1β
+.κυνο2σ1β
+.κυνό2σ1ο
+.κυνο2σ1ο
+.κυνο2σ1φ
+.μελα2ν1άγ
+.μελα2ν1αγ
+.μελα2ν1άε
+.μελα2ν1αέ
+.μελα2ν1αθ
+.μελα2ν1αιγ
+.μελα2ν1αυγ
+.μελα2ν1είμ
+.μελα2ν1εῖμ
+.μελά2ν1ιππ
+.μελα2ν1ίππ
+.μελα2ν1όμμ
+.μελα2ν1ομμ
+.μελά2ν1οσσ
+.μελα2ν1όσσ
+.μελά2ν1οστ
+.μελα2ν1όστ
+.μελά2ν1ουÏ
+.μελα2ν1ούÏ
+.μελα2ν1ουÏ
+.μελά2ν1υ
+.μελα2ν1ύ
+.μετε2ξ1α
+.μετε2ξ1έ
+.μετε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ν2εώ
+.ξυ3ν2εῶ
+.ξυ2ν1ῆκ
+.ξύ2ν1ι
+.ξυ2ν1ί
+οἱο2ν1εί.
+οἱο2ν1εὶ.
+οἱό2σ1
+οἰ2σ1πώτ
+οἰ2σ1πωτ
+á½Î»Î¿2ν1έν.
+á½Î»Î¿2ν1ὲν.
+á½Ï€Ï‰2σ1
+ὅ2σ1γε.
+á½ÏƒÎ¿2ν1ῶν.
+á½…2σ1πεÏ.
+ὅ2σ1τις
+οἷ2σ1τισι
+οὕ2σ1τινας
+ἧ2σ1τινος
+αἷ2σ1τισι
+ἅ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ν2ός.
+.πα3ν2ὸς.
+.πα3ν2όσ.
+.πα3ν2ὸσ.
+.πα3ν2ί.
+.πα3ν2ὶ.
+.πάνα.
+.πα3ν2ῶν.
+.πα3ν2ικ
+.πα3ν2ίσδ
+.πα3ν2ισδ
+.πα3ν2οῦ.
+.πα3ν2ῷ.
+.πα3ν2ό.
+.πα3ν2ὸ.
+.πα3ν2όν.
+.πα3ν2ὸν.
+.πα3ν2έ.
+.πα3ν2ὲ.
+.πα3ν2οί.
+.πα3ν2οὶ.
+.πα3ν2οῖς.
+.πα3ν2οῖσ.
+.πα3ν2ούς.
+.πα3ν2οὺς.
+.πα3ν2ούσ.
+.πα3ν2οὺσ.
+.παÏα2ν1ίσχ
+.παÏεί2σ1
+.παÏει2σ1
+.παÏε2κ1λ
+.παÏε2κ1Ï„Ï
+.παÏε2ν1εῖ
+.παÏε2ν1ο
+.παÏε2ξ1
+.παÏá½³2ξ1
+παÏá½³3ξ2ω.
+παÏá½³3ξ2εις.
+παÏá½³3ξ2εισ.
+παÏá½³3ξ2ει.
+παÏá½³3ξ2ετον.
+παÏε3ξ2έτην.
+παÏá½³3ξ2ομεν.
+παÏá½³3ξ2ετε.
+παÏá½³3ξ2ουσι.
+παÏá½³3ξ2ομαι
+παÏá½³3ξ2ῃ
+παÏá½³3ξ2εται.
+παÏá½³3ξ2εσθον.
+παÏε3ξ2όμεθα.
+παÏá½³3ξ2εσθε.
+παÏá½³3ξ2ονται.
+.πλεο2ν1έ
+.πλεο2ν1ε
+.Ï€Ïοει2σ1
+.Ï€Ïοε2κ1
+.Ï€Ïοε2ν1
+.Ï€Ïοε2ξ1
+.Ï€Ïοέ2ξ1
+.Ï€Ïο2σ1
+.Ï€Ïο3σ2άβ
+.Ï€Ïο3σ2αβ
+.Ï€Ïοσει2σ1
+.Ï€Ïο3σ2εί
+.Ï€Ïο3σ2έσει
+.Ï€Ïο3σ2εσεί
+.Ï€Ïοσε2ν1
+.Ï€Ïοσε2ξ1
+.Ï€Ïá½¹3σ2θι
+.Ï€Ïο3σ2θί
+.Ï€Ïο4σ3θιγ
+.Ï€Ïá½¹3σ2κοπ
+.Ï€Ïο3σ2κόπ
+.Ï€Ïο3σ2τασ
+.Ï€Ïο3σ2τάτ
+.Ï€Ïο3σ2τατ
+.Ï€Ïο3σ2ταυ
+.Ï€Ïο3σ2τεί
+.Ï€Ïο3σ2τεν
+.Ï€Ïο3σ2τέν
+.Ï€Ïο3σ2τεÏν
+.Ï€Ïá½¹3σ2τεÏν
+.Ï€Ïο3σ2Ï„á½³Ïν
+.Ï€Ïο3σ2τήσ
+.Ï€Ïο3σ2τόμ
+.Ï€Ïο3σ2τομ
+.Ï€Ïá½¹3σ2τῳ
+.Ï€Ïο3σ2Ï„á¿´
+.Ï€Ïο3σ2υγ
+.Ï€Ïο3σ2υμ
+.Ï€Ïο3σ2Ï…2ν1
+.Ï€Ïá½¹3σ2φαγμ
+.Ï€Ïο3σ2φάγμ
+.Ï€Ïο3σ2φάζ
+.Ï€Ïο3σ2φάττ
+.Ï€Ïá½¹3σ2χημ
+.Ï€Ïο3σ2χήμ
+.Ï€Ïá½¹3σ2ω.
+.Ï€Ïá½¹3σ2ωθεν.
+.Ï€Ïο3σ2ώτ
+.Ï€Ïο3σ2ωτ
+.Ï€Ïοϋπε2ξ1
+.πυ2Ï1άγ
+.πυ2Ï1αγ
+.πυ2Ï1αίθ
+.πυ2Ï1αιθ
+.πυ2Ï1ῆθ
+.πυ2Ï1ηθ
+.πυ2Ï1ήθ
+.πυ2Ï1ακ
+.πύ2Ï1αυ
+.πυ2Ï1αύ
+.πυ2Ï1αυ
+.πυ2Ï1ήνεμ
+.πυ2Ï1ηνέμ
+.πυ2Ï1ωπ
+.σελα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σ2μό
+.Ï„Ïι3σ2μο
+.Ï„Ïι3σ2μῶ
+.Ï„Ïι3σ2Ï€
+.Ï„Ïá½·3σ2Ï„
+.Ï„Ïι3σ2Ï„
+.Ï„Ïι3σ2á½½
+.Ï„Ïι3σ2ω
+ὑο2σ1κ
+ὑπεί2σ1
+ὑπει2σ1
+ὑπεί3σ2ας
+ὑπεί3σ2ασ
+ὑπεί3σ2αν
+ὑπει3σ2άν
+ὑπει3σ2άσ
+ὑπε2κ1λαμ
+ὑπε2κ1λήψ
+ὑπε2κ1τ
+ὑπε2ν1
+ὑπε2ξ1
+ὑπε2Ï1
+ὑπέ2Ï1
+ὑπέ3Ï2α.
+ὑπέ3Ï2ης.
+ὑπέ3Ï2ησ.
+ὑπέ3Ï2á¾³.
+ὑπέ3Ï2αν.
+ὑπέ3Ï2αι.
+ὑπε3Ï2ῶν.
+ὑπέ3Ï2αις.
+ὑπέ3Ï2αισ.
+ὑπέ3Ï2ας.
+ὑπέ3Ï2ασ.
+ὑπε3Ï2εθ
+ὑπε3Ï2έθ
+ὑπε3Ï2εί
+ὑπέ3Ï2υθ
+ὑπε3Ï2ύθ
+ὑπε3Ï2υθ
+ὑπεÏε2κ1τε
+ὑπεÏε2κ1Ï„á½·
+ὑπε3Ï2έπτ
+ὑπε3Ï2επτ
+ὑπε3Ï2έψ
+ὑπε3Ï2εψ
+ὑπε3Ï2έω
+ὑπε3Ï2ῶ
+ὑπε3Ï2έε
+ὑπε3Ï2εῖς.
+ὑπε3Ï2εῖσ.
+ὑπε3Ï2εῖ.
+ὑπε3Ï2έο
+ὑπε3Ï2οῦ
+ὑπε3Ï2εῖτ
+ὑπε3Ï2á½½
+ὑπε3Ï2ω
+ὕ2σ1Ï„Ï
+ὑ2σ1Ï„Ï
+.φαε2σ1φ
+.φω2σ1φ
+.χαÏι2σ1ανδÏ
+.χαÏι2σ1άνδÏ
+.χει2Ï1άγ
+.χει2Ï1αγ
+.χει2Ï1απ
+.χει2Ï1αψ
+.χει2Ï1ου
+.χει2Ï1ῶν
+.χει2Ï1άν
+.χει2Ï1αν
+.χη2ν1ναλ
+ὡ2σ1α2ν1εί.
+ὡ2σ1α2ν1εὶ.
+ὡ2σ1αύτως.
+ὡ2σ1αύτωσ.
+ὡ2σ1εί.
+ὡ2σ1εὶ.
+á½¥2σ1πεÏ.
+ὡ2σ1πε2Ï1εί.
+ὡ2σ1πε2Ï1εὶ.
+ὥ2σ1τε
+ι2σ1χίλιοι.
+ι2σ1χιλίων.
+ι2σ1χιλίοις.
+ι2σ1χιλίοισ.
+ι2σ1χιλίους.
+ι2σ1χιλίουσ.
+ι2σ1χίλιαι.
+ι2σ1χιλίαις.
+ι2σ1χιλίαισ.
+ι2σ1χιλίας.
+ι2σ1χιλίασ.
+ι2σ1χίλια.
+ι2σ1μύÏιοι.
+ι2σ1μυÏίων.
+ι2σ1μυÏίοις.
+ι2σ1μυÏίοισ.
+ι2σ1μυÏίους.
+ι2σ1μυÏίουσ.
+ι2σ1μύÏιαι.
+ι2σ1μυÏίαις.
+ι2σ1μυÏίαισ.
+ι2σ1μυÏίας.
+ι2σ1μυÏίασ.
+ι2σ1μύÏια.
+ι2σ1χιλιοστ
+ι2σ1μυÏιοστ
+ι2σ1χιλιάκις.
+ι2σ1χιλιάκισ.
+ι2σ1μυÏιάκις.
+ι2σ1μυÏιάκισ.
+}
+
+% end pattern data
+
diff --git a/Master/texmf-dist/tex/context/patterns/lang-ca.pat b/Master/texmf-dist/tex/context/patterns/lang-ca.pat
index cedc3cf3c2d..4461e94f8ce 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-ca.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-ca.pat
@@ -115,134 +115,134 @@
1zi
1zo
1zu
-1b[eacute]
-1b[iacute]
-1b[oacute]
-1b[uacute]
-1b[agrave]
-1b[egrave]
-1b[ograve]
-1c[eacute]
-1c[iacute]
-1c[oacute]
-1c[uacute]
-1c[agrave]
-1c[egrave]
-1c[ograve]
-1[ccedilla]o
-1[ccedilla]a
-1[ccedilla]u
-1[ccedilla][oacute]
-1[ccedilla][uacute]
-1[ccedilla][agrave]
-1[ccedilla][ograve]
-1d[eacute]
-1d[iacute]
-1d[oacute]
-1d[uacute]
-1d[agrave]
-1d[egrave]
-1d[ograve]
-1f[eacute]
-1f[iacute]
-1f[oacute]
-1f[uacute]
-1f[agrave]
-1f[egrave]
-1f[ograve]
-1g[eacute]
-1g[iacute]
-1g[oacute]
-1g[uacute]
-1g[agrave]
-1g[egrave]
-1g[ograve]
-1g[udiaeresis]
-1h[eacute]
-1h[iacute]
-1h[oacute]
-1h[uacute]
-1h[agrave]
-1h[egrave]
-1h[ograve]
-1j[eacute]
-1j[iacute]
-1j[oacute]
-1j[uacute]
-1j[agrave]
-1j[egrave]
-1j[ograve]
-1l[eacute]
-1l[iacute]
-1l[oacute]
-1l[uacute]
-1l[agrave]
-1l[egrave]
-1l[ograve]
-1m[eacute]
-1m[iacute]
-1m[oacute]
-1m[uacute]
-1m[agrave]
-1m[egrave]
-1m[ograve]
-1n[eacute]
-1n[iacute]
-1n[oacute]
-1n[uacute]
-1n[agrave]
-1n[egrave]
-1n[ograve]
-1p[eacute]
-1p[iacute]
-1p[oacute]
-1p[uacute]
-1p[agrave]
-1p[egrave]
-1p[ograve]
-1q[udiaeresis]
-1r[eacute]
-1r[iacute]
-1r[oacute]
-1r[uacute]
-1r[agrave]
-1r[egrave]
-1r[ograve]
-1s[eacute]
-1s[iacute]
-1s[oacute]
-1s[uacute]
-1s[agrave]
-1s[egrave]
-1s[ograve]
-1t[eacute]
-1t[iacute]
-1t[oacute]
-1t[uacute]
-1t[agrave]
-1t[egrave]
-1t[ograve]
-1v[eacute]
-1v[iacute]
-1v[oacute]
-1v[uacute]
-1v[agrave]
-1v[egrave]
-1v[ograve]
-1x[eacute]
-1x[iacute]
-1x[oacute]
-1x[uacute]
-1x[agrave]
-1x[egrave]
-1x[ograve]
-1z[eacute]
-1z[iacute]
-1z[oacute]
-1z[uacute]
-1z[agrave]
-1z[egrave]
-1z[ograve]
+1bé
+1bí
+1bó
+1bú
+1bà
+1bè
+1bò
+1cé
+1cí
+1có
+1cú
+1cà
+1cè
+1cò
+1ço
+1ça
+1çu
+1çó
+1çú
+1çà
+1çò
+1dé
+1dí
+1dó
+1dú
+1dà
+1dè
+1dò
+1fé
+1fí
+1fó
+1fú
+1fà
+1fè
+1fò
+1gé
+1gí
+1gó
+1gú
+1gà
+1gè
+1gò
+1gü
+1hé
+1hí
+1hó
+1hú
+1hà
+1hè
+1hò
+1jé
+1jí
+1jó
+1jú
+1jà
+1jè
+1jò
+1lé
+1lí
+1ló
+1lú
+1là
+1lè
+1lò
+1mé
+1mí
+1mó
+1mú
+1mà
+1mè
+1mò
+1né
+1ní
+1nó
+1nú
+1nà
+1nè
+1nò
+1pé
+1pí
+1pó
+1pú
+1pà
+1pè
+1pò
+1qü
+1ré
+1rí
+1ró
+1rú
+1rà
+1rè
+1rò
+1sé
+1sí
+1só
+1sú
+1sà
+1sè
+1sò
+1té
+1tí
+1tó
+1tú
+1tà
+1tè
+1tò
+1vé
+1ví
+1vó
+1vú
+1và
+1vè
+1vò
+1xé
+1xí
+1xó
+1xú
+1xà
+1xè
+1xò
+1zé
+1zí
+1zó
+1zú
+1zà
+1zè
+1zò
3l2la
1l2le
1l2li
@@ -313,104 +313,104 @@
1n2yi
1n2yo
1n2yu
-1l2l[eacute]
-1l2l[iacute]
-1l2l[oacute]
-1l2l[uacute]
-1l2l[agrave]
-1l2l[egrave]
-1l2l[ograve]
-1b2l[eacute]
-1b2l[iacute]
-1b2l[oacute]
-1b2l[uacute]
-1b2l[agrave]
-1b2l[egrave]
-1b2l[ograve]
-1b2r[eacute]
-1b2r[iacute]
-1b2r[oacute]
-1b2r[uacute]
-1b2r[agrave]
-1b2r[egrave]
-1b2r[ograve]
-1c2l[eacute]
-1c2l[iacute]
-1c2l[oacute]
-1c2l[uacute]
-1c2l[agrave]
-1c2l[egrave]
-1c2l[ograve]
-1c2r[eacute]
-1c2r[iacute]
-1c2r[oacute]
-1c2r[uacute]
-1c2r[agrave]
-1c2r[egrave]
-1c2r[ograve]
-1d2r[eacute]
-1d2r[iacute]
-1d2r[oacute]
-1d2r[uacute]
-1d2r[agrave]
-1d2r[egrave]
-1d2r[ograve]
-1f2l[eacute]
-1f2l[iacute]
-1f2l[oacute]
-1f2l[uacute]
-1f2l[agrave]
-1f2l[egrave]
-1f2l[ograve]
-1f2r[eacute]
-1f2r[iacute]
-1f2r[oacute]
-1f2r[uacute]
-1f2r[agrave]
-1f2r[egrave]
-1f2r[ograve]
-1g2l[eacute]
-1g2l[iacute]
-1g2l[oacute]
-1g2l[uacute]
-1g2l[agrave]
-1g2l[egrave]
-1g2l[ograve]
-1g2r[eacute]
-1g2r[iacute]
-1g2r[oacute]
-1g2r[uacute]
-1g2r[agrave]
-1g2r[egrave]
-1g2r[ograve]
-1p2l[eacute]
-1p2l[iacute]
-1p2l[oacute]
-1p2l[uacute]
-1p2l[agrave]
-1p2l[egrave]
-1p2l[ograve]
-1p2r[eacute]
-1p2r[iacute]
-1p2r[oacute]
-1p2r[uacute]
-1p2r[agrave]
-1p2r[egrave]
-1p2r[ograve]
-1t2r[eacute]
-1t2r[iacute]
-1t2r[oacute]
-1t2r[uacute]
-1t2r[agrave]
-1t2r[egrave]
-1t2r[ograve]
-1n2y[eacute]
-1n2y[iacute]
-1n2y[oacute]
-1n2y[uacute]
-1n2y[agrave]
-1n2y[egrave]
-1n2y[ograve]
+1l2lé
+1l2lí
+1l2ló
+1l2lú
+1l2là
+1l2lè
+1l2lò
+1b2lé
+1b2lí
+1b2ló
+1b2lú
+1b2là
+1b2lè
+1b2lò
+1b2ré
+1b2rí
+1b2ró
+1b2rú
+1b2rà
+1b2rè
+1b2rò
+1c2lé
+1c2lí
+1c2ló
+1c2lú
+1c2là
+1c2lè
+1c2lò
+1c2ré
+1c2rí
+1c2ró
+1c2rú
+1c2rà
+1c2rè
+1c2rò
+1d2ré
+1d2rí
+1d2ró
+1d2rú
+1d2rà
+1d2rè
+1d2rò
+1f2lé
+1f2lí
+1f2ló
+1f2lú
+1f2là
+1f2lè
+1f2lò
+1f2ré
+1f2rí
+1f2ró
+1f2rú
+1f2rà
+1f2rè
+1f2rò
+1g2lé
+1g2lí
+1g2ló
+1g2lú
+1g2là
+1g2lè
+1g2lò
+1g2ré
+1g2rí
+1g2ró
+1g2rú
+1g2rà
+1g2rè
+1g2rò
+1p2lé
+1p2lí
+1p2ló
+1p2lú
+1p2là
+1p2lè
+1p2lò
+1p2ré
+1p2rí
+1p2ró
+1p2rú
+1p2rà
+1p2rè
+1p2rò
+1t2ré
+1t2rí
+1t2ró
+1t2rú
+1t2rà
+1t2rè
+1t2rò
+1n2yé
+1n2yí
+1n2yó
+1n2yú
+1n2yà
+1n2yè
+1n2yò
a1a
a1e
a1o
@@ -426,107 +426,107 @@ o1o
u1a
u1e
u1o
-a1[eacute]
-a1[iacute]
-a1[oacute]
-a1[uacute]
-a1[agrave]
-a1[egrave]
-a1[ograve]
-a1[idiaeresis]
-a1[udiaeresis]
-e1[eacute]
-e1[iacute]
-e1[oacute]
-e1[uacute]
-e1[agrave]
-e1[egrave]
-e1[ograve]
-e1[idiaeresis]
-e1[udiaeresis]
-i1[eacute]
-i1[iacute]
-i1[oacute]
-i1[uacute]
-i1[agrave]
-i1[egrave]
-i1[ograve]
-i1[idiaeresis]
-i1[udiaeresis]
-o1[eacute]
-o1[iacute]
-o1[oacute]
-o1[uacute]
-o1[agrave]
-o1[egrave]
-o1[ograve]
-o1[idiaeresis]
-o1[udiaeresis]
-u1[eacute]
-u1[iacute]
-u1[oacute]
-u1[uacute]
-u1[agrave]
-u1[egrave]
-u1[ograve]
-u1[idiaeresis]
-u1[udiaeresis]
-[eacute]1a
-[eacute]1e
-[eacute]1o
-[eacute]1[idiaeresis]
-[eacute]1[udiaeresis]
-[iacute]1a
-[iacute]1e
-[iacute]1o
-[iacute]1[idiaeresis]
-[iacute]1[udiaeresis]
-[oacute]1a
-[oacute]1e
-[oacute]1o
-[oacute]1[idiaeresis]
-[oacute]1[udiaeresis]
-[uacute]1a
-[uacute]1e
-[uacute]1o
-[uacute]1[idiaeresis]
-[uacute]1[udiaeresis]
-[agrave]1a
-[agrave]1e
-[agrave]1o
-[agrave]1[idiaeresis]
-[agrave]1[udiaeresis]
-[egrave]1a
-[egrave]1e
-[egrave]1o
-[egrave]1[idiaeresis]
-[egrave]1[udiaeresis]
-[ograve]1a
-[ograve]1e
-[ograve]1o
-[ograve]1[idiaeresis]
-[ograve]1[udiaeresis]
-[idiaeresis]1a
-[idiaeresis]1e
-[idiaeresis]1o
-[idiaeresis]1[eacute]
-[idiaeresis]1[iacute]
-[idiaeresis]1[oacute]
-[idiaeresis]1[uacute]
-[idiaeresis]1[agrave]
-[idiaeresis]1[egrave]
-[idiaeresis]1[ograve]
-[idiaeresis]1i
-[udiaeresis]1a
-[udiaeresis]1e
-[udiaeresis]1o
-[udiaeresis]1[eacute]
-[udiaeresis]1[iacute]
-[udiaeresis]1[oacute]
-[udiaeresis]1[uacute]
-[udiaeresis]1[agrave]
-[udiaeresis]1[egrave]
-[udiaeresis]1[ograve]
+a1é
+a1í
+a1ó
+a1ú
+a1à
+a1è
+a1ò
+a1ï
+a1ü
+e1é
+e1í
+e1ó
+e1ú
+e1à
+e1è
+e1ò
+e1ï
+e1ü
+i1é
+i1í
+i1ó
+i1ú
+i1à
+i1è
+i1ò
+i1ï
+i1ü
+o1é
+o1í
+o1ó
+o1ú
+o1à
+o1è
+o1ò
+o1ï
+o1ü
+u1é
+u1í
+u1ó
+u1ú
+u1à
+u1è
+u1ò
+u1ï
+u1ü
+é1a
+é1e
+é1o
+é1ï
+é1ü
+í1a
+í1e
+í1o
+í1ï
+í1ü
+ó1a
+ó1e
+ó1o
+ó1ï
+ó1ü
+ú1a
+ú1e
+ú1o
+ú1ï
+ú1ü
+à1a
+à1e
+à1o
+à1ï
+à1ü
+è1a
+è1e
+è1o
+è1ï
+è1ü
+ò1a
+ò1e
+ò1o
+ò1ï
+ò1ü
+ï1a
+ï1e
+ï1o
+ï1é
+ï1í
+ï1ó
+ï1ú
+ï1à
+ï1è
+ï1ò
+ï1i
+ü1a
+ü1e
+ü1o
+ü1é
+ü1í
+ü1ó
+ü1ú
+ü1à
+ü1è
+ü1ò
a1i2a
a1i2e
a1i2o
@@ -572,185 +572,185 @@ u1u2e
u1u2i
u1u2o
u1u2u
-a1i2[eacute]
-a1i2[iacute]
-a1i2[oacute]
-a1i2[uacute]
-a1i2[agrave]
-a1i2[egrave]
-a1i2[ograve]
-a1u2[eacute]
-a1u2[iacute]
-a1u2[oacute]
-a1u2[uacute]
-a1u2[agrave]
-a1u2[egrave]
-a1u2[ograve]
-e1i2[eacute]
-e1i2[iacute]
-e1i2[oacute]
-e1i2[uacute]
-e1i2[agrave]
-e1i2[egrave]
-e1i2[ograve]
-e1u2[eacute]
-e1u2[iacute]
-e1u2[oacute]
-e1u2[uacute]
-e1u2[agrave]
-e1u2[egrave]
-e1u2[ograve]
-i1i2[eacute]
-i1i2[iacute]
-i1i2[oacute]
-i1i2[uacute]
-i1i2[agrave]
-i1i2[egrave]
-i1i2[ograve]
-i1u2[eacute]
-i1u2[iacute]
-i1u2[oacute]
-i1u2[uacute]
-i1u2[agrave]
-i1u2[egrave]
-i1u2[ograve]
-o1i2[eacute]
-o1i2[iacute]
-o1i2[oacute]
-o1i2[uacute]
-o1i2[agrave]
-o1i2[egrave]
-o1i2[ograve]
-o1u2[eacute]
-o1u2[iacute]
-o1u2[oacute]
-o1u2[uacute]
-o1u2[agrave]
-o1u2[egrave]
-o1u2[ograve]
-u1i2[eacute]
-u1i2[iacute]
-u1i2[oacute]
-u1i2[uacute]
-u1i2[agrave]
-u1i2[egrave]
-u1i2[ograve]
-u1u2[eacute]
-u1u2[iacute]
-u1u2[oacute]
-u1u2[uacute]
-u1u2[agrave]
-u1u2[egrave]
-u1u2[ograve]
-[eacute]1i2a
-[eacute]1i2e
-[eacute]1i2o
-[eacute]1i2u
-[eacute]1u2a
-[eacute]1u2e
-[eacute]1u2o
-[eacute]1u2i
-[eacute]1u2u
-[iacute]1i2a
-[iacute]1i2e
-[iacute]1i2o
-[iacute]1i2u
-[iacute]1u2a
-[iacute]1u2e
-[iacute]1u2o
-[iacute]1u2i
-[iacute]1u2u
-[oacute]1i2a
-[oacute]1i2e
-[oacute]1i2o
-[oacute]1i2u
-[oacute]1u2a
-[oacute]1u2e
-[oacute]1u2o
-[oacute]1u2i
-[oacute]1u2u
-[uacute]1i2a
-[uacute]1i2e
-[uacute]1i2o
-[uacute]1i2u
-[uacute]1u2a
-[uacute]1u2e
-[uacute]1u2o
-[uacute]1u2i
-[uacute]1u2u
-[agrave]1i2a
-[agrave]1i2e
-[agrave]1i2o
-[agrave]1i2u
-[agrave]1u2a
-[agrave]1u2e
-[agrave]1u2o
-[agrave]1u2i
-[agrave]1u2u
-[egrave]1i2a
-[egrave]1i2e
-[egrave]1i2o
-[egrave]1i2u
-[egrave]1u2a
-[egrave]1u2e
-[egrave]1u2o
-[egrave]1u2i
-[egrave]1u2u
-[ograve]1i2a
-[ograve]1i2e
-[ograve]1i2o
-[ograve]1i2u
-[ograve]1u2a
-[ograve]1u2e
-[ograve]1u2o
-[ograve]1u2i
-[ograve]1u2u
-[idiaeresis]1i2a
-[idiaeresis]1i2e
-[idiaeresis]1i2o
-[idiaeresis]1i2[eacute]
-[idiaeresis]1i2[iacute]
-[idiaeresis]1i2[oacute]
-[idiaeresis]1i2[uacute]
-[idiaeresis]1i2[agrave]
-[idiaeresis]1i2[egrave]
-[idiaeresis]1i2[ograve]
-[idiaeresis]1i2u
-[idiaeresis]1u2a
-[idiaeresis]1u2e
-[idiaeresis]1u2o
-[idiaeresis]1u2[eacute]
-[idiaeresis]1u2[iacute]
-[idiaeresis]1u2[oacute]
-[idiaeresis]1u2[uacute]
-[idiaeresis]1u2[agrave]
-[idiaeresis]1u2[egrave]
-[idiaeresis]1u2[ograve]
-[idiaeresis]1u2i
-[idiaeresis]1u2u
-[udiaeresis]1i2a
-[udiaeresis]1i2e
-[udiaeresis]1i2o
-[udiaeresis]1i2[eacute]
-[udiaeresis]1i2[iacute]
-[udiaeresis]1i2[oacute]
-[udiaeresis]1i2[uacute]
-[udiaeresis]1i2[agrave]
-[udiaeresis]1i2[egrave]
-[udiaeresis]1i2[ograve]
-[udiaeresis]1i2u
-[udiaeresis]1u2a
-[udiaeresis]1u2e
-[udiaeresis]1u2o
-[udiaeresis]1u2[eacute]
-[udiaeresis]1u2[iacute]
-[udiaeresis]1u2[oacute]
-[udiaeresis]1u2[uacute]
-[udiaeresis]1u2[agrave]
-[udiaeresis]1u2[egrave]
-[udiaeresis]1u2[ograve]
-[udiaeresis]1u2i
-[udiaeresis]1u2u
+a1i2é
+a1i2í
+a1i2ó
+a1i2ú
+a1i2à
+a1i2è
+a1i2ò
+a1u2é
+a1u2í
+a1u2ó
+a1u2ú
+a1u2à
+a1u2è
+a1u2ò
+e1i2é
+e1i2í
+e1i2ó
+e1i2ú
+e1i2à
+e1i2è
+e1i2ò
+e1u2é
+e1u2í
+e1u2ó
+e1u2ú
+e1u2à
+e1u2è
+e1u2ò
+i1i2é
+i1i2í
+i1i2ó
+i1i2ú
+i1i2à
+i1i2è
+i1i2ò
+i1u2é
+i1u2í
+i1u2ó
+i1u2ú
+i1u2à
+i1u2è
+i1u2ò
+o1i2é
+o1i2í
+o1i2ó
+o1i2ú
+o1i2à
+o1i2è
+o1i2ò
+o1u2é
+o1u2í
+o1u2ó
+o1u2ú
+o1u2à
+o1u2è
+o1u2ò
+u1i2é
+u1i2í
+u1i2ó
+u1i2ú
+u1i2à
+u1i2è
+u1i2ò
+u1u2é
+u1u2í
+u1u2ó
+u1u2ú
+u1u2à
+u1u2è
+u1u2ò
+é1i2a
+é1i2e
+é1i2o
+é1i2u
+é1u2a
+é1u2e
+é1u2o
+é1u2i
+é1u2u
+í1i2a
+í1i2e
+í1i2o
+í1i2u
+í1u2a
+í1u2e
+í1u2o
+í1u2i
+í1u2u
+ó1i2a
+ó1i2e
+ó1i2o
+ó1i2u
+ó1u2a
+ó1u2e
+ó1u2o
+ó1u2i
+ó1u2u
+ú1i2a
+ú1i2e
+ú1i2o
+ú1i2u
+ú1u2a
+ú1u2e
+ú1u2o
+ú1u2i
+ú1u2u
+à1i2a
+à1i2e
+à1i2o
+à1i2u
+à1u2a
+à1u2e
+à1u2o
+à1u2i
+à1u2u
+è1i2a
+è1i2e
+è1i2o
+è1i2u
+è1u2a
+è1u2e
+è1u2o
+è1u2i
+è1u2u
+ò1i2a
+ò1i2e
+ò1i2o
+ò1i2u
+ò1u2a
+ò1u2e
+ò1u2o
+ò1u2i
+ò1u2u
+ï1i2a
+ï1i2e
+ï1i2o
+ï1i2é
+ï1i2í
+ï1i2ó
+ï1i2ú
+ï1i2à
+ï1i2è
+ï1i2ò
+ï1i2u
+ï1u2a
+ï1u2e
+ï1u2o
+ï1u2é
+ï1u2í
+ï1u2ó
+ï1u2ú
+ï1u2à
+ï1u2è
+ï1u2ò
+ï1u2i
+ï1u2u
+ü1i2a
+ü1i2e
+ü1i2o
+ü1i2é
+ü1i2í
+ü1i2ó
+ü1i2ú
+ü1i2à
+ü1i2è
+ü1i2ò
+ü1i2u
+ü1u2a
+ü1u2e
+ü1u2o
+ü1u2é
+ü1u2í
+ü1u2ó
+ü1u2ú
+ü1u2à
+ü1u2è
+ü1u2ò
+ü1u2i
+ü1u2u
.hi2a
.hi2e
.hi2o
@@ -759,22 +759,22 @@ u1u2[ograve]
.hu2e
.hu2i
.hu2o
-.i2[egrave]
-.i2[ograve]
-.u2[egrave]
-.u2[ograve]
-.hi2[eacute]
-.hi2[oacute]
-.hi2[uacute]
-.hi2[agrave]
-.hi2[egrave]
-.hi2[ograve]
-.hu2[eacute]
-.hu2[iacute]
-.hu2[oacute]
-.hu2[agrave]
-.hu2[egrave]
-.hu2[ograve]
+.i2è
+.i2ò
+.u2è
+.u2ò
+.hi2é
+.hi2ó
+.hi2ú
+.hi2à
+.hi2è
+.hi2ò
+.hu2é
+.hu2í
+.hu2ó
+.hu2à
+.hu2è
+.hu2ò
gu2a
gu2e
gu2i
@@ -783,28 +783,28 @@ qu2a
qu2e
qu2i
qu2o
-gu2[eacute]
-gu2[iacute]
-gu2[oacute]
-gu2[agrave]
-gu2[egrave]
-gu2[ograve]
-qu2[eacute]
-qu2[iacute]
-qu2[oacute]
-qu2[agrave]
-qu2[egrave]
-qu2[ograve]
-g[udiaeresis]2e
-g[udiaeresis]2[eacute]
-g[udiaeresis]2[iacute]
-g[udiaeresis]2[egrave]
-g[udiaeresis]2i
-q[udiaeresis]2e
-q[udiaeresis]2[eacute]
-q[udiaeresis]2[iacute]
-q[udiaeresis]2[egrave]
-q[udiaeresis]2i
+gu2é
+gu2í
+gu2ó
+gu2à
+gu2è
+gu2ò
+qu2é
+qu2í
+qu2ó
+qu2à
+qu2è
+qu2ò
+gü2e
+gü2é
+gü2í
+gü2è
+gü2i
+qü2e
+qü2é
+qü2í
+qü2è
+qü2i
a1isme.
e1isme.
i1isme.
@@ -859,8 +859,8 @@ g2no
p2si
p2se
p2neu
-g2n[ograve]
-p2s[iacute]
+g2nò
+p2sí
.ch2
.th2
ein1s2tein
@@ -897,7 +897,7 @@ s3emp
s3esp
sub3a
ui3et
-o3gn[ograve]
+o3gnò
}
% end pattern data
diff --git a/Master/texmf-dist/tex/context/patterns/lang-cy.pat b/Master/texmf-dist/tex/context/patterns/lang-cy.pat
index b7e347c3657..64ac02adaa6 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-cy.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-cy.pat
@@ -880,7 +880,7 @@ ath3w
ath3y
ato2i
at3ol
-a3t[ocircumflex]
+a3tô
at3ran
atr5oc
at3rod
@@ -909,8 +909,8 @@ awn3a
awr1
awr3d
awy4r3
-3[aacute]u.
-1[acircumflex]
+3áu.
+1â
bab4i
bab5yd
b3ac
@@ -1065,7 +1065,7 @@ casg4e
3cat
ca4t3r
c3au
-c3[aacute]u
+c3áu
c1b
cd2
c1e
@@ -1490,7 +1490,7 @@ di3w4a
d4iwe
di5wen
d3iwyf
-d1[idiaeresis]
+d1ï
d3ladd
dladr3
dl3af
@@ -1761,7 +1761,7 @@ ed3ig
ed3i4n
ed3ir
ed3iw
-3ed[idiaeresis]
+3edï
2edl1
ed4lo
4edr.
@@ -2142,7 +2142,7 @@ e3wyf
2ey
e1yc
ey4en
-1[ediaeresis]
+1ë
3fa.
fab3
fab4i
@@ -2290,7 +2290,7 @@ f4in.
f3ind
fin4t
fisg4
-f2[idiaeresis]
+f2ï
fl2
fl3ad
flaf4
@@ -2619,7 +2619,7 @@ g2n
gn2i
gn3io
g4niw
-g3n[idiaeresis]1
+g3nï1
gno3e
gn2of
gn2u
@@ -2828,7 +2828,7 @@ h1au
hawe5nas
hawe5ne
hawl3
-h2[acircumflex]
+h2â
h1b2
hbl4a
h1d2
@@ -2925,8 +2925,8 @@ hig3y
hin4t
hir3
hi4wa
-h2[idiaeresis]1
-h[idiaeresis]4en
+h2ï1
+hï4en
hl2
hl4ad
hl5adw
@@ -2966,7 +2966,7 @@ h3nad
h2neg
h4new
hn4ie
-h1n[idiaeresis]1
+h1nï1
hnod3
h2nol
hn5ole
@@ -3468,7 +3468,7 @@ ir1
ir2a
ir5agl
ir3an
-ir4[aacute]f
+ir4áf
ir3b
irch3
irdy5na
@@ -3567,8 +3567,8 @@ iwyn3
2i1ym
iyn3
2i1ys
-[idiaeresis]3ae
-[idiaeresis]2i
+ï3ae
+ï2i
l1ac
lach3
2lad.
@@ -3932,7 +3932,7 @@ mdy5re
4meddia
4meddwr
4medi
-4med[idiaeresis]
+4medï
medr3
meg3n4
megni3
@@ -4027,7 +4027,7 @@ m3ne
m4ned
mn5edi
m5niau
-m3n[idiaeresis]3
+m3nï3
m2od
m3odd
mod4ig
@@ -4037,7 +4037,7 @@ m3og
m4on.
mon3a
mon4d
-m4on[idiaeresis]
+m4onï
mor2
mor3c
mordd4
@@ -4404,8 +4404,8 @@ niwl5e
niwl5o
niwl5w
ni5ydd
-n2[idiaeresis]i
-n[idiaeresis]4yc
+n2ïi
+nï4yc
n1l2
nladr3
nlin3
@@ -4457,7 +4457,7 @@ n1or
norch4
nor4f
2nos3
-n[odiaeresis]5es.
+nö5es.
np4et
n1r2
nre4o
@@ -4913,7 +4913,7 @@ o1wy
o1yc
oyw3
oy4we
-[ocircumflex]r3f
+ôr3f
p1
p2a
pab5yd
@@ -5000,7 +5000,7 @@ raed4
raeddad4
r4aen
ra5fann
-ra5f[aacute]n
+ra5fán
r4aff
rag1
ra4ge
@@ -5332,7 +5332,7 @@ rn3i
rn5iae
rn4ii
rn5iol
-r3n2[idiaeresis]1
+r3n2ï1
rn4os
rn3y
rn4yw
@@ -5368,7 +5368,7 @@ r4osf
rosg4
ros3o
2rot
-r[odiaeresis]5edi
+rö5edi
rp2
r1pa
rpar3
@@ -5510,7 +5510,7 @@ sat4a
sath4
sathraw4
s3au
-s[aacute]4it
+sá4it
s2b2
sbad4w
s4bai
@@ -5598,7 +5598,7 @@ s3ir
s3it
si4wr
s2iyn
-2s2[idiaeresis]1
+2s2ï1
2sl2
sl4au
slo3na
@@ -5824,7 +5824,7 @@ ting3
t4ino
tion4
t4iono
-t[idiaeresis]5ol.
+tï5ol.
tl3a
tl4ae
tl1e
@@ -6216,7 +6216,7 @@ wn3de
wn3di
wndr3
wn4ei
-wn4[ecircumflex]l
+wn4êl
2wn3g
wngl4
wn3in
@@ -6667,7 +6667,7 @@ yr1y
2ysa
ys3aw
2ysb
-ysb5[idiaeresis]w
+ysb5ïw
ys4bl
ysb3yd
2yse
diff --git a/Master/texmf-dist/tex/context/patterns/lang-cz.hyp b/Master/texmf-dist/tex/context/patterns/lang-cz.hyp
index 7186b068c55..2c199443973 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-cz.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-cz.hyp
@@ -44,9 +44,9 @@
\hyphenation {
koe-fi-ci-ent
koe-fi-ci-en-ty
-pro-jek-[ccaron]n[iacute]
-[uacute]hlo-p[rcaron][iacute][ccaron]-ka
-[uacute]hlo-p[rcaron][iacute][ccaron]-ky
+pro-jek-Äní
+úhlo-příÄ-ka
+úhlo-příÄ-ky
}
% end hyphenation data
diff --git a/Master/texmf-dist/tex/context/patterns/lang-cz.pat b/Master/texmf-dist/tex/context/patterns/lang-cz.pat
index 5678c80e0ff..244d070f194 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-cz.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-cz.pat
@@ -47,7 +47,7 @@
.a4de
.a4di
.a4do
-.a4d[eacute]
+.a4dé
.a4kl
.a4ko
.a4kr
@@ -58,7 +58,7 @@
.a4ri
.a4ro
.a4ry
-.a4r[aacute]
+.a4rá
.a4sa
.a4se
.a4so
@@ -79,12 +79,12 @@
.dez3
.d4na
.dne4
-.dne[scaron]4k
+.dneš4k
.d4ny
.dos4
.d4ve
-.d4v[ecaron]
-.d4v[iacute]
+.d4vÄ›
+.d4ví
.e2
.e4ch
.e4ko
@@ -106,31 +106,31 @@
.je4dl
.j4se
.j4zd
-.j[aacute]d4
+.jád4
.k2
.k4li
.k4ly
-.k[rcaron][iacute]3d
+.kří3d
.l2
.le4gr
.li3kv
.m2
.mi3st4
.moud3
-.na3[ccaron]4
+.na3Ä4
.ne3c
-.ne[ccaron]4
-.ne3[scaron]
+.neÄ4
+.ne3Å¡
.ni2t
.no4s3t
.n4vp
-.n[aacute]1
-.n[aacute][rcaron]4k
+.ná1
+.nář4k
.o2
-.o4b[eacute]
+.o4bé
.ode3
.od3l
-.od3r[aacute]
+.od3rá
.o4ka
.o4ko
.o4na
@@ -139,35 +139,35 @@
.o4no
.o4nu
.o4ny
-.o4n[ecaron]
-.o4n[iacute]
+.o4nÄ›
+.o4ní
.o4pe
.o4po
.o4se
.o4sl
.os4to
.os3t3r
-.os4t[ecaron]
-.ot3r[aacute]
+.os4tÄ›
+.ot3rá
.ot3v
-.o4t[iacute]
-.o4t[rcaron]
-.ov[ecaron]4t
+.o4tí
+.o4tÅ™
+.ově4t
.o4za
.oz3do
.o4zi
.o4zo
.o4zu
-.o4[scaron]k
-.o4[scaron]l
-.o4[zcaron]i
+.o4Å¡k
+.o4Å¡l
+.o4ži
.p2
.pa4re
-.pa3t[rcaron]
+.pa3tÅ™
.polk4l
-.po3[ccaron]4
+.po3Ä4
.p4ro
-.p4r[yacute]
+.p4rý
.p4se
.pu3b
.r2
@@ -184,15 +184,15 @@
.se3pn
.s4ke
.sk4l
-.s4k[aacute]
+.s4ká
.s4le
.s4na
.s4ny
.s4pe
.s4po
.st2
-.s4t[aacute]
-.s4[zcaron]i
+.s4tá
+.s4ži
.t2
.u2
.u4ba
@@ -203,7 +203,7 @@
.u4di
.u4do
.u4du
-.u4d[iacute]
+.u4dí
.uh4n
.uj4m
.u4ko
@@ -221,46 +221,46 @@
.up4n
.u4po
.u4pu
-.u4p[aacute]
-.u4p[ecaron]
-.u4p[iacute]
+.u4pá
+.u4pÄ›
+.u4pí
.u4ra
.u4ro
-.u4r[aacute]
+.u4rá
.us2
.u4so
.u4st
.u4sy
-.u4s[iacute]
+.u4sí
.ut2
.u4vi
.u4ze
-.u4[ccaron]e
-.u4[ccaron]i
-.u4[ccaron][iacute]
-.u4[scaron]e
-.u4[scaron]i
-.u4[scaron]k
-.u[scaron]4t
-.u4[scaron][iacute]
-.u4[zcaron]i
-.u[zcaron]4n
-.u4[zcaron]o
-.u4[zcaron][iacute]
+.u4Äe
+.u4Äi
+.u4Äí
+.u4Å¡e
+.u4Å¡i
+.u4Å¡k
+.uš4t
+.u4ší
+.u4ži
+.už4n
+.u4žo
+.u4ží
.v2
.va4dl
.v4po
.vy3
-.v4z[aacute]
-.v[yacute]1
-.v4[zcaron]i
+.v4zá
+.vý1
+.v4ži
.y4or
.y4ve
.z2
.za3
.zao3s
.zar2
-.za[ccaron]2
+.zaÄ2
.zd2
.z4di
.z4dr
@@ -268,33 +268,33 @@
.z4mn
.z4no
.z4nu
-.z4n[ecaron]
-.z4n[iacute]
+.z4nÄ›
+.z4ní
.z4pe
.z4po
-.z4t[rcaron]
+.z4tÅ™
.z4ve
.z4vi
-.[ccaron]2
-.[ccaron]4te
-.[eacute]2
-.[iacute]2
-.[oacute]2
-.[scaron]2
-.[scaron]e3t
-.[scaron]4ka
-.[scaron]4ke
-.[scaron]4ky
-.[scaron]4[tcaron]o
-.[scaron]4[tcaron][aacute]
-.[uacute]2
-.[uacute]4d[uring]
-.[zcaron]2
+.Ä2
+.Ä4te
+.é2
+.í2
+.ó2
+.Å¡2
+.Å¡e3t
+.Å¡4ka
+.Å¡4ke
+.Å¡4ky
+.Å¡4Å¥o
+.š4ťá
+.ú2
+.ú4dů
+.ž2
a1
2a.
aa3t2
ab3lon
-ab4l[yacute]
+ab4lý
ab3ri
ab4sb
ab2st
@@ -305,28 +305,28 @@ a3de
a3di
ad2la
a4dli
-a4dl[aacute]
-a4dl[eacute]
+a4dlá
+a4dlé
ad4me
ad4mu
a3do
ado4s
a3d3ra
ad3ri
-a3dr[zcaron]
+a3drž
a3du
-a4du[zcaron]
+a4duž
3a3dva
ad3vo
a3dy
-a3d[aacute]
-a3d[eacute]
-a3d[ecaron]
-a3d[iacute]
-ad4[uacute]z
-ad4[uacute][rcaron]
-a3d[uring]
-a3d[yacute]
+a3dá
+a3dé
+a3dÄ›
+a3dí
+ad4úz
+ad4úř
+a3dů
+a3dý
ae4vi
afi2a
a2g
@@ -335,7 +335,7 @@ ag4fa
a3go
ag3ro
a3gu
-a3g[aacute]
+a3gá
ah4li
ah3v
a2i
@@ -355,20 +355,20 @@ a3ko
a3kr
a3ku
a3ky
-a3k[aacute]
-a3k[eacute]
-a3k[oacute]
-a3k[uring]
-a3k[yacute]
+a3ká
+a3ké
+a3kó
+a3ků
+a3ký
al4fb
al4kl
al4tz
-al3[zcaron][iacute]
+al3ží
am4bd
am4kl
am4nu
amo3s
-am4[zcaron]i
+am4ži
a4nae
a4name
an4dt
@@ -380,16 +380,16 @@ an4sl
an4sm
an2sp
an4sv
-an4t[ccaron]
-an4[zcaron]h
+an4tÄ
+an4žh
ao4ed
ao4hm
-ao4st[rcaron]
-ao4t[ccaron]
+ao4stÅ™
+ao4tÄ
ap4r.
a4pso
ap3t
-a4p[rcaron].
+a4pÅ™.
a2r
a3ra
ar4dw
@@ -404,19 +404,19 @@ ar3st
a3ru
ar2va
a3ry
-a3r[aacute]
-a3r[oacute]
-ar3[scaron]2
-ar4[scaron]r
-a3r[uring]
-ar[uring]s3
-a3r[yacute]
+a3rá
+a3ró
+ar3Å¡2
+ar4Å¡r
+a3rů
+arůs3
+a3rý
a2s
a3sa
a3se
a3sh
a3sin
-as3n[aacute]
+as3ná
a3so
as3pi
as4tat
@@ -427,10 +427,10 @@ as3tv
a3su
a3sv
a3sy
-a3s[aacute]
-a3s[eacute]
-a3s[iacute]
-a3s[uring]
+a3sá
+a3sé
+a3sí
+a3sů
a2t
a3ta
at4ch
@@ -445,61 +445,61 @@ at3re
at3ron
at3rov
a4tru
-at4r[aacute]
+at4rá
at4th
a3tu
a3tv
a3ty
-a3t[aacute]
-a3t[eacute]
-a3t[ecaron]
-a3t[iacute]
-a3t[oacute]
-at1[rcaron]
-a4t[rcaron][iacute].
-a3t[uring]
-a3t[yacute]
+a3tá
+a3té
+a3tÄ›
+a3tí
+a3tó
+at1Å™
+a4tří.
+a3tů
+a3tý
a2u
au4gs
a3uj
auj4m
aus3t
-a3u[ccaron]
+a3uÄ
2av
av3d
av4d.
av3lo
a4vlu
-a4vl[iacute]
+a4vlí
av3t
av4ti
2ay
ay4on
az3k
az3la
-az4l[eacute]
+az4lé
az3ni
a3zp
-a2[ccaron]
-a3[ccaron]a
-a3[ccaron]e
-a3[ccaron]i
-a3[ccaron]l
-a[ccaron]4m[aacute]
-a3[ccaron]o
-a3[ccaron]u
-a3[ccaron][aacute]
-a3[ccaron][iacute]
-a3[ccaron][uring]
-a2[ncaron]
-a3[ncaron]o
-a3[ncaron]u
-a[rcaron]e4k
-a3[rcaron][iacute]
-a4[scaron]pl
-a4[scaron]py
-a2[tcaron]
-a[uacute]3t
+a2Ä
+a3Äa
+a3Äe
+a3Äi
+a3Äl
+aÄ4má
+a3Äo
+a3Äu
+a3Äá
+a3Äí
+a3Äů
+a2ň
+a3ňo
+a3ňu
+aře4k
+a3ří
+a4Å¡pl
+a4Å¡py
+a2Å¥
+aú3t
2b.
3ba.
ba4br
@@ -528,8 +528,8 @@ bl4bl
b2lem
b2les
3blk
-b4l[aacute]n
-b2l[eacute]m
+b4lán
+b2lém
b1m
2bn
1bo
@@ -538,7 +538,7 @@ bo4jm
bo4ok
bo4tr
bou3s
-bo4[scaron]k
+bo4Å¡k
b2ral
b2ran
2bri
@@ -548,33 +548,33 @@ broz4
b2ru
b3ru.
b3rub
-b2r[aacute]n
+b2rán
2b1s2
bs3tr
2b1t
-bt[aacute]h4
+btáh4
bu2c
bu4en
3by.
bys3
by4sm
-by4t[ccaron]
+by4tÄ
by4zn
b2z
-1b[aacute]
-2b1[ccaron]
-b[eacute]4rc
-1b[ecaron].
-b[ecaron]3ta
-1b[iacute]
-3b[iacute]n
-b[iacute]4rc
-2b[ncaron]
-b3[rcaron]a
-b3[rcaron]e.
-b[rcaron]e4s
-b1[rcaron][iacute]
-2b[scaron]2
+1bá
+2b1Ä
+bé4rc
+1bÄ›.
+bě3ta
+1bí
+3bín
+bí4rc
+2bň
+b3řa
+b3ře.
+bře4s
+b1ří
+2bš2
2c.
1ca
cad4l
@@ -603,22 +603,22 @@ ch4mb
1chu
ch4u.
1chy
-1ch[aacute]
-2ch[rcaron]
+1chá
+2chÅ™
1ci
cien4c
cik4l
2ck2
c4ket
-ckte4r[yacute]
+ckte4rý
2cl
c3la
-c3l[eacute]
+c3lé
2cn
1co
co4at
co4mm
-co4[zcaron]p
+co4žp
c2p
2ct
c2ti
@@ -626,25 +626,25 @@ ctis4
ct4la
ct2n
c3tv
-c2t[ecaron]
+c2tÄ›
cuk1
1c2v
cy2
-1c[aacute]
-1c[iacute]
-c[iacute]4pl
-2c[ncaron]
-1c[uring]
+1cá
+1cí
+cí4pl
+2cň
+1ců
2d.
1da
da3d
-da4j[scaron]
+da4jš
da4kl
da4tr
d1b
d2ba
4dbat.
-d2b[aacute]
+d2bá
2d1c
dch4l
3dch4n
@@ -670,8 +670,8 @@ de4xt
de2z
de3zn
dez3o
-de3[ccaron]t
-de4[zcaron]p
+de3Ät
+de4žp
2d1h
1di
di4gg
@@ -691,22 +691,22 @@ d3li
d2lou
d3lou.
d2lu
-d3lu[ccaron]
-d4l[aacute][zcaron]
-d1l[eacute]
-2d1l[iacute]
-d2l[uring]
+d3luÄ
+d4láž
+d1lé
+2d1lí
+d2lů
d1m
1dmd
-dm[yacute][scaron]4
+dmýš4
2dn
1do
4dobl
4doboj
dob4rat
do3by
-do3b[ecaron]
-do3b[yacute]
+do3bÄ›
+do3bý
do1d
4do4dd
4do4dj
@@ -726,13 +726,13 @@ dos4p
dos4tiv
do3t
do3uk
-do3u[ccaron]
+do3uÄ
do3z2
doz4n
-do3[ccaron]
-4do4[ccaron]n
-do[ccaron]4t
-do4[zcaron]p
+do3Ä
+4do4Än
+doÄ4t
+do4žp
4dran
d4rap
d1re
@@ -740,62 +740,62 @@ d4ren
3drobn
d3ros
d3rou
-d3ro[scaron]
+d3roš
dr4sc
-d3ru[scaron]
-d3r[eacute]
-d3r[yacute]
-d4r[yacute]v
+d3ruš
+d3ré
+d3rý
+d4rýv
2d1s2
-ds4k[uring]
+ds4ků
ds4po
d1t
d3tl
-d3t[rcaron]
+d3tÅ™
1du
-dum3[rcaron]
+dum3Å™
du3na
du3p
du4pn
2dur
du3si
-du4[iacute].
+du4í.
d2v
d4vac
d3ve
d3vl
d3vr
d3vy
-d3v[aacute]
-d3v[ecaron]
-d3v[iacute]
+d3vá
+d3vÄ›
+d3ví
1dy
dy4su
d3zb
d3zd
d3zn
-1d[aacute]
-2d1[ccaron]
-1d[eacute]
-1d[ecaron]
-3d[ecaron]j
-1d[iacute]
-2d[ncaron]
-d1[rcaron]a
-d[rcaron]e4k
-d4[rcaron]ep
-d[rcaron]e4pn
-d4[rcaron]ev
-d1[rcaron][iacute]
-d2[rcaron][iacute]t
-2d[scaron]2
-d3[scaron]k
-d3[scaron]t
-1d[uring]
-3d[uring].
-d[uring]3s
-1d[yacute]
-d2[zcaron]2
+1dá
+2d1Ä
+1dé
+1dÄ›
+3děj
+1dí
+2dň
+d1řa
+dře4k
+d4řep
+dře4pn
+d4řev
+d1ří
+d2řít
+2dš2
+d3Å¡k
+d3Å¡t
+1dů
+3dů.
+dů3s
+1dý
+d2ž2
2e.
e1a
ea3dr
@@ -804,21 +804,21 @@ e1b
eb4er
ebez2
eb4li
-e2b[rcaron]
+e2bÅ™
e4ch.
e3chl.
e4chm
e3cho
e2chr
e3chv
-e4ch[tcaron]
+e4chť
ed4be
ed4kv
ed1l
ed2ma
e3dmn
ed3v
-ed4[rcaron][iacute]
+ed4ří
e1e
ee4th
ee3xi
@@ -826,13 +826,13 @@ eg4gi
e1ha
e1he
ehno4
-eh4n[ecaron]
+eh4nÄ›
e1ho
e1hr
e1hu
e1hy
-e1h[aacute]
-e1h[yacute]
+e1há
+e1hý
e1i
eilus3
ej3ag
@@ -858,11 +858,11 @@ e3ko
e3kr
e3ku
e3ky
-e3k[aacute]
-e3k[eacute]
-e3k[oacute]
-e3k[rcaron]
-e3k[uring]
+e3ká
+e3ké
+e3kó
+e3kÅ™
+e3ků
e1la
e4lau
el4dv
@@ -871,21 +871,21 @@ e1lo
e1lu
e1ly
el4ze
-e1l[aacute]
-e1l[eacute]
-e1l[iacute]
+e1lá
+e1lé
+e1lí
e1ml
-e4ml[iacute]
+e4mlí
emo3k
e1mr
e1my
-e3m[aacute]
-e1m[ecaron]
-e1m[iacute]
-e3m[rcaron]
-e3m[uring]
-e1m[yacute]
-em3[zcaron]e
+e3má
+e1mÄ›
+e1mí
+e3mÅ™
+e3mů
+e1mý
+em3že
en4dv
enitos4
en4sc
@@ -899,18 +899,18 @@ eo4du
e4ole
eo1s
eo2st
-eo4t[rcaron]
+eo4tÅ™
eo3z
eo4zb
eo4zd
-eo[scaron]e3
+eoše3
epa3t
e2pl
e4pni
ep2no
-e4pn[yacute]
-epo[ccaron]3t
-epro4z[rcaron]
+e4pný
+epoÄ3t
+epro4zÅ™
ep4tl
ep4tm
ep4tn
@@ -927,10 +927,10 @@ er4s.
er4sn
e1ru
e1ry
-e1r[aacute]
-e1r[eacute]
-e1r[uring]
-e1r[yacute]
+e1rá
+e1ré
+e1rů
+e1rý
e1s
e4sag
e2sce
@@ -941,7 +941,7 @@ es4k.
e4s4kn
es3ku.
es3ky
-es3k[eacute]
+es3ké
e2sl
e4s3li
e4sly
@@ -951,10 +951,10 @@ es4pe
e2st
e4st.
e4ste
-es3ti[zcaron]
+es3tiž
es4tol
e4strou
-es3t[aacute]n
+es3tán
e1t
e4tki
e4tkr
@@ -962,9 +962,9 @@ e4tli
e4tly
et3ri
et3ro
-et3r[uring]
-et1[rcaron]
-et4[uacute]n
+et3rů
+et1Å™
+et4ún
e1u
eu3b
eu3ct
@@ -986,16 +986,16 @@ eu4tra
eu4ts
eu3v
eu3z
-eu3[zcaron]
+eu3ž
e3vd
-eve4[scaron]
+eve4Å¡
e3v2k
e4vsk
evy3
evyjad4
-evyp[aacute]4t
-evy4[ccaron]k
-ev[ecaron]4tr
+evypá4t
+evy4Äk
+evě4tr
ex4ta
e3xu
ey4or
@@ -1006,7 +1006,7 @@ ez4bo
ez3de
ez3dov
ez3du
-ez4d[ecaron]
+ez4dÄ›
e3ze
ez4ed2
ez4ej
@@ -1014,52 +1014,52 @@ ez4el
ez4er
ez4es
ez4ez
-ez4e[scaron]
+ez4eš
ezis4
ez4it
ez4le
-ez4n[aacute]
-ez4n[ecaron]
+ez4ná
+ez4nÄ›
ez4py
ez2t
-ez4[aacute]c
-ez4[aacute]h
-ez4[ccaron]e
-e3z[iacute]
-e3z[rcaron]
-ez4[rcaron]e
-e1[aacute]
-e[ccaron]4kat
-e1[ccaron]t
-e[ccaron]4te
-e4[ccaron]ti
-e4[ccaron]t[iacute]
-e2[ncaron]
-e3[ncaron]o
-e3[ncaron]u
-e3[ncaron][aacute]
-e3[oacute]n
-e1[rcaron]
-e[rcaron]e4k
-e[rcaron]4ku
-e3[rcaron][iacute]
-e2[scaron]
-e3[scaron]e
-e3[scaron]i
-e4[scaron]ka
-e3[scaron]l
-e[scaron]4l[aacute]
-e3[scaron]o
-e[scaron]4to
-e[scaron]t[iacute]h4
-e3[scaron][iacute]
-e[uacute]1
-e[uacute]my4
-e[uacute]3n
-e[uacute]3p
-e[uacute]3t
-e[uacute]3[ccaron]
-e[zcaron][iacute][scaron]4
+ez4ác
+ez4áh
+ez4Äe
+e3zí
+e3zÅ™
+ez4ře
+e1á
+eÄ4kat
+e1Ät
+eÄ4te
+e4Äti
+e4Ätí
+e2ň
+e3ňo
+e3ňu
+e3ňá
+e3ón
+e1Å™
+eře4k
+eř4ku
+e3ří
+e2Å¡
+e3Å¡e
+e3Å¡i
+e4Å¡ka
+e3Å¡l
+eš4lá
+e3Å¡o
+eš4to
+eštíh4
+e3ší
+eú1
+eúmy4
+eú3n
+eú3p
+eú3t
+eú3Ä
+ežíš4
1f
2f.
fe4in
@@ -1068,8 +1068,8 @@ fe4ue
fi4em
fi4fl
f2l
-f3l[iacute]
-fl[oacute]4r
+f3lí
+fló4r
fm4no
2fn
2fr
@@ -1081,16 +1081,16 @@ f1ri
fs4te
2ft
fu4ch
-2f[eacute]
-f2[uacute]
+2fé
+f2ú
1g
2g.
-ga4u[ccaron]
+ga4uÄ
ge2s
ghou4
3gic
3gin
-gi4[iacute]m
+gi4ím
g4lom
2g1m
2gn
@@ -1140,35 +1140,35 @@ h3lop
h3lov
h3luj
2h1ly
-4hl[aacute].
-h4l[aacute]s
-h3l[iacute].
-4hl[iacute]k
-2hl[yacute]
+4hlá.
+h4lás
+h3lí.
+4hlík
+2hlý
h2m
2h2n
h3ne
h4ned
h3niv
h4noj
-3hn[ecaron]d
+3hněd
3hodin
ho3str
-hos4t[ecaron]
+hos4tÄ›
4hove
4hovna
4hovny
-4hovn[aacute]
-4hovn[ecaron]
+4hovná
+4hovnÄ›
h2r
hra4p
2h1t
h4tin
-h2t[ecaron]
-h4t[iacute]t
+h2tÄ›
+h4tít
hu4ch
hu3mo
-hu4t[ncaron]
+hu4tň
2h2v
hyd1
hy4do
@@ -1176,12 +1176,12 @@ hy4ps
hys3
hy2t3r
hy4zd
-h1[ccaron]
-2h[ncaron]
-h[rcaron]2
-h[rcaron]4by
-h[yacute]4bl
-h2[zcaron]
+h1Ä
+2hň
+hř2
+hř4by
+hý4bl
+h2ž
2i.
i1a
ia3d
@@ -1193,12 +1193,12 @@ i1b
ib2l
i2b1r
i1ch
-i4ch[zcaron]
+i4chž
i1d
id4ge
id2l
id4lo.
-i4dl[yacute]
+i4dlý
i1em
i1en
i1et
@@ -1221,10 +1221,10 @@ ik3lo.
ik3m
ik4ry
i4kve
-ik4[uacute][rcaron]
+ik4úř
i1l
il4ba
-ili[ccaron]4n
+iliÄ4n
i4lnu
ilu3
i1m
@@ -1246,13 +1246,13 @@ i3ni
i3no
i3nu
i3ny
-i3n[aacute]
-i3n[eacute]
-i3n[ecaron]
-i3n[iacute]
-in4[scaron]p
-i3n[uring]
-i3n[yacute]
+i3ná
+i3né
+i3nÄ›
+i3ní
+in4Å¡p
+i3nů
+i3ný
i1o
io4sk
i2ps
@@ -1271,7 +1271,7 @@ is3kv
is3ky
i3slav
is3lo
-is3l[eacute]
+is3lé
is3pl
is3po
is1t
@@ -1279,9 +1279,9 @@ is4tal
is4tat
is4th
ist3v
-is3t[iacute]
+is3tí
i1sy
-i3s[aacute]
+i3sá
i1t
it1r
it4rh
@@ -1295,38 +1295,38 @@ i1x
ix4td
i3zp
iz1r
-i1[aacute]
-i1[ccaron]l
-i[ccaron]3t
-i[ccaron]4tl
-i[ccaron]4to
-i2[dcaron]
-i1[eacute]
-i[eacute]4re.
-i1[iacute]c
-i1[iacute]m
-i1[oacute]
-i1[rcaron]
-i[rcaron]4kl
-i[rcaron]4[ccaron]e
-i2[scaron]
-i3[scaron]e
-i3[scaron]i
-i[scaron]3k
-i[scaron]4kr
-i[scaron]4kv
-i3[scaron]o
-i[scaron]4to
-i3[scaron]u
-i3[scaron][aacute]
-i3[scaron][iacute]
-i2[zcaron]
-i3[zcaron]a
-i3[zcaron]e
-i3[zcaron]i
-i3[zcaron]o
-i3[zcaron]u
-i3[zcaron][aacute]
+i1á
+i1Äl
+iÄ3t
+iÄ4tl
+iÄ4to
+i2Ä
+i1é
+ié4re.
+i1íc
+i1ím
+i1ó
+i1Å™
+iř4kl
+iÅ™4Äe
+i2Å¡
+i3Å¡e
+i3Å¡i
+iš3k
+iš4kr
+iš4kv
+i3Å¡o
+iš4to
+i3Å¡u
+i3šá
+i3ší
+i2ž
+i3ža
+i3že
+i3ži
+i3žo
+i3žu
+i3žá
2j.
ja2b2
jac4k
@@ -1342,19 +1342,19 @@ j3dob
j3dok
j3dos
j3dr
-j3d[aacute]
-jd4[rcaron][iacute]
-j3d[uring]
+j3dá
+jd4ří
+j3dů
jech4
j3ef
j3ex
-jez3d[iacute]
+jez3dí
jg4ra
2j1h
1ji
ji4ch
jih3l
-ji4m[zcaron]
+ji4mž
j4ina
jis3k
jit4ro
@@ -1367,12 +1367,12 @@ j2m
j3ma
j3mi
jmou3d
-2jm[iacute]
+2jmí
2jn
jne3
j1ob
j1od
-jod2[rcaron]
+jod2Å™
j1oh
j1op
j4ora
@@ -1384,15 +1384,15 @@ j1o3z2
2jp
jpor4
jpo4zv
-jp[rcaron][iacute]z4
+jpříz4
2j1r
2j1s2
j4sem
j4si.
j4sk.
js4ko
-js4k[aacute]
-j4s4k[uring]
+js4ká
+j4s4ků
j4s4me
j3sn
j4sou.
@@ -1411,8 +1411,8 @@ ju4t.
ju3v
ju4xt
ju3z
-j1u[zcaron]
-ju3[zcaron]i
+j1už
+ju3ži
2jv2
j3vd
j3vn
@@ -1422,18 +1422,18 @@ j3zd
j3zk
j3zn
j3zp
-j[aacute]d2r
-2j1[ccaron]
-2j[dcaron]
-1j[iacute]
-j3[scaron]t
-j[scaron]4ti
-j3[scaron][tcaron]
-2j[uacute]1
-j[uacute]3n
-j[uacute]3[ccaron]
-j[uacute]3[zcaron]
-2j[zcaron]
+jád2r
+2j1Ä
+2jÄ
+1jí
+j3Å¡t
+jš4ti
+j3Å¡Å¥
+2jú1
+jú3n
+jú3Ä
+jú3ž
+2jž
1k
2k.
ka4bl
@@ -1442,21 +1442,21 @@ ka3dl
3kaj
ka3ka
3kami
-3kan[ecaron]
+3kanÄ›
ka2p3l
ka2p3r
ka2ps
ka4pv
-ka2p[rcaron]
+ka2pÅ™
kas3t
kast3r
3kat
-ka4u[ccaron]
+ka4uÄ
3kav
-3ka[ccaron]
-3ka[rcaron]
-ka[scaron]3l
-ka4[scaron]p
+3kaÄ
+3kaÅ™
+kaš3l
+ka4Å¡p
2k1c
k2d
k2e
@@ -1474,37 +1474,37 @@ k3lej
4k3li.
k4lib
k3lic
-4kli[ccaron]ka
+4kliÄka
4klo.
k3los
2k3ly
-k3l[aacute].
-k3l[eacute]
-k3l[oacute]
-k3l[yacute]
+k3lá.
+k3lé
+k3ló
+k3lý
2k2m
-k3m[ecaron]
+k3mÄ›
2kn
kna4s
ko3by
3kof
ko4jm
-ko2p[rcaron]
+ko2pÅ™
ko4sk
ko2t3v
kous3k
3kov
-ko3z[aacute]
+ko3zá
4kroa
k3rob
k3rof
kr2s
-kr4[uacute].
+kr4ú.
2ks
2k1t
kt2r
kuch4
-ku4f[rcaron]
+ku4fÅ™
ku4hr
3kuj
ku3se
@@ -1513,21 +1513,21 @@ ku3su
ku4th
ku3v
2k2v
-k4vr[ncaron]
+k4vrň
3kyn
ky2pr
-kyp3[rcaron]
+kyp3Å™
ky4zn
-3k[aacute]c
-k[aacute]4pl
-3k[aacute]r
-3k[aacute][rcaron]
-2k[ccaron]
-k2[ncaron]
-k2[rcaron]2
-k3[rcaron]ej
-k[scaron]4ti
-3k[uring].
+3kác
+ká4pl
+3kár
+3kář
+2kÄ
+k2ň
+k2ř2
+k3řej
+kš4ti
+3ků.
2l.
1la.
la4br
@@ -1536,7 +1536,7 @@ la3ka
la4nq
la4ps
4la3si
-la4v[scaron]
+la4vš
la4y.
la2zm
2l1b
@@ -1550,7 +1550,7 @@ leh3n
le2i
1lej
le3jo
-4lej[scaron]k
+4lejšk
1lel
4lench
lepa3d
@@ -1563,7 +1563,7 @@ le4sv
let4li
let3m
le2tr
-le4t[ccaron]
+le4tÄ
le4uk
le4vh
le4vk
@@ -1580,9 +1580,9 @@ li4bv
li4dm
lind4
3lio
-li4t[ncaron]
+li4tň
li4vr
-2li[zcaron]
+2liž
2lj
2lk
l4kat
@@ -1597,21 +1597,21 @@ lo4id
lo4is
1los
lo3sp
-lo3st[rcaron]
+lo3stÅ™
lo3sv
lo2tr
-lo4t[rcaron]
+lo4tÅ™
lo4u.
lo3z
loz4d
-lo4[scaron]k
+lo4Å¡k
2lp
-l2p[ecaron]
+l2pÄ›
2l1s2
l4sla
ls3n
lst4n
-l4st[iacute]
+l4stí
2l1t
lt4ra
lt4ru
@@ -1626,26 +1626,26 @@ lu3pr
lu3va
lu3vl
lu3vy
-lu3v[iacute]
+lu3ví
2lv
2lz
-1l[aacute].
-l[aacute]4j[scaron]
-l[aacute]4v[scaron]
-2l1[ccaron]
-1l[eacute].
-1l[iacute]k
-l[iacute]4pl
-l[iacute]4zn
-1l[iacute][rcaron]
-2l[ncaron]
-2l[scaron]2
-l3[scaron]t
-l4[scaron]t[yacute]
-1l[uring]
-1l[yacute]
-l[yacute]2t
-2l2[zcaron]
+1lá.
+lá4jš
+lá4vš
+2l1Ä
+1lé.
+1lík
+lí4pl
+lí4zn
+1líř
+2lň
+2lš2
+l3Å¡t
+l4štý
+1lů
+1lý
+lý2t
+2l2ž
2m.
1ma
maj4s
@@ -1655,7 +1655,7 @@ ma4kr
mas3k
mat3r
ma4tra
-ma4v[scaron]
+ma4vš
maz3l
2m1b
2m1c
@@ -1693,23 +1693,23 @@ mna4s
m4noh
m3nos
m4noz
-3mno[zcaron]
-m3n[aacute]
-m3n[eacute]
-m4n[eacute]z
-m3n[ecaron]j
-m3n[yacute]
+3množ
+m3ná
+m3né
+m4néz
+m3něj
+m3ný
1mo
mod3r
mo2hl
mo2k
mo2s
mo4s.
-mot3[rcaron]
+mot3Å™
4mout
moza4
-mo3z[rcaron]
-mo[uacute]3
+mo3zÅ™
+moú3
2mp
m4plo
mpo4s
@@ -1727,26 +1727,26 @@ mu4n.
mu4nd
mu4nn
mu4ns
-mu4n[scaron]
-2mu[scaron]
+mu4nš
+2muš
2mv
mys3lo
-my4[scaron]k
+my4Å¡k
2mz
-3m[aacute].
-m[aacute]lo3
-m[aacute]2s
-2m[ccaron]
-m2[ccaron]e
-m[iacute]1c
-m[iacute]4r[ncaron]
-2m2[scaron]
-m[scaron]4[ccaron]i
-m[scaron]3[tcaron]
-m[scaron]4[tcaron]an.
-3m[uring].
-3m[yacute].
-m2[zcaron]
+3má.
+málo3
+má2s
+2mÄ
+m2Äe
+mí1c
+mí4rň
+2m2Å¡
+mÅ¡4Äi
+mš3ť
+mš4ťan.
+3mů.
+3mý.
+m2ž
1n
2n.
3na.
@@ -1763,13 +1763,13 @@ na3s2
na4s.
nat2
na3tl
-na3t[rcaron]
+na3tÅ™
na3z
naz4k
-na4z[scaron]
-na4[ccaron].
-na3[scaron]
-na[zcaron]4n
+na4zš
+na4Ä.
+na3Å¡
+naž4n
2nb
2n1c
n4chc
@@ -1778,7 +1778,7 @@ nd4hi
ndo4t
nd2re
nd4ri
-nd4[rcaron][iacute]
+nd4ří
ne1d
ne4gl
ne1h
@@ -1803,23 +1803,23 @@ ne3v2
ne4v.
ne3z
nez4n
-ne3[scaron]k
-ne3[scaron][tcaron]
+ne3Å¡k
+ne3Å¡Å¥
2nf
n3fr
2ng
ng1l
ng4la
ng4le
-ng4l[iacute]
+ng4lí
n4gro
ng4vi
nik4t
ni4mr
-ni4m[zcaron]
+ni4mž
3nio
3nisk
-2nit[rcaron]
+2nitÅ™
n1j
2nk
2n1l
@@ -1829,15 +1829,15 @@ no4bs
no3hn
no4hs
no4ir
-no4m[zcaron]
+no4mž
no4sky
no3sm
no3str
not4r
no3z
no4zd
-no4[scaron]k
-2no[zcaron]
+no4Å¡k
+2nož
2n1s2
n2sa
ns3ak
@@ -1850,24 +1850,24 @@ nte4r3a
nt4lem
nt4r.
nt3ru
-nt3r[aacute]
+nt3rá
2nub
nu4gg
3ny.
2nz
-3n[aacute]k
-n[aacute]3s2
-n[aacute]4s.
-2n1[ccaron]
-2n[dcaron]
-2n[iacute]v
-2n[iacute][zcaron]
-2n[oacute]
-2n[scaron]2
-n3[scaron]t
-n[scaron]4[tcaron]o
-n[uring]2
-2n[zcaron]
+3nák
+ná3s2
+ná4s.
+2n1Ä
+2nÄ
+2nív
+2níž
+2nó
+2nš2
+n3Å¡t
+nš4ťo
+nů2
+2nž
2o.
o1a
oang4
@@ -1878,12 +1878,12 @@ obe3s
obe3z
ob1l
ob1r
-ob4r[ncaron]
+ob4rň
o1bu
obys4
ob3z
-o3b[eacute]
-ob3[rcaron]ez
+o3bé
+ob3řez
o1c
o4chl
o2chr
@@ -1892,7 +1892,7 @@ oc4ko
o4ct.
oct3n
ocy3
-oc4[uacute]n
+oc4ún
od3b
odej4m
ode3p
@@ -1903,10 +1903,10 @@ odos4
odo4tk
od3ra
od4ran
-od3r[uring]
-o3dr[zcaron]
+od3rů
+o3drž
od3v
-od1[rcaron]
+od1Å™
o1e2
oe3g
oe3ti
@@ -1925,7 +1925,7 @@ oje4dl
o4jmi
o4jmov
o4jmu
-o4jm[uring]
+o4jmů
oj2o
o4juz
2oka
@@ -1945,23 +1945,23 @@ o3no
ont4ra
o3nu
o3ny
-o3n[aacute]
-on[aacute][rcaron]4ka
-o3n[ecaron]
-o3n[iacute]
-o3n[uring]
-o3n[yacute]
+o3ná
+onář4ka
+o3nÄ›
+o3ní
+o3nů
+o3ný
o1o
-oo4h[rcaron]
+oo4hÅ™
oote2
-opo[ccaron]3t
+opoÄ3t
opro4s
o2ps
o4ptu
-op[aacute]4t
-o4p[rcaron].
-op[rcaron]ej4
-op[rcaron]e4jm
+opá4t
+o4pÅ™.
+opřej4
+opře4jm
o1ra
o4rae
or4dm
@@ -1970,13 +1970,13 @@ o1ri
o1ro
or3st
o1ru
-or4v[aacute]
+or4vá
o1ry
-o1r[aacute]
-o3r[eacute]
-o1r[uring]
-or[uring]s3
-o3r[yacute]
+o1rá
+o3ré
+o1rů
+orůs3
+o3rý
o1sa
o4sai
ose4s
@@ -1985,35 +1985,35 @@ o1sk
o4s3ke
o4sku
osk3v
-o4sk[aacute]
-o4sk[yacute]
+o4ská
+o4ský
o1sl
os4la
os4li
-os4l[yacute]
+os4lý
os3mo
os4mu
o4st.
o4stg
o4stm
os4tor
-os3tr[uring]
-o4st[eacute]
-o4st[scaron]
-o4st[yacute]
+os3trů
+o4sté
+o4stš
+o4stý
o1sy
o1t
ot4kl
-o4tl[yacute]
+o4tlý
oto3s
ot3ro
-ot3v[iacute]
-o3t[iacute]
-o3t[rcaron]
-ot3[rcaron]i
+ot3ví
+o3tí
+o3tÅ™
+ot3ři
o2u
-ou3b[ecaron]
-ou3d[ecaron]
+ou3bÄ›
+ou3dÄ›
ou4fl
ou4il
ou4is
@@ -2021,7 +2021,7 @@ ou4k.
ou3ka
o4ukl
ou3kr
-ou3k[aacute]
+ou3ká
ou3m
oup3n
oupo4
@@ -2035,20 +2035,20 @@ ou3v
ou4vl
ou4vn
ouz3d
-o4u[ccaron]k
-ou3[zcaron]i
+o4uÄk
+ou3ži
ovi4dla
o4vsk
ovy2p
-o2v[scaron]t
+o2všt
o1x
o2z
o3za
oz1b
oz4d.
-oz3d[aacute]
-oz3d[ecaron]
-oz3d[iacute]
+oz3dá
+oz3dÄ›
+oz3dí
o3ze
oze3d2
ozer4
@@ -2063,37 +2063,37 @@ o4zn.
o3zo
oz3p
oz4py
-oz4p[ecaron]
-oz4p[iacute]
+oz4pÄ›
+oz4pí
oz3ro
oz3ru
-oz3r[uring]
+oz3rů
oz3t
o3zu
o4zut
oz3vr
-oz3v[aacute]
-o3z[iacute]
-o3z[uring]
-oz[uring]4s
-o1[ccaron]
-o[ccaron]2k
-o[ccaron]4ka
-o2[ncaron]
-o3[ncaron]a
-o3[ncaron]o
-o1[rcaron]
-o[rcaron]i2s
-o3[scaron]k
-o4[scaron]ku
-o4[scaron]ky
-o3[scaron]l
-o[scaron]4l[aacute]
-o[scaron]4mo
-o[scaron]4ti
-o[scaron]4[tcaron]u
-o3[zcaron]l
-o[zcaron]4mo
+oz3vá
+o3zí
+o3zů
+ozů4s
+o1Ä
+oÄ2k
+oÄ4ka
+o2ň
+o3ňa
+o3ňo
+o1Å™
+oři2s
+o3Å¡k
+o4Å¡ku
+o4Å¡ky
+o3Å¡l
+oš4lá
+oš4mo
+oš4ti
+oš4ťu
+o3žl
+ož4mo
1p
2p.
pa4ed
@@ -2110,7 +2110,7 @@ pe4np
peri3
pes3t3
pe4tra
-3pe[ccaron]
+3peÄ
pi4kr
pi4pl
2pk
@@ -2127,10 +2127,10 @@ p2nu
po1b2
po3c2
3pod
-podb[ecaron]4h
+podbě4h
pod4nes
po3dru
-po3dr[aacute]
+po3drá
po3h
poly3
po3m2
@@ -2146,16 +2146,16 @@ po3t2
po4t.
po4tn
po3uk
-po3u[ccaron]
-po3u[zcaron]
+po3uÄ
+po3už
3po3v
po3z2
po4zd
-po[ccaron]2
-po3[ccaron]k
-po[ccaron]3te
-po3[rcaron][iacute]
-po4[scaron]v
+poÄ2
+po3Äk
+poÄ3te
+po3ří
+po4Å¡v
2pp
4pra.
pra3st
@@ -2166,8 +2166,8 @@ pro3p
pro3t4
pro3z
pr2s
-4pr[aacute]n
-pr[uring]3
+4prán
+prů3
pse4s
2p1sk
p4sut
@@ -2177,28 +2177,28 @@ p4ter
p4tev
pt4ri
p3tu
-p4t[aacute].
+p4tá.
pu4dl
pu4tr
pyt3l
-p[aacute]1
-p[aacute]2c
-p[aacute]d3l
-p[aacute]4nv
-p[aacute]4sl
-2p[ccaron]
-p[eacute]4rh
-2p[rcaron].
-p[rcaron]e3h
-p[rcaron]e3j
-p[rcaron]e3t4
-p[rcaron]e3z
-p[rcaron]e3[ccaron]2
-p[rcaron]i3
-p[rcaron]ih4
-2p[scaron]
-p[scaron]4ti
-2p[tcaron]
+pá1
+pá2c
+pád3l
+pá4nv
+pá4sl
+2pÄ
+pé4rh
+2pÅ™.
+pře3h
+pře3j
+pře3t4
+pře3z
+pÅ™e3Ä2
+při3
+přih4
+2pš
+pš4ti
+2pť
qu2
2r.
1ra.
@@ -2209,7 +2209,7 @@ ra4ff
ra4hl
ra4hm
ra4jg
-ra4j[scaron]
+ra4jš
2rak
ra4nh
ra3si
@@ -2218,8 +2218,8 @@ ra4vv
ra4wl
ra4y.
ra4yo
-ra4[dcaron]m
-4ra[zcaron]i
+ra4Äm
+4raži
r1b
r2bl
r1c
@@ -2247,7 +2247,7 @@ r3hl.
rh3n
r1ho
r3hu
-r1h[aacute]
+r1há
ri4bb
1ric
ric4ku
@@ -2262,7 +2262,7 @@ r1l
2r1m
r4mio
2rn
-rna4v[scaron]
+rna4vš
rn4dr
ro4ad
ro3by
@@ -2272,26 +2272,26 @@ ro3d4r
ro3h
ro4h.
ro4jb
-ro4k[scaron]
+ro4kš
rom3n
romy4s
-rop[aacute]t4
+ropát4
ro2sb
ro4skv
ro4sky
ro3sv
ro3ti
ro3tl
-ro4t[ccaron]
+ro4tÄ
ro3vd
-rov[ecaron]4t
-3rov[yacute]
+rově4t
+3rový
roz3d
roz3n
ro4zo
roz3v
-ro3z[aacute]
-ro4[ccaron]p
+ro3zá
+ro4Äp
rpa3d
2rr
rr4ha
@@ -2299,11 +2299,11 @@ rr4ho
2r1s
r2st
r4stu
-rs3tv[ecaron]
-rs3tv[yacute]
+rs3tvÄ›
+rs3tvý
2r1t
r2th
-r4tr[aacute]
+r4trá
rt4sm
rtu3
r2t3v
@@ -2312,8 +2312,8 @@ rt4zu
ru3se
ru3si
rus3k
-ru3[zcaron]i
-3rvan[iacute]
+ru3ži
+3rvaní
r1x
1ry.
rych3
@@ -2322,28 +2322,28 @@ rys3ky
rys3t
ry4zk
ry4zn
-ry4[iacute].
-ry4[scaron]k
+ry4í.
+ry4Å¡k
2rz
rz3d
rz3l
-r[aacute]d4l
-r[aacute]4d[zcaron]
-1r[aacute]k
-r[aacute]3ri
-1r[aacute][rcaron]
-r1[ccaron]
-4r[ccaron]it[yacute].
-r[ccaron]3t
-3r[eacute].
-2r[oacute]
-2r[scaron]
-r[scaron]4n[iacute]
-r[uring]4m.
-r[uring]s3ta
-r[uring]4v.
-3r[yacute].
-r[yacute]4zn
+rád4l
+rá4dž
+1rák
+rá3ri
+1rář
+r1Ä
+4rÄitý.
+rÄ3t
+3ré.
+2ró
+2rš
+rš4ní
+rů4m.
+růs3ta
+rů4v.
+3rý.
+rý4zn
2s.
sa4pf
sa4pr
@@ -2358,7 +2358,7 @@ sch4n
3schop
s3ci
sci4e
-s3c[iacute]
+s3cí
s2d
1se
se4au
@@ -2376,17 +2376,17 @@ ses4k
se4ss
se4stra
se4stru
-se4st[rcaron]
+se4stÅ™
set2
se3tk
-se3t[rcaron]
+se3tÅ™
se4ur
se3z
-se3[ccaron]t
+se3Ät
2sf
s3fo
-3sf[eacute]
-s3f[uacute]
+3sfé
+s3fú
1si
3sic
3sif
@@ -2410,8 +2410,8 @@ sk4ru
sk4ry
4skve
sk4vo
-s3k[aacute]n
-s3k[uring]
+s3kán
+s3ků
3sl.
4s3la.
s4lav
@@ -2421,12 +2421,12 @@ s3lem
s3len
s3let
s4lib
-s4li[ccaron]i
+s4liÄi
3sln
4s3lo.
s2ly
s3ly.
-s1l[iacute]
+s1lí
s2ma
s4mek
s2mo
@@ -2436,9 +2436,9 @@ s3nat
s2ne
s3ne.
sn4tl
-s2n[aacute]
-s3n[aacute].
-s4n[iacute]d
+s2ná
+s3ná.
+s4níd
1so
sob4l
so3br
@@ -2447,7 +2447,7 @@ so4tv
sou3h
sou3s
souz4
-so4[scaron]k
+so4Å¡k
s2p
s4pol
spro4s
@@ -2467,7 +2467,7 @@ s4tich
2stil
s4tink
4stit.
-4sti[ccaron]
+4stiÄ
st3lo
2stn
4sto.
@@ -2477,25 +2477,25 @@ s4tona
4stram
s4trik
4strn
-4str[aacute]c
+4strác
4stupni
s2tv
st4ve
-3stv[iacute]
+3ství
4sty.
s4tyl
-3sty[scaron]
-s2t[aacute]
-4st[aacute].
-s3t[aacute][rcaron]
-4st[ecaron].
-s4t[ecaron]d
-3st[ecaron]h
-s2t[ecaron]r
-s2t[ecaron][zcaron]
-s1t[iacute]
-2st[iacute].
-s3t[rcaron]ej
+3styš
+s2tá
+4stá.
+s3tář
+4stÄ›.
+s4těd
+3stěh
+s2těr
+s2těž
+s1tí
+2stí.
+s3třej
1su
su4ba
su4bo
@@ -2505,18 +2505,18 @@ s2v
sy3c
sych3r
sy4nes
-s[aacute]2d
-3s[aacute]h
-s[aacute]2kl
-2s2[ccaron]
-s3[ccaron]i
-1s[eacute]
-1s[iacute]
-2s[ncaron]
-2s[tcaron]
-s3[tcaron]o
-1s[uring]
-s2[zcaron]
+sá2d
+3sáh
+sá2kl
+2s2Ä
+s3Äi
+1sé
+1sí
+2sň
+2sť
+s3Å¥o
+1sů
+s2ž
2t.
1ta.
ta2bl
@@ -2527,12 +2527,12 @@ ta4jf
ta4jg
4talt
4tand
-3tan[ecaron]
+3tanÄ›
t1ao
2tark
tast4
ta3str
-ta4[ccaron]k
+ta4Äk
2t1b
2t1c
1te
@@ -2540,7 +2540,7 @@ ta4[ccaron]k
te4ak
te4fl
te4in
-4ten[eacute]m
+4teném
teob4
tep3l
ters4
@@ -2562,9 +2562,9 @@ tis4tr
ti4tr
2titu
tiz4r
-4tiz[iacute]
-ti[uacute]3
-2ti[zcaron]
+4tizí
+tiú3
+2tiž
2tk2
t4kal
4t2kan
@@ -2572,8 +2572,8 @@ t4kat
t2kl
tk4la
tk4li
-4tkn[ecaron]
-t2k[aacute]
+4tknÄ›
+t2ká
2tl
3tl.
4tla.
@@ -2585,11 +2585,11 @@ t4lou
tlu3
tlu4s
t1ly
-t1l[eacute]
+t1lé
2tm
t2ma
2tn
-t3n[iacute]
+t3ní
1to
to4as
to3b
@@ -2618,16 +2618,16 @@ t3rol
tro4sk
t4rou
4trouh
-4tro[ncaron].
+4troň.
4trun
t4rus
-4t4ru[zcaron]
-t3r[aacute]ln
-4tr[aacute][scaron]
-2tr[ccaron]
-t3r[uring]m
-t3r[uring]v
-2tr[yacute]
+4t4ruž
+t3ráln
+4tráš
+2trÄ
+t3rům
+t3rův
+2trý
2t1s
ts4ko
ts2t
@@ -2642,61 +2642,61 @@ tu4lk
tu4r.
tu3ry
tu4s.
-tu4[tcaron].
-tu3[zcaron]i
+tu4Å¥.
+tu3ži
t2v
2tve
2t3vi
t4vinn
-t4vi[scaron]
-t4v[yacute]c
+t4viš
+t4výc
1ty.
-ty4g[rcaron]
+ty4gÅ™
ty2la
-ty4[rcaron]e
-ty4[rcaron]h
-ty4[rcaron]j
-ty4[rcaron]o
-ty4[rcaron]r
-ty4[rcaron][uacute]
-3t[aacute].
-t[aacute]4fl
-t2[ccaron]
-t3[ccaron]i
-2t[ccaron][iacute]
-1t[eacute]
-t[eacute]2bl
-3t[eacute]m
-1t[ecaron]
-t[ecaron]3d4l
-2t[ecaron]h
-2t[ecaron]nn
-2t[ecaron]p
-1t[iacute]c
-4t[iacute]c.
-4t[iacute]ce
-1t[iacute]m
-2t[iacute]n
-2t[iacute]r
-2t[rcaron]
-t4[rcaron]eb
-t[rcaron]eh3n
-t2[rcaron]el
-t2[rcaron]ic
-t3[rcaron]il
-t[rcaron]4ti
-t1[rcaron]u
-t2[rcaron][aacute]
-3t[rcaron][aacute]b
-t[rcaron][iacute]4s
-2t[scaron]
-t3[scaron]t
-t[scaron]4ti
-1t[uring]
-1t[yacute].
-1t[yacute]m
-1t[yacute][rcaron]
-3t[yacute][scaron]
+ty4ře
+ty4řh
+ty4řj
+ty4řo
+ty4řr
+ty4řú
+3tá.
+tá4fl
+t2Ä
+t3Äi
+2tÄí
+1té
+té2bl
+3tém
+1tÄ›
+tě3d4l
+2těh
+2těnn
+2těp
+1tíc
+4tíc.
+4tíce
+1tím
+2tín
+2tír
+2tÅ™
+t4řeb
+třeh3n
+t2řel
+t2řic
+t3řil
+tř4ti
+t1řu
+t2řá
+3třáb
+tří4s
+2tš
+t3Å¡t
+tš4ti
+1tů
+1tý.
+1tým
+1týř
+3týš
u1
2u.
u2at
@@ -2707,10 +2707,10 @@ u3bi
u3bo
ubs4t
u3bu
-u3b[aacute]
-u3b[iacute].
-u3b[uring]
-uc4t[iacute]
+u3bá
+u3bí.
+u3bů
+uc4tí
2u2d
u3de
u3di
@@ -2718,11 +2718,11 @@ u3do
u3dru
u3du
u3dy
-u3d[iacute]
+u3dí
ue4fa
2uf
u2hl
-uh3l[aacute]
+uh3lá
uh3no
u2in
u2jm
@@ -2737,11 +2737,11 @@ uk3le
u3ko
u3ku
u3ky
-uk4[aacute].
-u3k[uring]
+uk4á.
+u3ků
ul4fa
ul1h
-ul4p[iacute]
+ul4pí
u2m
u3ma
u3me
@@ -2749,17 +2749,17 @@ u3mi
um4pl
um4ru
u3mu
-u3m[aacute]
-3um[rcaron]
+u3má
+3umÅ™
u2n
un4dl
u3ne
u3no
u3nu
-u3n[ecaron]
-u3n[iacute]
-u3n[uring]
-un4[zcaron]r
+u3nÄ›
+u3ní
+u3nů
+un4žr
u2p
u3pa
u3pe
@@ -2768,10 +2768,10 @@ u3pi
u3pln
u3pu
u3py
-u3p[aacute]
-u3p[ecaron]
-u3p[iacute]
-u3p[uring]
+u3pá
+u3pÄ›
+u3pí
+u3pů
u2r
u3ra
u3re
@@ -2779,31 +2779,31 @@ u3ri
2u3ro
u3ru
u3ry.
-u3r[aacute]
-1ur[ccaron]
-u3r[uring]
+u3rá
+1urÄ
+u3rů
u2s
us3ky
-us3k[aacute]
-us3k[eacute]
-us3k[yacute]
+us3ká
+us3ké
+us3ký
us1l
us2lo
u3so
u4ste
u4sty
-u4st[eacute]
-u4st[ecaron]
-u3st[rcaron]
-u4st[scaron]
-u4st[yacute]
+u4sté
+u4stÄ›
+u3stÅ™
+u4stš
+u4stý
u3su.
u3sy
-u3s[aacute]
-u3s[iacute]
-u3s[uring]
+u3sá
+u3sí
+u3sů
u4tro
-u4tr[aacute]
+u4trá
u2v
u3vi
u3vu
@@ -2813,37 +2813,37 @@ u3zi
uz1l
u3zo
u3zu
-u3z[iacute]
-u2[ccaron]
-u3[ccaron]a
-u3[ccaron]e
-u3[ccaron]i
-u3[ccaron]o
-u[ccaron]3t
-u3[ccaron]u
-u3[ccaron][aacute]
-u3[ccaron][iacute]
-u2[dcaron]
-u2[ncaron]
-u2[scaron]
-u3[scaron]e
-u3[scaron]i
-u[scaron]4kl
-u3[scaron]o
-u[scaron]3t[iacute]
-u3[scaron]u
-u3[scaron][aacute]
-u3[scaron][iacute]
-u2[zcaron]
-u3[zcaron]e
-u3[zcaron]o
-u3[zcaron]u
-u3[zcaron][aacute]
-u3[zcaron][iacute]
+u3zí
+u2Ä
+u3Äa
+u3Äe
+u3Äi
+u3Äo
+uÄ3t
+u3Äu
+u3Äá
+u3Äí
+u2Ä
+u2ň
+u2Å¡
+u3Å¡e
+u3Å¡i
+uš4kl
+u3Å¡o
+uš3tí
+u3Å¡u
+u3šá
+u3ší
+u2ž
+u3že
+u3žo
+u3žu
+u3žá
+u3ží
1v
2v.
va3dl
-va4j[tcaron]
+va4jť
va4kl
2v1b
2v1c
@@ -2851,19 +2851,19 @@ v2ch
2v2d
v4dal
v3di
-v4d[ecaron]k
-v4d[ecaron][ccaron]
+v4děk
+v4dÄ›Ä
ve3dle
ve3jd
3ven
ve2p
ve3ps
-vep3[rcaron]
+vep3Å™
ves3l
ve4sm
ves4p
ve3sta
-ve3t4[rcaron]
+ve3t4Å™
ve2z3m
vi4ch
vide2
@@ -2888,9 +2888,9 @@ vo4jb
vo4jd
vo4jj
vo4jm
-vo4j[rcaron]
+vo4jÅ™
vo2s
-vo4t[rcaron]
+vo4tÅ™
vou3
vous2
v2p
@@ -2900,7 +2900,7 @@ vr2dl
v1ro
vr4st
vrst3v
-vrs4tv[ecaron]
+vrs4tvÄ›
2vs2
v1sk
v3stv
@@ -2913,38 +2913,38 @@ vy3s2
vy4sn
vys4t
vy3t
-vy3[ccaron]
-vy[ccaron]4k
-vy[scaron]2
-vy4[scaron].
-vy4[scaron]m
-vy4[scaron][scaron]
-vy4[zcaron]l
+vy3Ä
+vyÄ4k
+vyš2
+vy4Å¡.
+vy4Å¡m
+vy4Å¡Å¡
+vy4žl
v2z2
vz4no
-vz4n[eacute]
-vz4n[ecaron]
-vz4n[iacute]
-v[aacute]3ri
-2v2[ccaron]
-v3[ccaron][aacute]
-v3[ccaron][iacute]
-v4[ccaron][iacute]r
-v[ecaron]4cm
-v[ecaron]3t4a
-v[iacute]ce3
-v[iacute]4hat
-3v[iacute]n
-2v[ncaron]
-2v[rcaron][iacute]
-v3[rcaron][iacute]n
-v2[scaron]2
-v[scaron]e3s
-v3[scaron]t[iacute].
-3v[yacute]s
-v[yacute]3t
-3v[yacute]3z
-v2[zcaron]2
+vz4né
+vz4nÄ›
+vz4ní
+vá3ri
+2v2Ä
+v3Äá
+v3Äí
+v4Äír
+vě4cm
+vě3t4a
+více3
+ví4hat
+3vín
+2vň
+2vří
+v3řín
+v2Å¡2
+vše3s
+v3ští.
+3výs
+vý3t
+3vý3z
+v2ž2
wa4fd
3war
wa4re
@@ -2965,7 +2965,7 @@ yb3ri
y2ch
y4chr
y2d1l
-yd4l[aacute]
+yd4lá
y2dr
yd4y.
y2e
@@ -2978,14 +2978,14 @@ y2kl
yk3la
y3klop
yk4ly
-yman[eacute]4
+ymané4
ym4kl
yna4s
y3ni
ype4r
yp4si
-yp4t[aacute]
-y2p[rcaron]
+yp4tá
+y2pÅ™
yr2v
y2s
y3sa
@@ -3001,38 +3001,38 @@ yst4r
y3su
y3sv
y3sy
-y3s[aacute]
-y3s[eacute]
-y3s[iacute]
+y3sá
+y3sé
+y3sí
yt4me
-yu3[zcaron]
+yu3ž
y3vs
-yv[ecaron]4t
+yvě4t
y3zb
y3zd
y3zk
y3zn
-yz4n[ecaron]
-yz4n[iacute]
+yz4nÄ›
+yz4ní
y3zp
yz4po
-y[ccaron]2k
-y2[ncaron]
-y[rcaron]3b
-y[rcaron]k4n
-y[rcaron]4[ccaron]e
-y3[rcaron][iacute]
-y2[scaron]
-y3[scaron]e
-y3[scaron]i
-y3[scaron]k
-y[scaron]1l
-y3[scaron]o
-y3[scaron]p
-y3[scaron]u
-y3[scaron][iacute]
-y[zcaron]2
-y3[zcaron]d
+yÄ2k
+y2ň
+yř3b
+yřk4n
+yÅ™4Äe
+y3ří
+y2Å¡
+y3Å¡e
+y3Å¡i
+y3Å¡k
+yš1l
+y3Å¡o
+y3Å¡p
+y3Å¡u
+y3ší
+yž2
+y3žd
1z
2z.
zab2l
@@ -3056,11 +3056,11 @@ zat4r
za4ut
za3z
zaz4n
-za4z[scaron]
-za4[ccaron].
-za3[scaron]
-za[scaron]4k
-za4[scaron]s
+za4zš
+za4Ä.
+za3Å¡
+zaš4k
+za4Å¡s
2zb
zban4
z2by
@@ -3068,11 +3068,11 @@ zbys4
2z1c
2z2d
z3di
-zdn[ecaron]4n[iacute]
+zdně4ní
z4doba
-z4dobn[yacute]
+z4dobný
zd4re
-zd4v[iacute]
+zd4ví
z2e
ze3h
ze3p2
@@ -3085,16 +3085,16 @@ ze3vn
ze3z
ze4z.
2z2f
-z1h[aacute]
+z1há
z4ine
z2j
-z3j[iacute]
+z3jí
2z2k
z3ka.
z3ky
-z3k[eacute]
-z3k[uring]
-z3k[yacute]
+z3ké
+z3ků
+z3ký
2zl
3zl.
zlhos4
@@ -3104,7 +3104,7 @@ z2m2
2zme
z3mn
z3my
-z4m[ecaron]n
+z4měn
2z2n
3znak
z4nal
@@ -3113,571 +3113,571 @@ z3nic
z3no
z3nu
z3ny
-z3n[eacute]
-z3n[ecaron]
-z4n[ecaron]l
-z3n[iacute]
-z4n[iacute]t
-z4n[iacute]v
-z3n[yacute]
+z3né
+z3nÄ›
+z4něl
+z3ní
+z4nít
+z4nív
+z3ný
zo4tr
-zo4[scaron]k
+zo4Å¡k
2z2p
z3pt
-z4p[aacute]t
+z4pát
3zrak
2z1s2
2zt
ztros3
-z4tr[aacute]
-z3t[rcaron]
+z4trá
+z3tÅ™
3zu.
zu3mo
-zu3m[ecaron]
-zu3m[iacute]
-zu3[scaron]
+zu3mÄ›
+zu3mí
+zu3Å¡
z2v
zva4d
-z3va[rcaron]
+z3vaÅ™
z3vi
zvik4
-zv4n[ecaron]
+zv4nÄ›
z3vod
z3voj
z4von
zv4ro
-z4v[aacute]n
-z4v[ecaron]s
-z3v[iacute]j
+z4ván
+z4věs
+z3víj
3zy.
2zz
-z[aacute]1
-z[aacute]h2
-z[aacute]4kl.
-3z[aacute]p
-z[aacute]3s2
-z[aacute]3z
-z[aacute][scaron]2
-2z[ccaron]
-z3[ccaron]l
-2z[ncaron]
-z2[rcaron]
-z[rcaron]ej3
-z3[rcaron]ez
-z3[rcaron]e[scaron]
-2z[scaron]2
-z3[scaron]k
-z[scaron]4ka
-z3[scaron]t
-2z2[uacute]1
-z[uacute]3[ccaron]
-z[uacute]3[zcaron]
-z[uring]3s
-[aacute]1b
-[aacute]2bl
-[aacute]b4ry
-[aacute]4b[rcaron].
-[aacute]3cho
-[aacute]c3ti3
-[aacute]1d
-[aacute]2dl
-[aacute]do4s
-[aacute]dos4ti
-[aacute]d1[rcaron]
-[aacute]1ha
-[aacute]3he
-[aacute]h1l
-[aacute]3hl.
-[aacute]h3n
-[aacute]1ho
-[aacute]1hr
-[aacute]1h[aacute]
-[aacute]1j
-[aacute]4jmu
-[aacute]j4m[uring]
-[aacute]4kli
-[aacute]k4ni
-[aacute]1la
-[aacute]1le
-[aacute]1lo
-[aacute]1lu
-[aacute]1ly
-[aacute]3l[eacute]
-[aacute]1l[iacute]
-[aacute]3my
-[aacute]3m[eacute]
-[aacute]1m[ecaron]
-[aacute]3m[iacute]
-[aacute]3m[yacute]
-[aacute]ne4v
-[aacute]1ra
-[aacute]1re
-[aacute]r2m
-[aacute]1ro
-[aacute]1ru
-[aacute]3r[uring]
-[aacute]1s
-[aacute]2sc
-[aacute]2s3k
-[aacute]s4k.
-[aacute]s4kl
-[aacute]s4kn
-[aacute]2sla
-[aacute]s4ly
-[aacute]2sm
-[aacute]s4po
-[aacute]2st
-[aacute]t3k
-[aacute]t1r
-[aacute]1tu
-[aacute]1ty
-[aacute]1t[iacute]
-[aacute]3t[yacute]
-[aacute]v4si
-[aacute]v4s[iacute]
-[aacute]z3k
-[aacute]z3ni
-[aacute]zni4c
-[aacute]z4vi
-[aacute]2[ncaron]
-[aacute]1[rcaron]
-[aacute][rcaron]4ke
-[aacute][rcaron]4k[uring]
-[aacute]2[scaron]
-[aacute]3[scaron]e
-[aacute]3[scaron][iacute]
-2[ccaron].
-1[ccaron]a
-[ccaron]a4br
-2[ccaron]b
-2[ccaron]1c
-1[ccaron]e
-3[ccaron]e.
-[ccaron]e1c
-[ccaron]es3k
-1[ccaron]i
-2[ccaron]k
-[ccaron]3ka.
-[ccaron]3ko
-[ccaron]3ku
-[ccaron]3ky
-2[ccaron]1m
-2[ccaron]n
-[ccaron]2ne
-1[ccaron]o
-[ccaron]2p
-2[ccaron]s
-[ccaron]1sk
-[ccaron]s4la
-[ccaron]s4sr
-2[ccaron]2t
-[ccaron]4ten[eacute].
-[ccaron]4ten[yacute]
-[ccaron]t4la
-[ccaron]4tov[yacute].
-3[ccaron]tv
-4[ccaron]t[ecaron]n
-[ccaron]3t[iacute]
-1[ccaron]u
-1[ccaron][aacute]
-1[ccaron][iacute]
-[ccaron][iacute]s3l
-1[ccaron][uring]
-2[dcaron].
-1[dcaron]a
-1[dcaron]o
-[dcaron]s4te
-2[dcaron]1t
-3[dcaron]uj
-[eacute]1
-[eacute]2d
-[eacute]3di
-[eacute]3do
-[eacute]2f
-[eacute]3fo
-[eacute]f1r
-[eacute]2kl
-[eacute]2l
-[eacute]2m
-[eacute]3ma
-[eacute]3me
-[eacute]3mi
-[eacute]3mo
-[eacute]3mu
-[eacute]3m[uring]
-4[eacute]re.
-[eacute]2s
-[eacute]2t
-[eacute]3ta
-[eacute]3to
-[eacute]3t[aacute]
-[eacute]2[scaron]
-[eacute]2[zcaron]
-[ecaron]1c
-[ecaron]d3r
-[ecaron]3ha
-[ecaron]3he
-[ecaron]3hl.
-[ecaron]h3lo
-[ecaron]h3n
-[ecaron]1ho
-[ecaron]3hu
-[ecaron]3h[uring]
-[ecaron]3ja
-[ecaron]1je
-[ecaron]1jo
-[ecaron]3j[uring]
-[ecaron]4kl[eacute]
-[ecaron]3k2t
-[ecaron]1l
-[ecaron]1ra
-[ecaron]ra3d
-[ecaron]1re
-[ecaron]1ro
-[ecaron]r3s
-[ecaron]rs4t
-[ecaron]1ru
-[ecaron]1ry
-[ecaron]1r[uring]
-[ecaron]s3k
-[ecaron]s3n
-[ecaron]t1a3
-[ecaron]t4ac
-[ecaron]t1l
-[ecaron]1tr
-[ecaron]t3ra
-[ecaron]4traj
-[ecaron]t3v
-[ecaron]1t[iacute]
-[ecaron]t3[rcaron][iacute]
-[ecaron]2v
-[ecaron]3va
-[ecaron]3ve
-[ecaron]3vl
-[ecaron]3vo
-[ecaron]3vu
-[ecaron]3v[aacute]
-[ecaron]v3[ccaron]
-[ecaron]2z
-[ecaron]3ze
-[ecaron]3zi
-[ecaron]z3n
-[ecaron]3zo
-[ecaron]3z[iacute]
-[ecaron]1[rcaron]
-[ecaron]2[scaron]
-[ecaron]3[scaron]e
-[ecaron]3[scaron]i
-[ecaron]3[scaron]o
-[ecaron]3[scaron]u
-[ecaron]3[scaron][aacute]
-[ecaron]3[scaron][iacute]
-[ecaron][scaron]3[tcaron]
-[ecaron][scaron]4[tcaron]s
-[ecaron]2[tcaron]
-[ecaron]3[tcaron]o
-[ecaron]2[zcaron]
-[ecaron]3[zcaron]e
-[ecaron]3[zcaron]i
-[ecaron]3[zcaron]o
-[ecaron]3[zcaron]u
-[ecaron]3[zcaron][iacute]
-[iacute]1b
-[iacute]b3[rcaron]
-[iacute]3cho
-[iacute]ch4t
-[iacute]d1l
-[iacute]1h
-[iacute]2hl
-[iacute]h3n
-[iacute]1j
-[iacute]jed4
-[iacute]j4m[uring]
-[iacute]2kr
-[iacute]1l
-[iacute]1m[aacute]
-[iacute]3m[eacute]
-[iacute]1m[ecaron]
-[iacute]1r
-[iacute]1sa
-[iacute]2s3k
-[iacute]s4kl
-[iacute]s4kn
-[iacute]s4l.
-[iacute]s3le
-[iacute]s4ln
-[iacute]s[aacute]h2
-[iacute]1t
-[iacute]t3k
-[iacute]3t3[rcaron]e
-[iacute]z3da
-[iacute]z3de
-[iacute]z3k
-[iacute]3zna
-[iacute]3z3ni
-[iacute]3zn[ecaron]n
-[iacute]2[ncaron]
-[iacute]1[rcaron]
-[iacute]2[scaron]
-[iacute]3[scaron]e
-[iacute]3[scaron]i
-[iacute]3[scaron]o
-[iacute]3[scaron][iacute]
-1[ncaron]
-2[ncaron].
-2[ncaron]a
-[ncaron]a3d
-2[ncaron]k
-2[ncaron]m
-3[ncaron]ov
-[ncaron]1s
-2[ncaron]1t
-[oacute]1
-[oacute]2z
-[oacute]3za
-[oacute]3zi
-[oacute]3zo
-[oacute]3zy
-2[rcaron].
-[rcaron]a4pl
-[rcaron]a4[dcaron]m
-2[rcaron]2b
-2[rcaron]c
-2[rcaron]d
-[rcaron]e3ch
-[rcaron]e4dob
-[rcaron]e1h
-[rcaron]e3jd
-[rcaron]e3kl
-[rcaron]e3kv
-[rcaron]e4k[rcaron][iacute]
-[rcaron]eo4r
-[rcaron]e3p2
-[rcaron]e4p.
-[rcaron]e4pk
-[rcaron]e4p[ccaron]
-[rcaron]er4v
-2[rcaron]es
-[rcaron]e3ska
-[rcaron]e3sko
-[rcaron]e2sp
-[rcaron]es3po
-[rcaron]e4sr
-[rcaron]e3sta
-[rcaron]e3stu
-[rcaron]e3st[aacute]
-[rcaron]e3st[rcaron]
-[rcaron]e3tl
-[rcaron]et4[rcaron]
-[rcaron]e3zd
-[rcaron]e3zk
-4[rcaron]ezl
-[rcaron]e3[ccaron]t
-[rcaron]i1
-[rcaron]ia3
-[rcaron]i3h
-[rcaron]i4h.
-[rcaron]i4hn
-[rcaron]i4j[dcaron]
-[rcaron]i4l.
-[rcaron]i4lb
-[rcaron]il2n
-4[rcaron]ine
-[rcaron]is2
-3[rcaron]i4t.
-[rcaron]i4v.
-[rcaron]i4vk
-[rcaron]i4vn
-[rcaron]i3z
-[rcaron]i[ccaron]4t
-[rcaron]i3[rcaron]
-[rcaron]i4[scaron].
-2[rcaron]k
-[rcaron]2kl
-[rcaron]k4la
-[rcaron]k4li
-[rcaron]k4ly
-[rcaron]k4no
-2[rcaron]1l
-2[rcaron]1m
-2[rcaron]n
-1[rcaron]o
-2[rcaron]ou
-2[rcaron]2p
-2[rcaron]1s
-[rcaron]s4to
-2[rcaron]1t
-[rcaron]2v
-2[rcaron]z
-[rcaron][aacute]4pl
-[rcaron][aacute]2sl
-2[rcaron]1[ccaron]
-2[rcaron][iacute]d
-[rcaron][iacute]4k[rcaron]
-[rcaron][iacute]1s
-2[rcaron][scaron]
-[rcaron]3[scaron]t
-[rcaron][scaron]4ti
-1[scaron]
-2[scaron].
-[scaron]ab3
-[scaron]a4vl
-2[scaron]1c
-[scaron]ej4d
-[scaron]ep3t
-[scaron]i4mr
-2[scaron]2k
-[scaron]3ka
-[scaron]3ke
-[scaron]3k3li
-4[scaron]3kou
-4[scaron]kov
-3[scaron]kr
-[scaron]k4ro
-[scaron]3ku.
-[scaron]3ky
-2[scaron]l
-[scaron]2la
-[scaron]2li
-[scaron]3liv
-[scaron]2lo
-[scaron]l[aacute]2
-[scaron]2l[eacute]
-[scaron]2l[yacute]
-2[scaron]1m
-[scaron]mi4d
-2[scaron]n
-[scaron]2p
-2[scaron]1s
-2[scaron]t
-[scaron]4tip
-[scaron]t4ka
-[scaron]t4kl
-[scaron]4t[ecaron]k
-[scaron]2t[ecaron]s
-[scaron]4t[ecaron]v
-[scaron]4t[iacute]p
-[scaron]2v
-[scaron][iacute]3d
-[scaron]2[ncaron]
-[scaron]3[scaron][iacute]
-2[scaron]2[tcaron]
-[scaron]3[tcaron]o
-[scaron]3[tcaron]u
-[scaron]3[tcaron][aacute]
-1[tcaron]
-2[tcaron].
-3[tcaron]al
-2[tcaron]k
-2[tcaron]m
-2[tcaron]t
-[tcaron][aacute][ccaron]4k
-1[uacute]
-[uacute]2c2
-[uacute]2d
-[uacute]j4ma
-[uacute]2k
-[uacute]2l
-[uacute]2n
-[uacute]2p
-[uacute]2t
-[uacute]t4ko
-[uacute]2v
-[uacute]2z
-[uacute]z3k
-[uacute]2[ccaron]
-3[uacute][ccaron]e
-[uacute][rcaron]e4z
-[uacute][scaron]4ti
-[uacute]2[zcaron]
-[uring]1b
-[uring]1c
-[uring]1hl
-[uring]3jd
-[uring]4jmov[yacute]
-[uring]1le
-[uring]1my
-[uring]1m[ecaron]
-[uring]1ra
-[uring]r4va
-[uring]r4vy
-[uring]1s2
-[uring]2st
-[uring]s3te
-[uring]s3t[aacute]n
-[uring]t2
-[uring]3tkl
-[uring]2v
-[uring]3va
-[uring]3vo
-[uring]3v[ecaron]
-[uring]2z
-[uring]3zo
-[uring]2[zcaron]
-[uring]3[zcaron]e
-[uring]3[zcaron]i
-[uring]3[zcaron]o
-[yacute]1b
-[yacute]3cho
-[yacute]1d
-[yacute]d4la
-[yacute]1h
-[yacute]1j
-[yacute]1l
-[yacute]1ml
-[yacute]1m[ecaron]
-[yacute]2n
-[yacute]3no
-[yacute]po3[ccaron]4
-[yacute]1r
-[yacute]1s2
-[yacute]2sk
-[yacute]1t
-[yacute]t4ku
-[yacute]t4ky
-[yacute]1u
-[yacute]4vli
-[yacute]3zk
-[yacute]3zn
-[yacute]4zvu
-[yacute][ccaron]4n[ecaron]
-[yacute]1[rcaron]
-[yacute][scaron]3l
-1[zcaron]
-2[zcaron].
-[zcaron]a3d
-[zcaron]a4tv
-3[zcaron]a[ccaron]
-2[zcaron]1b
-2[zcaron]1c
-2[zcaron]1d
-[zcaron]e2b3
-[zcaron]eh3n
-[zcaron]e4ml
-[zcaron]e4zg
-[zcaron]i4dl
-[zcaron]i4jm
-3[zcaron]il
-[zcaron]i2vl
-2[zcaron]k
-[zcaron]k4ni
-2[zcaron]l
-[zcaron]4lic
-3[zcaron]lo
-2[zcaron]1m
-2[zcaron]n
-[zcaron]on2
-2[zcaron]1s2
-2[zcaron]1t
-[zcaron]2v
-[zcaron][aacute]4br
-[zcaron][aacute]4nr
-2[zcaron][dcaron]
-[zcaron][iacute]4zn
-2[zcaron][ncaron]
-2[zcaron][scaron]
-[zcaron][scaron]4ti
-[zcaron][scaron]4t[ecaron]
+zá1
+záh2
+zá4kl.
+3záp
+zá3s2
+zá3z
+záš2
+2zÄ
+z3Äl
+2zň
+z2Å™
+zřej3
+z3řez
+z3řeš
+2zš2
+z3Å¡k
+zš4ka
+z3Å¡t
+2z2ú1
+zú3Ä
+zú3ž
+zů3s
+á1b
+á2bl
+áb4ry
+á4bř.
+á3cho
+ác3ti3
+á1d
+á2dl
+ádo4s
+ádos4ti
+ád1ř
+á1ha
+á3he
+áh1l
+á3hl.
+áh3n
+á1ho
+á1hr
+á1há
+á1j
+á4jmu
+áj4mů
+á4kli
+ák4ni
+á1la
+á1le
+á1lo
+á1lu
+á1ly
+á3lé
+á1lí
+á3my
+á3mé
+á1mě
+á3mí
+á3mý
+áne4v
+á1ra
+á1re
+ár2m
+á1ro
+á1ru
+á3rů
+á1s
+á2sc
+á2s3k
+ás4k.
+ás4kl
+ás4kn
+á2sla
+ás4ly
+á2sm
+ás4po
+á2st
+át3k
+át1r
+á1tu
+á1ty
+á1tí
+á3tý
+áv4si
+áv4sí
+áz3k
+áz3ni
+ázni4c
+áz4vi
+á2ň
+á1ř
+ář4ke
+ář4ků
+á2š
+á3še
+á3ší
+2Ä.
+1Äa
+Äa4br
+2Äb
+2Ä1c
+1Äe
+3Äe.
+Äe1c
+Äes3k
+1Äi
+2Äk
+Ä3ka.
+Ä3ko
+Ä3ku
+Ä3ky
+2Ä1m
+2Än
+Ä2ne
+1Äo
+Ä2p
+2Äs
+Ä1sk
+Äs4la
+Äs4sr
+2Ä2t
+Ä4tené.
+Ä4tený
+Ät4la
+Ä4tový.
+3Ätv
+4ÄtÄ›n
+Ä3tí
+1Äu
+1Äá
+1Äí
+Äís3l
+1Äů
+2Ä.
+1Äa
+1Äo
+Äs4te
+2Ä1t
+3Äuj
+é1
+é2d
+é3di
+é3do
+é2f
+é3fo
+éf1r
+é2kl
+é2l
+é2m
+é3ma
+é3me
+é3mi
+é3mo
+é3mu
+é3mů
+4ére.
+é2s
+é2t
+é3ta
+é3to
+é3tá
+é2š
+é2ž
+ě1c
+ěd3r
+ě3ha
+ě3he
+ě3hl.
+ěh3lo
+ěh3n
+ě1ho
+ě3hu
+ě3hů
+ě3ja
+ě1je
+ě1jo
+ě3jů
+ě4klé
+ě3k2t
+ě1l
+ě1ra
+ěra3d
+ě1re
+ě1ro
+ěr3s
+ěrs4t
+ě1ru
+ě1ry
+ě1rů
+ěs3k
+ěs3n
+ět1a3
+ět4ac
+ět1l
+ě1tr
+ět3ra
+ě4traj
+ět3v
+ě1tí
+ět3ří
+ě2v
+ě3va
+ě3ve
+ě3vl
+ě3vo
+ě3vu
+ě3vá
+Ä›v3Ä
+ě2z
+ě3ze
+ě3zi
+ěz3n
+ě3zo
+ě3zí
+ě1ř
+ě2š
+ě3še
+ě3ši
+ě3šo
+ě3šu
+ě3šá
+ě3ší
+ěš3ť
+ěš4ťs
+ě2ť
+ě3ťo
+ě2ž
+ě3že
+ě3ži
+ě3žo
+ě3žu
+ě3ží
+í1b
+íb3ř
+í3cho
+ích4t
+íd1l
+í1h
+í2hl
+íh3n
+í1j
+íjed4
+íj4mů
+í2kr
+í1l
+í1má
+í3mé
+í1mě
+í1r
+í1sa
+í2s3k
+ís4kl
+ís4kn
+ís4l.
+ís3le
+ís4ln
+ísáh2
+í1t
+ít3k
+í3t3ře
+íz3da
+íz3de
+íz3k
+í3zna
+í3z3ni
+í3zněn
+í2ň
+í1ř
+í2š
+í3še
+í3ši
+í3šo
+í3ší
+1ň
+2ň.
+2ňa
+ňa3d
+2ňk
+2ňm
+3ňov
+ň1s
+2ň1t
+ó1
+ó2z
+ó3za
+ó3zi
+ó3zo
+ó3zy
+2Å™.
+řa4pl
+Å™a4Äm
+2ř2b
+2řc
+2řd
+ře3ch
+ře4dob
+ře1h
+ře3jd
+ře3kl
+ře3kv
+ře4kří
+řeo4r
+ře3p2
+ře4p.
+ře4pk
+Å™e4pÄ
+řer4v
+2řes
+ře3ska
+ře3sko
+ře2sp
+řes3po
+ře4sr
+ře3sta
+ře3stu
+ře3stá
+ře3stř
+ře3tl
+řet4ř
+ře3zd
+ře3zk
+4řezl
+Å™e3Ät
+ři1
+řia3
+ři3h
+ři4h.
+ři4hn
+Å™i4jÄ
+ři4l.
+ři4lb
+řil2n
+4řine
+řis2
+3ři4t.
+ři4v.
+ři4vk
+ři4vn
+ři3z
+Å™iÄ4t
+ři3ř
+ři4š.
+2řk
+ř2kl
+řk4la
+řk4li
+řk4ly
+řk4no
+2ř1l
+2ř1m
+2řn
+1řo
+2řou
+2ř2p
+2ř1s
+řs4to
+2ř1t
+ř2v
+2řz
+řá4pl
+řá2sl
+2Å™1Ä
+2říd
+ří4kř
+ří1s
+2řš
+ř3št
+řš4ti
+1Å¡
+2Å¡.
+Å¡ab3
+Å¡a4vl
+2Å¡1c
+Å¡ej4d
+Å¡ep3t
+Å¡i4mr
+2Å¡2k
+Å¡3ka
+Å¡3ke
+Å¡3k3li
+4Å¡3kou
+4Å¡kov
+3Å¡kr
+Å¡k4ro
+Å¡3ku.
+Å¡3ky
+2Å¡l
+Å¡2la
+Å¡2li
+Å¡3liv
+Å¡2lo
+šlá2
+š2lé
+š2lý
+2Å¡1m
+Å¡mi4d
+2Å¡n
+Å¡2p
+2Å¡1s
+2Å¡t
+Å¡4tip
+Å¡t4ka
+Å¡t4kl
+š4těk
+š2těs
+š4těv
+š4típ
+Å¡2v
+ší3d
+š2ň
+š3ší
+2Å¡2Å¥
+Å¡3Å¥o
+Å¡3Å¥u
+š3ťá
+1Å¥
+2Å¥.
+3Å¥al
+2Å¥k
+2Å¥m
+2Å¥t
+ťáÄ4k
+1ú
+ú2c2
+ú2d
+új4ma
+ú2k
+ú2l
+ú2n
+ú2p
+ú2t
+út4ko
+ú2v
+ú2z
+úz3k
+ú2Ä
+3úÄe
+úře4z
+úš4ti
+ú2ž
+ů1b
+ů1c
+ů1hl
+ů3jd
+ů4jmový
+ů1le
+ů1my
+ů1mě
+ů1ra
+ůr4va
+ůr4vy
+ů1s2
+ů2st
+ůs3te
+ůs3tán
+ůt2
+ů3tkl
+ů2v
+ů3va
+ů3vo
+ů3vě
+ů2z
+ů3zo
+ů2ž
+ů3že
+ů3ži
+ů3žo
+ý1b
+ý3cho
+ý1d
+ýd4la
+ý1h
+ý1j
+ý1l
+ý1ml
+ý1mě
+ý2n
+ý3no
+ýpo3Ä4
+ý1r
+ý1s2
+ý2sk
+ý1t
+ýt4ku
+ýt4ky
+ý1u
+ý4vli
+ý3zk
+ý3zn
+ý4zvu
+ýÄ4nÄ›
+ý1ř
+ýš3l
+1ž
+2ž.
+ža3d
+ža4tv
+3žaÄ
+2ž1b
+2ž1c
+2ž1d
+že2b3
+žeh3n
+že4ml
+že4zg
+ži4dl
+ži4jm
+3žil
+ži2vl
+2žk
+žk4ni
+2žl
+ž4lic
+3žlo
+2ž1m
+2žn
+žon2
+2ž1s2
+2ž1t
+ž2v
+žá4br
+žá4nr
+2žÄ
+ží4zn
+2žň
+2žš
+žš4ti
+žš4tě
}
% end pattern data
diff --git a/Master/texmf-dist/tex/context/patterns/lang-da.pat b/Master/texmf-dist/tex/context/patterns/lang-da.pat
index f64f3506a7d..c8c25bba158 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-da.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-da.pat
@@ -21,129 +21,6 @@
% begin pattern data
\patterns {
-.s[aring]3
-.[aeligature]r5i
-.[ostroke]v3r
-a3t[ostroke]
-a5v[aeligature]
-br[ostroke]d3
-5b[aeligature]
-5dr[ostroke]v
-dst[aring]4
-3d[aeligature]
-3d[ostroke]
-e3l[aeligature]
-e3l[ostroke]
-e3r[ostroke]
-er5[ostroke]n
-e5t[aeligature]
-e5t[ostroke]
-e1v[aeligature]
-e3[aeligature]
-e5[aring]
-3f[aeligature]
-3f[ostroke]
-f[ostroke]4r5en
-gi[ostroke]4
-g4s[ostroke]
-g5s[aring]
-3g[aeligature]
-3g[ostroke]1
-3g[aring]
-i5t[aeligature]
-i3[ostroke]
-3k[ostroke]
-3k[aring]
-lingeni[ostroke]4
-l3v[aeligature]
-5l[ostroke]s
-m5t[aring]
-1m[aeligature]
-3m[ostroke]
-3m[aring]
-n3k[aeligature]
-n5t[aeligature]
-3n[aeligature]
-4n5[aeligature]b
-5n[ostroke]
-o5l[aeligature]
-or3[ostroke]
-o5[aring]
-5pr[aeligature]
-5p[aeligature]d
-p[aring]3
-r5k[aeligature]
-r5t[aeligature]
-r5t[ostroke]
-r3v[aeligature]
-r5[aeligature]l
-4r[ostroke]n
-5r[ostroke]r
-3r[aring]d
-r5[aring]r
-s4k[aring]
-3sl[aring]
-s4n[aeligature]
-5st[ostroke]
-1st[aring]
-1s[aeligature]
-4s5[aeligature]n
-1s[ostroke]
-s5[ostroke]k
-s[aring]4r5
-ti4[ostroke]
-3tr[aeligature]k.
-t4s[ostroke]
-t5s[aring]
-t3v[aeligature]
-u3l[aeligature]
-3v[aeligature]rd
-1v[aeligature]rk
-5v[aring]
-y5v[aeligature]
-[aeligature]b3l
-[aeligature]3c
-[aeligature]3e
-[aeligature]g5a
-[aeligature]4gek
-[aeligature]4g5r
-[aeligature]gs5
-[aeligature]5i
-[aeligature]5kv
-[aeligature]lle4
-[aeligature]n1dr
-[aeligature]5o
-[aeligature]1re
-[aeligature]r4g5r
-[aeligature]3ri
-[aeligature]r4ma
-[aeligature]r4mo
-[aeligature]r5s
-[aeligature]5si
-[aeligature]3so
-[aeligature]3ste
-[aeligature]3ve
-[ostroke]de5
-[ostroke]3e
-[ostroke]1je
-[ostroke]3ke
-[ostroke]3le
-[ostroke]ms5
-[ostroke]n3st
-[ostroke]n4t3
-[ostroke]1re
-[ostroke]3ri
-[ostroke]rne3
-[ostroke]r5o
-[ostroke]1ve
-[aring]1d
-[aring]1e
-[aring]5h
-[aring]3l
-[aring]3re
-[aring]rs5t
-[aring]5sk
-[aring]3t
.ae3
.an3k
.an1s
diff --git a/Master/texmf-dist/tex/context/patterns/lang-de.pat b/Master/texmf-dist/tex/context/patterns/lang-de.pat
index 02b446508b7..0a31dac79b2 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-de.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-de.pat
@@ -110,7 +110,7 @@
.furch8
.ga6ner
.ge3n4a
-.ge5r[odiaeresis]
+.ge5rö
.ges6
.halb5
.halbe6
@@ -137,11 +137,11 @@
.ki4e
.kop6f3
.kraf6
-.k[udiaeresis]5ra
+.kü5ra
.lab6br
.liie6
.lo6s5k
-.l[odiaeresis]4s3t
+.lö4s3t
.ma5d
.mi2t1
.no6th
@@ -162,7 +162,7 @@
.re5an
.ro8q
.ru5the
-.r[udiaeresis]5be
+.rü5be
.sch8
.se6e
.se5n6h
@@ -197,8 +197,8 @@
.wun4s
.zi4e
.zuch8
-.[adiaeresis]nde8re
-.[odiaeresis]ch8
+.ände8re
+.öch8
aa1c
aa2gr
aal5e
@@ -216,17 +216,17 @@ ab5err
ab5esse
1abf
1abg
-1abh[adiaeresis]
+1abhä
ab1ir
1abko
a1bl
ab1la
5ablag
-a6bla[ssharp]
+a6blaß
ab4ler
ab1lu
-a8bl[adiaeresis]
-5a6bl[odiaeresis]
+a8blä
+5a6blö
abma5c
1abn
ab1ra
@@ -241,8 +241,8 @@ ab1ur
1abw
5abze
5abzu
-ab1[adiaeresis]n
-ab[adiaeresis]u8
+ab1än
+abäu8
a4ce.
a5chal
ach5art
@@ -260,7 +260,7 @@ ach3re
a1chu
ach1w
a1chy
-ach5[adiaeresis]f
+ach5äf
ack1o
acks6t
ack5sta
@@ -280,7 +280,7 @@ a2dre
3adres
adt1
1adv
-a6d[adiaeresis]
+a6dä
a1e2d
ae1r
a1er.
@@ -301,7 +301,7 @@ af6tent
af6tra
aft5re
a6f5um
-8af[adiaeresis]
+8afä
ag5abe
5a4gent
ag8er
@@ -332,7 +332,7 @@ ahre4s3
ahr8ti
ah1ru
a1hu
-ah8[odiaeresis]
+ah8ö
ai3d2s
ai1e
aif6
@@ -382,7 +382,7 @@ al4t3re
alu5i
a6lur
alu3ta
-a1l[adiaeresis]
+a1lä
a6mate
8ame.
5a6meise
@@ -393,7 +393,7 @@ ampf3a
am6schw
am2ta
a1mu
-a1m[adiaeresis]
+a1mä
a3nac
a1nad
anadi5e
@@ -417,7 +417,7 @@ a8nerf
a6n5erke
1anfa
5anfert
-1anf[adiaeresis]
+1anfä
3angab
5angebo
an3gli
@@ -425,7 +425,7 @@ ang6lis
an2gn
3angri
ang5t6
-5anh[adiaeresis]
+5anhä
ani5g
ani4ka
an5i8on
@@ -450,21 +450,21 @@ an1st
an1s2z
5antenn
an1th
-5anw[adiaeresis]
+5anwä
a5ny
an4z3ed
5anzeig
5anzieh
3anzug
-an1[adiaeresis]
-5an[adiaeresis]s
-a1n[odiaeresis]
-an[odiaeresis]8d
+an1ä
+5anäs
+a1nö
+anö8d
a1os
a1pa
3apfel
a2ph1t
-aph5[adiaeresis]6
+aph5ä6
a1pi
8apl
apo1c
@@ -474,8 +474,8 @@ a6poth
1appa
ap1pr
a1pr
-a5p[adiaeresis]
-a3p[udiaeresis]
+a5pä
+a3pü
a1ra
a4r3af
ar3all
@@ -504,11 +504,11 @@ a1ru
a1ry
1arzt
arz1w
-ar8z[adiaeresis]
-ar[adiaeresis]8m
-ar[odiaeresis]6
-ar5[odiaeresis]m
-ar1[udiaeresis]2
+ar8zä
+arä8m
+arö6
+ar5öm
+ar1ü2
a1sa
a6schec
asch5l
@@ -547,18 +547,18 @@ a6t5ort.
4a1tr
a6t5ru
at2t1h
-at5t6h[adiaeresis]
+at5t6hä
6a1tu
atz1w
-a1t[adiaeresis]
-a1t[udiaeresis]
+a1tä
+a1tü
au1a
au6bre
auch3a
au1e
aue4l
5aufent
-3auff[udiaeresis]
+3auffü
3aufga
1aufn
auf1t
@@ -581,7 +581,7 @@ au4sta
aut5eng
au1th
1auto
-au[ssharp]e8
+auße8
a1v
ave5r6a
aver6i
@@ -593,7 +593,7 @@ a6xio
a1ya
a1z
azi5er.
-8a[ssharp]
+8aß
1ba
8ba8del
ba1la
@@ -622,7 +622,7 @@ be5eta
bef2
8beff
be1g2
-beh[odiaeresis]8
+behö8
bei1s
6b5eisen
bei3tr
@@ -636,15 +636,15 @@ be6nerw
be4nor
ben4se6
bens5el
-be1n[adiaeresis]
-be1n[udiaeresis]
+be1nä
+be1nü
be1o2
b8er.
be1ra
be8rac
ber8gab.
ber1r
-be1r[udiaeresis]
+be1rü
bes8c
bes5erh
bes2p
@@ -665,7 +665,7 @@ bi1bl
b6ie
bi1el
bi1la
-bil[adiaeresis]5
+bilä5
bi1na
bi4nok
bi6stu
@@ -673,7 +673,7 @@ bi5tr
bit4t5r
b1j
2b1k2
-bk[udiaeresis]6
+bkü6
bl8
b6la.
6b1lad
@@ -705,11 +705,11 @@ b1loh
2blun
blut3a
blut5sc
-3bl[adiaeresis]
-bl[adiaeresis]s5c
-5bl[odiaeresis]
-3bl[udiaeresis]
-bl[udiaeresis]8sc
+3blä
+bläs5c
+5blö
+3blü
+blü8sc
2b1m
2b1n
1bo
@@ -733,8 +733,8 @@ b6riga
bro1s
b1rup
b2ruz
-8br[odiaeresis]h
-br[odiaeresis]s5c
+8bröh
+brös5c
8bs
b1sa
b8sang
@@ -746,7 +746,7 @@ b8sof
b1s2p
bst1h
b3stru
-b5st[adiaeresis]
+b5stä
b6sun
2b1t
b2t1h
@@ -760,13 +760,13 @@ bu6sin
1by1
by6te.
8b1z
-1b[adiaeresis]
-b5[adiaeresis]6s5
-1b[udiaeresis]
-b6[udiaeresis]5bere
-b[udiaeresis]ge6
-b[udiaeresis]gel5e
-b[udiaeresis]r6sc
+1bä
+b5ä6s5
+1bü
+b6ü5bere
+büge6
+bügel5e
+bür6sc
1ca
cag6
ca5la
@@ -810,7 +810,7 @@ choi8d
6chp
ch3ren
ch6res
-ch3r[udiaeresis]
+ch3rü
2chs
2cht
cht5ha
@@ -845,8 +845,8 @@ c3q
8c1t
1cu
1cy
-5c[adiaeresis]1
-c[odiaeresis]5
+5cä1
+cö5
1da.
8daas
2dabg
@@ -881,7 +881,7 @@ dar6men
2d1d
d5de
d3d2h
-dd[adiaeresis]mme8
+ddämme8
1de
2deal
de5an
@@ -990,10 +990,10 @@ droi6
dro5x
1dru
8drut
-dr[odiaeresis]s5c
-1dr[udiaeresis]
-dr[udiaeresis]5b
-dr[udiaeresis]8sc
+drös5c
+1drü
+drü5b
+drü8sc
2ds
d1sa
d6san
@@ -1007,9 +1007,9 @@ d8serg
d1sp
d4spak
ds2po
-d8sp[adiaeresis]
+d8spä
d1st
-d1s[udiaeresis]
+d1sü
2dt
d1ta
d1te
@@ -1017,7 +1017,7 @@ d1ti
d1to
dt1s6
d1tu
-d5t[adiaeresis]
+d5tä
1du
du5als
du1b6
@@ -1041,16 +1041,16 @@ du8schr
2d1w
dwa8l
2d1z
-1d[adiaeresis]
-6d[adiaeresis]h
-8d[adiaeresis]nd
-d[adiaeresis]6r
-d[odiaeresis]8bl
-d5[odiaeresis]l
-d[odiaeresis]r6fl
-d[odiaeresis]8sc
-d5[odiaeresis]4st
-1d[udiaeresis]
+1dä
+6däh
+8dänd
+dä6r
+dö8bl
+d5öl
+dör6fl
+dö8sc
+d5ö4st
+1dü
ea4ben
e1ac
e1ah
@@ -1105,12 +1105,12 @@ ee5isc
eei4s3t
ee6lend
e1ell
-ee5l[odiaeresis]
+ee5lö
e1erd
ee3r4e
ee8reng
eere6s5
-ee5r[adiaeresis]
+ee5rä
ee6tat
e1ex
e1f
@@ -1143,9 +1143,9 @@ ehr5um
e1hu
eh1w
e1hy
-e1h[adiaeresis]
-e1h[odiaeresis]
-e3h[udiaeresis]t
+e1hä
+e1hö
+e3hüt
ei1a
eia6s
ei6bar
@@ -1173,7 +1173,7 @@ ein1k
ei6n5od
ei8nok
ei4nor
-e3ins[adiaeresis]
+e3insä
ei1o
e1irr
ei5ru
@@ -1232,8 +1232,8 @@ el8tent
5eltern
e1lu
elut2
-e1l[adiaeresis]
-e1l[udiaeresis]
+e1lä
+e1lü
em8dei
em8meis
4emo
@@ -1244,7 +1244,7 @@ emo5s
e1mu
emurk4
emurks5
-e1m[adiaeresis]
+e1mä
en5a6ben
en5achs
en5ack
@@ -1314,9 +1314,9 @@ ent5ric
enu5i
e3ny
en8zan
-en1[odiaeresis]f
-e1n[odiaeresis]s
-e1n[udiaeresis]g
+en1öf
+e1nös
+e1nüg
eo1c
e5o6fe
e5okk
@@ -1345,7 +1345,7 @@ e1pl
e6pos.
ep4p3a
e1pr
-e1p[adiaeresis]
+e1pä
e1q
e1ra.
er5aal
@@ -1390,12 +1390,12 @@ er5ero
er5erst
e4r3erz
er3ess
-5erf[udiaeresis]l
+5erfül
er8gan.
5ergebn
er2g5h
-5erg[adiaeresis]nz
-5erh[odiaeresis]hu
+5ergänz
+5erhöhu
2e1ri
eri5ak
e6r5iat
@@ -1405,8 +1405,8 @@ er5ins
e6r5int
er5itio
er1kl
-3erkl[adiaeresis]
-5erl[odiaeresis]s.
+3erklä
+5erlös.
ermen6s
er6nab
3ernst
@@ -1438,11 +1438,11 @@ e5rus
e1ry
er5zwa
er3zwu
-er[adiaeresis]8m
-er5[adiaeresis]s
-er[odiaeresis]8
-e3r[odiaeresis]s.
-e6r1[udiaeresis]2b
+erä8m
+er5äs
+erö8
+e3rös.
+e6r1ü2b
e1sa
esa8b
e8sap
@@ -1472,7 +1472,7 @@ e1str
est5res
es3ur
e2sz
-e1s[udiaeresis]
+e1sü
e1ta
et8ag
etari5e
@@ -1495,9 +1495,9 @@ e1tu
etu1s
et8zent
et8zw
-e1t[adiaeresis]
-e1t[odiaeresis]
-e1t[udiaeresis]
+e1tä
+e1tö
+e1tü
eu1a2
eu1e
eue8rei
@@ -1524,10 +1524,10 @@ ex1or
1extr
ey3er.
e1z
-e1[adiaeresis]2
-e5[odiaeresis]8
-e1[udiaeresis]
-e8[ssharp]es
+e1ä2
+e5ö8
+e1ü
+e8ßes
fa6ch5i
fade8
fa6del
@@ -1606,8 +1606,8 @@ f2lix
6f3lon
5flop
1flor
-5f8l[adiaeresis]c
-3fl[odiaeresis]t
+5f8läc
+3flöt
2f1m
2f1n
1fo
@@ -1627,7 +1627,7 @@ f1q
fr6
f5ram
1f8ran
-f8ra[ssharp]
+f8raß
f8re.
frei1
5frei.
@@ -1638,12 +1638,12 @@ f1rib
6frig
1fris
fro8na
-fr[adiaeresis]s5t
+fräs5t
2fs
f1sc
f2s1er
f5str
-fs3t[adiaeresis]t
+fs3tät
2ft
f1tak
f1te
@@ -1663,20 +1663,20 @@ ft1z
6f5ums
6funf
fun4ka
-fu8[ssharp]end
+fu8ßend
6f1v
2f1w
2f1z
-1f[adiaeresis]
-f[adiaeresis]1c
-8f[adiaeresis]rm
-6f[adiaeresis]ug
-f[adiaeresis]8[ssharp]
-f[odiaeresis]de3
-8f[odiaeresis]f
-3f[odiaeresis]r
-1f[udiaeresis]
-f[udiaeresis]n4f3u
+1fä
+fä1c
+8färm
+6fäug
+fä8ß
+föde3
+8föf
+3för
+1fü
+fün4f3u
1ga
ga6bl
6gabw
@@ -1723,21 +1723,21 @@ ge1im
geist5r
gel8bra
gelt8s
-ge5l[odiaeresis]
+ge5lö
ge8nin
gen3k
6g5entf
-ge3n[adiaeresis]
+ge3nä
ge1or
ge1ra
ge6rab
ger8au
-8gerh[odiaeresis]
+8gerhö
ger8ins
ge1ro
6g5erz.
-ge1r[adiaeresis]
-ge1r[udiaeresis]
+ge1rä
+ge1rü
ge1s
ges2p
ge2s7te.
@@ -1755,7 +1755,7 @@ g5henn
6g1hi
g1ho
1ghr
-g1h[odiaeresis]
+g1hö
1gi
gi5la
gi8me.
@@ -1794,7 +1794,7 @@ g1los
g4loss
g5luf
1g2ly
-1gl[udiaeresis]
+1glü
2g1m
gn8
6gn.
@@ -1835,7 +1835,7 @@ g5riem
g5ring
6groh
2grot
-gro6[ssharp]
+gro6ß
4grut
2gs
gs1ab
@@ -1872,12 +1872,12 @@ gu2tu
2g1w
gy1n
g1z
-1g[adiaeresis]
-8g[adiaeresis]8m
-6g[adiaeresis]rm
-1g[odiaeresis]
-1g[udiaeresis]
-6g[udiaeresis]b
+1gä
+8gä8m
+6gärm
+1gö
+1gü
+6güb
1haa
hab8r
ha8del
@@ -1903,7 +1903,7 @@ ha5ro
ha2t1h
h1atm
hau6san
-ha8[ssharp]
+ha8ß
h1b2
h1c
h1d
@@ -1977,7 +1977,7 @@ hla6gr
h5lai
hl8am
h1las
-h1la[ssharp]
+h1laß
hl1c
h1led
h3lein
@@ -1990,7 +1990,7 @@ h2lip
h2lit
h4lor
h3lose
-h1l[adiaeresis]s
+h1läs
hme5e
h2nee
h2nei
@@ -2052,14 +2052,14 @@ h6s5erl
hs8erle
h4sob
h1sp
-h8spa[ssharp]
+h8spaß
h8spel
hs6po
h4spun
h1str
h4s3tum
hs3und
-h1s[udiaeresis]
+h1sü
h5ta.
h5tab
ht3ac
@@ -2080,7 +2080,7 @@ ht3eis
h6temp
h8tentf
hte8ren
-h6terf[udiaeresis]
+h6terfü
h8tergr
h4t3erh
h6t5ersc
@@ -2100,33 +2100,33 @@ ht8sk
ht8so
h1tu
htz8
-h5t[udiaeresis]m
+h5tüm
hub5l
hu6b5r
huh1l
h5uhr.
huld5a6
hu8lent
-hu8l[adiaeresis]
+hu8lä
h5up.
h1v
h5weib
h3weis
h1z
-h[adiaeresis]8kl
-h[adiaeresis]l8s
-h[adiaeresis]ma8tu8
-h[adiaeresis]8sche.
-h[adiaeresis]t1s
-h[adiaeresis]u4s3c
-2h[odiaeresis].
-2h[odiaeresis]e
-8h[odiaeresis]i
-h[odiaeresis]6s
-h[odiaeresis]s5c
-h[udiaeresis]hne6
-h[udiaeresis]l4s3t
-h[udiaeresis]tte8re
+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.
@@ -2175,7 +2175,7 @@ ib2le
i4blis
i6brig
i6b5unt
-i6b[udiaeresis]b
+i6büb
i1che
ich5ei
i6cherb
@@ -2196,7 +2196,7 @@ id3arm
3ideal
ide8na
3ideol
-ide5r[odiaeresis]
+ide5rö
i6diot
id5rec
id1t
@@ -2207,7 +2207,7 @@ ie2bl
ieb1r
ie8bra
ie4bre
-ie8b[adiaeresis]
+ie8bä
ie2dr
ie1e8
ie6f5ad
@@ -2306,15 +2306,15 @@ il6l5enn
i1lo
ilt8e
i1lu
-i1l[adiaeresis]
+i1lä
i8mart
imb2
i8mele
i8mid
imme6l5a
i1mu
-i1m[adiaeresis]
-i5m[odiaeresis]
+i1mä
+i5mö
ina5he
i1nat
in1au
@@ -2334,7 +2334,7 @@ ing5s6o
5inhab
ini5er.
5inj
-in8k[adiaeresis]t
+in8kät
in8nan
i1no
inoi8d
@@ -2350,12 +2350,12 @@ ins4ze
in3the
in5t2r
i5ny
-in[adiaeresis]2
-i1n[adiaeresis]r
-in1[adiaeresis]s
-in[odiaeresis]8
-in5[odiaeresis]d
-i1n[odiaeresis]s
+inä2
+i1när
+in1äs
+inö8
+in5öd
+i1nös
2io
io1a8
io1c
@@ -2396,7 +2396,7 @@ ir6schl
ir6sch5r
i5rus
i5ry
-i5r[adiaeresis]
+i5rä
i1sa
i8samt
i6sar
@@ -2405,7 +2405,7 @@ i8scheh
i8schei
isch5m
isch3r
-isch[adiaeresis]8
+ischä8
is8ele
ise3ra
i4s3erh
@@ -2417,7 +2417,7 @@ ison5e
is6por
i8s5tum
i5sty
-i5s[odiaeresis]
+i5sö
i1ta
it5ab.
i2t1a2m
@@ -2427,7 +2427,7 @@ i8tersc
i1thi
i1tho
i5thr
-it8h[adiaeresis]
+it8hä
i1ti
i8ti8d
iti6kl
@@ -2445,11 +2445,11 @@ it8tru
i1tu
it6z5erg
it6z1w
-i1t[adiaeresis]
-it[adiaeresis]6r5e
-it[adiaeresis]t2
-it[adiaeresis]ts5
-i1t[udiaeresis]
+i1tä
+itä6r5e
+ität2
+itäts5
+i1tü
i1u
iu6r
2i1v
@@ -2468,13 +2468,13 @@ i1z
ize8n
i8zir
i6z5w
-i[adiaeresis]8m
-i1[adiaeresis]6r
-i5[adiaeresis]t.
-i5[adiaeresis]v
-i1[odiaeresis]8
-i[udiaeresis]8
-i6[ssharp]5ers
+iä8m
+i1ä6r
+i5ät.
+i5äv
+i1ö8
+iü8
+i6ß5ers
ja5la
je2t3r
6jm
@@ -2486,7 +2486,7 @@ ju5cha
jugen4
jugend5
jung5s6
-3j[adiaeresis]
+3jä
1ka
8kachs
8kakz
@@ -2503,7 +2503,7 @@ ka1ro
kar6p5f
4k3arti
8karz
-ka1r[adiaeresis]
+ka1rä
kasi5e
ka6teb
kat8ta
@@ -2538,7 +2538,7 @@ king6s5
ki5os
ki5sp
ki5th
-8ki8[odiaeresis]
+8ki8ö
2k1k2
kl8
1kla
@@ -2559,13 +2559,13 @@ k2lin
5klip
5klop
k3lor
-1kl[adiaeresis]
+1klä
2k1m
kmani5e
kn8
6kner
k2ni
-kn[adiaeresis]8
+knä8
1k2o
ko1a2
ko6de.
@@ -2631,21 +2631,21 @@ ku4ro
kurz1
4kusti
ku1ta
-ku8[ssharp]
+ku8ß
6k1v
2k1w
ky5n
2k1z
-1k[adiaeresis]
-k[adiaeresis]4m
-4k3[adiaeresis]mi
-k[adiaeresis]se5
-1k[odiaeresis]
-k[odiaeresis]1c
-k[odiaeresis]1s
-1k[udiaeresis]
-k[udiaeresis]1c
-k[udiaeresis]r6sc
+1kä
+kä4m
+4k3ämi
+käse5
+1kö
+kö1c
+kö1s
+1kü
+kü1c
+kür6sc
1la.
8labf
8labh
@@ -2671,7 +2671,7 @@ lan4gr
8lanme
6lann
8lanw
-6lan[adiaeresis]
+6lanä
8lappa
lap8pl
lap6pr
@@ -2710,7 +2710,7 @@ lch5w
6ld
l4d3ei
ld1re
-l6d[udiaeresis]b
+l6düb
le2bl
le8bre
lecht6s5
@@ -2750,7 +2750,7 @@ le4r3er
l8ergr
6lerkl
6l5erzie
-8ler[odiaeresis]
+8lerö
8lesel
lesi5e
le3sko
@@ -2777,7 +2777,7 @@ li1en
lien6n
li8ers
li8ert
-2lie[ssharp]
+2ließ
3lig
li8ga8b
li1g6n
@@ -2826,9 +2826,9 @@ ll6spr
llte8
l1lu
ll3urg
-l1l[adiaeresis]
-l5l[udiaeresis]
-l6l[udiaeresis]b
+l1lä
+l5lü
+l6lüb
2l1m
l6m5o6d
6ln
@@ -2876,7 +2876,7 @@ ls4por
ls2pu
l1str
l8suni
-l1s[udiaeresis]
+l1sü
2l1t
lt5amp
l4t3ein
@@ -2888,7 +2888,7 @@ lt3her
l2t1ho
l6t5i6b
lti1l
-l8tr[odiaeresis]
+l8trö
lt1sc
lt6ser
lt4s3o
@@ -2923,7 +2923,7 @@ lu8terg
lu3the
lu6t5or
lu2t1r
-lu6[ssharp]5
+lu6ß5
l1v
lve5r6u
2l1w
@@ -2935,18 +2935,18 @@ l8zess
l8zo8f
l3zwei
lz5wu
-3l[adiaeresis]nd
-l[adiaeresis]5on
-l[adiaeresis]6sc
-l[adiaeresis]t1s
-5l[adiaeresis]uf
-2l[adiaeresis]ug
-l[adiaeresis]u6s5c
-l[adiaeresis]5v
-l1[odiaeresis]l
-1l[odiaeresis]s
-l[odiaeresis]1[ssharp]6t
-6l1[udiaeresis]be
+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
1ma
8mabg
ma5chan
@@ -2975,14 +2975,14 @@ ma1r4o
mar8schm
3mas
ma1sc
-ma1t[odiaeresis]
+ma1tö
4m5auf
ma5yo
2m1b
mb6r
2m1c
2m1d
-md6s[adiaeresis]
+md6sä
1me
me1ch
me5isc
@@ -3001,7 +3001,7 @@ me1ro
me6s5ei
meta3s2
me1th
-me8[ssharp]
+me8ß
2m1f6
2m1g
2m1h
@@ -3011,13 +3011,13 @@ mi6ale
mi1la
2m1imm
mi1na
-mi5n[udiaeresis]
+mi5nü
mi4s3an
mit1h
mi5t6ra
3mitt
mitta8
-mi6[ssharp]5
+mi6ß5
6mj
2m1k8
2m1l
@@ -3031,7 +3031,7 @@ m2mn
mm5sp
mm5ums
mmut5s
-m8m[adiaeresis]n
+m8män
m1n8
m5ni
1mo
@@ -3066,11 +3066,11 @@ mp2li
m2plu
mpo8ste
m1pr
-mpr[adiaeresis]5
+mprä5
mp8th
mput6
mpu5ts
-m1p[odiaeresis]
+m1pö
8m1q
2m1r
2ms
@@ -3085,7 +3085,7 @@ mt1ar
m8tein
m2t1h
mt6se
-mt8s[adiaeresis]
+mt8sä
mu5e
6m5uh
mumi1
@@ -3099,23 +3099,23 @@ mvoll3
2m1w
1my
2m1z
-m[adiaeresis]6kl
-1m[adiaeresis]n
-m[adiaeresis]1s
-m[adiaeresis]5tr
-m[adiaeresis]u4s3c
-3m[adiaeresis][ssharp]
-m[odiaeresis]b2
-6m[odiaeresis]l
-1m[udiaeresis]
-5m[udiaeresis]n
-3m[udiaeresis]t
+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[adiaeresis]
+na6bä
na2c
nach3e
3nacht
@@ -3170,7 +3170,7 @@ na5um
1nav
2nax
3naz
-1na[ssharp]
+1naß
n1b2
nbau5s
n1c
@@ -3224,8 +3224,8 @@ ne8ras
6n5erde.
nere5i6d
nerfor6
-6n5erh[odiaeresis]
-8nerl[odiaeresis]
+6n5erhö
+8nerlö
2n1err
n8ers.
6n5ertra
@@ -3234,7 +3234,7 @@ nesi3e
net1h
neu4ra
neu5sc
-8neu[ssharp]
+8neuß
n1f
nf5f
nf2l
@@ -3254,12 +3254,12 @@ ng2se4
ng2si
n2g1um
n1gy
-n8g[adiaeresis]l
+n8gäl
n1h
nhe6r5e
1ni
ni1bl
-ni5ch[adiaeresis]
+ni5chä
ni8dee
n6ie
ni1en
@@ -3290,15 +3290,15 @@ n1ke
n8kerla
n1ki
nk5inh
-n5kl[odiaeresis]
+n5klö
n1k2n
n8k5not
nk3rot
-n8kr[udiaeresis]
+n8krü
nk5spo
nk6t5r
n8kuh
-n6k[udiaeresis]b
+n6küb
n5l6
nli4mi
n1m
@@ -3311,9 +3311,9 @@ nn4t3ak
nnt1h
nnu1e
n1ny
-n1n[adiaeresis]
-n1n[odiaeresis]
-n1n[udiaeresis]
+n1nä
+n1nö
+n1nü
no5a
no4b3la
4n3obs
@@ -3346,7 +3346,7 @@ noty6pe
n1p2
n1q
n1r
-nr[odiaeresis]s3
+nrös3
6ns
n1sac
ns3ang
@@ -3395,16 +3395,16 @@ nt8rep
n4t3rin
nt8rop
n4t3rot
-n4tr[udiaeresis]
+n4trü
nt1s
nts6an
nt2sk
n1tu
nt1z
-n1t[adiaeresis]
-n1t[odiaeresis]
-n8t[odiaeresis]l
-n1t[udiaeresis]
+n1tä
+n1tö
+n8töl
+n1tü
1nu
nu1a
nu5el
@@ -3435,20 +3435,20 @@ n8zof
n6z5unt
n1zw
n6zwir
-1n[adiaeresis]c
-5n[adiaeresis]e
-5n[adiaeresis]i
-n8[adiaeresis]l
-n[adiaeresis]6m
-n[adiaeresis]6re
-n5[adiaeresis]rz
-5n[adiaeresis]us
-n1[odiaeresis]l
-1n[odiaeresis]t
-n5[odiaeresis]z
-5n[udiaeresis].
-6n1[udiaeresis]2b
-5n[udiaeresis][ssharp]
+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
@@ -3517,7 +3517,7 @@ oh1ru
o1hu
oh1w
o1hy
-o1h[adiaeresis]
+o1hä
o5ia
o1id.
o8idi
@@ -3532,7 +3532,7 @@ o1j
o1k
ok2l
ok3lau
-o8kl[adiaeresis]
+o8klä
1okta
o1la
old5am
@@ -3563,8 +3563,8 @@ o8merz
om5sp
o1mu
o8munt
-o1m[adiaeresis]
-o1m[odiaeresis]
+o1mä
+o1mö
o1na
ona8m
on1ax
@@ -3579,7 +3579,7 @@ ono1c
o4nokt
1ons
onts8
-o1n[adiaeresis]
+o1nä
oo8f
1oog
oo2pe
@@ -3598,8 +3598,8 @@ op6pl
o1pr
o3p4ter
1opti
-o1p[adiaeresis]
-o5p[odiaeresis]
+o1pä
+o5pö
o1q
o1ra.
o3rad
@@ -3628,7 +3628,7 @@ or2gl
o1ri
5o6rient
or8nan
-or8n[adiaeresis]
+or8nä
o1ro
or1r2h
or6t5an
@@ -3636,8 +3636,8 @@ or8tau
or8tere
o1rus
o1ry
-o1r[adiaeresis]
-or1[udiaeresis]2
+o1rä
+or1ü2
o1sa
osa3i
6ose
@@ -3677,7 +3677,7 @@ o3tsu
ot6t5erg
ot2t3h
ot2t5r
-ot8t[odiaeresis]
+ot8tö
o1tu
ou3e
ouf1
@@ -3703,9 +3703,9 @@ o1z
oza2r
1o2zea
ozo3is
-o[odiaeresis]8
-o[ssharp]5elt
-o[ssharp]1t
+oö8
+oß5elt
+oß1t
3paa
pa6ce
5pad
@@ -3749,7 +3749,7 @@ pe4rem
per8ran
3pers
4persi
-pe3r[udiaeresis]
+pe3rü
pe4sta
pet2s
p2f1ec
@@ -3812,7 +3812,7 @@ po3ny
po1ra
2porn
por4t3h
-po5r[odiaeresis]
+po5rö
5poti
p1pa
p6p5ei
@@ -3825,7 +3825,7 @@ ppp6
pp5ren
pp1s
pp2ste
-p5p[odiaeresis]
+p5pö
pr6
3preis
1pres
@@ -3837,11 +3837,11 @@ pr6
pro8pt
pro6t5a
prote5i
-8pro[ssharp]
-pr[adiaeresis]3l
-1pr[adiaeresis]s
-pr[adiaeresis]te4
-1pr[udiaeresis]f
+8proß
+prä3l
+1präs
+präte4
+1prüf
p5schl
2pst
1p2sy
@@ -3864,12 +3864,12 @@ p3w
5py
py5l
p1z
-p[adiaeresis]6der
-p5[adiaeresis]6m
-p[adiaeresis]8nu
-8p[adiaeresis]r
-p[adiaeresis]t5h
-p[adiaeresis]t1s
+pä6der
+p5ä6m
+pä8nu
+8pär
+pät5h
+pät1s
qu6
1qui
8rabk
@@ -3931,7 +3931,7 @@ r6bler
rb4lie
rbon6n
r8brecht
-rb6s5t[adiaeresis]
+rb6s5tä
r8ces
r1che
rch1l
@@ -3997,17 +3997,17 @@ requi5
rer4bl
6rerbs
4r3erd
-8rerh[odiaeresis]
+8rerhö
8rerkl
4r3erla
-8rerl[odiaeresis]
+8rerlö
4r3erns
-6r5ern[adiaeresis]
+6r5ernä
rer5o
6r5erreg
r5ertr
r5erwec
-r5er[odiaeresis]
+r5erö
re2sa
re8schm
2ress
@@ -4047,7 +4047,7 @@ ri8fr
1r2ig
ri8kn
ri5la
-rim[adiaeresis]8
+rimä8
ri1na
r8inde
rin4ga
@@ -4057,7 +4057,7 @@ rin6gr
rino1
r8insp
4rinst
-ri1n[adiaeresis]
+ri1nä
ri5o6ch
ri1o2d
ri3o6st
@@ -4081,7 +4081,7 @@ rk3str
rk4t3an
rk6to
r6kuh
-rk[adiaeresis]4s3t
+rkä4s3t
r1l
r5li
rline5a
@@ -4104,8 +4104,8 @@ rn1k
r1no
r6n5oc
rn1sp
-r1n[adiaeresis]
-r1n[udiaeresis]
+r1nä
+r1nü
ro6bern
6robs
ro1ch
@@ -4140,7 +4140,7 @@ r1ra
r1re
rrer6
rr6hos
-r5rh[odiaeresis]
+r5rhö
r1ri
r1ro
rro8f
@@ -4148,9 +4148,9 @@ rr8or
rror5a
r1ru
r3ry
-r1r[adiaeresis]
-r1r[odiaeresis]
-r1r[udiaeresis]
+r1rä
+r1rö
+r1rü
2r1s
r2ste
r2sti
@@ -4222,16 +4222,16 @@ r6z5erf
rz8erh
rz4t3h
r8zum
-r[adiaeresis]4ste
-r[adiaeresis]u8sc
-r1[odiaeresis]f
-5r[odiaeresis]hr
-r[odiaeresis]5le
-3r[odiaeresis]ll
-5r[odiaeresis]mis
-r1[odiaeresis]r
-r[odiaeresis]2sc
-3r[udiaeresis]mp
+rä4ste
+räu8sc
+r1öf
+5röhr
+rö5le
+3röll
+5römis
+r1ör
+rö2sc
+3rümp
1sa.
1saa
s3a4ben
@@ -4306,8 +4306,8 @@ sch5ame
2schk
5schlag
5schlu
-6schm[adiaeresis][ssharp]
-6schna[ssharp]
+6schmäß
+6schnaß
1scho
6schord
6schp
@@ -4323,8 +4323,8 @@ sch3tr
8schunt
6schv
2schz
-5sch[odiaeresis]
-5sch[udiaeresis]
+5schö
+5schü
2sco
scre6
6scu
@@ -4339,7 +4339,7 @@ se3erl
8seff
se6han
se8hi
-se8h[odiaeresis]
+se8hö
6s5eid.
2s1eig
s8eil
@@ -4360,9 +4360,9 @@ se5nec
s8er.
se8reim
ser5inn
-8serm[adiaeresis]
+8sermä
8s5erzi
-6ser[odiaeresis]f
+6seröf
se1um
8sexa
6sexp
@@ -4389,7 +4389,7 @@ si8kau
sik1i
si4kin
si2kl
-si8k[udiaeresis]
+si8kü
si1la
sil6br
si1na
@@ -4416,7 +4416,7 @@ s8kj
3skrib
3skrip
2sku
-8sk[udiaeresis]
+8skü
s1l
s8lal
slei3t
@@ -4453,7 +4453,7 @@ s6perg
s6pes
2s1pf
8sphi
-1s2ph[adiaeresis]
+1s2phä
1spi
spi4e
6s5pig
@@ -4473,17 +4473,17 @@ spi4e
s2pul
1s2pur
6spy
-5sp[adiaeresis]n
-1sp[udiaeresis]
+5spän
+1spü
s1q
2s1r
2ssa
2sse
2ssi
2sso
-2ss[adiaeresis]
-2ss[odiaeresis]
-2ss[udiaeresis]
+2ssä
+2ssö
+2ssü
2s1sch
sse8nu
ssini6s
@@ -4536,7 +4536,7 @@ s2ti8r
4strai
s3tral
6s5traum
-3stra[ssharp]
+3straß
3strec
6s3tref
8streib
@@ -4551,7 +4551,7 @@ st5rose
2s1trua
4struf
3strum
-6str[adiaeresis]g
+6sträg
2st1s6
2stt
1stu
@@ -4563,12 +4563,12 @@ stu5a
2stw
s2tyl
6stz
-1st[adiaeresis]
-8st[adiaeresis]g
-1st[odiaeresis]
-1st[udiaeresis]
-8st[udiaeresis]ch
-4st[udiaeresis]r.
+1stä
+8stäg
+1stö
+1stü
+8stüch
+4stür.
1su
su2b1
3suc
@@ -4593,16 +4593,16 @@ s1z
s4zend
5s6zene.
8szu
-1s[adiaeresis]
-6s5[adiaeresis]nd
-6s[adiaeresis]ugi
-6s[adiaeresis]u[ssharp]
-5s[odiaeresis]m
-2s1[udiaeresis]2b
-1s[udiaeresis]c
-s[udiaeresis]8di
-1s[udiaeresis]n
-5s[udiaeresis][ssharp]
+1sä
+6s5änd
+6säugi
+6säuß
+5söm
+2s1ü2b
+1süc
+sü8di
+1sün
+5süß
taats3
4tab.
taba6k
@@ -4719,8 +4719,8 @@ ter5ebe
ter5ein
te8rers
terf4
-8terh[odiaeresis]
-6terkl[adiaeresis]
+8terhö
+6terklä
ter8nor
ter6re.
t8erscha
@@ -4774,9 +4774,9 @@ t5hof
4ths
t1hum
1thy
-4t1h[adiaeresis]
-2t1h[odiaeresis]
-t1h[udiaeresis]
+4t1hä
+2t1hö
+t1hü
ti1a2m
ti1b
tie6fer
@@ -4871,16 +4871,16 @@ tro8man.
tro3ny
5tropf
6t5rosa
-t5ro[ssharp]
+t5roß
5trub
5trup
trut5
-1tr[adiaeresis]g
-6t1r[odiaeresis]h
-5tr[udiaeresis]b
-tr[udiaeresis]3bu
-t1r[udiaeresis]c
-t1r[udiaeresis]s
+1träg
+6t1röh
+5trüb
+trü3bu
+t1rüc
+t1rüs
2ts
ts1ab
t1sac
@@ -4891,7 +4891,7 @@ ts1an
ts1ar
ts3auf
t3schr
-t5sch[adiaeresis]
+t5schä
tse6e
tsee5i
tsein6s
@@ -4959,21 +4959,21 @@ tzehn5
t6z5ei.
t6zor
t4z3um
-t6z[adiaeresis]u
-5t[adiaeresis]g
-6t[adiaeresis]h
-t5[adiaeresis]lt
-t8[adiaeresis]n
-t[adiaeresis]re8
-8t[adiaeresis]8st
-6t[adiaeresis]u[ssharp]
-t5[odiaeresis]ffen
-8t[odiaeresis]8k
-1t[odiaeresis]n
-4t[udiaeresis]b
-t6[udiaeresis]5ber.
-5t[udiaeresis]ch
-1t[udiaeresis]r.
+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
+1tür.
u3al.
u5alb
u5alf
@@ -4992,8 +4992,8 @@ u2bab
ubi5er.
u6b5rit
ubs2k
-u5b[odiaeresis]
-u8b[udiaeresis]b
+u5bö
+u8büb
2uc
u1che
u6ch5ec
@@ -5029,8 +5029,8 @@ uf1fr
uf1l
uf1ra
uf1re
-uf1r[adiaeresis]
-uf1r[udiaeresis]
+uf1rä
+uf1rü
uf1s2p
uf1st
uft1s
@@ -5048,8 +5048,8 @@ u1ho
uh1re
u1hu
uh1w
-u1h[adiaeresis]
-u1h[odiaeresis]
+u1hä
+u1hö
6ui
ui5en
u1ig
@@ -5078,15 +5078,15 @@ ult6a
ult8e
u1lu
ul2vr
-u1l[adiaeresis]
-u1l[odiaeresis]
+u1lä
+u1lö
3umfan
5umlau
umo8f
um8pho
u1mu
umu8s
-u5m[odiaeresis]
+u5mö
u1n1a
un2al
un6at
@@ -5095,18 +5095,18 @@ unau2
5undein
un4d3um
3undzw
-und[udiaeresis]8
-un8d[udiaeresis]b
+undü8
+un8düb
une2b
un1ec
une2h
un3eis
3unfal
-1unf[adiaeresis]
+1unfä
5ungea
-3ungl[udiaeresis]
+3unglü
ung2s1
-un8g[adiaeresis]
+un8gä
1u2nif
un4it
un8kro
@@ -5154,11 +5154,11 @@ uru5i6
uru6r
u1ry
ur2za
-ur6z[adiaeresis]
-ur5[adiaeresis]6m
-u5r[odiaeresis]
-u1r[udiaeresis]
-ur[udiaeresis]ck3
+ur6zä
+ur5ä6m
+u5rö
+u1rü
+urück3
u1sa
usa4gi
u2s1ar
@@ -5201,7 +5201,7 @@ utz5w
u1u
u1v
uve5n
-uve3r4[adiaeresis]
+uve3r4ä
u1w
u1xe
u5ya
@@ -5209,9 +5209,9 @@ uy5e6
u1yi
u2z1eh
u8zerh
-u5[odiaeresis]
-u[ssharp]e6n
-u[ssharp]en5e
+u5ö
+uße6n
+ußen5e
8vanb
6vang
6varb
@@ -5302,7 +5302,7 @@ wer8term
we2sp
we8s4tend
we8str
-we8st[odiaeresis]
+we8stö
wet8ta
wich6s5t
1wid
@@ -5331,8 +5331,8 @@ wu1sc
wu2t1
6w5w
wy5a
-w[adiaeresis]rme5
-w[adiaeresis]1sc
+wärme5
+wä1sc
1xag
x1ak
x3a4men
@@ -5413,7 +5413,7 @@ ys8ty
y1t
y3w
y1z
-y[adiaeresis]8m
+yä8m
z5a6b
zab5l
8za6d
@@ -5442,7 +5442,7 @@ zel8th
4zemp
6z5engel
zen8zin
-8zerg[adiaeresis]
+8zergä
zer8i
ze1ro
zers8
@@ -5515,235 +5515,235 @@ zwi1s
2z1z
zz8a
zzi1s
-1z[adiaeresis]
-1z[odiaeresis]
-6z[odiaeresis]l.
-z[odiaeresis]1le
-1z[udiaeresis]
-2z1[udiaeresis]2b
-[adiaeresis]1a6
-[adiaeresis]b1l
-[adiaeresis]1che
-[adiaeresis]3chi
-[adiaeresis]ch8sc
-[adiaeresis]ch8sp
-[adiaeresis]5chu
-[adiaeresis]ck5a
-[adiaeresis]d1a
-[adiaeresis]d5era
-[adiaeresis]6d5ia
-[adiaeresis]1e
-[adiaeresis]5fa
-[adiaeresis]f1l
-[adiaeresis]ft6s
-[adiaeresis]g1h
-[adiaeresis]g3le
-[adiaeresis]6g5nan
-[adiaeresis]g5str
-[adiaeresis]1he
-[adiaeresis]1hi
-[adiaeresis]h1le
-[adiaeresis]h5ne
-1[adiaeresis]hnl
-[adiaeresis]h1re
-[adiaeresis]h5ri
-[adiaeresis]h1ru
-[adiaeresis]1hu
-[adiaeresis]h1w
-6[adiaeresis]i
-[adiaeresis]1isc
-[adiaeresis]6ische
-[adiaeresis]5ism
-[adiaeresis]5j
-[adiaeresis]1k
-[adiaeresis]l1c
-[adiaeresis]1le
-[adiaeresis]8lei
-[adiaeresis]l6schl
-[adiaeresis]mi1e
-[adiaeresis]m8n
-[adiaeresis]m8s
-[adiaeresis]5na
-5[adiaeresis]nderu
-[adiaeresis]ne5i8
-[adiaeresis]ng3l
-[adiaeresis]nk5l
-[adiaeresis]1no
-[adiaeresis]n6s5c
-[adiaeresis]1pa
-[adiaeresis]p6s5c
-3[adiaeresis]q
-[adiaeresis]r1c
-[adiaeresis]1re
-[adiaeresis]re8m
-5[adiaeresis]rgern
-[adiaeresis]r6gl
-[adiaeresis]1ri
-3[adiaeresis]rmel
-[adiaeresis]1ro
-[adiaeresis]rt6s5
-[adiaeresis]1ru
-3[adiaeresis]rztl
-[adiaeresis]5r[odiaeresis]
-[adiaeresis]6s5chen
-[adiaeresis]sen8s
-[adiaeresis]s1th
-[adiaeresis]ta8b
-[adiaeresis]1te
-[adiaeresis]teri4
-[adiaeresis]ter5it
-[adiaeresis]6thy
-[adiaeresis]1ti
-3[adiaeresis]tk
-[adiaeresis]1to
-[adiaeresis]t8schl
-[adiaeresis]ts1p
-[adiaeresis]5tu
-[adiaeresis]ub1l
-[adiaeresis]u1e
-1[adiaeresis]ug
-[adiaeresis]u8ga
-[adiaeresis]u5i
-[adiaeresis]1um.
-[adiaeresis]1us.
-1[adiaeresis]u[ssharp]
-[adiaeresis]1z
-[odiaeresis]1b
-[odiaeresis]1che
-[odiaeresis]5chi
-[odiaeresis]ch8s2tei
-[odiaeresis]ch8str
-[odiaeresis]cht6
-5[odiaeresis]6dem
-5[odiaeresis]ffn
-[odiaeresis]1he
-[odiaeresis]h1l8
-[odiaeresis]h1re
-[odiaeresis]1hu
-[odiaeresis]1is
-[odiaeresis]1ke
-1[odiaeresis]2ko
-1[odiaeresis]l.
-[odiaeresis]l6k5l
-[odiaeresis]l8pl
-[odiaeresis]1mu
-[odiaeresis]5na
-[odiaeresis]nig6s3
-[odiaeresis]1no
-[odiaeresis]5o6t
-[odiaeresis]pf3l
-[odiaeresis]p6s5c
-[odiaeresis]1re
-[odiaeresis]r8gli
-[odiaeresis]1ri
-[odiaeresis]r8tr
-[odiaeresis]1ru
-5[odiaeresis]sterr
-[odiaeresis]1te
-[odiaeresis]5th
-[odiaeresis]1ti
-[odiaeresis]1tu
-[odiaeresis]1v
-[odiaeresis]1w
-[odiaeresis]we8
-[odiaeresis]2z
-[udiaeresis]b6e2
-3[udiaeresis]4ber1
-[udiaeresis]b1l
-[udiaeresis]b1r
-5[udiaeresis]2bu
-[udiaeresis]1che
-[udiaeresis]1chi
-[udiaeresis]8ch3l
-[udiaeresis]ch6s5c
-[udiaeresis]8ck
-[udiaeresis]ck1a
-[udiaeresis]ck5ers
-[udiaeresis]d1a2
-[udiaeresis]6deu
-[udiaeresis]di8t
-[udiaeresis]2d1o4
-[udiaeresis]d5s6
-[udiaeresis]ge4l5a
-[udiaeresis]g1l
-[udiaeresis]h5a
-[udiaeresis]1he
-[udiaeresis]8heh
-[udiaeresis]6h5erk
-[udiaeresis]h1le
-[udiaeresis]h1re
-[udiaeresis]h1ru
-[udiaeresis]1hu
-[udiaeresis]h1w
-[udiaeresis]3k
-[udiaeresis]1le
-[udiaeresis]l4l5a
-[udiaeresis]l8lo
-[udiaeresis]l4ps
-[udiaeresis]l6s5c
-[udiaeresis]1lu
-[udiaeresis]n8da
-[udiaeresis]n8fei
-[udiaeresis]nk5l
-[udiaeresis]n8za
-[udiaeresis]n6zw
-[udiaeresis]5pi
-[udiaeresis]1re
-[udiaeresis]8rei
-[udiaeresis]r8fl
-[udiaeresis]r8fr
-[udiaeresis]r8geng
-[udiaeresis]1ri
-[udiaeresis]1ro
-[udiaeresis]r8sta
-[udiaeresis]1ru
-[udiaeresis]se8n
-[udiaeresis]8sta
-[udiaeresis]8stes
-[udiaeresis]3ta
-[udiaeresis]1te
-[udiaeresis]1ti
-[udiaeresis]t8tr
-[udiaeresis]1tu
-[udiaeresis]t8zei
-[udiaeresis]1v
-[ssharp]1a8
-5[ssharp]a.
-[ssharp]8as
-[ssharp]1b8
-[ssharp]1c
-[ssharp]1d
-1[ssharp]e
-[ssharp]5ec
-8[ssharp]e8g
-8[ssharp]e8h
-2[ssharp]1ei
-8[ssharp]em
-[ssharp]1f8
-[ssharp]1g
-[ssharp]1h
-1[ssharp]i
-[ssharp]1k
-[ssharp]1l
-[ssharp]1m
-[ssharp]1n
-[ssharp]1o
-[ssharp]1p8
-[ssharp]5q
-[ssharp]1r
-[ssharp]1s2
-[ssharp]st8
-[ssharp]1ta
-[ssharp]1te
-[ssharp]t3hei
-[ssharp]1ti
-[ssharp]5to
-[ssharp]1tr
-1[ssharp]u8
-6[ssharp]5um
-[ssharp]1v
-[ssharp]1w
-[ssharp]1z
+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
@@ -5814,7 +5814,7 @@ sss2t8
as2s3te
is2s3te
us2s3te
-[udiaeresis]s2s3te
+üs2s3te
s2st3hei
s2s3ti
s2s1to
diff --git a/Master/texmf-dist/tex/context/patterns/lang-deo.pat b/Master/texmf-dist/tex/context/patterns/lang-deo.pat
index f0632c11d4b..dfc871d68db 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-deo.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-deo.pat
@@ -104,7 +104,7 @@
.furch8
.ga6ner
.ge3n4a
-.ge5r[odiaeresis]
+.ge5rö
.ges6
.halb5
.halbe6
@@ -131,11 +131,11 @@
.ki4e
.kop6f3
.kraf6
-.k[udiaeresis]5ra
+.kü5ra
.lab6br
.liie6
.lo6s5k
-.l[odiaeresis]4s3t
+.lö4s3t
.ma5d
.mi2t1
.no6th
@@ -156,8 +156,8 @@
.re5an
.ro8q
.ru5the
-.r[udiaeresis]5be
-.r[udiaeresis]8stet
+.rü5be
+.rü8stet
.sch8
.se6e
.se5n6h
@@ -190,8 +190,8 @@
.wun4s
.zi4e
.zuch8
-.[adiaeresis]nde8re
-.[odiaeresis]ch8
+.ände8re
+.öch8
aa1c
aa2gr
aal5e
@@ -209,17 +209,17 @@ ab5err
ab5esse
1abf
1abg
-1abh[adiaeresis]
+1abhä
ab1ir
1abko
a1bl
ab1la
5ablag
-a6bla[ssharp]
+a6blaß
ab4ler
ab1lu
-a8bl[adiaeresis]
-5a6bl[odiaeresis]
+a8blä
+5a6blö
abma5c
1abn
ab1ra
@@ -234,8 +234,8 @@ ab1ur
1abw
5abze
5abzu
-ab1[adiaeresis]n
-ab[adiaeresis]u8
+ab1än
+abäu8
a4ce.
a5chal
ach5art
@@ -253,7 +253,7 @@ ach3re
a1chu
ach1w
a1chy
-ach5[adiaeresis]f
+ach5äf
ack1o
acks6t
ack5sta
@@ -273,7 +273,7 @@ a2dre
3adres
adt1
1adv
-a6d[adiaeresis]
+a6dä
a1e2d
ae1r
a1er.
@@ -294,7 +294,7 @@ af6tent
af6tra
aft5re
a6f5um
-8af[adiaeresis]
+8afä
ag5abe
5a4gent
ag8er
@@ -325,7 +325,7 @@ ahre4s3
ahr8ti
ah1ru
a1hu
-ah8[odiaeresis]
+ah8ö
ai3d2s
ai1e
aif6
@@ -376,7 +376,7 @@ al4t3re
alu5i
a6lur
alu3ta
-a1l[adiaeresis]
+a1lä
a6mate
8ame.
5a6meise
@@ -387,7 +387,7 @@ ampf3a
am6schw
am2ta
a1mu
-a1m[adiaeresis]
+a1mä
a3nac
a1nad
anadi5e
@@ -411,7 +411,7 @@ a8nerf
a6n5erke
1anfa
5anfert
-1anf[adiaeresis]
+1anfä
3angab
5angebo
an3gli
@@ -419,7 +419,7 @@ ang6lis
an2gn
3angri
ang5t6
-5anh[adiaeresis]
+5anhä
ani5g
ani4ka
an5i8on
@@ -444,21 +444,21 @@ an1st
an1s2z
5antenn
an1th
-5anw[adiaeresis]
+5anwä
a5ny
an4z3ed
5anzeig
5anzieh
3anzug
-an1[adiaeresis]
-5an[adiaeresis]s
-a1n[odiaeresis]
-an[odiaeresis]8d
+an1ä
+5anäs
+a1nö
+anö8d
a1os
a1pa
3apfel
a2ph1t
-aph5[adiaeresis]6
+aph5ä6
a1pi
8apl
apo1c
@@ -468,8 +468,8 @@ a6poth
1appa
ap1pr
a1pr
-a5p[adiaeresis]
-a3p[udiaeresis]
+a5pä
+a3pü
a1ra
a4r3af
ar3all
@@ -498,11 +498,11 @@ a1ru
a1ry
1arzt
arz1w
-ar8z[adiaeresis]
-ar[adiaeresis]8m
-ar[odiaeresis]6
-ar5[odiaeresis]m
-ar1[udiaeresis]2
+ar8zä
+arä8m
+arö6
+ar5öm
+ar1ü2
a1sa
a6schec
asch5l
@@ -543,18 +543,18 @@ a6t5ort.
4a1tr
a6t5ru
at2t1h
-at5t6h[adiaeresis]
+at5t6hä
6a1tu
atz1w
-a1t[adiaeresis]
-a1t[udiaeresis]
+a1tä
+a1tü
au1a
au6bre
auch3a
au1e
aue4l
5aufent
-3auff[udiaeresis]
+3auffü
3aufga
1aufn
auf1t
@@ -578,7 +578,7 @@ au4sta
aut5eng
au1th
1auto
-au[ssharp]e8
+auße8
a1v
ave5r6a
aver6i
@@ -590,7 +590,7 @@ a6xio
a1ya
a1z
azi5er.
-8a[ssharp]
+8aß
1ba
8ba8del
ba1la
@@ -619,7 +619,7 @@ be5eta
bef2
8beff
be1g2
-beh[odiaeresis]8
+behö8
bei1s
6b5eisen
bei3tr
@@ -633,15 +633,15 @@ be6nerw
be4nor
ben4se6
bens5el
-be1n[adiaeresis]
-be1n[udiaeresis]
+be1nä
+be1nü
be1o2
b8er.
be1ra
be8rac
ber8gab.
ber1r
-be1r[udiaeresis]
+be1rü
bes8c
bes5erh
bes2p
@@ -663,7 +663,7 @@ bi1bl
b6ie
bi1el
bi1la
-bil[adiaeresis]5
+bilä5
bi1na
bi4nok
bi5str
@@ -672,7 +672,7 @@ bi5tr
bit4t5r
b1j
2b1k2
-bk[udiaeresis]6
+bkü6
bl8
b6la.
6b1lad
@@ -705,11 +705,11 @@ b1loh
2blun
blut3a
blut5sc
-3bl[adiaeresis]
-bl[adiaeresis]s5c
-5bl[odiaeresis]
-3bl[udiaeresis]
-bl[udiaeresis]8sc
+3blä
+bläs5c
+5blö
+3blü
+blü8sc
2b1m
2b1n
1bo
@@ -733,8 +733,8 @@ b6riga
bro1s
b1rup
b2ruz
-8br[odiaeresis]h
-br[odiaeresis]s5c
+8bröh
+brös5c
8bs
b1sa
b8sang
@@ -746,7 +746,7 @@ b8sof
b1s2p
bst1h
b3stru
-b5st[adiaeresis]
+b5stä
b6sun
2b1t
b2t1h
@@ -761,13 +761,13 @@ bu6sin
by6te.
8b1z
bzi1s
-1b[adiaeresis]
-b5[adiaeresis]6s5
-1b[udiaeresis]
-b6[udiaeresis]5bere
-b[udiaeresis]ge6
-b[udiaeresis]gel5e
-b[udiaeresis]r6sc
+1bä
+b5ä6s5
+1bü
+b6ü5bere
+büge6
+bügel5e
+bür6sc
1ca
cag6
ca5la
@@ -811,7 +811,7 @@ choi8d
6chp
ch3ren
ch6res
-ch3r[udiaeresis]
+ch3rü
2chs
2cht
cht5ha
@@ -846,8 +846,8 @@ c3q
8c1t
1cu
1cy
-5c[adiaeresis]1
-c[odiaeresis]5
+5cä1
+cö5
1da.
8daas
2dabg
@@ -882,7 +882,7 @@ dar6men
2d1d
d5de
d3d2h
-dd[adiaeresis]mme8
+ddämme8
1de
2deal
de5an
@@ -992,10 +992,10 @@ droi6
dro5x
1dru
8drut
-dr[odiaeresis]s5c
-1dr[udiaeresis]
-dr[udiaeresis]5b
-dr[udiaeresis]8sc
+drös5c
+1drü
+drü5b
+drü8sc
2ds
d1sa
d6san
@@ -1009,9 +1009,9 @@ d8serg
d1sp
d4spak
ds2po
-d8sp[adiaeresis]
+d8spä
d1st
-d1s[udiaeresis]
+d1sü
2dt
d1ta
d1te
@@ -1019,7 +1019,7 @@ d1ti
d1to
dt1s6
d1tu
-d5t[adiaeresis]
+d5tä
1du
du5als
du1b6
@@ -1043,17 +1043,17 @@ du8schr
2d1w
dwa8l
2d1z
-1d[adiaeresis]
-6d[adiaeresis]h
-8d[adiaeresis]nd
-d[adiaeresis]6r
-d[odiaeresis]8bl
-d5[odiaeresis]l
-d[odiaeresis]r6fl
-d[odiaeresis]8sc
-d5[odiaeresis]4st
-d[odiaeresis]s3te
-1d[udiaeresis]
+1dä
+6däh
+8dänd
+dä6r
+dö8bl
+d5öl
+dör6fl
+dö8sc
+d5ö4st
+dös3te
+1dü
ea4ben
e1ac
e1ah
@@ -1108,12 +1108,12 @@ ee5isc
eei4s3t
ee6lend
e1ell
-ee5l[odiaeresis]
+ee5lö
e1erd
ee3r4e
ee8reng
eere6s5
-ee5r[adiaeresis]
+ee5rä
ee6tat
e1ex
e1f
@@ -1146,9 +1146,9 @@ ehr5um
e1hu
eh1w
e1hy
-e1h[adiaeresis]
-e1h[odiaeresis]
-e3h[udiaeresis]t
+e1hä
+e1hö
+e3hüt
ei1a
eia6s
ei6bar
@@ -1176,7 +1176,7 @@ ein1k
ei6n5od
ei8nok
ei4nor
-e3ins[adiaeresis]
+e3insä
ei1o
e1irr
ei5ru
@@ -1235,8 +1235,8 @@ el8tent
5eltern
e1lu
elut2
-e1l[adiaeresis]
-e1l[udiaeresis]
+e1lä
+e1lü
em8dei
em8meis
4emo
@@ -1247,7 +1247,7 @@ emo5s
e1mu
emurk4
emurks5
-e1m[adiaeresis]
+e1mä
en5a6ben
en5achs
en5ack
@@ -1317,9 +1317,9 @@ ent5ric
enu5i
e3ny
en8zan
-en1[odiaeresis]f
-e1n[odiaeresis]s
-e1n[udiaeresis]g
+en1öf
+e1nös
+e1nüg
eo1c
e5o6fe
e5okk
@@ -1348,7 +1348,7 @@ e1pl
e6pos.
ep4p3a
e1pr
-e1p[adiaeresis]
+e1pä
e1q
e1ra.
er5aal
@@ -1393,12 +1393,12 @@ er5ero
er5erst
e4r3erz
er3ess
-5erf[udiaeresis]l
+5erfül
er8gan.
5ergebn
er2g5h
-5erg[adiaeresis]nz
-5erh[odiaeresis]hu
+5ergänz
+5erhöhu
2e1ri
eri5ak
e6r5iat
@@ -1408,8 +1408,8 @@ er5ins
e6r5int
er5itio
er1kl
-3erkl[adiaeresis]
-5erl[odiaeresis]s.
+3erklä
+5erlös.
ermen6s
er6nab
3ernst
@@ -1441,11 +1441,11 @@ e5rus
e1ry
er5zwa
er3zwu
-er[adiaeresis]8m
-er5[adiaeresis]s
-er[odiaeresis]8
-e3r[odiaeresis]s.
-e6r1[udiaeresis]2b
+erä8m
+er5äs
+erö8
+e3rös.
+e6r1ü2b
e1sa
esa8b
e8sap
@@ -1475,7 +1475,7 @@ e1str
est5res
es3ur
e2sz
-e1s[udiaeresis]
+e1sü
e1ta
et8ag
etari5e
@@ -1498,9 +1498,9 @@ e1tu
etu1s
et8zent
et8zw
-e1t[adiaeresis]
-e1t[odiaeresis]
-e1t[udiaeresis]
+e1tä
+e1tö
+e1tü
eu1a2
eu1e
eue8rei
@@ -1527,10 +1527,10 @@ ex1or
1extr
ey3er.
e1z
-e1[adiaeresis]2
-e5[odiaeresis]8
-e1[udiaeresis]
-e8[ssharp]es
+e1ä2
+e5ö8
+e1ü
+e8ßes
fa6ch5i
fade8
fa6del
@@ -1609,8 +1609,8 @@ f2lix
6f3lon
5flop
1flor
-5f8l[adiaeresis]c
-3fl[odiaeresis]t
+5f8läc
+3flöt
2f1m
2f1n
1fo
@@ -1630,7 +1630,7 @@ f1q
fr6
f5ram
1f8ran
-f8ra[ssharp]
+f8raß
f8re.
frei1
5frei.
@@ -1641,12 +1641,12 @@ f1rib
6frig
1fris
fro8na
-fr[adiaeresis]s5t
+fräs5t
2fs
f1sc
f2s1er
f5str
-fs3t[adiaeresis]t
+fs3tät
2ft
f1tak
f1te
@@ -1666,20 +1666,20 @@ ft1z
6f5ums
6funf
fun4ka
-fu8[ssharp]end
+fu8ßend
6f1v
2f1w
2f1z
-1f[adiaeresis]
-f[adiaeresis]1c
-8f[adiaeresis]rm
-6f[adiaeresis]ug
-f[adiaeresis]8[ssharp]
-f[odiaeresis]de3
-8f[odiaeresis]f
-3f[odiaeresis]r
-1f[udiaeresis]
-f[udiaeresis]n4f3u
+1fä
+fä1c
+8färm
+6fäug
+fä8ß
+föde3
+8föf
+3för
+1fü
+fün4f3u
1ga
ga6bl
6gabw
@@ -1726,21 +1726,21 @@ ge1im
geist5r
gel8bra
gelt8s
-ge5l[odiaeresis]
+ge5lö
ge8nin
gen3k
6g5entf
-ge3n[adiaeresis]
+ge3nä
ge1or
ge1ra
ge6rab
ger8au
-8gerh[odiaeresis]
+8gerhö
ger8ins
ge1ro
6g5erz.
-ge1r[adiaeresis]
-ge1r[udiaeresis]
+ge1rä
+ge1rü
ge1s
ges2p
ge5unt
@@ -1754,7 +1754,7 @@ g5henn
6g1hi
g1ho
1ghr
-g1h[odiaeresis]
+g1hö
1gi
gi5la
gi8me.
@@ -1793,7 +1793,7 @@ g1los
g4loss
g5luf
1g2ly
-1gl[udiaeresis]
+1glü
2g1m
gn8
6gn.
@@ -1834,7 +1834,7 @@ g5riem
g5ring
6groh
2grot
-gro6[ssharp]
+gro6ß
4grut
2gs
gs1ab
@@ -1872,12 +1872,12 @@ gu2tu
2g1w
gy1n
g1z
-1g[adiaeresis]
-8g[adiaeresis]8m
-6g[adiaeresis]rm
-1g[odiaeresis]
-1g[udiaeresis]
-6g[udiaeresis]b
+1gä
+8gä8m
+6gärm
+1gö
+1gü
+6güb
1haa
hab8r
ha8del
@@ -1903,7 +1903,7 @@ ha5ro
ha2t1h
h1atm
hau6san
-ha8[ssharp]
+ha8ß
h1b2
h1c
h1d
@@ -1977,7 +1977,7 @@ hla6gr
h5lai
hl8am
h1las
-h1la[ssharp]
+h1laß
hl1c
h1led
h3lein
@@ -1990,7 +1990,7 @@ h2lip
h2lit
h4lor
h3lose
-h1l[adiaeresis]s
+h1läs
hme5e
h2nee
h2nei
@@ -2052,14 +2052,14 @@ h6s5erl
hs8erle
h4sob
h1sp
-h8spa[ssharp]
+h8spaß
h8spel
hs6po
h4spun
h1str
h4s3tum
hs3und
-h1s[udiaeresis]
+h1sü
h5ta.
h5tab
ht3ac
@@ -2080,7 +2080,7 @@ ht3eis
h6temp
h8tentf
hte8ren
-h6terf[udiaeresis]
+h6terfü
h8tergr
h4t3erh
h6t5ersc
@@ -2100,33 +2100,33 @@ ht8sk
ht8so
h1tu
htz8
-h5t[udiaeresis]m
+h5tüm
hub5l
hu6b5r
huh1l
h5uhr.
huld5a6
hu8lent
-hu8l[adiaeresis]
+hu8lä
h5up.
h1v
h5weib
h3weis
h1z
-h[adiaeresis]8kl
-h[adiaeresis]l8s
-h[adiaeresis]ma8tu8
-h[adiaeresis]8sche.
-h[adiaeresis]t1s
-h[adiaeresis]u4s3c
-2h[odiaeresis].
-2h[odiaeresis]e
-8h[odiaeresis]i
-h[odiaeresis]6s
-h[odiaeresis]s5c
-h[udiaeresis]hne6
-h[udiaeresis]l4s3t
-h[udiaeresis]tte8re
+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.
@@ -2175,7 +2175,7 @@ ib2le
i4blis
i6brig
i6b5unt
-i6b[udiaeresis]b
+i6büb
i1che
ich5ei
i6cherb
@@ -2196,7 +2196,7 @@ id3arm
3ideal
ide8na
3ideol
-ide5r[odiaeresis]
+ide5rö
i6diot
id5rec
id1t
@@ -2207,7 +2207,7 @@ ie2bl
ieb1r
ie8bra
ie4bre
-ie8b[adiaeresis]
+ie8bä
ie2dr
ie1e8
ie6f5ad
@@ -2306,15 +2306,15 @@ il6l5enn
i1lo
ilt8e
i1lu
-i1l[adiaeresis]
+i1lä
i8mart
imb2
i8mele
i8mid
imme6l5a
i1mu
-i1m[adiaeresis]
-i5m[odiaeresis]
+i1mä
+i5mö
ina5he
i1nat
in1au
@@ -2334,7 +2334,7 @@ ing5s6o
5inhab
ini5er.
5inj
-in8k[adiaeresis]t
+in8kät
in8nan
i1no
inoi8d
@@ -2350,12 +2350,12 @@ ins4ze
in3the
in5t2r
i5ny
-in[adiaeresis]2
-i1n[adiaeresis]r
-in1[adiaeresis]s
-in[odiaeresis]8
-in5[odiaeresis]d
-i1n[odiaeresis]s
+inä2
+i1när
+in1äs
+inö8
+in5öd
+i1nös
2io
io1a8
io1c
@@ -2396,7 +2396,7 @@ ir6schl
ir6sch5r
i5rus
i5ry
-i5r[adiaeresis]
+i5rä
i1sa
i8samt
i6sar
@@ -2405,7 +2405,7 @@ i8scheh
i8schei
isch5m
isch3r
-isch[adiaeresis]8
+ischä8
is8ele
ise3ra
i4s3erh
@@ -2417,7 +2417,7 @@ ison5e
is6por
i8s5tum
i5sty
-i5s[odiaeresis]
+i5sö
i1ta
it5ab.
i2t1a2m
@@ -2427,7 +2427,7 @@ i8tersc
i1thi
i1tho
i5thr
-it8h[adiaeresis]
+it8hä
i1ti
i8ti8d
iti6kl
@@ -2445,11 +2445,11 @@ it8tru
i1tu
it6z5erg
it6z1w
-i1t[adiaeresis]
-it[adiaeresis]6r5e
-it[adiaeresis]t2
-it[adiaeresis]ts5
-i1t[udiaeresis]
+i1tä
+itä6r5e
+ität2
+itäts5
+i1tü
i1u
iu6r
2i1v
@@ -2468,13 +2468,13 @@ i1z
ize8n
i8zir
i6z5w
-i[adiaeresis]8m
-i1[adiaeresis]6r
-i5[adiaeresis]t.
-i5[adiaeresis]v
-i1[odiaeresis]8
-i[udiaeresis]8
-i6[ssharp]5ers
+iä8m
+i1ä6r
+i5ät.
+i5äv
+i1ö8
+iü8
+i6ß5ers
ja5la
je2t3r
6jm
@@ -2487,7 +2487,7 @@ jugen4
jugend5
jung5s6
ju1s
-3j[adiaeresis]
+3jä
1ka
8kachs
8kakz
@@ -2504,7 +2504,7 @@ ka1ro
kar6p5f
4k3arti
8karz
-ka1r[adiaeresis]
+ka1rä
kasi5e
ka6teb
kat8ta
@@ -2539,7 +2539,7 @@ king6s5
ki5os
ki5sp
ki5th
-8ki8[odiaeresis]
+8ki8ö
2k1k2
kl8
1kla
@@ -2560,13 +2560,13 @@ k2lin
5klip
5klop
k3lor
-1kl[adiaeresis]
+1klä
2k1m
kmani5e
kn8
6kner
k2ni
-kn[adiaeresis]8
+knä8
1k2o
ko1a2
ko6de.
@@ -2633,22 +2633,22 @@ kurz1
ku1st
4kusti
ku1ta
-ku8[ssharp]
+ku8ß
6k1v
2k1w
ky5n
2k1z
-1k[adiaeresis]
-k[adiaeresis]4m
-4k3[adiaeresis]mi
-k[adiaeresis]se5
-1k[odiaeresis]
-k[odiaeresis]1c
-k[odiaeresis]1s
-1k[udiaeresis]
-k[udiaeresis]1c
-k[udiaeresis]r6sc
-k[udiaeresis]1s
+1kä
+kä4m
+4k3ämi
+käse5
+1kö
+kö1c
+kö1s
+1kü
+kü1c
+kür6sc
+kü1s
1la.
8labf
8labh
@@ -2674,7 +2674,7 @@ lan4gr
8lanme
6lann
8lanw
-6lan[adiaeresis]
+6lanä
8lappa
lap8pl
lap6pr
@@ -2713,7 +2713,7 @@ lch5w
6ld
l4d3ei
ld1re
-l6d[udiaeresis]b
+l6düb
le2bl
le8bre
lecht6s5
@@ -2753,7 +2753,7 @@ le4r3er
l8ergr
6lerkl
6l5erzie
-8ler[odiaeresis]
+8lerö
8lesel
lesi5e
le3sko
@@ -2780,7 +2780,7 @@ li1en
lien6n
li8ers
li8ert
-2lie[ssharp]
+2ließ
3lig
li8ga8b
li1g6n
@@ -2830,9 +2830,9 @@ ll6spr
llte8
l1lu
ll3urg
-l1l[adiaeresis]
-l5l[udiaeresis]
-l6l[udiaeresis]b
+l1lä
+l5lü
+l6lüb
2l1m
l6m5o6d
6ln
@@ -2880,7 +2880,7 @@ ls4por
ls2pu
l1str
l8suni
-l1s[udiaeresis]
+l1sü
2l1t
lt5amp
l4t3ein
@@ -2892,7 +2892,7 @@ lt3her
l2t1ho
l6t5i6b
lti1l
-l8tr[odiaeresis]
+l8trö
lt1sc
lt6ser
lt4s3o
@@ -2927,7 +2927,7 @@ lu8terg
lu3the
lu6t5or
lu2t1r
-lu6[ssharp]5
+lu6ß5
l1v
lve5r6u
2l1w
@@ -2939,18 +2939,18 @@ l8zess
l8zo8f
l3zwei
lz5wu
-3l[adiaeresis]nd
-l[adiaeresis]5on
-l[adiaeresis]6sc
-l[adiaeresis]t1s
-5l[adiaeresis]uf
-2l[adiaeresis]ug
-l[adiaeresis]u6s5c
-l[adiaeresis]5v
-l1[odiaeresis]l
-1l[odiaeresis]s
-l[odiaeresis]1[ssharp]6t
-6l1[udiaeresis]be
+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
1ma
8mabg
ma5chan
@@ -2979,14 +2979,14 @@ ma1r4o
mar8schm
3mas
ma1sc
-ma1t[odiaeresis]
+ma1tö
4m5auf
ma5yo
2m1b
mb6r
2m1c
2m1d
-md6s[adiaeresis]
+md6sä
1me
me1ch
me5isc
@@ -3004,7 +3004,7 @@ me1ro
3mes
me6s5ei
me1th
-me8[ssharp]
+me8ß
2m1f6
2m1g
2m1h
@@ -3014,13 +3014,13 @@ mi6ale
mi1la
2m1imm
mi1na
-mi5n[udiaeresis]
+mi5nü
mi4s3an
mit1h
mi5t6ra
3mitt
mitta8
-mi6[ssharp]5
+mi6ß5
6mj
2m1k8
2m1l
@@ -3034,7 +3034,7 @@ m2mn
mm5sp
mm5ums
mmut5s
-m8m[adiaeresis]n
+m8män
m1n8
m5ni
1mo
@@ -3068,11 +3068,11 @@ mp2li
m2plu
mpo8ste
m1pr
-mpr[adiaeresis]5
+mprä5
mp8th
mput6
mpu5ts
-m1p[odiaeresis]
+m1pö
8m1q
2m1r
2ms
@@ -3087,7 +3087,7 @@ mt1ar
m8tein
m2t1h
mt6se
-mt8s[adiaeresis]
+mt8sä
mu5e
6m5uh
mumi1
@@ -3101,23 +3101,23 @@ mvoll3
2m1w
1my
2m1z
-m[adiaeresis]6kl
-1m[adiaeresis]n
-m[adiaeresis]1s
-m[adiaeresis]5tr
-m[adiaeresis]u4s3c
-3m[adiaeresis][ssharp]
-m[odiaeresis]b2
-6m[odiaeresis]l
-1m[udiaeresis]
-5m[udiaeresis]n
-3m[udiaeresis]t
+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[adiaeresis]
+na6bä
na2c
nach3e
3nacht
@@ -3172,7 +3172,7 @@ na5um
1nav
2nax
3naz
-1na[ssharp]
+1naß
n1b2
nbau5s
n1c
@@ -3226,8 +3226,8 @@ ne8ras
6n5erde.
nere5i6d
nerfor6
-6n5erh[odiaeresis]
-8nerl[odiaeresis]
+6n5erhö
+8nerlö
2n1err
n8ers.
6n5ertra
@@ -3236,7 +3236,7 @@ nesi3e
net1h
neu4ra
neu5sc
-8neu[ssharp]
+8neuß
n1f
nf5f
nf2l
@@ -3256,12 +3256,12 @@ ng2se4
ng2si
n2g1um
n1gy
-n8g[adiaeresis]l
+n8gäl
n1h
nhe6r5e
1ni
ni1bl
-ni5ch[adiaeresis]
+ni5chä
ni8dee
n6ie
ni1en
@@ -3292,15 +3292,15 @@ n1ke
n8kerla
n1ki
nk5inh
-n5kl[odiaeresis]
+n5klö
n1k2n
n8k5not
nk3rot
-n8kr[udiaeresis]
+n8krü
nk5spo
nk6t5r
n8kuh
-n6k[udiaeresis]b
+n6küb
n5l6
nli4mi
n1m
@@ -3313,9 +3313,9 @@ nn4t3ak
nnt1h
nnu1e
n1ny
-n1n[adiaeresis]
-n1n[odiaeresis]
-n1n[udiaeresis]
+n1nä
+n1nö
+n1nü
no5a
no4b3la
4n3obs
@@ -3348,7 +3348,7 @@ noty6pe
n1p2
n1q
n1r
-nr[odiaeresis]s3
+nrös3
6ns
n1sac
ns3ang
@@ -3398,16 +3398,16 @@ nt8rep
n4t3rin
nt8rop
n4t3rot
-n4tr[udiaeresis]
+n4trü
nt1s
nts6an
nt2sk
n1tu
nt1z
-n1t[adiaeresis]
-n1t[odiaeresis]
-n8t[odiaeresis]l
-n1t[udiaeresis]
+n1tä
+n1tö
+n8töl
+n1tü
1nu
nu1a
nu5el
@@ -3438,20 +3438,20 @@ n8zof
n6z5unt
n1zw
n6zwir
-1n[adiaeresis]c
-5n[adiaeresis]e
-5n[adiaeresis]i
-n8[adiaeresis]l
-n[adiaeresis]6m
-n[adiaeresis]6re
-n5[adiaeresis]rz
-5n[adiaeresis]us
-n1[odiaeresis]l
-1n[odiaeresis]t
-n5[odiaeresis]z
-5n[udiaeresis].
-6n1[udiaeresis]2b
-5n[udiaeresis][ssharp]
+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
@@ -3520,7 +3520,7 @@ oh1ru
o1hu
oh1w
o1hy
-o1h[adiaeresis]
+o1hä
o5ia
o1id.
o8idi
@@ -3535,7 +3535,7 @@ o1j
o1k
ok2l
ok3lau
-o8kl[adiaeresis]
+o8klä
1okta
o1la
old5am
@@ -3565,8 +3565,8 @@ o8merz
om5sp
o1mu
o8munt
-o1m[adiaeresis]
-o1m[odiaeresis]
+o1mä
+o1mö
o1na
ona8m
on1ax
@@ -3581,7 +3581,7 @@ ono1c
o4nokt
1ons
onts8
-o1n[adiaeresis]
+o1nä
oo8f
1oog
oo2pe
@@ -3600,8 +3600,8 @@ op6pl
o1pr
o3p4ter
1opti
-o1p[adiaeresis]
-o5p[odiaeresis]
+o1pä
+o5pö
o1q
o1ra.
o3rad
@@ -3630,7 +3630,7 @@ or2gl
o1ri
5o6rient
or8nan
-or8n[adiaeresis]
+or8nä
o1ro
or1r2h
or6t5an
@@ -3638,8 +3638,8 @@ or8tau
or8tere
o1rus
o1ry
-o1r[adiaeresis]
-or1[udiaeresis]2
+o1rä
+or1ü2
o1sa
osa3i
6ose
@@ -3679,7 +3679,7 @@ o3tsu
ot6t5erg
ot2t3h
ot2t5r
-ot8t[odiaeresis]
+ot8tö
o1tu
ou3e
ouf1
@@ -3705,9 +3705,9 @@ o1z
oza2r
1o2zea
ozo3is
-o[odiaeresis]8
-o[ssharp]5elt
-o[ssharp]1t
+oö8
+oß5elt
+oß1t
3paa
pa6ce
5pad
@@ -3751,7 +3751,7 @@ pe4rem
per8ran
3pers
4persi
-pe3r[udiaeresis]
+pe3rü
pe4sta
pet2s
p2f1ec
@@ -3814,7 +3814,7 @@ po3ny
po1ra
2porn
por4t3h
-po5r[odiaeresis]
+po5rö
5poti
p1pa
p6p5ei
@@ -3826,7 +3826,7 @@ pp1l
ppp6
pp5ren
pp1s
-p5p[odiaeresis]
+p5pö
pr6
3preis
1pres
@@ -3838,11 +3838,11 @@ pr6
pro8pt
pro6t5a
prote5i
-8pro[ssharp]
-pr[adiaeresis]3l
-1pr[adiaeresis]s
-pr[adiaeresis]te4
-1pr[udiaeresis]f
+8proß
+prä3l
+1präs
+präte4
+1prüf
p5schl
2pst
1p2sy
@@ -3865,12 +3865,12 @@ p3w
5py
py5l
p1z
-p[adiaeresis]6der
-p5[adiaeresis]6m
-p[adiaeresis]8nu
-8p[adiaeresis]r
-p[adiaeresis]t5h
-p[adiaeresis]t1s
+pä6der
+p5ä6m
+pä8nu
+8pär
+pät5h
+pät1s
qu6
1qui
8rabk
@@ -3932,7 +3932,7 @@ r6bler
rb4lie
rbon6n
r8brecht
-rb6s5t[adiaeresis]
+rb6s5tä
r8ces
r1che
rch1l
@@ -3998,17 +3998,17 @@ requi5
rer4bl
6rerbs
4r3erd
-8rerh[odiaeresis]
+8rerhö
8rerkl
4r3erla
-8rerl[odiaeresis]
+8rerlö
4r3erns
-6r5ern[adiaeresis]
+6r5ernä
rer5o
6r5erreg
r5ertr
r5erwec
-r5er[odiaeresis]
+r5erö
re2sa
re8schm
2ress
@@ -4048,7 +4048,7 @@ ri8fr
1r2ig
ri8kn
ri5la
-rim[adiaeresis]8
+rimä8
ri1na
r8inde
rin4ga
@@ -4058,7 +4058,7 @@ rin6gr
rino1
r8insp
4rinst
-ri1n[adiaeresis]
+ri1nä
ri5o6ch
ri1o2d
ri3o6st
@@ -4066,7 +4066,7 @@ ri3o6st
r2is
ri3sko
ri8spr
-ri8st[udiaeresis]
+ri8stü
ri5sv
r2it
6r5i6tal
@@ -4083,7 +4083,7 @@ rk3str
rk4t3an
rk6to
r6kuh
-rk[adiaeresis]4s3t
+rkä4s3t
r1l
r5li
rline5a
@@ -4106,8 +4106,8 @@ rn1k
r1no
r6n5oc
rn1sp
-r1n[adiaeresis]
-r1n[udiaeresis]
+r1nä
+r1nü
ro6bern
6robs
ro1ch
@@ -4142,7 +4142,7 @@ r1ra
r1re
rrer6
rr6hos
-r5rh[odiaeresis]
+r5rhö
r1ri
r1ro
rro8f
@@ -4150,9 +4150,9 @@ rr8or
rror5a
r1ru
r3ry
-r1r[adiaeresis]
-r1r[odiaeresis]
-r1r[udiaeresis]
+r1rä
+r1rö
+r1rü
2r1s
r6sab
r4sanf
@@ -4222,16 +4222,16 @@ r6z5erf
rz8erh
rz4t3h
r8zum
-r[adiaeresis]4ste
-r[adiaeresis]u8sc
-r1[odiaeresis]f
-5r[odiaeresis]hr
-r[odiaeresis]5le
-3r[odiaeresis]ll
-5r[odiaeresis]mis
-r1[odiaeresis]r
-r[odiaeresis]2sc
-3r[udiaeresis]mp
+rä4ste
+räu8sc
+r1öf
+5röhr
+rö5le
+3röll
+5römis
+r1ör
+rö2sc
+3rümp
1sa.
1saa
s3a4ben
@@ -4306,8 +4306,8 @@ sch5ame
2schk
5schlag
5schlu
-6schm[adiaeresis][ssharp]
-6schna[ssharp]
+6schmäß
+6schnaß
1scho
6schord
6schp
@@ -4323,8 +4323,8 @@ sch3tr
8schunt
6schv
2schz
-5sch[odiaeresis]
-5sch[udiaeresis]
+5schö
+5schü
2sco
scre6
6scu
@@ -4339,7 +4339,7 @@ se3erl
8seff
se6han
se8hi
-se8h[odiaeresis]
+se8hö
6s5eid.
2s1eig
s8eil
@@ -4360,9 +4360,9 @@ se5nec
s8er.
se8reim
ser5inn
-8serm[adiaeresis]
+8sermä
8s5erzi
-6ser[odiaeresis]f
+6seröf
se1um
8sexa
6sexp
@@ -4389,7 +4389,7 @@ si8kau
sik1i
si4kin
si2kl
-si8k[udiaeresis]
+si8kü
si1la
sil6br
si1na
@@ -4416,7 +4416,7 @@ s8kj
3skrib
3skrip
2sku
-8sk[udiaeresis]
+8skü
s1l
s8lal
slei3t
@@ -4453,7 +4453,7 @@ s6perg
s6pes
2s1pf
8sphi
-1s2ph[adiaeresis]
+1s2phä
1spi
spi4e
6s5pig
@@ -4473,8 +4473,8 @@ spi4e
s2pul
1s2pur
6spy
-5sp[adiaeresis]n
-1sp[udiaeresis]
+5spän
+1spü
s1q
2s1r
2s1s2
@@ -4535,7 +4535,7 @@ sti8r
4strai
3s4tral
6s5traum
-3stra[ssharp]
+3straß
3strec
6s3tref
8streib
@@ -4552,7 +4552,7 @@ s8troma
st5rose
4struf
3strum
-6str[adiaeresis]g
+6sträg
2st1s6
2stt
1stu
@@ -4564,12 +4564,12 @@ stu5a
2stw
s2tyl
6stz
-1st[adiaeresis]
-8st[adiaeresis]g
-1st[odiaeresis]
-1st[udiaeresis]
-8st[udiaeresis]ch
-4st[udiaeresis]r.
+1stä
+8stäg
+1stö
+1stü
+8stüch
+4stür.
1su
su2b1
3suc
@@ -4594,16 +4594,16 @@ s1z
s4zend
5s6zene.
8szu
-1s[adiaeresis]
-6s5[adiaeresis]nd
-6s[adiaeresis]ugi
-6s[adiaeresis]u[ssharp]
-5s[odiaeresis]m
-2s1[udiaeresis]2b
-1s[udiaeresis]c
-s[udiaeresis]8di
-1s[udiaeresis]n
-5s[udiaeresis][ssharp]
+1sä
+6s5änd
+6säugi
+6säuß
+5söm
+2s1ü2b
+1süc
+sü8di
+1sün
+5süß
taats3
4tab.
taba6k
@@ -4720,8 +4720,8 @@ ter5ebe
ter5ein
te8rers
terf4
-8terh[odiaeresis]
-6terkl[adiaeresis]
+8terhö
+6terklä
ter8nor
ter6re.
t8erscha
@@ -4775,9 +4775,9 @@ t5hof
4ths
t1hum
1thy
-4t1h[adiaeresis]
-2t1h[odiaeresis]
-t1h[udiaeresis]
+4t1hä
+2t1hö
+t1hü
ti1a2m
ti1b
tie6fer
@@ -4871,16 +4871,16 @@ tro8man.
tro3ny
5tropf
6t5rosa
-t5ro[ssharp]
+t5roß
5trub
5trup
trut5
-1tr[adiaeresis]g
-6t1r[odiaeresis]h
-5tr[udiaeresis]b
-tr[udiaeresis]3bu
-t1r[udiaeresis]c
-t1r[udiaeresis]s
+1träg
+6t1röh
+5trüb
+trü3bu
+t1rüc
+t1rüs
2ts
ts1ab
t1sac
@@ -4891,7 +4891,7 @@ ts1an
ts1ar
ts3auf
t3schr
-t5sch[adiaeresis]
+t5schä
tse6e
tsee5i
tsein6s
@@ -4958,21 +4958,21 @@ tzehn5
t6z5ei.
t6zor
t4z3um
-t6z[adiaeresis]u
-5t[adiaeresis]g
-6t[adiaeresis]h
-t5[adiaeresis]lt
-t8[adiaeresis]n
-t[adiaeresis]re8
-8t[adiaeresis]8st
-6t[adiaeresis]u[ssharp]
-t5[odiaeresis]ffen
-8t[odiaeresis]8k
-1t[odiaeresis]n
-4t[udiaeresis]b
-t6[udiaeresis]5ber.
-5t[udiaeresis]ch
-1t[udiaeresis]r.
+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
+1tür.
u3al.
u5alb
u5alf
@@ -4991,8 +4991,8 @@ u2bab
ubi5er.
u6b5rit
ubs2k
-u5b[odiaeresis]
-u8b[udiaeresis]b
+u5bö
+u8büb
2uc
u1che
u6ch5ec
@@ -5028,8 +5028,8 @@ uf1fr
uf1l
uf1ra
uf1re
-uf1r[adiaeresis]
-uf1r[udiaeresis]
+uf1rä
+uf1rü
uf1s2p
uf1st
uft1s
@@ -5047,8 +5047,8 @@ u1ho
uh1re
u1hu
uh1w
-u1h[adiaeresis]
-u1h[odiaeresis]
+u1hä
+u1hö
6ui
ui5en
u1ig
@@ -5077,15 +5077,15 @@ ult6a
ult8e
u1lu
ul2vr
-u1l[adiaeresis]
-u1l[odiaeresis]
+u1lä
+u1lö
3umfan
5umlau
umo8f
um8pho
u1mu
umu8s
-u5m[odiaeresis]
+u5mö
u1n1a
un2al
un6at
@@ -5094,18 +5094,18 @@ unau2
5undein
un4d3um
3undzw
-und[udiaeresis]8
-un8d[udiaeresis]b
+undü8
+un8düb
une2b
un1ec
une2h
un3eis
3unfal
-1unf[adiaeresis]
+1unfä
5ungea
-3ungl[udiaeresis]
+3unglü
ung2s1
-un8g[adiaeresis]
+un8gä
1u2nif
un4it
un8kro
@@ -5153,11 +5153,11 @@ uru5i6
uru6r
u1ry
ur2za
-ur6z[adiaeresis]
-ur5[adiaeresis]6m
-u5r[odiaeresis]
-u1r[udiaeresis]
-ur[udiaeresis]ck3
+ur6zä
+ur5ä6m
+u5rö
+u1rü
+urück3
u1sa
usa4gi
u2s1ar
@@ -5201,7 +5201,7 @@ utz5w
u1u
u1v
uve5n
-uve3r4[adiaeresis]
+uve3r4ä
u1w
u1xe
u5ya
@@ -5209,9 +5209,9 @@ uy5e6
u1yi
u2z1eh
u8zerh
-u5[odiaeresis]
-u[ssharp]e6n
-u[ssharp]en5e
+u5ö
+uße6n
+ußen5e
8vanb
6vang
6varb
@@ -5303,7 +5303,7 @@ we2sp
we8stend
we6steu
we8str
-we8st[odiaeresis]
+we8stö
wet8ta
wich6s5t
1wid
@@ -5332,8 +5332,8 @@ wu1sc
wu2t1
6w5w
wy5a
-w[adiaeresis]rme5
-w[adiaeresis]1sc
+wärme5
+wä1sc
1xag
x1ak
x3a4men
@@ -5415,7 +5415,7 @@ ys8ty
y1t
y3w
y1z
-y[adiaeresis]8m
+yä8m
z5a6b
zab5l
8za6d
@@ -5444,7 +5444,7 @@ zel8th
4zemp
6z5engel
zen8zin
-8zerg[adiaeresis]
+8zergä
zer8i
ze1ro
zers8
@@ -5517,238 +5517,238 @@ zwi1s
2z1z
zz8a
zzi1s
-1z[adiaeresis]
-1z[odiaeresis]
-6z[odiaeresis]l.
-z[odiaeresis]1le
-1z[udiaeresis]
-2z1[udiaeresis]2b
-[adiaeresis]1a6
-[adiaeresis]b1l
-[adiaeresis]1che
-[adiaeresis]3chi
-[adiaeresis]ch8sc
-[adiaeresis]ch8sp
-[adiaeresis]5chu
-[adiaeresis]ck5a
-[adiaeresis]d1a
-[adiaeresis]d5era
-[adiaeresis]6d5ia
-[adiaeresis]1e
-[adiaeresis]5fa
-[adiaeresis]f1l
-[adiaeresis]ft6s
-[adiaeresis]g1h
-[adiaeresis]g3le
-[adiaeresis]6g5nan
-[adiaeresis]g5str
-[adiaeresis]1he
-[adiaeresis]1hi
-[adiaeresis]h1le
-[adiaeresis]h5ne
-1[adiaeresis]hnl
-[adiaeresis]h1re
-[adiaeresis]h5ri
-[adiaeresis]h1ru
-[adiaeresis]1hu
-[adiaeresis]h1w
-6[adiaeresis]i
-[adiaeresis]1isc
-[adiaeresis]6ische
-[adiaeresis]5ism
-[adiaeresis]5j
-[adiaeresis]1k
-[adiaeresis]l1c
-[adiaeresis]1le
-[adiaeresis]8lei
-[adiaeresis]l6schl
-[adiaeresis]mi1e
-[adiaeresis]m8n
-[adiaeresis]m8s
-[adiaeresis]5na
-5[adiaeresis]nderu
-[adiaeresis]ne5i8
-[adiaeresis]ng3l
-[adiaeresis]nk5l
-[adiaeresis]1no
-[adiaeresis]n6s5c
-[adiaeresis]1pa
-[adiaeresis]p6s5c
-3[adiaeresis]q
-[adiaeresis]r1c
-[adiaeresis]1re
-[adiaeresis]re8m
-5[adiaeresis]rgern
-[adiaeresis]r6gl
-[adiaeresis]1ri
-3[adiaeresis]rmel
-[adiaeresis]1ro
-[adiaeresis]rt6s5
-[adiaeresis]1ru
-3[adiaeresis]rztl
-[adiaeresis]5r[odiaeresis]
-[adiaeresis]6s5chen
-[adiaeresis]sen8s
-[adiaeresis]s1th
-[adiaeresis]ta8b
-[adiaeresis]1te
-[adiaeresis]teri4
-[adiaeresis]ter5it
-[adiaeresis]6thy
-[adiaeresis]1ti
-3[adiaeresis]tk
-[adiaeresis]1to
-[adiaeresis]t8schl
-[adiaeresis]ts1p
-[adiaeresis]5tu
-[adiaeresis]ub1l
-[adiaeresis]u1e
-1[adiaeresis]ug
-[adiaeresis]u8ga
-[adiaeresis]u5i
-[adiaeresis]1um.
-[adiaeresis]1us.
-1[adiaeresis]u[ssharp]
-[adiaeresis]1z
-[odiaeresis]1b
-[odiaeresis]1che
-[odiaeresis]5chi
-[odiaeresis]ch8stei
-[odiaeresis]ch8str
-[odiaeresis]cht6
-5[odiaeresis]6dem
-5[odiaeresis]ffn
-[odiaeresis]1he
-[odiaeresis]h1l8
-[odiaeresis]h1re
-[odiaeresis]1hu
-[odiaeresis]1is
-[odiaeresis]1ke
-1[odiaeresis]2ko
-1[odiaeresis]l.
-[odiaeresis]l6k5l
-[odiaeresis]l8pl
-[odiaeresis]1mu
-[odiaeresis]5na
-[odiaeresis]nig6s3
-[odiaeresis]1no
-[odiaeresis]5o6t
-[odiaeresis]pf3l
-[odiaeresis]p6s5c
-[odiaeresis]1re
-[odiaeresis]r8gli
-[odiaeresis]1ri
-[odiaeresis]r8tr
-[odiaeresis]1ru
-5[odiaeresis]sterr
-[odiaeresis]1te
-[odiaeresis]5th
-[odiaeresis]1ti
-[odiaeresis]1tu
-[odiaeresis]1v
-[odiaeresis]1w
-[odiaeresis]we8
-[odiaeresis]2z
-[udiaeresis]b6e2
-3[udiaeresis]4ber1
-[udiaeresis]b1l
-[udiaeresis]b1r
-5[udiaeresis]2bu
-[udiaeresis]1che
-[udiaeresis]1chi
-[udiaeresis]8ch3l
-[udiaeresis]ch6s5c
-[udiaeresis]8ck
-[udiaeresis]ck1a
-[udiaeresis]ck5ers
-[udiaeresis]d1a2
-[udiaeresis]6deu
-[udiaeresis]di8t
-[udiaeresis]2d1o4
-[udiaeresis]d5s6
-[udiaeresis]ge4l5a
-[udiaeresis]g1l
-[udiaeresis]h5a
-[udiaeresis]1he
-[udiaeresis]8heh
-[udiaeresis]6h5erk
-[udiaeresis]h1le
-[udiaeresis]h1re
-[udiaeresis]h1ru
-[udiaeresis]1hu
-[udiaeresis]h1w
-[udiaeresis]3k
-[udiaeresis]1le
-[udiaeresis]l4l5a
-[udiaeresis]l8lo
-[udiaeresis]l4ps
-[udiaeresis]l6s5c
-[udiaeresis]1lu
-[udiaeresis]n8da
-[udiaeresis]n8fei
-[udiaeresis]nk5l
-[udiaeresis]n8za
-[udiaeresis]n6zw
-[udiaeresis]5pi
-[udiaeresis]1re
-[udiaeresis]8rei
-[udiaeresis]r8fl
-[udiaeresis]r8fr
-[udiaeresis]r8geng
-[udiaeresis]1ri
-[udiaeresis]1ro
-[udiaeresis]r8sta
-[udiaeresis]r8ster
-[udiaeresis]1ru
-[udiaeresis]se8n
-[udiaeresis]8sta
-[udiaeresis]8stes
-[udiaeresis]6s5tete
-[udiaeresis]3ta
-[udiaeresis]1te
-[udiaeresis]1ti
-[udiaeresis]t8tr
-[udiaeresis]1tu
-[udiaeresis]t8zei
-[udiaeresis]1v
-[ssharp]1a8
-5[ssharp]a.
-[ssharp]8as
-[ssharp]1b8
-[ssharp]1c
-[ssharp]1d
-1[ssharp]e
-[ssharp]5ec
-8[ssharp]e8g
-8[ssharp]e8h
-2[ssharp]1ei
-8[ssharp]em
-[ssharp]1f8
-[ssharp]1g
-[ssharp]1h
-1[ssharp]i
-[ssharp]1k
-[ssharp]1l
-[ssharp]1m
-[ssharp]mana8
-[ssharp]1n
-[ssharp]1o
-[ssharp]1p8
-[ssharp]5q
-[ssharp]1r
-[ssharp]1s2
-[ssharp]st8
-[ssharp]1ta
-[ssharp]1te
-[ssharp]t3hei
-[ssharp]1ti
-[ssharp]5to
-[ssharp]1tr
-1[ssharp]u8
-6[ssharp]5um
-[ssharp]1v
-[ssharp]1w
-[ssharp]1z
+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
diff --git a/Master/texmf-dist/tex/context/patterns/lang-en.hyp b/Master/texmf-dist/tex/context/patterns/lang-en.hyp
index 373dfe47339..ec2165d8110 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-en.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-en.hyp
@@ -1,6 +1,6 @@
% context hyphenation file, see lang-all.xml for original comment
-% source of data: hyphen.tex
+% source of data: ushyphmax.tex ushyph.tex hyphen.tex
% begin description data
diff --git a/Master/texmf-dist/tex/context/patterns/lang-en.pat b/Master/texmf-dist/tex/context/patterns/lang-en.pat
index 269f1e0f59e..0ec0deb130e 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-en.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-en.pat
@@ -1,6 +1,6 @@
% context pattern file, see lang-all.xml for original comment
-% source of data: hyphen.tex
+% source of data: ushyphmax.tex ushyph.tex hyphen.tex
% begin description data
@@ -4469,6 +4469,497 @@ 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.pat b/Master/texmf-dist/tex/context/patterns/lang-es.pat
index 52c2f3b3a9b..eb97ea72823 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-es.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-es.pat
@@ -29,134 +29,134 @@
1bi
1bo
1bu
-1b[aacute]
-1b[eacute]
-1b[iacute]
-1b[oacute]
-1b[uacute]
+1bá
+1bé
+1bí
+1bó
+1bú
1ca
1ce
1ci
1co
1cu
1c2h
-1c[aacute]
-1c[eacute]
-1c[iacute]
-1c[oacute]
-1c[uacute]
+1cá
+1cé
+1cí
+1có
+1cú
1da
1de
1di
1do
1du
-1d[aacute]
-1d[eacute]
-1d[iacute]
-1d[oacute]
-1d[uacute]
+1dá
+1dé
+1dí
+1dó
+1dú
1fa
1fe
1fi
1fo
1fu
-1f[aacute]
-1f[eacute]
-1f[iacute]
-1f[oacute]
-1f[uacute]
+1fá
+1fé
+1fí
+1fó
+1fú
1ga
1ge
1gi
1go
1gu
-1g[aacute]
-1g[eacute]
-1g[iacute]
-1g[oacute]
-1g[uacute]
-1g[udiaeresis]
+1gá
+1gé
+1gí
+1gó
+1gú
+1gü
1ha
1he
1hi
1ho
1hu
-1h[aacute]
-1h[eacute]
-1h[iacute]
-1h[oacute]
-1h[uacute]
+1há
+1hé
+1hí
+1hó
+1hú
1ja
1je
1ji
1jo
1ju
-1j[aacute]
-1j[eacute]
-1j[iacute]
-1j[oacute]
-1j[uacute]
+1já
+1jé
+1jí
+1jó
+1jú
1ka
1ke
1ki
1ko
1ku
-1k[aacute]
-1k[eacute]
-1k[iacute]
-1k[oacute]
-1k[uacute]
+1ká
+1ké
+1kí
+1kó
+1kú
1la
1le
1li
1lo
1lu
1l2l
-1l[aacute]
-1l[eacute]
-1l[iacute]
-1l[oacute]
-1l[uacute]
+1lá
+1lé
+1lí
+1ló
+1lú
1ma
1me
1mi
1mo
1mu
-1m[aacute]
-1m[eacute]
-1m[iacute]
-1m[oacute]
-1m[uacute]
+1má
+1mé
+1mí
+1mó
+1mú
1na
1ne
1ni
1no
1nu
-1n[aacute]
-1n[eacute]
-1n[iacute]
-1n[oacute]
-1n[uacute]
-1[ntilde]a
-1[ntilde]e
-1[ntilde]i
-1[ntilde]o
-1[ntilde]u
-1[ntilde][aacute]
-1[ntilde][eacute]
-1[ntilde][iacute]
-1[ntilde][oacute]
-1[ntilde][uacute]
+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[aacute]
-1p[eacute]
-1p[iacute]
-1p[oacute]
-1p[uacute]
+1pá
+1pé
+1pí
+1pó
+1pú
1qu
1ra
1re
@@ -164,81 +164,81 @@
1ro
1ru
r2r
-1r[aacute]
-1r[eacute]
-1r[iacute]
-1r[oacute]
-1r[uacute]
+1rá
+1ré
+1rí
+1ró
+1rú
1sa
1se
1si
1so
1su
-1s[aacute]
-1s[eacute]
-1s[iacute]
-1s[oacute]
-1s[uacute]
+1sá
+1sé
+1sí
+1só
+1sú
1ta
1te
1ti
1to
1tu
-1t[aacute]
-1t[eacute]
-1t[iacute]
-1t[oacute]
-1t[uacute]
+1tá
+1té
+1tí
+1tó
+1tú
1va
1ve
1vi
1vo
1vu
-1v[aacute]
-1v[eacute]
-1v[iacute]
-1v[oacute]
-1v[uacute]
+1vá
+1vé
+1ví
+1vó
+1vú
1wa
1we
1wi
1wo
1wu
-1w[aacute]
-1w[eacute]
-1w[iacute]
-1w[oacute]
-1w[uacute]
+1wá
+1wé
+1wí
+1wó
+1wú
1xa
1xe
1xi
1xo
1xu
-1x[aacute]
-1x[eacute]
-1x[iacute]
-1x[oacute]
-1x[uacute]
+1xá
+1xé
+1xí
+1xó
+1xú
1ya
1ye
1yi
1yo
1yu
-1y[aacute]
-1y[eacute]
-1y[iacute]
-1y[oacute]
-1y[uacute]
+1yá
+1yé
+1yí
+1yó
+1yú
1za
1ze
1zi
1zo
1zu
-1z[aacute]
-1z[eacute]
-1z[iacute]
-1z[oacute]
-1z[uacute]
+1zá
+1zé
+1zí
+1zó
+1zú
1b2l
1c2l
1f2l
@@ -274,13 +274,13 @@ r2r
.bien1est
.bien1int
.bi1ox
-.bi1[oacute]x
+.bi1óx
.bi1un
.co1adm
.co1adq
.co1agent
.co1am
-.co1ap[oacute]s
+.co1após
.co1arr
.co1aut
.co1ed
@@ -330,10 +330,10 @@ r2r
.des1andr
.des1ani
.des1anu
-.des1a[ntilde]u
+.des1añu
.des1aoj
.des1apaci
-.des1apa[ntilde]
+.des1apañ
.des1aparec
.des1aparroq
.des1apeg
@@ -397,7 +397,7 @@ r2r
.des1encast
.des1encen
.des1enclavi
-.des1enga[ntilde]il
+.des1engañil
.des1engarraf
.des1enh
.des1enmall
@@ -405,8 +405,8 @@ r2r
.des1enmu
.des1enq
.des1enraz
-.des1ensa[ntilde]
-.des1ense[ntilde]
+.des1ensañ
+.des1enseñ
.des1ental
.des1entoll
.des1entren
@@ -461,7 +461,7 @@ r2r
.hidro1a
.hidro1e
.hiper1e
-.hiper1[eacute]
+.hiper1é
.hiper1o
.ia2
.io2
@@ -519,17 +519,17 @@ r2r
.oe2
.oi2
.octa1e
-.octa1[eacute]
+.octa1é
.oligo1e
.pan1ame
.pan1esl
.pan1eur
.pan1isl
-.pan1[oacute]pt
-1p2ter[iacute]neo
+.pan1ópt
+1p2teríneo
.pluri1em
.pre1ad
-.pre1[aacute]m
+.pre1ám
.pre1e
.pre1i
.pre1opi
@@ -564,13 +564,13 @@ r2r
.sobre1e
.sobre1i
.sub1a
-.sub1[aacute]
+.sub1á
.sub2ast
.sub1ej
.sub1en
.sub1esp
.sub1est
-.sub1[iacute]n
+.sub1ín
.sub1insp
.sub1inten
.sub1of
@@ -595,13 +595,13 @@ sud1oes
.tetra1e
.tras1a
.tras1o
-.tras2o[ntilde]
+.tras2oñ
.tran2s1alp
.tran2s1and
.tran2s1atl
.tran2s1oce
.tran2s1ur
-.tri1[oacute]x
+.tri1óx
}
% end pattern data
diff --git a/Master/texmf-dist/tex/context/patterns/lang-fi.pat b/Master/texmf-dist/tex/context/patterns/lang-fi.pat
index 7753a4baf50..d9ccdf2d939 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-fi.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-fi.pat
@@ -52,8 +52,8 @@
1do
1du
1dy
-1d[adiaeresis]
-1d[odiaeresis]
+1dä
+1dö
1fa
1fe
1fi
@@ -66,120 +66,120 @@
1go
1gu
1gy
-1g[adiaeresis]
-1g[odiaeresis]
+1gä
+1gö
1ha
1he
1hi
1ho
1hu
1hy
-1h[adiaeresis]
-1h[odiaeresis]
+1hä
+1hö
1ja
1je
1ji
1jo
1ju
1jy
-1j[adiaeresis]
-1j[odiaeresis]
+1jä
+1jö
1ka
1ke
1ki
1ko
1ku
1ky
-1k[adiaeresis]
-1k[odiaeresis]
+1kä
+1kö
1la
1le
1li
1lo
1lu
1ly
-1l[adiaeresis]
-1l[odiaeresis]
+1lä
+1lö
1ma
1me
1mi
1mo
1mu
1my
-1m[adiaeresis]
-1m[odiaeresis]
+1mä
+1mö
1na
1ne
1ni
1no
1nu
1ny
-1n[adiaeresis]
-1n[odiaeresis]
+1nä
+1nö
1pa
1pe
1pi
1po
1pu
1py
-1p[adiaeresis]
-1p[odiaeresis]
+1pä
+1pö
1ra
1re
1ri
1ro
1ru
1ry
-1r[adiaeresis]
-1r[odiaeresis]
+1rä
+1rö
1sa
1se
1si
1so
1su
1sy
-1s[adiaeresis]
-1s[odiaeresis]
+1sä
+1sö
1ta
1te
1ti
1to
1tu
1ty
-1t[adiaeresis]
-1t[odiaeresis]
+1tä
+1tö
1va
1ve
1vi
1vo
1vu
1vy
-1v[adiaeresis]
-1v[odiaeresis]
+1vä
+1vö
1st2r
-[adiaeresis]2y
+ä2y
y1a2
y1o2
o1y
-[odiaeresis]2y
+ö2y
u1y2
y1u2
-[odiaeresis]3a2
-[odiaeresis]3o2
-[adiaeresis]3a2
-[adiaeresis]3o2
-[adiaeresis]1u2
-[odiaeresis]1u2
-a1[adiaeresis]
-a1[odiaeresis]
-o1[adiaeresis]
-o1[odiaeresis]
-u1[adiaeresis]2
-u1[odiaeresis]2
-[adiaeresis]2[adiaeresis]
-[odiaeresis]2[odiaeresis]
-[adiaeresis]2[odiaeresis]
-[odiaeresis]2[adiaeresis]
+ö3a2
+ö3o2
+ä3a2
+ä3o2
+ä1u2
+ö1u2
+a1ä
+a1ö
+o1ä
+o1ö
+u1ä2
+u1ö2
+ä2ä
+ö2ö
+ä2ö
+ö2ä
aa1i2
aa1e2
aa1o2
@@ -204,13 +204,13 @@ a1uu
i1uu
e1uu
o1uu
-[adiaeresis][adiaeresis]1i
-[adiaeresis][adiaeresis]1e
-[adiaeresis][adiaeresis]3y
-i1[adiaeresis][adiaeresis]
-e1[adiaeresis][adiaeresis]
-y1[adiaeresis][adiaeresis]
-i1[odiaeresis][odiaeresis]
+ää1i
+ää1e
+ää3y
+i1ää
+e1ää
+y1ää
+i1öö
a1ei
a1oi
e1ai
@@ -242,9 +242,9 @@ ue1a
ui1e
uo1a
uo1u
-e1[odiaeresis]2
-[odiaeresis]1e2
-.[adiaeresis]2
+e1ö2
+ö1e2
+.ä2
u2s
yli1o2p
ali1a2v
diff --git a/Master/texmf-dist/tex/context/patterns/lang-fr.pat b/Master/texmf-dist/tex/context/patterns/lang-fr.pat
index 0486639152b..c7efff40b35 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-fr.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-fr.pat
@@ -32,13 +32,13 @@
2'2
.a4
'a4
-.[acircumflex]4
-'[acircumflex]4
+.â4
+'â4
ab2h
-.ab3r[eacute]a
-'ab3r[eacute]a
+.ab3réa
+'ab3réa
ad2h
-a1[egrave]2dre
+a1è2dre
.ae3s4ch
'ae3s4ch
1alcool
@@ -47,36 +47,36 @@ a2l1algi
'amino1a2c
.ana3s4tr
'ana3s4tr
-1a2nesth[eacute]si
+1a2nesthési
.anti1a2
'anti1a2
.anti1e2
'anti1e2
-.anti1[eacute]2
+.anti1é2
.anti2enne
'anti2enne
-'anti1[eacute]2
+'anti1é2
.anti1s2
'anti1s2
.apo2s3ta
'apo2s3ta
apo2s3tr
-archi1[eacute]2pis
+archi1é2pis
.as2ta
'as2ta
a2s3tro
1ba
-1b[acircumflex]
+1bâ
.bai2se3main
1be
-1b[eacute]
-1b[egrave]
-1b[ecircumflex]
+1bé
+1bè
+1bê
4be.
4bes.
2bent.
1bi
-1b[icircumflex]
+1bî
.bi1a2c
.bi1a2t
.bi1au
@@ -88,30 +88,30 @@ a2s3tro
4bles.
2blent.
1bo
-1b[ocircumflex]
+1bô
1b2r
4bre.
4bres.
2brent.
1bu
-1b[ucircumflex]
+1bû
1by
-1[ccedilla]
+1ç
1ca
-1c[acircumflex]
+1câ
ca3ou3t2
1ce
-1c[eacute]
-1c[egrave]
-1c[ecircumflex]
+1cé
+1cè
+1cê
4ce.
4ces.
2cent.
ja3cent.
ac3cent.
-[eacute]3cent.
+é3cent.
munifi3cent.
-r[eacute]ti3cent.
+réti3cent.
privatdo3cent.
inno3cent.
es3cent.
@@ -125,13 +125,13 @@ immis4cent.
4che.
4ches.
2chent.
-.ch[egrave]2vre3feuille
+.chè2vre3feuille
2chg
ch2l
4chle.
4chles.
chlo2r3a2c
-chlo2r3[eacute]2t
+chlo2r3é2t
2chm
2chn
2chp
@@ -142,7 +142,7 @@ ch2r
2cht
2chw
1ci
-1c[icircumflex]
+1cî
.ci2s1alp
1c2k
4ck.
@@ -161,7 +161,7 @@ ch2r
4cles.
2clent.
1co
-1c[ocircumflex]
+1cô
co1acc
co1acq
co1a2d
@@ -171,16 +171,16 @@ co1assoc
co1assur
co1au
co1ax
-1c[odiaeresis]0
-1c[odiaeresis]OT
-co1[eacute]2
+1cö0
+1cöOT
+co1é2
co1ef
co1en
co1ex
.con4
.cons4
.contre1s2c
-.contre3ma[icircumflex]tre
+.contre3maître
co2nurb
.co1o2
.co2o3lie
@@ -189,23 +189,23 @@ co2nurb
4cres.
2crent.
1cu
-1c[ucircumflex]
+1cû
1cy
.cul4
1d'
1da
-1d[acircumflex]
+1dâ
.dacryo1a2
d1d2h
1de
-1d[eacute]
-1d[egrave]
-1d[ecircumflex]
+1dé
+1dè
+1dê
4de.
4des.
2dent.
-d[eacute]ca3dent.
-[eacute]3dent.
+déca3dent.
+é3dent.
cci3dent.
inci3dent.
confi3dent.
@@ -215,45 +215,45 @@ chien3dent.
.ar3dent.
impu3dent.
pru3dent.
-.d[eacute]1a2
-.d[eacute]1io
-.d[eacute]1o2
-.d[eacute]2s
-.d[eacute]3s2a3cr
-.d[eacute]s2a3m
-.d[eacute]3s2a3tell
-.d[eacute]3s2astr
-.d[eacute]3s2c
-.d[eacute]2s1[eacute]2
-.d[eacute]3s2[eacute]3gr
-.d[eacute]3s2ensib
-.d[eacute]3s2ert
-.d[eacute]3s2exu
-.d[eacute]2s1i2
-.d[eacute]3s2i3d
-.d[eacute]3s2i3gn
-.d[eacute]3s2i3li
-.d[eacute]3s2i3nen
-.d[eacute]3s2invo
-.d[eacute]3s2i3r
-.d[eacute]3s2ist
-.d[eacute]3s2o3d[eacute]
-.d[eacute]2s1[odiaeresis]0
-.d[eacute]2s1[odiaeresis]OT
-.d[eacute]3s2o3l
-.d[eacute]3s2o3pil
-.d[eacute]3s2orm
-.d[eacute]3s2orp
-.d[eacute]3s2oufr
-.d[eacute]3s2p
-.d[eacute]3s2t
-.d[eacute]2s1u2n
+.dé1a2
+.dé1io
+.dé1o2
+.dé2s
+.dé3s2a3cr
+.dés2a3m
+.dé3s2a3tell
+.dé3s2astr
+.dé3s2c
+.dé2s1é2
+.dé3s2é3gr
+.dé3s2ensib
+.dé3s2ert
+.dé3s2exu
+.dé2s1i2
+.dé3s2i3d
+.dé3s2i3gn
+.dé3s2i3li
+.dé3s2i3nen
+.dé3s2invo
+.dé3s2i3r
+.dé3s2ist
+.dé3s2o3dé
+.dé2s1ö0
+.dé2s1öOT
+.dé3s2o3l
+.dé3s2o3pil
+.dé3s2orm
+.dé3s2orp
+.dé3s2oufr
+.dé3s2p
+.dé3s2t
+.dé2s1u2n
3d2hal
3d2houd
1di
-1d[icircumflex]
+1dî
di2s3cop
-.di1a2c[eacute]
+.di1a2cé
.di1a2cid
.di1ald
.di1a2mi
@@ -262,14 +262,14 @@ di2s3cop
.di2s3h
2dlent.
1do
-1d[ocircumflex]
+1dô
1d2r
4dre.
4dres.
2drent.
d1s2
1du
-1d[ucircumflex]
+1dû
1dy
.dy2s3
.dy2s1a2
@@ -278,25 +278,25 @@ d1s2
.dy2s1u2
.e4
'e4
-.[ecircumflex]4
-'[ecircumflex]4
-.[eacute]4
-'[eacute]4
-.[egrave]4
-'[egrave]4
-[eacute]d2hi
-1[eacute]2drie
-1[eacute]2drique
-1[eacute]2lectr
-1[eacute]2l[eacute]ment
+.ê4
+'ê4
+.é4
+'é4
+.è4
+'è4
+éd2hi
+1é2drie
+1é2drique
+1é2lectr
+1é2lément
.en1a2
'en1a2
-1[eacute]2nerg
+1é2nerg
e2n1i2vr
.en1o2
'en1o2
-[eacute]pi2s3cop
-[eacute]pi3s4cope
+épi2s3cop
+épi3s4cope
e2s3cop
.eu2r1a2
'eu2r1a2
@@ -305,40 +305,40 @@ extra1
extra2c
extra2i
1fa
-1f[acircumflex]
+1fâ
1fe
-1f[eacute]
-1f[egrave]
-1f[ecircumflex]
+1fé
+1fè
+1fê
4fe.
4fes.
2fent.
1fi
-1f[icircumflex]
+1fî
1f2l
4fle.
4fles.
2flent.
1fo
-1f[ocircumflex]
+1fô
1f2r
4fre.
4fres.
2frent.
f1s2
1fu
-1f[ucircumflex]
+1fû
1fy
1ga
-1g[acircumflex]
+1gâ
1ge
-1g[eacute]
-1g[egrave]
-1g[ecircumflex]
+1gé
+1gè
+1gê
4ge.
4ges.
2gent.
-r[eacute]3gent.
+ré3gent.
entre3gent.
indi3gent.
dili3gent.
@@ -351,14 +351,14 @@ contin3gent.
'ar3gent.
ser3gent.
ter3gent.
-r[eacute]sur3gent.
+résur3gent.
1g2ha
1g2he
1g2hi
1g2ho
1g2hy
1gi
-1g[icircumflex]
+1gî
1g2l
4gle.
4gles.
@@ -368,8 +368,8 @@ r[eacute]sur3gent.
.a2g3nat
a2g3nos
co2g3niti
-'i2g3n[eacute]
-.i2g3n[eacute]
+'i2g3né
+.i2g3né
'i2g3ni
.i2g3ni
.ma2g3nicide
@@ -387,13 +387,13 @@ wa2g3n
4gnes.
2gnent.
1go
-1g[ocircumflex]
+1gô
1g2r
4gre.
4gres.
2grent.
1gu
-1g[ucircumflex]
+1gû
g1s2
4gue.
4gues.
@@ -402,25 +402,25 @@ g1s2
'on3guent.
1gy
1ha
-1h[acircumflex]
+1hâ
1he
-1h[eacute]
-1h[egrave]
-1h[ecircumflex]
-h[eacute]mi1[eacute]
-h[eacute]mo1p2t
+1hé
+1hè
+1hê
+hémi1é
+hémo1p2t
4he.
4hes.
1hi
-1h[icircumflex]
+1hî
1ho
-1h[ocircumflex]
+1hô
1hu
-1h[ucircumflex]
+1hû
1hy
hypera2
hypere2
-hyper[eacute]2
+hyperé2
hyperi2
hypero2
hypers2
@@ -428,18 +428,18 @@ hype4r1
hyperu2
hypo1a2
hypo1e2
-hypo1[eacute]2
+hypo1é2
hypo1i2
hypo1o2
hypo1s2
hypo1u2
.i4
'i4
-.[icircumflex]4
-'[icircumflex]4
+.î4
+'î4
i1algi
i1arthr
-i1[egrave]2dre
+i1è2dre
il2l
cil3l
rcil4l
@@ -451,7 +451,7 @@ lil3l
l3lion
mil3l
mil4let
-[eacute]mil4l
+émil4l
semil4l
rmil4l
armil5l
@@ -488,14 +488,14 @@ xil3l
'in2augur
.in1e2
'in1e2
-.in1[eacute]2
-'in1[eacute]2
+.in1é2
+'in1é2
.in2effab
'in2effab
-.in2[eacute]3lucta
-'in2[eacute]3lucta
-.in2[eacute]3narra
-'in2[eacute]3narra
+.in2é3lucta
+'in2é3lucta
+.in2é3narra
+'in2é3narra
.in2ept
'in2ept
.in2er
@@ -523,8 +523,8 @@ xil3l
'intera2
.intere2
'intere2
-.inter[eacute]2
-'inter[eacute]2
+.interé2
+'interé2
.interi2
'interi2
.intero2
@@ -549,11 +549,11 @@ i1s2tat
4jes.
2jent.
1ka
-1k[acircumflex]
+1kâ
1ke
-1k[eacute]
-1k[egrave]
-1k[ecircumflex]
+1ké
+1kè
+1kê
4ke.
4kes.
2kent.
@@ -561,27 +561,27 @@ i1s2tat
4kh.
.kh4
1ki
-1k[icircumflex]
+1kî
1ko
-1k[ocircumflex]
+1kô
1k2r
1ku
-1k[ucircumflex]
+1kû
1ky
1la
-1l[acircumflex]
-1l[agrave]
+1lâ
+1là
la2w3re
1le
-1l[eacute]
-1l[egrave]
-1l[ecircumflex]
+1lé
+1lè
+1lê
4le.
4les.
2lent.
.ta3lent.
iva3lent.
-[eacute]quiva4lent.
+équiva4lent.
monova3lent.
polyva3lent.
re3lent.
@@ -590,27 +590,27 @@ indo3lent.
inso3lent.
turbu3lent.
succu3lent.
-f[eacute]cu3lent.
+fécu3lent.
trucu3lent.
opu3lent.
corpu3lent.
ru3lent.
sporu4lent.
1li
-1l[icircumflex]
+1lî
1lo
-1l[ocircumflex]
+1lô
l1s2t
1lu
-1l[ucircumflex]
+1lû
1ly
1ma
-1m[acircumflex]
+1mâ
.ma2c3k
.macro1s2c
.ma2l1a2dres
.ma2l1a2dro
-.ma2l1ais[eacute]
+.ma2l1aisé
.ma2l1ap
.ma2l1a2v
.ma2l1en
@@ -619,45 +619,45 @@ l1s2t
.ma2l1o2d
.ma2r1x
1me
-1m[eacute]
-1m[egrave]
-1m[ecircumflex]
-.m[eacute]2g1oh
-.m[eacute]2sa
-.m[eacute]3san
-.m[eacute]2s1es
-.m[eacute]2s1i
-.m[eacute]2s1u2s
-.m[eacute]ta1s2ta
+1mé
+1mè
+1mê
+.mé2g1oh
+.mé2sa
+.mé3san
+.mé2s1es
+.mé2s1i
+.mé2s1u2s
+.méta1s2ta
4me.
4mes.
-[acircumflex]2ment.
+â2ment.
da2ment.
fa2ment.
amalga2ment.
cla2ment.
ra2ment.
-temp[eacute]ra3ment.
+tempéra3ment.
ta2ment.
testa3ment.
qua2ment.
-[egrave]2ment.
-car[ecircumflex]2ment.
+è2ment.
+carê2ment.
diaphrag2ment.
ryth2ment.
ai2ment.
rai3ment.
-ab[icircumflex]2ment.
-[eacute]ci2ment.
+abî2ment.
+éci2ment.
vidi2ment.
subli2ment.
-[eacute]li2ment.
+éli2ment.
reli2ment.
mi2ment.
ani2ment.
veni2ment.
ri2ment.
-d[eacute]tri3ment.
+détri3ment.
nutri3ment.
inti2ment.
esti2ment.
@@ -667,7 +667,7 @@ gram2ment.
.gem2ment.
om2ment.
.com3ment.
-[ocircumflex]2ment.
+ô2ment.
slalo2ment.
chro2ment.
to2ment.
@@ -680,7 +680,7 @@ fir2ment.
or2ment.
as2ment.
au2ment.
-[eacute]cu2ment.
+écu2ment.
fu2ment.
hu2ment.
fichu3ment.
@@ -691,76 +691,76 @@ bru2ment.
su2ment.
tu2ment.
1mi
-1m[icircumflex]
+1mî
.milli1am
-1m2n[eacute]mo
-1m2n[egrave]s
-1m2n[eacute]si
+1m2némo
+1m2nès
+1m2nési
1mo
-1m[ocircumflex]
-1m[odiaeresis]0
-1m[odiaeresis]OT
+1mô
+1mö0
+1möOT
.mono1a2
.mono1e2
-.mono1[eacute]2
+.mono1é2
.mono1i2
-.mono1[idiaeresis]2d[eacute]
+.mono1ï2dé
.mono1o2
.mono1u2
.mono1s2
-mon2t3r[eacute]al
+mon2t3réal
m1s2
1mu
-1m[ucircumflex]
+1mû
1my
-moye2n1[acircumflex]2g
+moye2n1â2g
1na
-1n[acircumflex]
+1nâ
1ne
-1n[eacute]
-1n[egrave]
-1n[ecircumflex]
+1né
+1nè
+1nê
4ne.
4nes.
2nent.
-r[eacute]ma3nent.
+réma3nent.
imma3nent.
perma3nent.
-.[eacute]mi3nent.
-pr[eacute][eacute]mi3nent.
-pro[eacute]mi3nent.
-sur[eacute]mi3nent.
+.émi3nent.
+préémi3nent.
+proémi3nent.
+surémi3nent.
immi3nent.
conti3nent.
perti3nent.
absti3nent.
1ni
-1n[icircumflex]
+1nî
1no
-1n[ocircumflex]
-1n[odiaeresis]0
-1n[odiaeresis]OT
+1nô
+1nö0
+1nöOT
.no2n1obs
1nu
-1n[ucircumflex]
+1nû
n3s2at.
n3s2ats.
n1x
1ny
.o4
'o4
-'[ocircumflex]4
-.[ocircumflex]4
+'ô4
+.ô4
o2b3long
1octet
o1d2l
-o1[egrave]2dre
+o1è2dre
o1ioni
ombud2s3
omni1s2
o1s2tas
o1s2tat
-o1s2t[eacute]ro
+o1s2téro
o1s2tim
o1s2tom
o1s2trad
@@ -772,22 +772,22 @@ o1s2triction
'ovi1s2c
oxy1a2
1pa
-1p[acircumflex]
-pal[eacute]o1[eacute]2
+1pâ
+paléo1é2
.pa2n1a2f
-.pa2n1a2m[eacute]
+.pa2n1a2mé
.pa2n1a2ra
.pa2n1is
.pa2n1o2ph
.pa2n1opt
.pa2r1a2che
-.pa2r1a2ch[egrave]
+.pa2r1a2chè
.para1s2
-.pa2r3h[eacute]
+.pa2r3hé
1pe
-1p[eacute]
-1p[egrave]
-1p[ecircumflex]
+1pé
+1pè
+1pê
4pe.
4pes.
2pent.
@@ -797,20 +797,20 @@ re3pent.
ser3pent.
.pen2ta
per3h
-p[eacute]2nul
+pé2nul
.pe4r
.per1a2
.per1e2
-.per1[eacute]2
+.per1é2
.per1i2
.per1o2
.per1u2
-p[eacute]1r2[eacute]2q
-.p[eacute]ri1os
-.p[eacute]ri1s2
-.p[eacute]ri2s3s
-.p[eacute]ri2s3ta
-.p[eacute]ri1u2
+pé1r2é2q
+.péri1os
+.péri1s2
+.péri2s3s
+.péri2s3ta
+.péri1u2
1p2h
.ph4
4ph.
@@ -828,24 +828,24 @@ ph2r
4phres.
2phs
2pht
-3ph2tal[eacute]
+3ph2talé
3ph2tis
1pi
-1p[icircumflex]
+1pî
1p2l
4ple.
4ples.
2plent.
.pluri1a
-1p2n[eacute]
+1p2né
1p2neu
1po
-1p[ocircumflex]
+1pô
po1astre
poly1a2
poly1e2
-poly1[eacute]2
-poly1[egrave]2
+poly1é2
+poly1è2
poly1i2
poly1o2
poly1s2
@@ -860,54 +860,54 @@ poly1u2
4pre.
4pres.
2prent.
-.pr[eacute]1a2
-.pr[eacute]2a3la
-.pr[eacute]2au
-.pr[eacute]1[eacute]2
-.pr[eacute]1e2
-.pr[eacute]1i2
-.pr[eacute]1o2
-.pr[eacute]1u2
-.pr[eacute]1s2
-.pro1[eacute]2
-.pro1s2c[eacute]
+.pré1a2
+.pré2a3la
+.pré2au
+.pré1é2
+.pré1e2
+.pré1i2
+.pré1o2
+.pré1u2
+.pré1s2
+.pro1é2
+.pro1s2cé
pro2s3tat
.prou3d2h
1p2sych
.psycho1a2n
-1p2t[egrave]r
-1p2t[eacute]r
+1p2tèr
+1p2tér
1pu
.pud1d2l
-1p[ucircumflex]
+1pû
1py
1q
4que.
4ques.
2quent.
-[eacute]3quent.
-[eacute]lo3quent.
+é3quent.
+élo3quent.
grandilo3quent.
1ra
-1r[acircumflex]
+1râ
radio1a2
1re
-1r[eacute]
-1r[egrave]
-1r[ecircumflex]
-.r[eacute]1a2
-.r[eacute]2a3le
-.r[eacute]2a3lis
-.r[eacute]2a3lit
-.r[eacute]2aux
-.r[eacute]1[eacute]2
-.r[eacute]1e2
-.r[eacute]2el
-.r[eacute]2er
-.r[eacute]2[egrave]r
-.r[eacute]1i2
-.r[eacute]2i3fi
-.r[eacute]1o2
+1ré
+1rè
+1rê
+.ré1a2
+.ré2a3le
+.ré2a3lis
+.ré2a3lit
+.ré2aux
+.ré1é2
+.ré1e2
+.ré2el
+.ré2er
+.ré2èr
+.ré1i2
+.ré2i3fi
+.ré1o2
.re1s2
.re2s3cap
.re2s3cisi
@@ -925,8 +925,8 @@ radio1a2
.re3s4tag
.re3s4tand
.re3s4tat
-.re3s4t[eacute]n
-.re3s4t[eacute]r
+.re3s4tén
+.re3s4tér
.re3s4tim
.re3s4tip
.re3s4toc
@@ -937,16 +937,16 @@ radio1a2
.re4s5trin
.re3s4tu
.re3s4ty
-.r[eacute]u2
-.r[eacute]2uss
-.r[eacute]tro1a2
+.réu2
+.ré2uss
+.rétro1a2
4re.
4res.
2rent.
.pa3rent.
appa3rent.
transpa3rent.
-[eacute]3rent.
+é3rent.
tor3rent.
cur3rent.
1r2h
@@ -955,21 +955,21 @@ cur3rent.
2r3heur
2r3hydr
1ri
-1r[icircumflex]
+1rî
1ro
-1r[ocircumflex]
+1rô
1ru
-1r[ucircumflex]
+1rû
1ry
1sa
-1s[acircumflex]
+1sâ
.sch4
1s2caph
-1s2cl[eacute]r
+1s2clér
1s2cop
1s2ch
e2s3ch
-i2s3ch[eacute]
+i2s3ché
i2s3chia
i2s3chio
4sch.
@@ -977,15 +977,15 @@ i2s3chio
4sches.
2schs
1se
-1s[eacute]
-1s[egrave]
-1s[ecircumflex]
+1sé
+1sè
+1sê
sesqui1a2
4se.
4ses.
2sent.
ab3sent.
-pr[eacute]3sent.
+pré3sent.
.res3sent.
.seu2le
.sh4
@@ -999,23 +999,23 @@ pr[eacute]3sent.
2shr
2shs
1si
-1s[icircumflex]
+1sî
1s2lav
1s2lov
1so
-1s[ocircumflex]
-1s[odiaeresis]0
-1s[odiaeresis]OT
+1sô
+1sö0
+1söOT
1s2patia
1s2perm
1s2por
-1s2ph[egrave]r
-1s2ph[eacute]r
+1s2phèr
+1s2phér
1s2piel
1s2piros
1s2tandard
1s2tein
-st[eacute]r[eacute]o1s2
+stéréo1s2
1s2tigm
1s2tock
1s2tomos
@@ -1023,11 +1023,11 @@ st[eacute]r[eacute]o1s2
1s2tructu
1s2tyle
1su
-1s[ucircumflex]
+1sû
.su2b1a2
.su3b2alt
-.su2b1[eacute]2
-.su3b2[eacute]3r
+.su2b1é2
+.su3b2é3r
.su2b1in
.su2b3limin
.su2b3lin
@@ -1044,7 +1044,7 @@ su3r2ah
.su3r2eau
.su3r2ell
.su3r2et
-.su2r1[eacute]2
+.su2r1é2
.su2r3h
.su2r1i2m
.su2r1inf
@@ -1053,30 +1053,30 @@ su3r2ah
.su2r1ox
1sy
1ta
-1t[acircumflex]
-1t[agrave]
+1tâ
+1tà
tachy1a2
tchin3t2
1te
-1t[eacute]
-1t[egrave]
-1t[ecircumflex]
-t[eacute]l[eacute]1e2
-t[eacute]l[eacute]1i2
-t[eacute]l[eacute]1o2b
-t[eacute]l[eacute]1o2p
-t[eacute]l[eacute]1s2
+1té
+1tè
+1tê
+télé1e2
+télé1i2
+télé1o2b
+télé1o2p
+télé1s2
4te.
4tes.
2tent.
.la3tent.
.pa3tent.
-comp[eacute]3tent.
-[eacute]ni3tent.
-m[eacute]con3tent.
+compé3tent.
+éni3tent.
+mécon3tent.
omnipo3tent.
ventripo3tent.
-[eacute]quipo3tent.
+équipo3tent.
impo3tent.
mit3tent.
.th4
@@ -1094,9 +1094,9 @@ th2r
4thres.
2ths
1ti
-1t[icircumflex]
+1tî
1to
-1t[ocircumflex]
+1tô
1t2r
tran2s1a2
tran3s2act
@@ -1114,39 +1114,39 @@ tran2s1u2
.tri1o2n
t1t2l
1tu
-1t[ucircumflex]
+1tû
tung2s3
1ty
.u4
'u4
-.[ucircumflex]4
-'[ucircumflex]4
+.û4
+'û4
uni1o2v
uni1a2x
u2s3tr
1va
-1v[acircumflex]
+1vâ
1ve
-1v[eacute]
-1v[egrave]
-1v[ecircumflex]
-v[eacute]lo1s2ki
+1vé
+1vè
+1vê
+vélo1s2ki
4ve.
4ves.
2vent.
conni3vent.
.sou3vent.
1vi
-1v[icircumflex]
+1vî
1vo
-1v[ocircumflex]
+1vô
vol2t1amp
1v2r
4vre.
4vres.
2vrent.
1vu
-1v[ucircumflex]
+1vû
1vy
1wa
1we
@@ -1165,8 +1165,8 @@ y1s2tom
y1algi
1za
1ze
-1z[eacute]
-1z[egrave]
+1zé
+1zè
4ze.
4zes.
2zent.
diff --git a/Master/texmf-dist/tex/context/patterns/lang-hr.pat b/Master/texmf-dist/tex/context/patterns/lang-hr.pat
index 6355a5a8d5c..9043e0a3bd1 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-hr.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-hr.pat
@@ -5,9 +5,9 @@
% 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>
@@ -16,7 +16,7 @@
% <owner>Marinovi\'c Igor (migor@student.math.hr)</owner>
% </copyright>
% </description>
-%
+%
% end of copy -->
% end description data
@@ -59,31 +59,31 @@ a1ce
a1ci
a1co
a1cu
-a1[ccaron]a
-a1[ccaron]e
-a1[ccaron]i
-a1[ccaron]o
-a1[ccaron]u
-a1[cacute]a
-a1[cacute]e
-a1[cacute]i
-a1[cacute]o
-a1[cacute]u
+a1Äa
+a1Äe
+a1Äi
+a1Äo
+a1Äu
+a1ća
+a1će
+a1ći
+a1ćo
+a1ću
a1da
a1de
a1di
a1do
a1du
-a1d[zcaron]a
-a1d[zcaron]e
-a1d[zcaron]i
-a1d[zcaron]o
-a1d[zcaron]u
-a1[dstroke]a
-a1[dstroke]e
-a1[dstroke]i
-a1[dstroke]o
-a1[dstroke]u
+a1dža
+a1dže
+a1dži
+a1džo
+a1džu
+a1Ä‘a
+a1Ä‘e
+a1Ä‘i
+a1Ä‘o
+a1Ä‘u
a1fa
a1fe
a1fi
@@ -149,11 +149,11 @@ a1se
a1si
a1so
a1su
-a1[scaron]a
-a1[scaron]e
-a1[scaron]i
-a1[scaron]o
-a1[scaron]u
+a1Å¡a
+a1Å¡e
+a1Å¡i
+a1Å¡o
+a1Å¡u
a1ta
a1te
a1ti
@@ -169,11 +169,11 @@ a1ze
a1zi
a1zo
a1zu
-a1[zcaron]a
-a1[zcaron]e
-a1[zcaron]i
-a1[zcaron]o
-a1[zcaron]u
+a1ža
+a1že
+a1ži
+a1žo
+a1žu
e1ba
e1be
e1bi
@@ -184,31 +184,31 @@ e1ce
e1ci
e1co
e1cu
-e1[ccaron]a
-e1[ccaron]e
-e1[ccaron]i
-e1[ccaron]o
-e1[ccaron]u
-e1[cacute]a
-e1[cacute]e
-e1[cacute]i
-e1[cacute]o
-e1[cacute]u
+e1Äa
+e1Äe
+e1Äi
+e1Äo
+e1Äu
+e1ća
+e1će
+e1ći
+e1ćo
+e1ću
e1da
e1de
e1di
e1do
e1du
-e1d[zcaron]a
-e1d[zcaron]e
-e1d[zcaron]i
-e1d[zcaron]o
-e1d[zcaron]u
-e1[dstroke]a
-e1[dstroke]e
-e1[dstroke]i
-e1[dstroke]o
-e1[dstroke]u
+e1dža
+e1dže
+e1dži
+e1džo
+e1džu
+e1Ä‘a
+e1Ä‘e
+e1Ä‘i
+e1Ä‘o
+e1Ä‘u
e1fa
e1fe
e1fi
@@ -274,11 +274,11 @@ e1se
e1si
e1so
e1su
-e1[scaron]a
-e1[scaron]e
-e1[scaron]i
-e1[scaron]o
-e1[scaron]u
+e1Å¡a
+e1Å¡e
+e1Å¡i
+e1Å¡o
+e1Å¡u
e1ta
e1te
e1ti
@@ -294,11 +294,11 @@ e1ze
e1zi
e1zo
e1zu
-e1[zcaron]a
-e1[zcaron]e
-e1[zcaron]i
-e1[zcaron]o
-e1[zcaron]u
+e1ža
+e1že
+e1ži
+e1žo
+e1žu
i1ba
i1be
i1bi
@@ -309,31 +309,31 @@ i1ce
i1ci
i1co
i1cu
-i1[ccaron]a
-i1[ccaron]e
-i1[ccaron]i
-i1[ccaron]o
-i1[ccaron]u
-i1[cacute]a
-i1[cacute]e
-i1[cacute]i
-i1[cacute]o
-i1[cacute]u
+i1Äa
+i1Äe
+i1Äi
+i1Äo
+i1Äu
+i1ća
+i1će
+i1ći
+i1ćo
+i1ću
i1da
i1de
i1di
i1do
i1du
-i1d[zcaron]a
-i1d[zcaron]e
-i1d[zcaron]i
-i1d[zcaron]o
-i1d[zcaron]u
-i1[dstroke]a
-i1[dstroke]e
-i1[dstroke]i
-i1[dstroke]o
-i1[dstroke]u
+i1dža
+i1dže
+i1dži
+i1džo
+i1džu
+i1Ä‘a
+i1Ä‘e
+i1Ä‘i
+i1Ä‘o
+i1Ä‘u
i1fa
i1fe
i1fi
@@ -399,11 +399,11 @@ i1se
i1si
i1so
i1su
-i1[scaron]a
-i1[scaron]e
-i1[scaron]i
-i1[scaron]o
-i1[scaron]u
+i1Å¡a
+i1Å¡e
+i1Å¡i
+i1Å¡o
+i1Å¡u
i1ta
i1te
i1ti
@@ -419,11 +419,11 @@ i1ze
i1zi
i1zo
i1zu
-i1[zcaron]a
-i1[zcaron]e
-i1[zcaron]i
-i1[zcaron]o
-i1[zcaron]u
+i1ža
+i1že
+i1ži
+i1žo
+i1žu
o1ba
o1be
o1bi
@@ -434,31 +434,31 @@ o1ce
o1ci
o1co
o1cu
-o1[ccaron]a
-o1[ccaron]e
-o1[ccaron]i
-o1[ccaron]o
-o1[ccaron]u
-o1[cacute]a
-o1[cacute]e
-o1[cacute]i
-o1[cacute]o
-o1[cacute]u
+o1Äa
+o1Äe
+o1Äi
+o1Äo
+o1Äu
+o1ća
+o1će
+o1ći
+o1ćo
+o1ću
o1da
o1de
o1di
o1do
o1du
-o1d[zcaron]a
-o1d[zcaron]e
-o1d[zcaron]i
-o1d[zcaron]o
-o1d[zcaron]u
-o1[dstroke]a
-o1[dstroke]e
-o1[dstroke]i
-o1[dstroke]o
-o1[dstroke]u
+o1dža
+o1dže
+o1dži
+o1džo
+o1džu
+o1Ä‘a
+o1Ä‘e
+o1Ä‘i
+o1Ä‘o
+o1Ä‘u
o1fa
o1fe
o1fi
@@ -524,11 +524,11 @@ o1se
o1si
o1so
o1su
-o1[scaron]a
-o1[scaron]e
-o1[scaron]i
-o1[scaron]o
-o1[scaron]u
+o1Å¡a
+o1Å¡e
+o1Å¡i
+o1Å¡o
+o1Å¡u
o1ta
o1te
o1ti
@@ -544,11 +544,11 @@ o1ze
o1zi
o1zo
o1zu
-o1[zcaron]a
-o1[zcaron]e
-o1[zcaron]i
-o1[zcaron]o
-o1[zcaron]u
+o1ža
+o1že
+o1ži
+o1žo
+o1žu
u1ba
u1be
u1bi
@@ -559,31 +559,31 @@ u1ce
u1ci
u1co
u1cu
-u1[ccaron]a
-u1[ccaron]e
-u1[ccaron]i
-u1[ccaron]o
-u1[ccaron]u
-u1[cacute]a
-u1[cacute]e
-u1[cacute]i
-u1[cacute]o
-u1[cacute]u
+u1Äa
+u1Äe
+u1Äi
+u1Äo
+u1Äu
+u1ća
+u1će
+u1ći
+u1ćo
+u1ću
u1da
u1de
u1di
u1do
u1du
-u1d[zcaron]a
-u1d[zcaron]e
-u1d[zcaron]i
-u1d[zcaron]o
-u1d[zcaron]u
-u1[dstroke]a
-u1[dstroke]e
-u1[dstroke]i
-u1[dstroke]o
-u1[dstroke]u
+u1dža
+u1dže
+u1dži
+u1džo
+u1džu
+u1Ä‘a
+u1Ä‘e
+u1Ä‘i
+u1Ä‘o
+u1Ä‘u
u1fa
u1fe
u1fi
@@ -649,11 +649,11 @@ u1se
u1si
u1so
u1su
-u1[scaron]a
-u1[scaron]e
-u1[scaron]i
-u1[scaron]o
-u1[scaron]u
+u1Å¡a
+u1Å¡e
+u1Å¡i
+u1Å¡o
+u1Å¡u
u1ta
u1te
u1ti
@@ -669,18 +669,18 @@ u1ze
u1zi
u1zo
u1zu
-u1[zcaron]a
-u1[zcaron]e
-u1[zcaron]i
-u1[zcaron]o
-u1[zcaron]u
+u1ža
+u1že
+u1ži
+u1žo
+u1žu
b1b
b1c
-b1[ccaron]
-b1[cacute]
+b1Ä
+b1ć
b1d
-b1d[zcaron]
-b1[dstroke]
+b1dž
+b1Ä‘
b1f
b1g
b1h
@@ -697,19 +697,19 @@ b1p
1br
2br.
b1s
-b1[scaron]
+b1Å¡
b1t
1bv
2bv.
b1z
-b1[zcaron]
+b1ž
c1b
c1c
-c1[ccaron]
-c1[cacute]
+c1Ä
+c1ć
c1d
-c1d[zcaron]
-c1[dstroke]
+c1dž
+c1Ä‘
c1f
c1g
c1h
@@ -726,76 +726,76 @@ c1p
1cr
2cr.
c1s
-c1[scaron]
+c1Å¡
c1t
1cv
2cv.
c1z
-c1[zcaron]
-[ccaron]1b
-[ccaron]1c
-[ccaron]1[ccaron]
-[ccaron]1[cacute]
-[ccaron]1d
-[ccaron]1d[zcaron]
-[ccaron]1[dstroke]
-[ccaron]1f
-[ccaron]1g
-[ccaron]1h
-1[ccaron]j
-2[ccaron]j.
-[ccaron]1k
-1[ccaron]l
-2[ccaron]l.
-2[ccaron]1lj
-[ccaron]1m
-[ccaron]1n
-[ccaron]1nj
-[ccaron]1p
-1[ccaron]r
-2[ccaron]r.
-[ccaron]1s
-[ccaron]1[scaron]
-[ccaron]1t
-1[ccaron]v
-2[ccaron]v.
-[ccaron]1z
-[ccaron]1[zcaron]
-[cacute]1b
-[cacute]1c
-[cacute]1[ccaron]
-[cacute]1[cacute]
-[cacute]1d
-[cacute]1d[zcaron]
-[cacute]1[dstroke]
-[cacute]1f
-[cacute]1g
-[cacute]1h
-[cacute]1j
-[cacute]1k
-1[cacute]l
-2[cacute]l.
-2[cacute]1lj
-[cacute]1m
-[cacute]1n
-[cacute]1nj
-[cacute]1p
-1[cacute]r
-2[cacute]r.
-[cacute]1s
-[cacute]1[scaron]
-[cacute]1t
-1[cacute]v
-2[cacute]v.
-[cacute]1z
-[cacute]1[zcaron]
+c1ž
+Ä1b
+Ä1c
+Ä1Ä
+Ä1ć
+Ä1d
+Ä1dž
+Ä1Ä‘
+Ä1f
+Ä1g
+Ä1h
+1Äj
+2Äj.
+Ä1k
+1Äl
+2Äl.
+2Ä1lj
+Ä1m
+Ä1n
+Ä1nj
+Ä1p
+1Är
+2Är.
+Ä1s
+Ä1Å¡
+Ä1t
+1Äv
+2Äv.
+Ä1z
+Ä1ž
+ć1b
+ć1c
+ć1Ä
+ć1ć
+ć1d
+ć1dž
+ć1đ
+ć1f
+ć1g
+ć1h
+ć1j
+ć1k
+1ćl
+2ćl.
+2ć1lj
+ć1m
+ć1n
+ć1nj
+ć1p
+1ćr
+2ćr.
+ć1s
+ć1š
+ć1t
+1ćv
+2ćv.
+ć1z
+ć1ž
d1b
d1c
-d1[ccaron]
-d1[cacute]
+d1Ä
+d1ć
d1d
-d2[zcaron]
-d1[dstroke]
+d2ž
+d1Ä‘
d1f
2d1g
d1h
@@ -811,76 +811,76 @@ d1p
1dr
2dr.
d1s
-d1[scaron]
+d1Å¡
d1t
1dv
2dv.
d1z
-d[zcaron]1b
-d[zcaron]1c
-d[zcaron]1[ccaron]
-d[zcaron]1[cacute]
-d[zcaron]1d
-d[zcaron]1d[zcaron]
-d[zcaron]1[dstroke]
-d[zcaron]1f
-d[zcaron]1g
-d[zcaron]1h
-1d[zcaron]j
-2d[zcaron]j.
-d[zcaron]1k
-1d[zcaron]l
-2d[zcaron]l.
-2d[zcaron]1lj
-d[zcaron]1m
-d[zcaron]1n
-d[zcaron]1nj
-d[zcaron]1p
-1d[zcaron]r
-2d[zcaron]r.
-d[zcaron]1s
-d[zcaron]1[scaron]
-d[zcaron]1t
-1d[zcaron]v
-2d[zcaron]v.
-d[zcaron]1z
-d[zcaron]1[zcaron]
-[dstroke]1b
-[dstroke]1c
-[dstroke]1[ccaron]
-[dstroke]1[cacute]
-[dstroke]1d
-[dstroke]1d[zcaron]
-[dstroke]1[dstroke]
-[dstroke]1f
-[dstroke]1g
-[dstroke]1h
-1[dstroke]j
-2[dstroke]j.
-[dstroke]1k
-1[dstroke]l
-2[dstroke]l.
-2[dstroke]1lj
-[dstroke]1m
-[dstroke]1n
-[dstroke]1nj
-[dstroke]1p
-1[dstroke]r
-2[dstroke]r.
-[dstroke]1s
-[dstroke]1[scaron]
-[dstroke]1t
-1[dstroke]v
-2[dstroke]v.
-[dstroke]1z
-[dstroke]1[zcaron]
+dž1b
+dž1c
+dž1Ä
+dž1ć
+dž1d
+dž1dž
+dž1đ
+dž1f
+dž1g
+dž1h
+1džj
+2džj.
+dž1k
+1džl
+2džl.
+2dž1lj
+dž1m
+dž1n
+dž1nj
+dž1p
+1džr
+2džr.
+dž1s
+dž1š
+dž1t
+1džv
+2džv.
+dž1z
+dž1ž
+Ä‘1b
+Ä‘1c
+Ä‘1Ä
+đ1ć
+Ä‘1d
+đ1dž
+Ä‘1Ä‘
+Ä‘1f
+Ä‘1g
+Ä‘1h
+1Ä‘j
+2Ä‘j.
+Ä‘1k
+1Ä‘l
+2Ä‘l.
+2Ä‘1lj
+Ä‘1m
+Ä‘1n
+Ä‘1nj
+Ä‘1p
+1Ä‘r
+2Ä‘r.
+Ä‘1s
+Ä‘1Å¡
+Ä‘1t
+1Ä‘v
+2Ä‘v.
+Ä‘1z
+đ1ž
f1b
f1c
-f1[ccaron]
-f1[cacute]
+f1Ä
+f1ć
f1d
-f1d[zcaron]
-f1[dstroke]
+f1dž
+f1Ä‘
f1f
f1g
f1h
@@ -897,19 +897,19 @@ f1p
1fr
2fr.
f1s
-f1[scaron]
+f1Å¡
f1t
1fv
2fv.
f1z
-f1[zcaron]
+f1ž
g1b
g1c
-g1[ccaron]
-g1[cacute]
+g1Ä
+g1ć
g1d
-g1d[zcaron]
-g1[dstroke]
+g1dž
+g1Ä‘
g1f
g1g
g1h
@@ -926,19 +926,19 @@ g1p
1gr
2gr.
g1s
-g1[scaron]
+g1Å¡
g1t
1gv
2gv.
g1z
-g1[zcaron]
+g1ž
h1b
h1c
-h1[ccaron]
-h1[cacute]
+h1Ä
+h1ć
h1d
-h1d[zcaron]
-h1[dstroke]
+h1dž
+h1Ä‘
h1f
h1g
h1h
@@ -955,19 +955,19 @@ h1p
1hr
2hr.
h1s
-h1[scaron]
+h1Å¡
h1t
1hv
2hv.
h1z
-h1[zcaron]
+h1ž
j1b
j1c
-j1[ccaron]
-j1[cacute]
+j1Ä
+j1ć
j1d
-j1d[zcaron]
-j1[dstroke]
+j1dž
+j1Ä‘
j1f
j1g
j1h
@@ -981,18 +981,18 @@ j1nj
j1p
j1r
j1s
-j1[scaron]
+j1Å¡
j1t
j1v
j1z
-j1[zcaron]
+j1ž
k1b
k1c
-k1[ccaron]
-k1[cacute]
+k1Ä
+k1ć
k1d
-k1d[zcaron]
-k1[dstroke]
+k1dž
+k1Ä‘
k1f
k1g
k1h
@@ -1009,18 +1009,18 @@ k1p
1kr
2kr.
k1s
-k1[scaron]
+k1Å¡
k1t
k1v
k1z
-k1[zcaron]
+k1ž
l1b
l1c
-l1[ccaron]
-l1[cacute]
+l1Ä
+l1ć
l1d
-l1d[zcaron]
-l1[dstroke]
+l1dž
+l1Ä‘
l1f
l1g
l1h
@@ -1033,18 +1033,18 @@ l1nj
l1p
l1r
l1s
-l1[scaron]
+l1Å¡
l1t
l1v
l1z
-l1[zcaron]
+l1ž
lj1b
lj1c
-lj1[ccaron]
-lj1[cacute]
+lj1Ä
+lj1ć
lj1d
-lj1d[zcaron]
-lj1[dstroke]
+lj1dž
+lj1Ä‘
lj1f
lj1g
lj1h
@@ -1059,19 +1059,19 @@ lj1p
1ljr
2ljr.
lj1s
-lj1[scaron]
+lj1Å¡
lj1t
1ljv
2ljv.
lj1z
-lj1[zcaron]
+lj1ž
m1b
m1c
-m1[ccaron]
-m1[cacute]
+m1Ä
+m1ć
m1d
-m1d[zcaron]
-m1[dstroke]
+m1dž
+m1Ä‘
m1f
m1g
m1h
@@ -1088,19 +1088,19 @@ m1p
1mr
2mr.
m1s
-m1[scaron]
+m1Å¡
m1t
1mv
2mv.
m1z
-m1[zcaron]
+m1ž
n1b
n1c
-n1[ccaron]
-n1[cacute]
+n1Ä
+n1ć
n1d
-n1d[zcaron]
-n1[dstroke]
+n1dž
+n1Ä‘
n1f
n1g
n1h
@@ -1115,19 +1115,19 @@ n1nj
n1p
n1r
n1s
-n1[scaron]
+n1Å¡
n1t
1nv
2nv.
n1z
-n1[zcaron]
+n1ž
nj1b
nj1c
-nj1[ccaron]
-nj1[cacute]
+nj1Ä
+nj1ć
nj1d
-nj1d[zcaron]
-nj1[dstroke]
+nj1dž
+nj1Ä‘
nj1f
nj1g
nj1h
@@ -1144,19 +1144,19 @@ nj1p
1njr
2njr.
nj1s
-nj1[scaron]
+nj1Å¡
nj1t
1njv
2njv.
nj1z
-nj1[zcaron]
+nj1ž
p1b
p1c
-p1[ccaron]
-p1[cacute]
+p1Ä
+p1ć
p1d
-p1d[zcaron]
-p1[dstroke]
+p1dž
+p1Ä‘
p1f
p1g
2p1h
@@ -1173,19 +1173,19 @@ p1p
1pr
2pr.
p1s
-p1[scaron]
+p1Å¡
p1t
1pv
2pv.
p1z
-p1[zcaron]
+p1ž
r1b
r1c
-r1[ccaron]
-r1[cacute]
+r1Ä
+r1ć
r1d
-r1d[zcaron]
-r1[dstroke]
+r1dž
+r1Ä‘
r1f
r1g
r1h
@@ -1199,24 +1199,24 @@ r1nj
r1p
r1r
r1s
-r1[scaron]
+r1Å¡
r1t
r1v
r1z
-r1[zcaron]
+r1ž
1sb
2sb.
s1c
-1s[ccaron]
-2s[ccaron].
-1s[cacute]
-2s[cacute].
+1sÄ
+2sÄ.
+1sć
+2sć.
1sd
2sd.
-1sd[zcaron]
-2sd[zcaron].
-1s[dstroke]
-2s[dstroke].
+1sdž
+2sdž.
+1sđ
+2sđ.
1sf
2sf.
1sg
@@ -1241,66 +1241,66 @@ s1p
2sr.
1ss
2ss.
-1s[scaron]
-2s[scaron].
+1sš
+2sš.
s1t
2st.
1sv
2sv.
1sz
2sz.
-1s[zcaron]
-2s[zcaron].
-1[scaron]b
-2[scaron]b.
-[scaron]1c
-[scaron]1[ccaron]
-[scaron]1[cacute]
-1[scaron]d
-2[scaron]d.
-1[scaron]d[zcaron]
-2[scaron]d[zcaron].
-1[scaron][dstroke]
-2[scaron][dstroke].
-1[scaron]f
-2[scaron]f.
-1[scaron]g
-2[scaron]g.
-1[scaron]h
-2[scaron]h.
-1[scaron]j
-2[scaron]j.
-1[scaron]k
-2[scaron]k.
-[scaron]1l
-2[scaron]1lj
-1[scaron]m
-2[scaron]m.
-[scaron]1n
-2[scaron]1nj
-1[scaron]p
-2[scaron]p.
-1[scaron]r
-2[scaron]r.
-1[scaron]s
-2[scaron]s.
-1[scaron][scaron]
-2[scaron][scaron].
-1[scaron]t
-2[scaron]t.
-1[scaron]v
-2[scaron]v.
-1[scaron]z
-2[scaron]z.
-1[scaron][zcaron]
-2[scaron][zcaron].
+1sž
+2sž.
+1Å¡b
+2Å¡b.
+Å¡1c
+Å¡1Ä
+š1ć
+1Å¡d
+2Å¡d.
+1šdž
+2šdž.
+1Å¡Ä‘
+2Å¡Ä‘.
+1Å¡f
+2Å¡f.
+1Å¡g
+2Å¡g.
+1Å¡h
+2Å¡h.
+1Å¡j
+2Å¡j.
+1Å¡k
+2Å¡k.
+Å¡1l
+2Å¡1lj
+1Å¡m
+2Å¡m.
+Å¡1n
+2Å¡1nj
+1Å¡p
+2Å¡p.
+1Å¡r
+2Å¡r.
+1Å¡s
+2Å¡s.
+1Å¡Å¡
+2Å¡Å¡.
+1Å¡t
+2Å¡t.
+1Å¡v
+2Å¡v.
+1Å¡z
+2Å¡z.
+1šž
+2šž.
t1b
t1c
-t1[ccaron]
-t1[cacute]
+t1Ä
+t1ć
t1d
-t1d[zcaron]
-t1[dstroke]
+t1dž
+t1Ä‘
t1f
t1g
t1h
@@ -1317,19 +1317,19 @@ t1p
1tr
2tr.
t1s
-t1[scaron]
+t1Å¡
t1t
1tv
2tv.
t1z
-t1[zcaron]
+t1ž
v1b
v1c
-v1[ccaron]
-v1[cacute]
+v1Ä
+v1ć
v1d
-v1d[zcaron]
-v1[dstroke]
+v1dž
+v1Ä‘
v1f
v1g
v1h
@@ -1345,23 +1345,23 @@ v1nj
v1p
1vr
v1s
-v1[scaron]
+v1Å¡
v1t
v1v
v1z
-v1[zcaron]
+v1ž
z1b
1zc
2zc.
-1z[ccaron]
-2z[ccaron].
-1z[cacute]
-2z[cacute].
+1zÄ
+2zÄ.
+1zć
+2zć.
z1d
-1zd[zcaron]
-2zd[zcaron].
-1z[dstroke]
-2z[dstroke].
+1zdž
+2zdž.
+1zđ
+2zđ.
1zf
2zf.
z1g
@@ -1381,67 +1381,67 @@ z1n
2zp.
z1r
z1s
-1z[scaron]
-2z[scaron].
+1zš
+2zš.
1zt
2zt.
1zv
2zv.
1zz
2zz.
-1z[zcaron]
-2z[zcaron].
-[zcaron]1b
-2[zcaron]b.
-1[zcaron]c
-2[zcaron]c.
-1[zcaron][ccaron]
-2[zcaron][ccaron].
-1[zcaron][cacute]
-2[zcaron][cacute].
-1[zcaron]d
-2[zcaron]d.
-1[zcaron]d[zcaron]
-2[zcaron]d[zcaron].
-1[zcaron][dstroke]
-2[zcaron][dstroke].
-1[zcaron]f
-2[zcaron]f.
-1[zcaron]g
-2[zcaron]g.
-1[zcaron]h
-2[zcaron]h.
-[zcaron]1j
-1[zcaron]k
-2[zcaron]k.
-1[zcaron]l
-2[zcaron]l.
-[zcaron]1lj
-1[zcaron]m
-2[zcaron]m.
-[zcaron]1n
-2[zcaron]n.
-2[zcaron]1nj
-1[zcaron]p
-2[zcaron]p.
-1[zcaron]r
-2[zcaron]r.
-1[zcaron]s
-2[zcaron]s.
-1[zcaron][scaron]
-2[zcaron][scaron].
-1[zcaron]t
-2[zcaron]t.
-1[zcaron]v
-2[zcaron]v.
-1[zcaron]z
-2[zcaron]z.
-1[zcaron][zcaron]
-2[zcaron][zcaron].
+1zž
+2zž.
+ž1b
+2žb.
+1žc
+2žc.
+1žÄ
+2žÄ.
+1žć
+2žć.
+1žd
+2žd.
+1ždž
+2ždž.
+1žđ
+2žđ.
+1žf
+2žf.
+1žg
+2žg.
+1žh
+2žh.
+ž1j
+1žk
+2žk.
+1žl
+2žl.
+ž1lj
+1žm
+2žm.
+ž1n
+2žn.
+2ž1nj
+1žp
+2žp.
+1žr
+2žr.
+1žs
+2žs.
+1žš
+2žš.
+1žt
+2žt.
+1žv
+2žv.
+1žz
+2žz.
+1žž
+2žž.
2d1vj
2d1vr
z1g2nj
-[cacute]1s2t
+ć1s2t
d1s2m
j1z2g
r2n1t
@@ -1450,7 +1450,7 @@ m2p1t
2d1vl
r2t1c
r2n1c
-r2[ccaron]1k
+r2Ä1k
2s1hr
z1v2l
2z1vr
@@ -1461,13 +1461,13 @@ s2p1n
j1s2l
r2d1n
.zg2
-r2d[zcaron]1b
-2[scaron]1tv
+r2dž1b
+2Å¡1tv
r2t1s
n2t1s
2s1kr
r2n1k
-d1[scaron]2k
+d1Å¡2k
d1s2p
r2t1m
1r2je
diff --git a/Master/texmf-dist/tex/context/patterns/lang-hu.pat b/Master/texmf-dist/tex/context/patterns/lang-hu.pat
index 091f68a194b..fff2f455088 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-hu.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-hu.pat
@@ -21,75 +21,75 @@
\patterns {
.a2
-.adás1s
+.adás1s
.ae1
.agyon1
.al1eg
.al1e2m
.al1e2s
-.al1ér
+.al1ér
.al1is
.al1os
.arc1c
.ar2c3ho
.atmo1
.az1a2
-.az1ám
+.az1ám
.aze2
-.á2
-.ál1a2
-.ál1e
-.ál1é2
-.ál1i
-.ál1ok
-.áre2
-.ár1em
-.ár2nyo
-.áro2
-.ár1os
-.ár1s2
-.át1ad.
-.át1ada
-.át1á2
-.át1e2
-.át1é2
-.át1i2
-.áto2
-.át1ol
-.át1or
-.át1os
-.át1ö2
+.á2
+.ál1a2
+.ál1e
+.ál1é2
+.ál1i
+.ál1ok
+.áre2
+.ár1em
+.ár2nyo
+.áro2
+.ár1os
+.ár1s2
+.át1ad.
+.át1ada
+.át1á2
+.át1e2
+.át1é2
+.át1i2
+.áto2
+.át1ol
+.át1or
+.át1os
+.át1ö2
.b2
.ba2l1e2g
.ba1ts
-.bá1th
-.be2csé
+.bá1th
+.be2csé
.bei2
.be1k2
.bi2o
.bo2rit
-.bu2szá
+.bu2szá
.c2
.cle2
.cs2
-.cs®da2rab.
+.csőda2rab.
.d2
.da2i
.di1kr
.e2
.eb1u2
.egy1a
-.egy1ü2l
+.egy1ü2l
.el1a2d
.el1a2k
.el1an
.ela2s
.el1ass
.el1aszo
-.elá2
-.el1ál
-.el1ás
-.el1áz
+.elá2
+.el1ál
+.el1ás
+.el1áz
.el1e2gyek
.el1ejt
.el1emel
@@ -97,21 +97,21 @@
.el1e2p
.el1e2r
.el1e2se
-.el1e2sés
+.el1e2sés
.el1e2si
.el1esn
.el1ess
.el1est
.el1esv
.el1esz
-.el1ékt
-.el1éle
-.elé2n
-.el1éne
-.el1ér.
-.el1é2re
-.el1ért
-.el1érv
+.el1ékt
+.el1éle
+.elé2n
+.el1éne
+.el1ér.
+.el1é2re
+.el1ért
+.el1érv
.el1id
.el1in
.el1ir
@@ -119,77 +119,77 @@
.el1iss
.el1isz
.el1itta
-.el1ít
+.el1ít
.elo2k
-.el1oká
+.el1oká
.el1os
-.elö2
-.el1öli
-.el1öl®
-.el1ölt.
-.el®i2
+.elö2
+.el1öli
+.el1ölő
+.el1ölt.
+.elői2
.el1t2
.el1u2
-.elü2
-.el1ül.
-.el1üli
-.el1ült
-.el1ülv
+.elü2
+.el1ül.
+.el1üli
+.el1ült
+.el1ülv
.es1er
.et2h
.ex1el
.ez1e2l
-.é2
-.égés1s
-.ég1o
-.ék1a2
-.ék1i
-.én1á
-.én1el
-.épe2
-.ép1es
-.ér2csi
-.ér1el
-.ét1é
+.é2
+.égés1s
+.ég1o
+.ék1a2
+.ék1i
+.én1á
+.én1el
+.épe2
+.ép1es
+.ér2csi
+.ér1el
+.ét1é
.f2
.fa2jeg
.fe2len
.fe2lev
-.fe2lék
-.fe2lül.
-.fé2lér
-.fé2lév
-.fé2má
-.fö2lül.
+.fe2lék
+.fe2lül.
+.fé2lér
+.fé2lév
+.fé2má
+.fö2lül.
.g2
.ga2z1em
-.gé2ná
+.gé2ná
.gi1g2
.h2
.ha2d1e2
.hale2
.ha2lev
-.ha2l1és
-.há2li
-.háncs1
-.há2tus
+.ha2l1és
+.há2li
+.háncs1
+.há2tus
.he2i
.horo1s
.i2
.in2d3z
-.io2ná
-.í2
-.íráskész1
+.io2ná
+.í2
+.íráskész1
.j2
.jazz1
-.je2gy1á
+.je2gy1á
.k2
.ka2ring
-.kés1s
-.ké2t1a2
-.ké2tá
-.kiá2
-.kié2
+.kés1s
+.ké2t1a2
+.ké2tá
+.kiá2
+.kié2
.ki1g2
.kr2
.l2
@@ -197,71 +197,71 @@
.le2g1
.le3g2esle2g1
.le3g2esle3g2esle2g1
-.legé2nyem
+.legé2nyem
.le3gy
-.le2ná
+.le2ná
.le1t2r
-.lé2ta
+.lé2ta
.li2o1
-.liszt1á
-.lókész1
-.ló1s2
-.l®e2
+.liszt1á
+.lókész1
+.ló1s2
+.lőe2
.ly1o
.m2
.malo2
-.má2r1is
-.me2g1á
+.má2r1is
+.me2g1á
.me2g1e2s
-.me2g1é2
+.me2g1é2
.me2gis
-.me2g®
+.me2gő
.me2i
-.mé2szi
+.mé2szi
.mu2e
.n2
.na2gya
-.na2gyá
+.na2gyá
.na2p1e
.na1t
.nerc1
.ne2um
-.né2pí
+.né2pí
.ny2l
.o2
.ok1a2d
.ok1ir
-.ó2
-.óé2
-.óf2
-.ö2
-.ön1á
-.ön1k2
-.ön3n
-.össz1á
-.öte2
-.öt1el
-.özö2n1ö
-.®2
-.®r1an
-.®s1a2
-.®s1e2r
-.®s1í2
-.®z3s
+.ó2
+.óé2
+.óf2
+.ö2
+.ön1á
+.ön1k2
+.ön3n
+.össz1á
+.öte2
+.öt1el
+.özö2n1ö
+.Å‘2
+.Å‘r1an
+.Å‘s1a2
+.Å‘s1e2r
+.ős1í2
+.Å‘z3s
.p2
.pa2i
.pais1
.pe2r1a2
-.pé2k1
+.pé2k1
.ph2
.pier2
.po2re
.q2
.r2
.ra2big
-.rát2
-.re2ár
-.ren2d1®2
+.rát2
+.re2ár
+.ren2d1Å‘2
.ru2ma
.s2
.sa2li
@@ -269,47 +269,47 @@
.sk2
.so2ki
.so1ny
-.so2rál
+.so2rál
.sp2
.st2
.sto2
.su2r
.sz2
-.sza2kér
-.sze2szá
-.szé2t
+.sza2kér
+.sze2szá
+.szé2t
.szk2
-.szódás1
+.szódás1
.szt2
.t2
.ta2ni
.ta2nos
.ta2ur
-.tá2v1i2ratozá
-.te2j1á
-.té2nyi
-.té2rá
-.to2ké
-.tö2k1élv
-.tölcséres1
-.t¶z3s
+.tá2v1i2ratozá
+.te2j1á
+.té2nyi
+.té2rá
+.to2ké
+.tö2k1élv
+.tölcséres1
+.tűz3s
.u2
.utas1s
-.ú2
-.úr1a
-.úr1ist
-.út1a2
-.út1e
-.ü2
-.ük1
-.¶2
-.¶r1i
+.ú2
+.úr1a
+.úr1ist
+.út1a2
+.út1e
+.ü2
+.ük1
+.ű2
+.űr1i
.v2
.va2d1al
.va2gyi
.vasas1s
.va2sol
-.vé2g1o
+.vé2g1o
.w2
.x2
.y2
@@ -328,124 +328,124 @@ aa2p
aa2u
aa2v
aa2z
-2a1á
-aá2b
-aá2gak
-aá2gy
-a2ál.
-a2áln
-aá2p
-aá2r
-aá2s
-aá2t1
-aáta2
+2a1á
+aá2b
+aá2gak
+aá2gy
+a2ál.
+a2áln
+aá2p
+aá2r
+aá2s
+aá2t1
+aáta2
aba2de
2aban
2abar
-2abáj
-2abáz
+2abáj
+2abáz
2abes
2abir
2abiz
2abom
abos3s
-2ab®
-2abú
-a2b1ü
+2abő
+2abú
+a2b1ü
a2ce.
ace2l
ac1ele
-acé2l1e
-a2c1ép
-ac1ére
-a2chá
+acé2l1e
+a2c1ép
+ac1ére
+a2chá
ac3hoz
-2ací
-ac3ság
-a2c3sü
+2ací
+ac3ság
+a2c3sü
ac3sz
ada2le
ada2li
-ada2l1ú
+ada2l1ú
a2dap
ad1apr
ada2t1e2
-ad1ág
-a2dású
+ad1ág
+a2dású
ad2del
a2d1e2g
ade2i
1a2dek
ad1e2le
-ad1el®
+ad1elő
ad1elv
ade2n
ad1ene
ade2s
-ad1esé
+ad1esé
adet2
ad1e2v
-adé2ke
-a2d1ép
-a2d1é2v
+adé2ke
+a2d1ép
+a2d1é2v
ad1ide
adi2o1g2
-ad1íz
-a2d1orzá
-1a2dód
-ad1ö2l
-ad2rót
+ad1íz
+a2d1orzá
+1a2dód
+ad1ö2l
+ad2rót
adu2r
ad1ura
-2adú
+2adú
2a1e
ae2b
ae2c
-ae2dé
-aegész1
+ae2dé
+aegész1
a2ei
ae2k
ae2l1a2
ae2le
ae2l1o
-ae2l®
+ae2lő
ae2me
ae2p
ae2re
aero1s
aerosz2
-ae2r®
+ae2rő
ae2se
-ae2sé
+ae2sé
ae2si
-ae2s®
+ae2ső
ae2v
ae2z
-2a1é
-aé2g
-aé2h
-aé2k
-aé2l
-aé2n
-aé2p
-aé2r
-aé2v
+2a1é
+aé2g
+aé2h
+aé2k
+aé2l
+aé2n
+aé2p
+aé2r
+aé2v
2afajn
2afe
afe2li
-2afés
+2afés
2afi
-2af®
+2afő
af2re
-2afü
+2afü
a2g1a2j
ag1any
ag1arc
-agán1n
-agá2nyé
-a2gár.
-ag1át1a
-ag1edé
+agán1n
+agá2nyé
+a2gár.
+ag1át1a
+ag1edé
a2g1eg
ag1elm
ag1elt
@@ -453,48 +453,48 @@ ag1elv
a2gem
ag1emb
a2g1ev
-a2g1é2g
-a2g1é2l
-ag1épí
+a2g1é2g
+a2g1é2l
+ag1épí
1agg.
ag3gye
-a1g2hó
+a1g2hó
agi2g
-ag1igé
+ag1igé
a2g1i2p
-a2g1ír
+a2g1ír
agli2
ago2na
2agor
a2g1ors
-ag1órá
-a2g1öt
+ag1órá
+a2g1öt
a1g2raf
a2gut
ag1uta
-ag1u2tá
-a2g1út
-a2g1ü2
+ag1u2tá
+a2g1út
+a2g1ü2
a2gyad
-agy1a2dó
+agy1a2dó
a2gyag
agy1agy
agy1ala
agy1alk
agy1any
-a2gyál
-agy1ári
-a2gyát
+a2gyál
+agy1ári
+a2gyát
agy1el
a2gy1em
a2gy1en
a2gyep
-agy1er®
+agy1erő
a2gy1es
a2gy1ez
-a2gyér
-agy1ére
-a2gyét
+a2gyér
+agy1ére
+a2gyét
a2gyic
a2gyim
a2gy1ip
@@ -509,24 +509,24 @@ agy1oro
2ahe
1ahh
2ahi
-2ahí
+2ahí
aho2l1i
2ahu
a1i
a2ia.
ai2bo
2ai2de
-ai2d®
+ai2dő
ai2e
2aig2
-ai2gazító
-ai2gé
+ai2gazító
+ai2gé
a2ign
ai2j
ai2k1as
ai2k1e2
ai2ma.
-2ai2má
+2ai2má
ai2nal
ai2nas
2aing
@@ -534,53 +534,53 @@ ai2nas
ai2o
2ai2p
ai2ram
-ai2rá
+ai2rá
ai2rod
ai2zo
-2a1í2
+2a1í2
a2j1al
aja2n
aj1ana
2aje
a2j1e2d
-aj1egé
+aj1egé
a2j1elm
-aj1e2l®
+aj1e2lő
a2j1em
a2j1er
-a2jég
-a2j1ék
+a2jég
+a2j1ék
a2j1ir
-1ajkúa
+1ajkúa
a2j1ola
aj1old
-aj1ül
+aj1ül
aj2ze
-aj2zí
-aj2zsí
+aj2zí
+aj2zsí
a2k1akn
a2k1alk
ak1ann
2akap
-aka2s1ü
+aka2s1ü
2akav
-akás1s
+akás1s
2ake
a2k1eg
ak1els
ak1emb
-a2k1e2r®
-aké2k
-a2k1éke
-2akép
-ak1épí
-2akérd
-a2k1é2ret
-ak1értel
-a2k1ért®
-2akés
-a1khó
-akiá2
+a2k1e2rő
+aké2k
+a2k1éke
+2akép
+ak1épí
+2akérd
+a2k1é2ret
+ak1értel
+a2k1értő
+2akés
+a1khó
+akiá2
2akin
a2k1i2p
ak1iro
@@ -589,85 +589,85 @@ aki2s1a
ak1isk
ak1ism
ak1izm
-2akí
-ak2kór
+2akí
+ak2kór
ak2lei
-ak2lés
+ak2lés
ak2lin
a2k1o2ly
a2k1orv
-2akö
-a2k1örv
-ak1®r.
-2akré
+2akö
+a2k1örv
+ak1Å‘r.
+2akré
2akri
ak2rit
a1k2ru
ak1ug
2akut
-2akú
-ak1útr
-2akü
-ak1ülé
-a2k1ü2v
+2akú
+ak1útr
+2akü
+ak1ülé
+a2k1ü2v
2akv
al1abl
alag1g
ala2gol
ala2j1e2
-1alakí
+1alakí
1a2lakok
-1a2lakú
+1a2lakú
a2lany
ala2nye
ala2p1a2
-ala2pár
+ala2pár
1a2lapi
-1a2lapí
+1a2lapí
alap1p
-a2láf
-al1ág.
-al1á2ga
-al1ágg
-al1á2gi
-al1ágk
-al1á2go
-1aláí
-2alán
-a2láp
+a2láf
+al1ág.
+al1á2ga
+al1ágg
+al1á2gi
+al1ágk
+al1á2go
+1aláí
+2alán
+a2láp
a2le.
al1eln
al1elt
al1eml
al1eny
-al1e2r®
+al1e2rő
al1esp
a2l1est
ale2sz
al1ez
-a2léb
-a2l1é2ne
-al1érz
-a2l1é2te
-1alfö
+a2léb
+a2l1é2ne
+al1érz
+a2l1é2te
+1alfö
alg2
al1gr
al1ido
a2l1ikr
-alió2ra
-a2l1irá
+alió2ra
+a2l1irá
al1isk
al1isp
al1itt
-al1í2rá
+al1í2rá
1aljb
1alji
1aljn
1aljz
al2l1aj
-1almád
-1almák
-almás1s
+1almád
+1almák
+almás1s
2alogizm
aloi2do
2alok
@@ -677,20 +677,20 @@ alo2m1o2k
2alor
alos1s
a2l1oszt
-2alógiá
-2alógu
-alókész1
-a2l1ön
-a2l1ös
+2alógiá
+2alógu
+alókész1
+a2l1ön
+a2l1ös
al2t1el
-al1úr.
-al1úri
-al1útr
-a2l1ü2
-1alvó
-a2lyál
+al1úr.
+al1úri
+al1útr
+a2l1ü2
+1alvó
+a2lyál
a2ly1e
-am1a2dó
+am1a2dó
2amag
am1akk
am1app
@@ -698,48 +698,48 @@ a2m1arc
am1arr
ama2ter
ama2tin
-2amá
-a2m1árj
+2amá
+a2m1árj
am2b1eg
-am2b1®
+am2b1Å‘
a2me.
-ame2g1á
-a2m1elá
+ame2g1á
+a2m1elá
a2m1e2l1o
am1els
am1elt
a2m1erd
1a2meri
-a2m1e2r®
-a2m1érd
+a2m1e2rő
+a2m1érd
am1fr
a2mim
-a2m1i2rá
+a2m1i2rá
amise2
amis3s
-am1ír
+am1ír
2amod
amos3s
-a2m1ó2r
-a2m1ö2
-a2m®
-am1®r
-am1®s
+a2m1ó2r
+a2m1ö2
+a2mő
+am1Å‘r
+am1Å‘s
am1p2h
2amun
2amut
-a2m1ü2
-2am¶
+a2m1ü2
+2amű
a2nah
an1akk
an1alj
an1any
ana2sze
a2n1az
-anás1s
+anás1s
an2ce.
ancs1es
-an2cs®
+an2cső
an2dolv
an1eb
a2ner
@@ -747,49 +747,49 @@ a2nes
anet1o
ane2u
a2n1e2z
-2ané
-ané2v
-an1évb
-an1éve
-an1évn
+2ané
+ané2v
+an1évb
+an1éve
+an1évn
an2gad
an2g1em
-an2gí
+an2gí
an2g1or
an2g1osz
-an2g1ös
+an2g1ös
1anim
an2k1a2k
ank1ala
an2kau
an2k1el
-an2k1ék.
+an2k1ék.
ank1osz
an2k1u2
-an2kü
+an2kü
ano1g2
an1old
an1onn
an1ott
-an1órá
-2anö
-an1ö2t
-ansz1ál
+an1órá
+2anö
+an1ö2t
+ansz1ál
an2sz1u2
an2tau
-a2nü
+a2nü
any1ala
-1a2nyád
-a2nyám.
-a2ny1á2rak
+1a2nyád
+a2nyám.
+a2ny1á2rak
2anye
a2ny1ed
a2ny1em
-any1es®
-anyé2
-any1éh
-any1ék
-any1ér
+any1eső
+anyé2
+any1éh
+any1ék
+any1ér
a2nyif
a2nyig
anyigaz1
@@ -797,38 +797,38 @@ a2nyim
2anyo
a2nyor
a2ny1osz
-any1ó2r
-a2nyö
-a2ny®
+any1ó2r
+a2nyö
+a2nyő
anzo2
2a1o
ao2la
a2olo
ao2ro
-2a1ó
-a2ób
-a2óc
-a2óf
-aó2l
-aó2ra
-aó2rá
-aó2ri
-2a1ö2
-2a1®2
+2a1ó
+a2ób
+a2óc
+a2óf
+aó2l
+aó2ra
+aó2rá
+aó2ri
+2a1ö2
+2a1Å‘2
apa2cs1i
ap1a2da
1a2pai
-1a2paké
+1a2paké
ap1a2la
ap1alk
-apa2tér
-1a2pád
-1a2páé
-a2p1ág
-1a2pái
-a2páll
-a2p1áru
-a2páta
+apa2tér
+1a2pád
+1a2páé
+a2p1ág
+1a2pái
+a2páll
+a2p1áru
+a2páta
2ape
a2p1e2g
ape2i
@@ -836,7 +836,7 @@ ape2l
ap1ele
ap1elg
ap1elj
-ap1el®
+ap1elő
ap1elv
a2p1em
ape2n
@@ -848,62 +848,62 @@ ap1f2
a2p1ide
api2g
ap1ige
-a2p1i2rá
+a2p1i2rá
a2p1ist
-a2p1ín
+a2p1ín
2apl
a2p1ola
ap1ope
apos3s
-ap1ös
-ap1öt
-ap2rém
-a1p2rés
-1aprí
+ap1ös
+ap1öt
+ap2rém
+a1p2rés
+1aprí
ap1szt
ap1t2
ap1udv
-ap1utá
+ap1utá
ar1ajt
ara2nye
-ar1ará
-a2r1ág.
-a2r1á2ga
-ará2gáb
-ará2gán
-ará2gár
-ará2gát
-ará2gáv
-a2r1ágb
-a2r1ágg
-a2r1ági
-a2r1á2go
-a2r1ágr
-a2r1ágt
-ar1á2guk
-ar1á2gun
-ar1á2gy
-a2r1áll
-ará2nyé
+ar1ará
+a2r1ág.
+a2r1á2ga
+ará2gáb
+ará2gán
+ará2gár
+ará2gát
+ará2gáv
+a2r1ágb
+a2r1ágg
+a2r1ági
+a2r1á2go
+a2r1ágr
+a2r1ágt
+ar1á2guk
+ar1á2gun
+ar1á2gy
+a2r1áll
+ará2nyé
ar2car
ar2ced
ar2ces
-ar2cö
+ar2cö
arc3sor
-1arcú
-ar2dél
+1arcú
+ar2dél
2are
ar1e2dz
are2l
ar1elh
ar1elo
a2r1e2m
-aren2d1®
+aren2d1Å‘
a2r1er
a2r1e2v
-ar1é2ne
-a2r1é2r
-aré2z1
+ar1é2ne
+a2r1é2r
+aré2z1
ar1gh
argon1n
a2r1i2d
@@ -911,29 +911,29 @@ a2r1iga
ar1ingb
a2r1inge
a2rizma.
-a2rizmán
+a2rizmán
a2rizo
ar1khe
-ar2k1®2
+ar2k1Å‘2
ar2k1u2s
2aro
arog2r
aro2mis
a2r1or
-2aró
-a2r1ó2rá
-a2r1ö2l
-a2r1®2
+2aró
+a2r1ó2rá
+a2r1ö2l
+a2r1Å‘2
ar1s2h
-ar1thá
-arto1g2rá
+ar1thá
+arto1g2rá
art1old
-ar2t1®2r
+ar2t1Å‘2r
ar1ty
2aru
-a2r1ü
-a2r1¶2
-ar2v1ér
+a2r1ü
+a2r1ű2
+ar2v1ér
a1ry
a2s1a2g
2asaj
@@ -945,9 +945,9 @@ asa2n
a2s1ant
a2s1any
as1apr
-a2s1ál
-as1áru
-2asáv
+a2s1ál
+as1áru
+2asáv
2ase
as1e2d
as1e2k
@@ -955,74 +955,74 @@ as1ell
as1emb
as1e2s
as1ez
-as1éhe
-as1ék.
-a2s1é2l
-as1étv
-a2s1é2v
+as1éhe
+as1ék.
+a2s1é2l
+as1étv
+a2s1é2v
asi2d
as1ide
a2s1i2p
as1isk
as1izo
-2asík
+2asík
as1old
2asor
as1ord
as1osz
-as1órá
-as1ö2k
-as1ön
-as1ös
+as1órá
+as1ö2k
+as1ön
+as1ös
2asp
as1sy
as3szab
astil2
-2astí
+2astí
as1urn
a2s1u2t
-a2s1ú2t
-2asü
-as1ün
-a2s1ür
-as1üs
-a2s1ü2v
-2as¶
+a2s1ú2t
+2asü
+as1ün
+a2s1ür
+as1üs
+a2s1ü2v
+2asű
a2sz1ad
-asz1ág.
-a2szárad
+asz1ág.
+a2szárad
2aszeg
2aszek
-asz1e2l®
-a2sz1év
+asz1e2lő
+a2sz1év
a2szid
-2aszkó
-asz2kóp
+2aszkó
+asz2kóp
asz1ors
-asz1ön
-asz2t1és
-asz2t1ív
-2aszü
+asz1ön
+asz2t1és
+asz2t1ív
+2aszü
1aszz
at1abl
2atak
2atan
2atar
-ata2rán
+ata2rán
a2t1arc
ata2tom
-a2t1ág
-2atál
-atá2nal
-2atár
-a2t1á2ram
-a2t1átl
-a2t1átv
-atá2v1i2
-atá2v1í2
+a2t1ág
+2atál
+atá2nal
+2atár
+a2t1á2ram
+a2t1átl
+a2t1átv
+atá2v1i2
+atá2v1í2
2ate
a2t1ef
-at1e2gé
+at1e2gé
at1e2gye
ate2led
at1e2lem
@@ -1036,20 +1036,20 @@ at1epo
at1e2tet
at1e2ve
a2t1e2z
-2até
-at1éhe
-a2t1é2le
-a2t1ép
-a2t1érz
-at1év.
+2até
+at1éhe
+a2t1é2le
+a2t1ép
+a2t1érz
+at1év.
2at1f2
-at2hé
-at2hón
+at2hé
+at2hón
atig2
a2t1iga
-at1i2gé
+at1i2gé
a2t1inf
-ati2nó
+ati2nó
at1iro
a2t1isk
2atn
@@ -1063,19 +1063,19 @@ a2t1orv
atos3s
atosz2
ato1szf
-2ató
-a2t1ó2rá
-ató2riá
-ató1sz
-2atö
-a2t1ös
-at1ö2ve
-at1ö2vö
-at2sán
-attó2
-at2tór
+2ató
+a2t1ó2rá
+ató2riá
+ató1sz
+2atö
+a2t1ös
+at1ö2ve
+at1ö2vö
+at2sán
+attó2
+at2tór
at1tre
-at1tré
+at1tré
2atu
a2t1uj
1atyj
@@ -1091,760 +1091,760 @@ au1ly
2aur
a2us.
au2tal
-a2utó.
+a2utó.
au2zs
-a1ú
-aú2r1
-aú2s
-2a1ü2
-a1¶2
+a1ú
+aú2r1
+aú2s
+2a1ü2
+a1ű2
av1anh
avara2n
ava2s1as
ava2sze
-2avá
+2avá
2avi
avi2cse
-avíz1
+avíz1
2ay
a1ya
-a1yá
+a1yá
a1ye
2aza
aza2teg
-azaú2
-az1áll
-az1ált
-azás1s
+azaú2
+az1áll
+az1ált
+azás1s
az2du
2aze
az1e2le
az1elj
-az1el®
+az1elő
aze2o
-az1év
+az1év
az1i2d
-azo2n1á
-2azó
-az1óta
+azo2n1á
+2azó
+az1óta
az1p2
-az3ság
+az3ság
az3st
-a2zsú
-a2z3sü
+a2zsú
+a2z3sü
az1ut
-az1új
-2á.
-á1a2
-á1á2
-áb1áll
-áb2b1a2d
-áb2b1é2
-áb2bis
-áb2bol
-áb2bos
-áb2b1ot
-áb2bö
-áb2bú
-ábe2l1a
-ábe2lér
-á2b1el®
-á2b1e2m
-á2b1e2n
-á2b1ér
-á2b1ikr
-á2b1in
-á2b1ir
-2ábiz
-áb1izm
-áb1izz
-2ábí
-1ábrá
-2ábu
-ábu2t
-áb1utá
-áca1k2
-ác1al
-ácá2ná
-á2c1e
-ác3ho
-ácin2ti
-áci2ósz
-á2cs1aj
-á2csas
-ác3ság
-á2cs1e2l
-á2csil
-ácsü2
-ács1ül
-ád1alk
-áda2n
-ád1any
-á2d1apá
-á2d1ál
-á2d1e2l
-á2d1e2m
-áde2ros
-á2d1es
-á2d1in
-ád1ira
-ádo2ge
-á2d1osz
-ádö2
-á1d2rót
-ádsza2
-á2d1ur
-á1dy
-á1e2
-á1é
-áé2he
-áé2ke
-áé2l
-áé2ne
-áé2p
-áé2re
-áé2ri
-áé2r®.
-áf1elm
-áf1üz
-á2g1a2d
-ág1ala
-á2g1a2r
-1á2gaz
-á2g1ág
-á2g1álv
-á2g1áru
-á2g1árv
-ágá2sé
-ág1e2d
-á2g1e2g
-á2g1e2l
-á2g1e2s
-á2g1é2g
-á2g1é2l
-ág1é2ne
-á2g1ép
-ág1érd
-ág1érte
-ág1érté
-ágg2
-ág1gr
-á2g1id
-á2g1if
-á2g1iga
-á2gigén
-á2g1ill
-á2g1ing
-á2g1i2p
-ág1iro
-ág1ír
-á2g1ola
-á2g1old
-á2g1olv
-ágos3s
-ág1óc
-á2g1ö2
-ágsz2
-á2g1u2r
-á2g1u2t
-á2g1ü2
-á2g1¶2
-á2gyac
-á2gyál
-á2gy1e2
-2áha
-2áhá
-2áhe
-áh1ors
-á1i
-ái2do
-ái2g
-ái2j
-2áil
-ái2má
-ái2rá
-ái2s
-á1í2
-á2jí
-áj2k®
-áj2lá
-á2j1or
-á2j®
-áj2teg
-áj2tel
-áj2ti
-á2jul
-á2jü
-ák1abr
-á2k1al
-á2k1as
-á2k1ál
-á2k1e2l
-ák1em
-á2k1é2l
-ák1é2ve
-ák1in
-ák1k2
-á2k1oli
-á2k1oll
-á2k1ott
-2ákö
-ák1s
-á2k1ut
-ál1abl
-ála2m
-ála2n
-á2l1ana
-á2l1ang
-ál1any
-ála2szel
-ála2szü
-ál1áll
-ál1árf
-1áldá
-1áldj
-1áldo
-ál1d2r
-1áldu
-1áldv
-ále2l
-ál1emu
-á2l1e2r
-ál1ér.
-álé2t
-ál1éte
-á2l1id
-ális3s
-á2l1í2
-ál1k2
-ál2liz
-ál1ob
-á2l1o2kok
-á2l1ol
-1á2lomb
-álo2me
-álo2mit
-á2l1op
-á2l1or
-ál1osz
-2álö
-ál1öl
-ál1ös
-ál1öz
-ál1p2
-áls2
-ál1st
-ál2t1e2g
-ál2tiv
-á2l1ug
-ál1u2s
-ál1u2t
-ál1út
-á2lü
-ál1¶
-á2lyal
-á2lyál
-á2ly1e
-á2lyiga
-á2lyis
-á2ly1ó2
-á2lyö
-á2lyü
-á2m1ac
-á2m1akt
-á2m1a2l
-áma2n
-ám1any
-ám1apa
-ám1a2rá
-ám1aty
-ám1ár.
-ám1bl
-áme2g
-ám1elm
-á2m1e2m
-á2m1es
-ámész1
-ám1f2
-á2m1id
-ám1il
-á2m1ip
-á2m1i2r
-ámi2s
-ám1ism
-ám1isz
-á2m1ír
-ám1ív
-á2m1ob
-á2m1op
-ámo2rál
-ám1oszl
-á2m1ö
-á2m1®2
-ám1p2
-ám1s
-ámu2n
-ám1ur
-á2m1ü2
-ám1¶2z
-ána2d
-án1ada
-ánai2
-án1ajt
-á2n1akc
-á2n1a2la
-án1alk
-á2n1a2pa
-á2n1apá
-án1ass
-án1aut
-á2n1áll
-án1áru
-án2c1ed
-án2c1es
-án2c3h
-án2c1is
-án2cor
-án2c1ö
-án2cü
-á2n1e2d
-án1e2g
-ánegyez1
-án1e2l
-án1em
-án1en
-án1e2t
-á2n1é2g
-á2n1é2l
-án1é2ne
-á2n1épü
-án1ér®
-án1f2
-án2g1a2r
-án2gel
-án2g1e2s
-án2g1és
-án2g1osz
-án2gö
-á2n1i2d
-á2n1im
-án1int
-á2n1ip
-á2n1ir
-án1isz
-ánizs1
-á2n1izz
-án2k1es
-án1k2l
-á2n1oki
-á2n1or
-á2n1osz
-á2n1ot
-ánó2r
-á2n1ö
-án1szf
-án1sz2l
-án1szp
-án2tir
-án2t1iz
-án2tór
-á2n1uj
-á2n1u2t
-ánú2
-án1út
-á2n1ü
-ány1a2dó
-ány1a2la
-ánya2n
-ány1any
-á2nyap
-ány1ass
-á2ny1ál
-á2ny1ár.
-á2ny1á2rak
-ánye2
-á2nyeg
-á2ny1el
-ány1er
-á2nyég
-á2nyél
-á2nyérz
-ány1í2r
-á2ny1ola
-á2ny1osz
-á2ny1ö
-á2ny®
-ány1us
-á2nyü
-án2z1ag
-án2zs
-á1o
-áo2sze
-á1ó
-á1ö
-á1®2
-áp1a2n
-ápe2
-áp1eg
-á2p1ér
-áp1int
-á2poló
-ápora2
-ápo2rad
-ár1abl
-ár1abr
-2árag
-á2r1agg
-ára2j
-ár1ajá
-ár1ajt
-á2r1a2la
-ár1alá
-ár1alj
-ár1alk
-ára2m1el
-1á2ramk
-1á2ramú
-ár1a2p
-á2r1a2r
-á2r1á2g
-ár1ár.
-á2r1áro
-ár1árt
-árás3s
-ár1á2t1e2
-á2r1átk
-ár1b2
-1árboc
-árd1el
-ár2d1ó2
-á2r1e2g
-á2r1e2l
-ár1eng
-á2r1er
-ár1esé
-á2r1e2z
-á2r1é2g
-á2r1éj
-á2r1é2n
-á2r1ép
-á2r1é2t¶
-ár2gye
-ár2gyor
-ár1ide
-ári2g
-á2r1iga
-ár1inc
-ár1ind
-ár1ing
-ár1int
-á2r1i2o
-á2r1ir
-ár1isp
-ár1i2ta
-ár1izo
-ár1ír
-árká2s
-árkász1
-ár1kh
-1árkok
-ármas1s
-árnás1
-áro2koz
-ár1oll
-áro2mér
-áro2m1os
-á2r1or
-áros3s
-á2rostr
-árö2
-ár1öl
-ár1ös
-ár1öv
-ár1öz
-á2r1®2
-ár1p2
-1árpa.
-árs3s
-ár1str
-árt1akt
-árt1áll
-árt1árn
-árt1áru
-ár2teg
-ár2tig
-ár2t1okt
-ár2t1ön
-ár1tro
-1á2ru.
-á2rud
-á2rué
-1á2ruf
-1á2rui
-1áruj
-á2ruke
-1á2ruké
-á2rum
-1á2rup
-á2rur
-á2rut
-ár1uta
-1áruü
-1áruv
-ár1úr
-árú2t
-ár1úti
-á2rü
-1árvu
-á1ry
-á2s1abl
-á2sad
-ás1a2dó
-á2s1a2j
-á2s1akt
-ás1a2la
-ás1alk
-ás1alm
-ás1a2lo
-ása2n
-á2s1ana
-á2s1any
-á2s1as
-á2s1a2u
-á2s1a2v
-á2s1a2z
-á2sábr
-á2s1ál
-ás1áru
-á2sást
-ás1átl
-ás1átv
-ás1e2d
-á2s1e2l
-ás1em
-á2s1en
-á2s1e2s
-ás1ex
-ás1ez
-á2s1é2l
-á2s1ép
-ás1ére
-á2s1érte
-á2s1érté
-á2s1és
-á2s1éve
-á2s1id
-á2s1if
-ási2g
-ás1iga
-ás1inf
-ás1int
-á2s1i2p
-ás1i2rá
-á2s1is
-á2s1ín
-á2s1í2r
-ás1ív
-ás1k
-ás1okta
-á2s1or
-ás1osz
-1á2só.
-1á2sój
-1á2sók
-1á2són
-á2sór
-ás1órá
-1á2sót
-á2s1ö
-á2s1®
-ás1p2
-áspis1
-áss2
-ás1st
-á1ssy
-ás3sze
-ás3szé
-ás3szi
-ás3szor
-ás3szö
-ás3szt
-ás3szü
-ás1tra
-á2s1uj
-ásu2t
-ás1uta
-ás1utá
-ás1u2z
-á2s1üg
-ás1ür
-ás1üs
-á2s1ü2v
-á2sz1aj
-á2sz1ap
-á2szas
-ás3zav
-2ászá
-á2szág
-ász1eb
-ász1el
-ász1em
-ász1ep
-ász1es
-ász1e2t
-ászé2
-á2sz1éj
-á2sz1én
-ász1év
-ászi2
-á2szid
-á2sz1in
-á2sz1ir
-á2sz1is
-ász1ors
-ász1osz
-ász1ös
-ászt2
-ász1tr
-á2szur
-á2szut
-ász1út
-ász1ün
-á2szüz
-át1ado
-át1adt
-át1alm
-át1a2lu
-át1a2u
-á2t1ál
-át1ej
-át1e2m
-át1é2g
-áté2ke
-á2t1é2l
-át1é2p
-át1f2
-1átfú
-1áthi
-áti2ag
-át1id
-áti2g
-át1in
-á2t1i2r
-á2t1izm
-á2t1izo
-át1í2r
-át1í2v
-1átlé
-1átne
-át1öb
-á2t1öm
-át1ön
-át1ö2v
-át1ö2z
-á2t1®2
-át1t2
-át1ug
-á2t1uj
-1á2t1u2t
-á2t1ú2s
-átü2
-á2t1ül
-át1üt
-át1üz
-1átvo
-á1u2
-á1ú
-á1ü2
-á1¶
-áv1el
-áv1érz
-á2v1i2rá
-á2v1iz
-á2v1okt
-á2v1ús
-áz1abl
-á2z1aj
-áz1alk
-á2z1ann
-áza2t1e2
-áza2tí
-áz1aty
-á2z1a2v
-á2z1á2l
-ázás1s
-áz1ea
-á2z1eg
-áz1e2r
-á2z1es
-áze2z
-á2z1eze
-á2z1ezré
-á2z1é2p
-áz1éve
-ázhoz1
-á2z1igá
-á2z1ing
-á2zins
-ázi2s1em
-ázis3s
-áz1izm
-áz1izo
-áz1k2
-2ázol
-á2z1o2r
-2ázos
-á2z1osz
-á2z1ö
-á2z1®
-ázs1aj
-ázs1ár.
-ázs1árá
-ázs1árh
-á2zs1e2
-á2zsé
-ázs1é2n
-á2zsiá
-á2zs1ig
-áz3sor
-áz3spa
-áz3sug
-á2zsü
-ázs1ü2v
-á2z3s¶
-2ázú
-á2z1ü2
-á1zy
+az1új
+2á.
+á1a2
+á1á2
+áb1áll
+áb2b1a2d
+áb2b1é2
+áb2bis
+áb2bol
+áb2bos
+áb2b1ot
+áb2bö
+áb2bú
+ábe2l1a
+ábe2lér
+á2b1elő
+á2b1e2m
+á2b1e2n
+á2b1ér
+á2b1ikr
+á2b1in
+á2b1ir
+2ábiz
+áb1izm
+áb1izz
+2ábí
+1ábrá
+2ábu
+ábu2t
+áb1utá
+áca1k2
+ác1al
+ácá2ná
+á2c1e
+ác3ho
+ácin2ti
+áci2ósz
+á2cs1aj
+á2csas
+ác3ság
+á2cs1e2l
+á2csil
+ácsü2
+ács1ül
+ád1alk
+áda2n
+ád1any
+á2d1apá
+á2d1ál
+á2d1e2l
+á2d1e2m
+áde2ros
+á2d1es
+á2d1in
+ád1ira
+ádo2ge
+á2d1osz
+ádö2
+á1d2rót
+ádsza2
+á2d1ur
+á1dy
+á1e2
+á1é
+áé2he
+áé2ke
+áé2l
+áé2ne
+áé2p
+áé2re
+áé2ri
+áé2rő.
+áf1elm
+áf1üz
+á2g1a2d
+ág1ala
+á2g1a2r
+1á2gaz
+á2g1ág
+á2g1álv
+á2g1áru
+á2g1árv
+ágá2sé
+ág1e2d
+á2g1e2g
+á2g1e2l
+á2g1e2s
+á2g1é2g
+á2g1é2l
+ág1é2ne
+á2g1ép
+ág1érd
+ág1érte
+ág1érté
+ágg2
+ág1gr
+á2g1id
+á2g1if
+á2g1iga
+á2gigén
+á2g1ill
+á2g1ing
+á2g1i2p
+ág1iro
+ág1ír
+á2g1ola
+á2g1old
+á2g1olv
+ágos3s
+ág1óc
+á2g1ö2
+ágsz2
+á2g1u2r
+á2g1u2t
+á2g1ü2
+á2g1ű2
+á2gyac
+á2gyál
+á2gy1e2
+2áha
+2áhá
+2áhe
+áh1ors
+á1i
+ái2do
+ái2g
+ái2j
+2áil
+ái2má
+ái2rá
+ái2s
+á1í2
+á2jí
+áj2kő
+áj2lá
+á2j1or
+á2jő
+áj2teg
+áj2tel
+áj2ti
+á2jul
+á2jü
+ák1abr
+á2k1al
+á2k1as
+á2k1ál
+á2k1e2l
+ák1em
+á2k1é2l
+ák1é2ve
+ák1in
+ák1k2
+á2k1oli
+á2k1oll
+á2k1ott
+2ákö
+ák1s
+á2k1ut
+ál1abl
+ála2m
+ála2n
+á2l1ana
+á2l1ang
+ál1any
+ála2szel
+ála2szü
+ál1áll
+ál1árf
+1áldá
+1áldj
+1áldo
+ál1d2r
+1áldu
+1áldv
+ále2l
+ál1emu
+á2l1e2r
+ál1ér.
+álé2t
+ál1éte
+á2l1id
+ális3s
+á2l1í2
+ál1k2
+ál2liz
+ál1ob
+á2l1o2kok
+á2l1ol
+1á2lomb
+álo2me
+álo2mit
+á2l1op
+á2l1or
+ál1osz
+2álö
+ál1öl
+ál1ös
+ál1öz
+ál1p2
+áls2
+ál1st
+ál2t1e2g
+ál2tiv
+á2l1ug
+ál1u2s
+ál1u2t
+ál1út
+á2lü
+ál1ű
+á2lyal
+á2lyál
+á2ly1e
+á2lyiga
+á2lyis
+á2ly1ó2
+á2lyö
+á2lyü
+á2m1ac
+á2m1akt
+á2m1a2l
+áma2n
+ám1any
+ám1apa
+ám1a2rá
+ám1aty
+ám1ár.
+ám1bl
+áme2g
+ám1elm
+á2m1e2m
+á2m1es
+ámész1
+ám1f2
+á2m1id
+ám1il
+á2m1ip
+á2m1i2r
+ámi2s
+ám1ism
+ám1isz
+á2m1ír
+ám1ív
+á2m1ob
+á2m1op
+ámo2rál
+ám1oszl
+á2m1ö
+á2m1ő2
+ám1p2
+ám1s
+ámu2n
+ám1ur
+á2m1ü2
+ám1ű2z
+ána2d
+án1ada
+ánai2
+án1ajt
+á2n1akc
+á2n1a2la
+án1alk
+á2n1a2pa
+á2n1apá
+án1ass
+án1aut
+á2n1áll
+án1áru
+án2c1ed
+án2c1es
+án2c3h
+án2c1is
+án2cor
+án2c1ö
+án2cü
+á2n1e2d
+án1e2g
+ánegyez1
+án1e2l
+án1em
+án1en
+án1e2t
+á2n1é2g
+á2n1é2l
+án1é2ne
+á2n1épü
+án1érő
+án1f2
+án2g1a2r
+án2gel
+án2g1e2s
+án2g1és
+án2g1osz
+án2gö
+á2n1i2d
+á2n1im
+án1int
+á2n1ip
+á2n1ir
+án1isz
+ánizs1
+á2n1izz
+án2k1es
+án1k2l
+á2n1oki
+á2n1or
+á2n1osz
+á2n1ot
+ánó2r
+á2n1ö
+án1szf
+án1sz2l
+án1szp
+án2tir
+án2t1iz
+án2tór
+á2n1uj
+á2n1u2t
+ánú2
+án1út
+á2n1ü
+ány1a2dó
+ány1a2la
+ánya2n
+ány1any
+á2nyap
+ány1ass
+á2ny1ál
+á2ny1ár.
+á2ny1á2rak
+ánye2
+á2nyeg
+á2ny1el
+ány1er
+á2nyég
+á2nyél
+á2nyérz
+ány1í2r
+á2ny1ola
+á2ny1osz
+á2ny1ö
+á2nyő
+ány1us
+á2nyü
+án2z1ag
+án2zs
+á1o
+áo2sze
+á1ó
+á1ö
+á1ő2
+áp1a2n
+ápe2
+áp1eg
+á2p1ér
+áp1int
+á2poló
+ápora2
+ápo2rad
+ár1abl
+ár1abr
+2árag
+á2r1agg
+ára2j
+ár1ajá
+ár1ajt
+á2r1a2la
+ár1alá
+ár1alj
+ár1alk
+ára2m1el
+1á2ramk
+1á2ramú
+ár1a2p
+á2r1a2r
+á2r1á2g
+ár1ár.
+á2r1áro
+ár1árt
+árás3s
+ár1á2t1e2
+á2r1átk
+ár1b2
+1árboc
+árd1el
+ár2d1ó2
+á2r1e2g
+á2r1e2l
+ár1eng
+á2r1er
+ár1esé
+á2r1e2z
+á2r1é2g
+á2r1éj
+á2r1é2n
+á2r1ép
+á2r1é2tű
+ár2gye
+ár2gyor
+ár1ide
+ári2g
+á2r1iga
+ár1inc
+ár1ind
+ár1ing
+ár1int
+á2r1i2o
+á2r1ir
+ár1isp
+ár1i2ta
+ár1izo
+ár1ír
+árká2s
+árkász1
+ár1kh
+1árkok
+ármas1s
+árnás1
+áro2koz
+ár1oll
+áro2mér
+áro2m1os
+á2r1or
+áros3s
+á2rostr
+árö2
+ár1öl
+ár1ös
+ár1öv
+ár1öz
+á2r1ő2
+ár1p2
+1árpa.
+árs3s
+ár1str
+árt1akt
+árt1áll
+árt1árn
+árt1áru
+ár2teg
+ár2tig
+ár2t1okt
+ár2t1ön
+ár1tro
+1á2ru.
+á2rud
+á2rué
+1á2ruf
+1á2rui
+1áruj
+á2ruke
+1á2ruké
+á2rum
+1á2rup
+á2rur
+á2rut
+ár1uta
+1áruü
+1áruv
+ár1úr
+árú2t
+ár1úti
+á2rü
+1árvu
+á1ry
+á2s1abl
+á2sad
+ás1a2dó
+á2s1a2j
+á2s1akt
+ás1a2la
+ás1alk
+ás1alm
+ás1a2lo
+ása2n
+á2s1ana
+á2s1any
+á2s1as
+á2s1a2u
+á2s1a2v
+á2s1a2z
+á2sábr
+á2s1ál
+ás1áru
+á2sást
+ás1átl
+ás1átv
+ás1e2d
+á2s1e2l
+ás1em
+á2s1en
+á2s1e2s
+ás1ex
+ás1ez
+á2s1é2l
+á2s1ép
+ás1ére
+á2s1érte
+á2s1érté
+á2s1és
+á2s1éve
+á2s1id
+á2s1if
+ási2g
+ás1iga
+ás1inf
+ás1int
+á2s1i2p
+ás1i2rá
+á2s1is
+á2s1ín
+á2s1í2r
+ás1ív
+ás1k
+ás1okta
+á2s1or
+ás1osz
+1á2só.
+1á2sój
+1á2sók
+1á2són
+á2sór
+ás1órá
+1á2sót
+á2s1ö
+á2s1ő
+ás1p2
+áspis1
+áss2
+ás1st
+á1ssy
+ás3sze
+ás3szé
+ás3szi
+ás3szor
+ás3szö
+ás3szt
+ás3szü
+ás1tra
+á2s1uj
+ásu2t
+ás1uta
+ás1utá
+ás1u2z
+á2s1üg
+ás1ür
+ás1üs
+á2s1ü2v
+á2sz1aj
+á2sz1ap
+á2szas
+ás3zav
+2ászá
+á2szág
+ász1eb
+ász1el
+ász1em
+ász1ep
+ász1es
+ász1e2t
+ászé2
+á2sz1éj
+á2sz1én
+ász1év
+ászi2
+á2szid
+á2sz1in
+á2sz1ir
+á2sz1is
+ász1ors
+ász1osz
+ász1ös
+ászt2
+ász1tr
+á2szur
+á2szut
+ász1út
+ász1ün
+á2szüz
+át1ado
+át1adt
+át1alm
+át1a2lu
+át1a2u
+á2t1ál
+át1ej
+át1e2m
+át1é2g
+áté2ke
+á2t1é2l
+át1é2p
+át1f2
+1átfú
+1áthi
+áti2ag
+át1id
+áti2g
+át1in
+á2t1i2r
+á2t1izm
+á2t1izo
+át1í2r
+át1í2v
+1átlé
+1átne
+át1öb
+á2t1öm
+át1ön
+át1ö2v
+át1ö2z
+á2t1ő2
+át1t2
+át1ug
+á2t1uj
+1á2t1u2t
+á2t1ú2s
+átü2
+á2t1ül
+át1üt
+át1üz
+1átvo
+á1u2
+á1ú
+á1ü2
+á1ű
+áv1el
+áv1érz
+á2v1i2rá
+á2v1iz
+á2v1okt
+á2v1ús
+áz1abl
+á2z1aj
+áz1alk
+á2z1ann
+áza2t1e2
+áza2tí
+áz1aty
+á2z1a2v
+á2z1á2l
+ázás1s
+áz1ea
+á2z1eg
+áz1e2r
+á2z1es
+áze2z
+á2z1eze
+á2z1ezré
+á2z1é2p
+áz1éve
+ázhoz1
+á2z1igá
+á2z1ing
+á2zins
+ázi2s1em
+ázis3s
+áz1izm
+áz1izo
+áz1k2
+2ázol
+á2z1o2r
+2ázos
+á2z1osz
+á2z1ö
+á2z1ő
+ázs1aj
+ázs1ár.
+ázs1árá
+ázs1árh
+á2zs1e2
+á2zsé
+ázs1é2n
+á2zsiá
+á2zs1ig
+áz3sor
+áz3spa
+áz3sug
+á2zsü
+ázs1ü2v
+á2z3sű
+2ázú
+á2z1ü2
+á1zy
1ba
-baá2
+baá2
baba1
ba2b1o2l
-ba2d1ár
+ba2d1ár
ba2del
ba2der
ba2des
ba2d1i2
ba2dot
ba2dun
-badú2
-ba2d1ús
+badú2
+ba2d1ús
bae2
bago2
2bajg
ba2k1as
-ba2k1ál
+ba2k1ál
ba2k1in
-ba1krá
+ba1krá
ba2l1a2d
ba2l1e2s
-ba2l1í2
+ba2l1í2
ba2l1ol
2bals
ban2ch
banka2
ban2kad
ban2kal
-ban2kép
+ban2kép
ban2kin
bart2
bar1th
@@ -1852,23 +1852,23 @@ ba2seb
ba1sp
ba2ue
bau2t
-1bá
-bá2bál
-bá2csü
-b1á2gú
-bá2gyu
-bákos1
-bá2lan
-2bálm
-bá2ne
-2b1á2p
-bá2r1as
-2b1á2ru
-bá2s1é
-bá2szö
-bá2t1a2
-2b1átd
-2b1átm
+1bá
+bá2bál
+bá2csü
+b1á2gú
+bá2gyu
+bákos1
+bá2lan
+2bálm
+bá2ne
+2b1á2p
+bá2r1as
+2b1á2ru
+bá2s1é
+bá2szö
+bá2t1a2
+2b1átd
+2b1átm
bb1adh
bb1adj
bb1adu
@@ -1876,35 +1876,35 @@ bb1adv
b2b1alk
bb1als
bb1ar
-b2b1ál
+b2b1ál
b2b1e2g
bb1ela
b2b1e2le
bbe2m
b2b1eme
-b2b1esé
+b2b1esé
bbes1s
-b2b1é2v
+b2b1é2v
bb1is.
-b2b1í2r
+b2b1í2r
bb1old
bb1olt
bb1olv
bb1osz
-bbó2
-bb1ór
-bbö2
-b2b1öl
-bb1ör
-bb1ös
+bbó2
+bb1ór
+bbö2
+b2b1öl
+bb1ör
+bb1ös
bb1s2
b2b1u2t
1be
bea2
beat1
-beá2r
-beá2z
-be2cs1á
+beá2r
+beá2z
+be2cs1á
be1f
be1gr
bei2d
@@ -1912,28 +1912,28 @@ bei2g
bei2s
be1k2v
be2lad
-be2lár
-bel1ér.
-be2lór
-be2l®a
-be2n1á
-ben2ná
-ben2tét
+be2lár
+bel1ér.
+be2lór
+be2lőa
+be2n1á
+ben2ná
+ben2tét
beo2
be1p2
bera2n
be2rap
be2r1ar
be2ras
-be2r1ár
+be2r1ár
be2r1e2g
-be2r1e2l®
+be2r1e2lő
be2r1eml
-ber1e2pé
+ber1e2pé
be2r1ev
be2rid
be2r1ist
-2b1e2r®
+2b1e2rő
ber1s2
be1ska
be1s2l
@@ -1942,31 +1942,31 @@ be1spr
be1sr
be1sto
beu2
-1bé
-bé2d1o
-bé2du
-bé2let
-bé2lo
-b1é2l®
-bé2lú
-bé2lyi
-2b1é2p
-bé2ran
-bé2rá
-bé2r1em
-bé2r1os
-2b1érte
-2b1érté
-bé2ru
-bé2rú
-bé2vi
+1bé
+bé2d1o
+bé2du
+bé2let
+bé2lo
+b1é2lő
+bé2lú
+bé2lyi
+2b1é2p
+bé2ran
+bé2rá
+bé2r1em
+bé2r1os
+2b1érte
+2b1érté
+bé2ru
+bé2rú
+bé2vi
1bi
bi2ed
bi1f2r
-2b1i2gáb
-2b1i2gáj
+2b1i2gáb
+2b1i2gáj
bi2k1em
-bi2kél
+bi2kél
bi1k2ro
bil1ant
bi2l1ip
@@ -1978,41 +1978,41 @@ bi2ol
bi2om
bi2or
bi2os
-2b1i2rá
+2b1i2rá
bi1sc
bi1sh
-bi2t1á2r
+bi2t1á2r
bi2tip
-bi2tü
+bi2tü
2b1i2vad
-1bí
-2b1ív
+1bí
+2b1ív
b1k2
bl2
bla1bla
bla2k1e2
bla1pr
-ble2t1ér
+ble2t1ér
ble2ti
b1lj
1b2lok
blu2
blues1
-b2lú
+b2lú
b1ly
-bmeg1á
+bmeg1á
1bo
boc1c
bo2ce
bo2c3h
bo2g1e
-bok2sz1á
+bok2sz1á
2b1olda
bolo1g2
bo2r1ad
bo2ral
bo2r1e2c
-bo2rén
+bo2rén
bo2r1is
bor1itt
bo2r1iv
@@ -2020,41 +2020,41 @@ bo2se
bos3zs
bo2t1e
bo2ul
-bo2zé
-1bó
-bó2rá
-1bö
-bö2n1
-2b1öv
-1b®
-b®2r1a
-b®2rá
-b®2reg
-b®2rel
-b®2rin
-b®2r1o
-b®2ru
-b®r1ü2l
+bo2zé
+1bó
+bó2rá
+1bö
+bö2n1
+2b1öv
+1bő
+bő2r1a
+bő2rá
+bő2reg
+bő2rel
+bő2rin
+bő2r1o
+bő2ru
+bőr1ü2l
b1p2
br2
1b2rig
-bsé2gel
+bsé2gel
bsz1t2
b1t2
1bu
2b1ujj
buk2je
-bu2n1á
-bu2sz1ál
-bu2tó
-1bú
-bú2sz
-búzás1
-1bü
-2b1üz
-1b¶
-b¶2v1e
-bvá2nyé
+bu2n1á
+bu2sz1ál
+bu2tó
+1bú
+bú2sz
+búzás1
+1bü
+2b1üz
+1bű
+bű2v1e
+bvá2nyé
bve2g
bvegy1
1by
@@ -2064,90 +2064,90 @@ by2t
2c1alk
cam1b
ca2ny
-ca2rán
-catá2
+ca2rán
+catá2
ca2tem
2c1atl
caus2
-1cá
-2c1á2g
-cá2l
-2c1áll
-cá2po
-2c1árk
-2c1á2sá
+1cá
+2c1á2g
+cá2l
+2c1áll
+cá2po
+2c1árk
+2c1á2sá
c2c1e2v
c2ch
-c2c1í2
+c2c1í2
c2cs
c3csap
c3csi
-c3csí
+c3csí
cc3sor
-ccs1ön
-c3csú
-cda2lé
+ccs1ön
+c3csú
+cda2lé
1ce
-ce2dén
+ce2dén
2c1e2dz
-ceg1ér
+ceg1ér
2c1e2gy
ce2lem
-ce2l®k
+ce2lők
ceo2
ce1ph
-2c1e2r®
+2c1e2rő
2c1eszt
2cetb
2ceton
2c1e2zer
2c1ezr
-1cé
-cé2ga
-cé2gel
-cé2g1o
-cé2lab
-cé2l1ar
-cé2l1á2
-céle2
-cé2leg
-cé2lek
-cé2lem
-cé2l1er
-cé2lip
-cé2lir
-cé2liz
-cé2lö
-cé2l®
-cé2pí
-cé2ret
-2c1é2ri
-cés3s
-c1év.
-2c1é2ven
-2c1é2ves
-2c1é2vi
+1cé
+cé2ga
+cé2gel
+cé2g1o
+cé2lab
+cé2l1ar
+cé2l1á2
+céle2
+cé2leg
+cé2lek
+cé2lem
+cé2l1er
+cé2lip
+cé2lir
+cé2liz
+cé2lö
+cé2lő
+cé2pí
+cé2ret
+2c1é2ri
+cés3s
+c1év.
+2c1é2ven
+2c1é2ves
+2c1é2vi
c2h
1cha
cha2e
-1chá
-c3ház
+1chá
+c3ház
1che
2che.
chel2
chet2t
-1ché
+1ché
1chi
-1chí
+1chí
1cho
-1chó
-1chö
-1ch®
+1chó
+1chö
+1chő
ch2ro
2chu
-2chú
-1chü
-1ch¶
+2chú
+1chü
+1chű
1ci
ci2ac
ci2af
@@ -2158,37 +2158,37 @@ ci2ap
ci2ar
ci2av
ci2az
-2c1i2d®
+2c1i2dő
ci1g2r
2cii
2cing
ci2o1g2
ci2ol
-ci2óa
-ci2óc
-ci2ófe
-ci2ófé
-ciókész1
-ci2ól
-ci2órá
-ci2óta
-2cispán.
+ci2óa
+ci2óc
+ci2ófe
+ci2ófé
+ciókész1
+ci2ól
+ci2órá
+ci2óta
+2cispán.
ci2szi
cito1
2c1izma
2c1izmo
ci2zom
-1cí
-cí2ma
-cí2mi
-2c1í2rá
-2cív
-cí2ve
-cí2zs
-cké2t1
-c2k1í
+1cí
+cí2ma
+cí2mi
+2c1í2rá
+2cív
+cí2ve
+cí2zs
+cké2t1
+c2k1í
ck1o2pe
-ck2ré
+ck2ré
ck2ri
1c2ky
1co
@@ -2196,19 +2196,19 @@ co2lig
com2biz
co2o
2cori
-2cország.
+2cország.
2c1osz
co2u
-1có
-1cö
-c1ö2le
-c1öln
-cö2t
-c1ötb
-c1öt1e
-c1öté
-c1ötö
-1c®
+1có
+1cö
+c1ö2le
+c1öln
+cö2t
+c1ötb
+c1öt1e
+c1öté
+c1ötö
+1cő
c1p2
c2s
1csa
@@ -2217,22 +2217,22 @@ cs1abl
cs1ass
csa2sz
3csat
-1csá
-2cság
-c3ság.
-cs1ágú
-2cs1ásá
-2csásó
-2csátí
+1csá
+2cság
+c3ság.
+cs1ágú
+2cs1ásá
+2csásó
+2csátí
1cse
2cselc
-2csev®
-1csé
-2c3ség
+2csevő
+1csé
+2c3ség
1csi
2cs1ita
-1csí
-cs1í2v
+1csí
+cs1í2v
cs1k
1cso
2csolaj
@@ -2240,98 +2240,98 @@ cs1k
3csop
2cs1orr
c3sorv
-1csó
-1csö
-2csönte
-1cs®
+1csó
+1csö
+2csönte
+1cső
cs1p2
cs3s
cs1t2
-c3s2tí
+c3s2tí
1csu
-1csú
-1csü
-cs1üll
-cs1ü2té
-c3süv
-2csüz
-1cs¶
+1csú
+1csü
+cs1üll
+cs1ü2té
+c3süv
+2csüz
+1csű
c3sza
-c3száz.
+c3száz.
c3szem
c3szes
-c3szí
+c3szí
c3szo
-c3szö
-c3sz®
+c3szö
+c3sző
cs3zs
ct2
c1tr
1cu
2c1utc
-1cú
-1cü
-2c1üg
-c1ünn
-2c1ü2r
-2c1ü2v
-1c¶
+1cú
+1cü
+2c1üg
+c1ünn
+2c1ü2r
+2c1ü2v
+1cű
1cy
c2z
1cza
-1czá
+1czá
1cze
2c3zen
-cze2ö
-1czé
+cze2ö
+1czé
1czi
-1czí
+1czí
1czo
-1czó
-1czö
-1cz®
+1czó
+1czö
+1cző
c3zs
1czu
-1czú
-1czü
-1cz¶
+1czú
+1czü
+1czű
1czy
1da
-daá2
+daá2
2d1abl
2d1add
-2d1a2dó
+2d1a2dó
dae2
da1g2ro
-da2hán
+da2hán
dai2g
da2lab
da2l1aj
da2lat
-da2lág
+da2lág
da2l1e2l
da2l1im
dal1l
da2l1or
-da2l1ó2r
+da2l1ó2r
da2ma.
da2maz
da2mel
2d1ann
-da2nyá
-daó2
+da2nyá
+daó2
2d1a2pa.
2dapai
2dapak
-da2pák
-da2pát
+da2pák
+da2pát
da1p2f
da1p2l
-da2pó
+da2pó
dar2c3h
dar2cso
da2rel
-da2r1é
+da2r1é
da1spe
dast2
da1str
@@ -2339,44 +2339,44 @@ da1str
da2t1ag
dat1ala
dat1alk
-dat1áll
+dat1áll
2datc
da2t1eg
da2t1em
-da2téh
-da2t1és
+da2téh
+da2t1és
da2t1in
da2top
-da2tút
+da2tút
2d1a2ty
-da2z1á
-da2zé
-1dá
-dáb2
-2dá2g
-2d1állá
-dá2n1iz
-dára2
-dá2r1ag
-dá2ral
-dá2ras
-dá2r1e2
-dá2rij
-dá2rit
-2d1á2ru
-dá2sal
-dá2se
-dást2
-dá2sü
-dá2sz1al
-dá2sz1ál
-dá2szár
-dá2sz1e
-dá2sz1ö
-d1átm
-dá2z1ak
-dá2zs
-dáz3sá
+da2z1á
+da2zé
+1dá
+dáb2
+2dá2g
+2d1állá
+dá2n1iz
+dára2
+dá2r1ag
+dá2ral
+dá2ras
+dá2r1e2
+dá2rij
+dá2rit
+2d1á2ru
+dá2sal
+dá2se
+dást2
+dá2sü
+dá2sz1al
+dá2sz1ál
+dá2szár
+dá2sz1e
+dá2sz1ö
+d1átm
+dá2z1ak
+dá2zs
+dáz3sá
dd1elh
d2d1i2d
d2d1o2d
@@ -2387,14 +2387,14 @@ de2at
2d1eff
de1f2r
de2g1al
-de2g1ál
+de2g1ál
de2g1el
de2g1em
deg3g
de2gin
de2g1o
-de2g1ö2
-de2g®
+de2g1ö2
+de2gő
2degy
de2gye
de2gyi
@@ -2402,20 +2402,20 @@ de2isz
de2k1a2r
de2k1e2g
de2k1ell
-dek1érv
-2dekö
-de2köz
-dele2já
+dek1érv
+2dekö
+de2köz
+dele2já
dele2meg
2d1e2lemz
del2lal
-dellé2
-del2l1én
-de2l®a
+dellé2
+del2l1én
+de2lőa
d1elz
-de2m1é2rem
-de2m1érm
-de2mú
+de2m1é2rem
+de2m1érm
+de2mú
de2n1e2g
de2n1ese
de2nol
@@ -2428,73 +2428,73 @@ de2os
de2ot
de1pra
de1p2re
-de2r1áz
+de2r1áz
der1osz
-de2rö
-2d1e2r®
+de2rö
+2d1e2rő
de2r1u2
de2s1a2
-de2sá
-de2s1ér
+de2sá
+de2s1ér
de2su
-de2s1ú2
-2d1e2sz¶
-det1é2ré
+de2s1ú2
+2d1e2szű
+det1é2ré
2deza
-de2zér
+de2zér
dezi2
de2zid
de2zil
de2zin
de2zor
-1dé
-dé2da
-dé2d1®
-dé2du
-dé2d1ü
-dé1f2
-dé2gá
-dég3g
-dé2go
-dé2hes
-2d1éhs
-2d1éjs
-dé2k1a2n
-dé2l1a2
-dé2l1e2l
-dé2l1es
-dé2lir
-dé2lo
-dé2lu
-dé2lyá
-2d1é2pí
-dé2raj
-dé2rar
-2d1érté
-2dért®
-dé2sa
-dé2s1el
-dé2s1o
-dé2sö
-dé2sza
-dé2ti
-dét1is
-dé2tu
-2d1év.
-2d1é2vei
-2d1é2vek
-2d1é2ven
-2d1é2ves
-2d1é2vet
-2dévér
-2d1é2vi
+1dé
+dé2da
+dé2d1ő
+dé2du
+dé2d1ü
+dé1f2
+dé2gá
+dég3g
+dé2go
+dé2hes
+2d1éhs
+2d1éjs
+dé2k1a2n
+dé2l1a2
+dé2l1e2l
+dé2l1es
+dé2lir
+dé2lo
+dé2lu
+dé2lyá
+2d1é2pí
+dé2raj
+dé2rar
+2d1érté
+2dértő
+dé2sa
+dé2s1el
+dé2s1o
+dé2sö
+dé2sza
+dé2ti
+dét1is
+dé2tu
+2d1év.
+2d1é2vei
+2d1é2vek
+2d1é2ven
+2d1é2ves
+2d1é2vet
+2dévér
+2d1é2vi
d1f2
dg2
-dgá2z
+dgá2z
d1gr
1di
di2ac
-dia2dó
+dia2dó
di2afo
di2ah
di2ain
@@ -2504,107 +2504,107 @@ di2ap
dia1szk
di2at
di2av
-2d1i2d®
+2d1i2dő
die2s
di1fl
digaz1
-di2gén
-di2gér
-2d1i2gét
+di2gén
+di2gér
+2d1i2gét
di1k2ro
di2k1u2ta
2d1ind
di2ol
-di2óa
-di2óc
-di2ófe
-di2ósz
+di2óa
+di2óc
+di2ófe
+di2ósz
2d1i2rod
2d1irt
2d1iste
-2d1i2zü
-1dí
-dí2j1al
-dí2ji
-2d1ín.
-2d1í2rá
-d1írn
-dí2ró
-2díz
-dí2zi
+2d1i2zü
+1dí
+dí2j1al
+dí2ji
+2d1ín.
+2d1í2rá
+d1írn
+dí2ró
+2díz
+dí2zi
d2j1i
dk2
-dkész1
+dkész1
d1kr
-dlás1s
-dl®1k2
-dme2g1é
+dlás1s
+dlő1k2
+dme2g1é
1do
-2dodú
+2dodú
doe2
doge2
-do2k1ú
+do2k1ú
do2laj
2d1oml
do2n1e
-do2név
+do2név
do1p2h
do2re
-do2r1é2
+do2r1é2
do2rip
do2ris
do1sz2k
2doszt
-1dó
-dóa2
-dóel1
-dó1p2
-dó2sem
-2dósl
-dó2só
-2d1ó2vó
-1dö
-döke2
-dö2k1er
-dö2kí
-dö2le
-2d1ö2v
-1d®
-d®a2
-d®1d2r
-d®e2r
-d®é2
-d®i2rá
-2d®ra
-2d1®rb
-2d1®rez
-2d1®rf
-2d1®rh
-2d1®2rig
-2d®ril
-2d1®rj
-2d1®rk
-2d1®rm
-2d®rö
-d®2rök
-d®2rön
-2d®r®r
-2d1®rr
-2d1®r1s
-2d1®rt
-2d1®rv
-d®1ská
-d®1s2p
-d®2tál
-d®1tr
-d®u2
+1dó
+dóa2
+dóel1
+dó1p2
+dó2sem
+2dósl
+dó2só
+2d1ó2vó
+1dö
+döke2
+dö2k1er
+dö2kí
+dö2le
+2d1ö2v
+1dő
+dőa2
+dő1d2r
+dőe2r
+dőé2
+dői2rá
+2dőra
+2d1Å‘rb
+2d1Å‘rez
+2d1Å‘rf
+2d1Å‘rh
+2d1Å‘2rig
+2dőril
+2d1Å‘rj
+2d1Å‘rk
+2d1Å‘rm
+2dőrö
+dő2rök
+dő2rön
+2dőrőr
+2d1Å‘rr
+2d1Å‘r1s
+2d1Å‘rt
+2d1Å‘rv
+dő1ská
+dő1s2p
+dő2tál
+dő1tr
+dőu2
d1p2
-1d2rám
+1d2rám
dri2t1
drog2r
drop2
1d2ruk
-dsé2gi
+dsé2gi
d1s2p
d1s2t2
dsuhanc1
@@ -2612,65 +2612,65 @@ d2tarc
1du
du2c3h
du2gal
-du2g1ár
+du2g1ár
2d1u2no
2d1unt
du2se
dus3s
du2ta
-du2tá
-1dú
-dú2cs
-dú2to
-1dü
-2d1ü2g
-2d1ü2z
-1d¶
-2d1¶2z
+du2tá
+1dú
+dú2cs
+dú2to
+1dü
+2d1ü2g
+2d1ü2z
+1dű
+2d1ű2z
dv1or
dy1a
1dyk
d2z
1dza
-1dzá
-d3zár
+1dzá
+d3zár
1dze
-1dzé
+1dzé
1dzi
-1dzí
+1dzí
1dzo
-1dzó
-1dzö
-2d3zöld.
-1dz®
-2dz®j
-2dz®s
+1dzó
+1dzö
+2d3zöld.
+1dző
+2dzőj
+2dzős
1dzsa
-1dzsá
+1dzsá
1dzse
-1dzsé
+1dzsé
1dzsi
-1dzsí
+1dzsí
1dzso
-1dzsó
-1dzsö
-1dzs®
+1dzsó
+1dzsö
+1dzső
1dzsu
-1dzsú
-1dzsü
-1dzs¶
+1dzsú
+1dzsü
+1dzsű
1dzu
-1dzú
-1dzü
-1dz¶
+1dzú
+1dzü
+1dzű
2e.
e1a
e2ac
ea2da
-ea2dá
+ea2dá
e2adi
ea2do
-ea2dó
+ea2dó
ea2du
e2aga
e2ah
@@ -2679,7 +2679,7 @@ ea2j
e2aki
e2ako
ea2la
-ea2lá
+ea2lá
e2ale
ea2p
e2ar.
@@ -2692,54 +2692,54 @@ e2atl
e2ato
e2au
ea2z
-e1á
-eá2bé
-eá2cs
-eá2f
-eá2g
-eá2ke
-eá2lár
-e2ále
-eá2l1é
-eálu2
-e2ámu
-eá2nyal
-eá2nyan
-eá2nyas
-eá2nye
-eá2sa
-eá2se
-eá2so
-e2áte
-e2áté
-e2átö
+e1á
+eá2bé
+eá2cs
+eá2f
+eá2g
+eá2ke
+eá2lár
+e2ále
+eá2l1é
+eálu2
+e2ámu
+eá2nyal
+eá2nyan
+eá2nyas
+eá2nye
+eá2sa
+eá2se
+eá2so
+e2áte
+e2áté
+e2átö
eb1a2d
e2b1ajk
eb1atl
-1e2béd
+1e2béd
eb1ing
e1b2lo
-eb1ó2r
-ec1á2r
+eb1ó2r
+ec1á2r
2ecento
ece2ti
-ecés1
+ecés1
ec3hez
-ecs1ért
+ecs1ért
edeles1
ede2ri
-edé2lyo
-1e2dény
-edés3s
+edé2lyo
+1e2dény
+edés3s
2edi
edi2g
e2d1iga
-edi2ó
+edi2ó
ed1iro
-ed1ír
-ed1íz
+ed1ír
+ed1íz
ed1orv
-e1d2ró
+e1d2ró
edu2r
e1dy
e1e
@@ -2754,17 +2754,17 @@ ee2m
e2ene
ee2r
ee2se
-ee2sé
+ee2sé
ee2si
-ee2s®.
-ee2s®n
-ee2sü
+ee2ső.
+ee2sőn
+ee2sü
ee2sz
ee2tet
e2e1th
ee2v
-e1é2
-e2gabá
+e1é2
+e2gabá
eg1abr
e2g1a2d
e2g1a2g
@@ -2772,7 +2772,7 @@ e2g1a2j
e2g1a2k
ega2lac
ega2lak
-e2g1a2lá
+e2g1a2lá
e2g1alt
e2g1alu
e2g1alv
@@ -2786,55 +2786,55 @@ e3gat
e2g1au
e2g1a2v
e3gaz
-eg1á2cs
-e2g1ág
-eg1áld
-eg1álm
-e2g1á2r
-e2g1á2s
-eg1áta
-eg1átk
-eg1átl
-eg1á2zi
-eg1ázt
+eg1á2cs
+e2g1ág
+eg1áld
+eg1álm
+e2g1á2r
+e2g1á2s
+eg1áta
+eg1átk
+eg1átl
+eg1á2zi
+eg1ázt
e2g1e2g
e2g1eh
e2g1ej
ege2lem
-ege2léb
+ege2léb
e2g1ell
-e3g2el®i
+e3g2elői
e2g1els
-eg1emé
+eg1emé
e3gend
e2gerd
e2g1esh
eg1essz
eg1e2sze
e2g1e2tet.
-e2g1é2g
-egé2k
-eg1éke
-e2g1é2le
-eg1é2lü
-egé2nyel
-e2g1épí
-eg1épü
-e2gér.
-eg1érd
-egé2ret
-eg1érj
-1egészs
+e2g1é2g
+egé2k
+eg1éke
+e2g1é2le
+eg1é2lü
+egé2nyel
+e2g1épí
+eg1épü
+e2gér.
+eg1érd
+egé2ret
+eg1érj
+1egészs
eg3gya
-eg3gyás
+eg3gyás
eg3gyen
eg3gyo
-eg3gyú
+eg3gyú
e2g1if
egi2g
e2g1iga
e2g1ige
-e2g1igé
+e2g1igé
eg1iha
e2g1ij
eg1ill
@@ -2848,12 +2848,12 @@ eg1iszi
eg1iszo
e2g1ita
e2g1itta.
-e2g1ittá
+e2g1ittá
egius1
-eg1ivá
+eg1ivá
eg1izg
eg1izm
-eg1ír
+eg1ír
eg1o2d
eg1o2k
eg1ola
@@ -2861,65 +2861,65 @@ e3gom
eg1op
e3goro
e2g1os
-eg1órá
-e2góv
-eg1öb
-eg1ök
-eg1öz
-e1g2ráf
+eg1órá
+e2góv
+eg1öb
+eg1ök
+eg1öz
+e1g2ráf
eg1ug
eg1un
eg1u2ra
eg1u2t
eg1u2z
-e2g1ú2
-egü2g
-eg1ü2li
-eg1ür
-eg1üz
+e2g1ú2
+egü2g
+eg1ü2li
+eg1ür
+eg1üz
egy1a2d
egya2r
egy1as
egy1a2t
egy1az
-egy1ál
-egy1ára
+egy1ál
+egy1ára
egy1ell
1e2gyenl
egyes1s
egy1eszt
-egyköz1
+egyköz1
egyo2
egy1ol
egy1om
-egy1ór
-egy1öl
-egy1ös
-egy1®r
-e2gyür
-1együt
-ehé2ra
-ehé2z1
+egy1ór
+egy1öl
+egy1ös
+egy1Å‘r
+e2gyür
+1együt
+ehé2ra
+ehé2z1
1ehh
e2h1ors
eh1s
e1i
e2ia
-e2iá
+e2iá
e2ibu
e2ic
-e2idá
+e2idá
eido1
-ei2d®
+ei2dő
e2ier
e2if
-ei2gá
-ei2gé
+ei2gá
+ei2gé
ei2gy
ei2ha
ei2j
e2ima
-ei2má
+ei2má
e2ini
e2inr
eins2
@@ -2928,19 +2928,19 @@ ei2pa
ei2ram
ei2rat
ei2rod
-e2iró
+e2iró
ei2ta
e2ito
e2itu
-ei2vó
-e1í2
+ei2vó
+e1í2
ej1a2d
ej1al
-ej1ál
+ej1ál
ejes1s
-ejé2k
-e2j1ék.
-e2j1éke
+ejé2k
+e2j1ék.
+e2j1éke
e2j1in
ej1kr
ej1ol
@@ -2951,48 +2951,48 @@ ej2tak
ej2tal
ej2t1an
ej2tau
-ej2tál
-ej2tár
-ej2tát
+ej2tál
+ej2tár
+ej2tát
ej2tos
-e2j1ú2
-ek1a2dó
+e2j1ú2
+ek1a2dó
e2k1aj
e2k1alj
-ek1áll
-ek1ár.
-e2k1e2l®t
-ek1é2le
-ek1épí
-e2k1éss
-e2k1é2te
+ek1áll
+ek1ár.
+e2k1e2lőt
+ek1é2le
+ek1épí
+e2k1éss
+e2k1é2te
ekie2
ek1ist
e2kod
ek1orv
-ekö2l
-ek1ölé
-ek1öl®
-ek1®r
+ekö2l
+ek1ölé
+ek1ölő
+ek1Å‘r
ek2rit
ek2tal
-ek1út
-e2k1üt
+ek1út
+e2k1üt
ek2vit
el1ad.
el1a2da
-el1a2dá
+el1a2dá
el1add
el1adh
el1adj
el1adn
-el1a2dó
+el1a2dó
el1adt
el1adv
el1agg
el1a2gy
ela2j
-el1ajá
+el1ajá
el1akc
e2l1a2l
ela2m
@@ -3001,36 +3001,36 @@ el1ann
el1a2ny
el1a2pa
el1apr
-el1aszá
+el1aszá
e2l1a2u
el1a2v
-el1ács
-e2l1á2g
-el1áj
-el1áll
-el1álm
-el1á2m
-el1á2p
-el1ár.
-el1ára
-el1árb
-el1árn
-el1á2ro
-1eláru
-el1árv
-elá2s
-el1ás.
-el1ása
-el1ásn
-el1áso
-el1ást
-el1ásv
-el1áta
-el1átk
-el1átr
-el1ázi
-el1ázo
-el1ázv
+el1ács
+e2l1á2g
+el1áj
+el1áll
+el1álm
+el1á2m
+el1á2p
+el1ár.
+el1ára
+el1árb
+el1árn
+el1á2ro
+1eláru
+el1árv
+elá2s
+el1ás.
+el1ása
+el1ásn
+el1áso
+el1ást
+el1ásv
+el1áta
+el1átk
+el1átr
+el1ázi
+el1ázo
+el1ázv
eld2
el1dr
el1ebl
@@ -3047,47 +3047,47 @@ e2leme.
1e2lemek
elem1ell
1e2lemez
-ele2m1érté
-el1e2més
+ele2m1érté
+el1e2més
1e2lemi.
-1e2lem¶
-1e2lemzé
-1e2lemz®
+1e2lemű
+1e2lemzé
+1e2lemző
ele2res
el1erj
el1erk
el1ern
-e2l1e2r®
+e2l1e2rő
ele2s1a
ele2sem
el1esh
ele2sik.
eles3s
ele2tele
-el1é2ges
-el1é2get
-eléka2
-el1é2kel
-el1él.
-elé2lek
-el1é2lé
-el1élh
-el1élj
-el1éln
-el1élt
-el1élv
-el1érc
-elé2rem
-elé2ren
-e2l1é2rez
-1e2l1éré
-e2l1érh
-el1é2ri
-e2l1érj
-e2l1érk
-e2l1érn
-el1érs
-e2l1érü
+el1é2ges
+el1é2get
+eléka2
+el1é2kel
+el1él.
+elé2lek
+el1é2lé
+el1élh
+el1élj
+el1éln
+el1élt
+el1élv
+el1érc
+elé2rem
+elé2ren
+e2l1é2rez
+1e2l1éré
+e2l1érh
+el1é2ri
+e2l1érj
+e2l1érk
+e2l1érn
+el1érs
+e2l1érü
el1f2
el1iga
e2l1ige
@@ -3099,22 +3099,22 @@ e2l1ing
elin1n
elio1
eli2os
-el1ivá
+el1ivá
1e2lix
el1izm
-e2l1ín
-el1ír.
-el1íra
-el1í2rá
-e2l1í2v
+e2l1ín
+el1ír.
+el1íra
+el1í2rá
+e2l1í2v
2elj.
el1k2
ell1alk
-1ellátásü
+1ellátásü
1ellens
ellu2s
-1elmél
-2elné
+1elmél
+2elné
e2l1o2l
el1oml
el1orc
@@ -3123,27 +3123,27 @@ elo2s
el1oso
el1oss
el1ox
-el1ó2ri
-el1öm
-el1ön
-el1ör
-el1ö2z
-1e2l®ad
-2el®bé
-1el®d.
-2el®in
-2el®it
-2el®kh
-2el®kk
-2el®kö
-2el®kr
-2el®ne
-1e2l®®
-2el®r
-2el®t.
-2el®ter
-e2l®tet
-1el®vés
+el1ó2ri
+el1öm
+el1ön
+el1ör
+el1ö2z
+1e2lőad
+2előbé
+1előd.
+2előin
+2előit
+2előkh
+2előkk
+2előkö
+2előkr
+2előne
+1e2lőő
+2előr
+2előt.
+2előter
+e2lőtet
+1elővés
el1ph
el1p2l
el1pra
@@ -3152,30 +3152,30 @@ el1st
2eltes
2eltet.
2eltete
-2elteté
+2elteté
2elteti
2eltetn
-el2töv
+el2töv
el1u2r
el1u2s
el1u2t
-el1ús
-el1üd
-el1üs
-e2l1üt
+el1ús
+el1üd
+el1üs
+e2l1üt
el2val
el2v1at
-el2v1ó2
+el2v1ó2
e2ly1a2
-e2ly1á2
+e2ly1á2
e2lyel
elyes1s
e2ly1o
-e2lyö
-ely2tál
+e2lyö
+ely2tál
e2m1ab
em1a2da
-em1a2dó
+em1a2dó
em1adt
ema2j
em1aja
@@ -3186,12 +3186,12 @@ em1arc
e2m1ass
em1atl
e2m1av
-e2m1áb
-em1ár.
-e2m1árn
-e2m1átl
+e2m1áb
+em1ár.
+e2m1árn
+e2m1átl
1emberr
-1embó
+1embó
eme2c
emec3h
1emeled
@@ -3200,129 +3200,129 @@ emec3h
e2m1elm
e2m1e2l1o
em1e2res
-e2m1e2r®
+e2m1e2rő
em1ers
-e2m1é2j
-emé2lete
-1e2méss
+e2m1é2j
+emé2lete
+1e2méss
e2mid
e2m1im
e2m1ip
-e2mirá
-e2mír
+e2mirá
+e2mír
2emo
em1old
e2m1orv
-em1ó2ra
-em1ös
+em1ó2ra
+em1ös
em1ph
em1s
1e2mu.
em1ur
-em1üg
-em1ür
-em1¶z
+em1üg
+em1ür
+em1űz
e2n1a2j
e2n1ak
e2n1a2n
en1ar
en1as
e2n1a2u
-e2n1áb
-en1áll
-e2n1ár.
-e2n1ára
-en1á2ro
-en1ázt
+e2n1áb
+en1áll
+e2n1ár.
+e2n1ára
+en1á2ro
+en1ázt
en2c3h
enci2ah
enc3sze
en2d1ell
en2dza
en1elm
-e2n1emé
+e2n1emé
ene1p2
-2enerá
+2enerá
1e2nerg
ene2t1o
e2n1eze
-e2n1é2ra
-engés3s
+e2n1é2ra
+engés3s
eng1g
2eni
eni2g
-en1igé
+en1igé
e2n1ip
en1ira
e2n1ism
-e2n1ív
-enké2t
+e2n1ív
+enké2t
en1k2r
-en2nül
+en2nül
en1old
-en1ó2r
-en1öl
-e2n1ö2t
+en1ó2r
+en1öl
+e2n1ö2t
ensas3
en2sel
en1ste
ent1a2ny
entes1s
en2tev
-ent1ért
+ent1ért
en1uc
en1ud
enu2t
-e2n1ú
+e2n1ú
2enw
e2ny1ag
en3ya2n
eny1as
e2nyau
enyeres1
-e2ny1ó2
+e2ny1ó2
eny1us
en2zed
e1o
e2oc
eo2da
e2odi
-eo1g2rá
+eo1g2rá
e2oh
e2oka
e2o1k2l
e2oko
eo1k2r
eo2ly
-e2omé
+e2omé
eona2
eo2n1ar
-e2oná
+e2oná
eont2
eon1tr
eo1p2
eo2pe
-eorgi2á
+eorgi2á
e2os.
eo2so
eosz2f
e2ov
e2oz
-e1ó
-e2óf
-e2óm
-e1ö
-eö2l
-eö2m
-eö2v
-eö2z
-e1®2
+e1ó
+e2óf
+e2óm
+e1ö
+eö2l
+eö2m
+eö2v
+eö2z
+e1Å‘2
epa2d
ep1ado
ep1aka
ep1a2la
ep1asz
-e2p1ág
+e2p1ág
ep1elo
e2perf
ep2ha
@@ -3344,7 +3344,7 @@ er1alk
er1ana
er1ann
er1a2pa
-er1apá
+er1apá
era2r
er1ara
er1ass
@@ -3353,26 +3353,26 @@ e2r1a2u
e2r1a2v
e2ra2z
er1azo
-er1á2gy
-e2ráld
-e2r1áll
-er1ár.
-erá2rak
-er1árb
-e2r1árf
-er1árk
-er1árn
-er1á2ro
-er1árr
-er1árt
-er1á2ru
-er1áta
-er2cél
+er1á2gy
+e2ráld
+e2r1áll
+er1ár.
+erá2rak
+er1árb
+e2r1árf
+er1árk
+er1árn
+er1á2ro
+er1árr
+er1árt
+er1á2ru
+er1áta
+er2cél
er2c3h
-1erd®
+1erdő
1e2redm
-ere2gá
-1erejü
+ere2gá
+1erejü
ere2kar
erekes3s
ere2ko
@@ -3383,9 +3383,9 @@ e2remu
ere2tel
ere2vel
e2r1ex
-erés3sze
-e2r1év.
-eré2zé
+erés3sze
+e2r1év.
+eré2zé
er1gl
er1ide
e2r1iga
@@ -3396,97 +3396,97 @@ er1i2sza
eri1szk
er1izo
er1izz
-er1íj
-e2r1íz
+er1íj
+e2r1íz
er1kr
-1erny®
+1ernyő
ero1g2r
ero1t2r
er1o2xi
-e2r1ó2r
-e2r1ö2k
-e2r1ö2l
-er1ön
-er1ös
-e2r1ö2t
-er1ö2z
-1e2r®m¶
-1er®sít®.
-1er®sít®r
-1er®szakol.
+e2r1ó2r
+e2r1ö2k
+e2r1ö2l
+er1ön
+er1ös
+e2r1ö2t
+er1ö2z
+1e2rőmű
+1erősítő.
+1erősítőr
+1erőszakol.
er1pl
erro1k2
er2s1a2d
er2san
er2sar
er2s1ol
-er2s1ö
+er2s1ö
er1str
-er2sú
+er2sú
er2t1any
erta2r
ert1ara
2erte
-ertés3s
+ertés3s
e2r1ur
-e2r1ü2g
+e2r1ü2g
er2vos
e2s1ac
es1a2n
esa2p
e2s1as
-es1áb
-es1á2g
-e2s1ál
+es1áb
+es1á2g
+e2s1ál
es2co
-e2s1ekkén
+e2s1ekkén
e2s1elm
e2s1emb
-1esemé
+1esemé
e2s1ina
es1i2pa
es1ita
-es1í2rá
+es1í2rá
es1k
es2kat
-1eskü
+1eskü
e1s2lat
-es2már
+es2már
es1ol
e2s1os
-e2s®c
-e2s®e
-es3szö
+e2sőc
+e2sőe
+es3szö
esta2l
est1ala
-es2t1áll
-es2t1á2p
+es2t1áll
+es2t1á2p
es2tim
-es2tí
+es2tí
es2top
-es2t®r
-es1trá
+es2tőr
+es1trá
e1s2tu
-es2tú
-es1ú2s
-es1út
-es1ü2ve
+es2tú
+es1ú2s
+es1út
+es1ü2ve
e1sy
es3zac
e2sz1ad
-esza2ké
-e2szárp
+esza2ké
+e2szárp
e2szev
-e2szég
-esz1é2les
+e2szég
+esz1é2les
esz1iz
-e1sz2kó
+e1sz2kó
es3zse
eszta2
esz2t1al
esz2t1an
-esz2tár
-esz2t1ö
+esz2tár
+esz2t1ö
e2t1a2d
eta1g2r
e2t1aj
@@ -3495,66 +3495,66 @@ et1a2la
et1alk
e2t1ant
eta2nya
-eta2nyá
-et1a2rá
+eta2nyá
+et1a2rá
etas2
et1ass
-et1ág.
-et1á2ga
-et1ágn
-et1áll
-etá2ru
-e2t1á2t1a
-et1átl
-eteá2
+et1ág.
+et1á2ga
+et1ágn
+et1áll
+etá2ru
+e2t1á2t1a
+et1átl
+eteá2
ete2l1eg
-ete2ná
+ete2ná
e2t1ene
-ete2szá
-eté2ká
-eté2kel
-eté2ko
-e2t1érté
-e2t1érz
-etés3s
-eté2t1é
-et1év.
-et1é2vet
-et1é2véb
-et1é2vét
-et1évh
+ete2szá
+eté2ká
+eté2kel
+eté2ko
+e2t1érté
+e2t1érz
+etés3s
+eté2t1é
+et1év.
+et1é2vet
+et1é2véb
+et1é2vét
+et1évh
e2t1i2d
eti2g
e2t1iga
-e2t1igé
+e2t1igé
e2t1ill
e2tim
et1inf
e2t1iri
e2t1iro
-et1írá
-et1í2v
+et1írá
+et1í2v
et1okm
et1okt
eto2na
-e2t1ös
-et1®r.
-et1®2ri
-et1®rn
-et1®2rö
-et1®rs
+e2t1ös
+et1Å‘r.
+et1Å‘2ri
+et1Å‘rn
+et1ő2rö
+et1Å‘rs
e1t2raf
-et2sz1ék
-et2tel®
+et2sz1ék
+et2telő
e2t1ug
e2t1u2n
et1u2r
e2t1u2t
-et1új
-e2t1út
-e2t1üd
-e2t1üld
-e2t1üt
+et1új
+e2t1út
+e2t1üd
+e2t1üld
+e2t1üt
et3ya
e2ty1o
2etz
@@ -3566,15 +3566,15 @@ e2ume
eumi2
eu2miv
e2uras
-e2urá
-eu2r1á2z
-e1ú2
-e1ü2
-e1¶
-evéle2
-evé2l1el
+e2urá
+eu2r1á2z
+e1ú2
+e1ü2
+e1ű
+evéle2
+evé2l1el
ex1io
-e2x1í2
+e2x1í2
1expe
1expo
e1ye
@@ -3582,7 +3582,7 @@ ez1a2d
e2z1ak
1e2z1a2l
e2z1az
-ez1ál
+ez1ál
ez1egy
e2zer.
eze2ra
@@ -3591,8 +3591,8 @@ eze2reg
eze2r1o
eze2ta
eze2t1el
-ezé2rem
-ez1idá
+ezé2rem
+ez1idá
ez1ill
ez1inf
ez1int
@@ -3600,9 +3600,9 @@ e2z1i2p
ez1ir
ezo1k2
ez1org
-ez1ó2t
-ez1ön
-ez®kész1
+ez1ó2t
+ez1ön
+ezőkész1
1ezred
1ezrei.
1ezreir
@@ -3612,691 +3612,691 @@ ez®kész1
1ezrel
1ezres
1ezret
-e2z3sé
+e2z3sé
ez3sor
ez1ut
-ez1út
-1ezüs
-2é.
-é1a2
-é1á2
-éb2bá
-é2b1ir
-é2c1a
-é1ch
-é2c3so
-éc3sz
-é2d1ab
-é2d1a2c
-éd1ad
-é2d1ak
-éd1a2la
-é2d1a2n
-éd1a2p
-é2d1as
-éd1ág
-é2d1e2g
-éde2leme
-é2d1els
-é2d1eml
-é2derb
-é2derek
-é2deré
-é2dern
-é2derr
-é2dert
-é2desí
-édes3s
-é2d1él
-éd1ért®
-éd1érv
-édi2a1s
-édiasz2
-é2d1i2g
-é2d1in
-é2d1ír
-édna2
-é2d1or
-éd1ut
-éd3za
-éd3zá
-é1e2
-éesz1
-é1é
-2éf
-é2g1ab
-éga2d
-ég1a2g
-é2g1aj
-é2g1a2k
-ég1a2l
-ég1a2z
-ég1á2g
-ég1ál
-é2g1ára
-é2g1elb
-ége2lem
-é2g1elg
-é2g1ell
-é2g1elm
-é2g1e2l®
-égel®i2
-é2g1els
-ége2n
-é2g1eny
-ége2r1ü
-1é2gesd
-1é2geti
-1é2getn
-é2g1é2g
-é2g1é2l
-é2g1ép
-é2g1éri
-ég1érte
-ég1érté
-ég1érv
-é2g1id
-égi2g
-égig1a
-égigé2
-ég1ill
-é2g1ing
-ég1int
-ég1ír
-ég1o2l
-ég1ot
-ég1ó2r
-é2g1ö
-1é2g®
-ég1u2t
-é2g1ú2
-ég1ü2g
-ég1ür
-é2gy1eg
-é2gyele
-é2gy1em
-é2gy1esz
-é2gyeze
-é2gy1ér
-é2gy1év
-é2gy1o
-é2gy1ó2
-é2gy1ö2
-égyszáz1
-égyszín1
-é2gyu
-égyü2
-é2gy1ül
-é2heze
-é2hezi
-é2hezt
-éh1ín
-é1i
-éi2ro
-é1í2
-éj1a2d
-éj1e2g
-é2ji
-éj1it
-é2k1ab
-ék1acé
-é2k1a2d
-é2k1a2g
-é2k1a2j
-ék1a2la
-ék1alj
-ék1alk
-ék1ana
-éka2nya
-é2k1a2r
-ék1á2f
-é2k1ál
-é2k1árb
-é2k1á2ru
-é2k1áta
-é2k1elm
-é2k1elo
-é2k1e2mel
-ék1eng
-éke2nya
-ékes3s
-ék1ég
-éké2p
-ék1épí
-ék1épü
-ék1ér.
-é2k1é2rem
-ék1érl
-é2k1érte
-é2k1érté
-é2k1érz
-é2k1i2d
-ék1ing
-ék1int
-é2k1i2p
-éki2r
-ék1ira
-ék1ism
-ék1ír
-ék1íz
-ék1k2
-é2k1or
-é2k1osz
-é2k1ös
-é2k1®2
-ék1t2
-é2k1ud
-é2k1u2t
-ék1út
-é2k1ünn
-é2k1ür
-é2k1üz
-él1abl
-él1akn
-é2l1a2l
-é2l1a2u
-él1áj
-él1á2l
-é2l1árk
-é2látf
-éld2
-él1dr
-é2lebé
-él1e2gy
-éle2k1a
-éle2ker
-éle2kö
-é2l1emb
-é2leme
-é2l1emp
-é2l1enn
-éle2sa
-éle2sz
-éle2ta
-éle2t1á2
-éle2t1e2l
-élet1érd
-éle2t1é2ve.
-éle2t1ö2
-é2l1é2d
-é2l1é2l
-él1é2ret
-él1é2vet
-él1é2vi
-él1f2
-é2l1i2d
-é2l1iga
-éligaz1
-éli2gá
-é2l1i2m
-é2l1in
-él1i2pa
-él1irá
-é2l1í2
-él1k2
-é2l1o2l
-él1op
-é2l1o2r
-él1ó2r
-élö2
-él1ök
-él1öl
-él1ön
-él®e2
-él®kész1
-él1®z
-él1p2
-éls2
-él1st
-él2t1e2v
-él1t2r
-él1ug
-él1uj
-él1u2t
-él1út
-é2l1üt
-ély1á2l
-ély1egy
-élye2n1
-é2lyil
-é2ly1in
-é2lyüt
-é2male
-ém1ass
-ém1ato
-é2m1á2l
-ém1áru
-ém1edé
-ém1e2le
-é2m1elh
-ém1el®
-é2mesem
-é2m1esz
-éme2ta
-éme2tel
-émé2l
-ém1étk
-é2m1ip
-é2m1ir
-ém1ol
-é2m1ó2
-é2m1ö2
-ém1p2
-ém1u2r
-én1ant
-éna1p2
-én1ass
-é2n1a2to
-é2n1áll
-én1átv
-én1egy
-é2nekel.
-1é2nekes
-1é2nekl
-én1elj
-én1el®
-én1elt
-é2nem
-én1emb
-é2n1é2g
-éné2m1
-én1f2
-én1int
-é2n1i2o
-é2n1ip
-én1ita
-é2n1i2z
-énkupac1
-énmo2n1
-2énn
-én1öve
-én2s1as
-én1s2p
-én2su
-én2sú
-én1t2r
-én1u2t
-2ény
-é2ny1a2
-é2ny1á2
-é2ny1ell
-ény1elv
-é2ny1e2r
-é2nyev
-é2nyél
-é2nyérté
-é2ny1érv
-é2nyérz
-é2nyis
-é2ny1it
-é2ny1í2r
-é2ny1o2
-é2ny1ó2
-é2ny1ö2
-é2nyu
-én2z1a2
-én2z1á2
-én2zéh
-én2z1i2
-én2z1o
-én2zö
-én2zse
-énz3sz
-én2z1u2
-é1o2
-é1ó
-é1ö
-é1®
-ép1a2d
-ép1a2g
-ép1a2l
-ép1a2n
-épa2r
-épar2t
-ép1ág
-ép1ál
-ép1ám
-ép1áp
-é2p1á2r
-ép1e2gé
-ép1egy
-é2pe2lem
-é2p1ell
-é2p1ep
-ép1ern
-épes3s
-é2p1eti
-é2p1é2l
-é2p1ép
-épés1s
-épi2a
-é2p1i2p
-ép1ira
-ép1iro
-é2p1irt
-é2p1isk
-é2p1iz
-é2p1ír
-épo2
-ép1ok
-ép1ol
-ép2pak
-ép2p1an
-ép2pek
-éppo2
-ép2pod
-ép2p1ol
-ép1pr
-é1p2ró
-ép1t2
-ép1uj
-ép1u2n
-ép1u2r
-ép1u2t
-é2p1ú
-1épüle
-ér1abr
-é2r1a2d
-ér1ajá
-ér1aká
-éra1kl
-ér1akn
-é2r1a2l
-éra2n
-ér1any
-éra2r
-ér1ara
-ér1arc
-é2r1as
-é2r1a2t
-é2r1a2u
-ér1á2g
-ér1ál
-é2r1ár.
-érá2rak
-ér1áru
-ér1áz
-ér2ca
-ér2cá
-1ércb
-érc3c
-ér2ced
-1ér2c3h
-ér2c1o
-ér2c1ö
-ér2cz
-ér2dz
-ére2b
-é2r1eb.
-é2r1ebe
-é2r1e2dé
-ére2ga
-ére2g1á
-éreg1g
-é2r1e2gy
-ér1elk
-é2r1ell
-ér1e2l®
-é2r1els
-ér1eny
-é2r1e2re
-é2r1e2s®
-éres3s
-ére2ta
-ére2tel
-é2r1e2v
-é2rezh
-é2rezv
-ér1é2kek
-ér1ékel
-é2r1é2l
-é2réneke
-éri2as
-é2r1i2d
-éri2g
-ér1iga
-ér1ige
-ér1ill
-é2r1isk
-é2r1ist
-ér1i2sz
-é2r1itt
-é2r1iz
-é2r1ív
-ér1old
-ér1olv
-ér1ont
-é2r1or
-é2r1ö2
-é2r®se
-ér1p2
-érs2
-ér1sk
-ér1st
-1értelm
-1ért®c
-1ért®j
-1ért®r
-1ért®v
-ér1tra
-ér1u2r
-ér1u2t
-ér1u2z
-ér1úr
-ér1út
-ér1üld
-ér1üt
-érva2d
-érvén3n
-1érvv
-1érzeté
-1érzékenye
-1érzékenyí
-1érzékenyül.
-1érzékenyülé
-1érzékenyülh
-1érzékenyülte
-1érzékenyülts
-1érzékenyülv
-ésa2
-és1ad
-és1al
-é2s1an
-és1ál
-é2s1á2t
-é2s1eg
-és1elá
-és1e2le
-és1ell
-é2s1elm
-és1elo
-és1e2mel
-é2s1esz
-é2s1eti
-é2s1ev
-é2s1él
-é2s1érté
-és1é2ve.
-é2s1id
-é2s1in
-é2s1i2r
-é2s1i2v
-és1í2v
-és1k
-és1ol
-és1os
-é2s1ó
-é2s1öl
-és1ös
-és1p2
-éss2
-és1st
-és3sza
-és3szá
-és3szi
-és3szö
-és3szú
-és1t2r
-é2s1ú
-é2s1üg
-é2s1ü2t
-é1sy
-ész1a2d
-ész1a2g
-ész1a2l
-ész1a2n
-ész1a2r
-és3zav
-ész1á2l
-é2sz1egy
-ész1ell
-é2sz1esz
-é2szex
-é2szez
-é2sz1é2l
-ész1éte
-é2szid
-é2szim
-é2sz1ir
-észi2s
-ész1k2
-é2sz1o2k
-é2sz1ol
-é2sz1ot
-ész1ös
-ész2t1o
-é2s3zu
-é2szú
-ész1üg
-é2sz1üz
-é2t1a2d
-ét1ajt
-ét1a2ka
-ét1akk
-ét1akn
-ét1a2la
-ét1ann
-ét1apr
-ét1arg
-état2
-ét1a2to
-étau2
-é2t1ág
-ét1áll
-ét1árb
-éte2rá
-éte2reg
-éte2rel
-é2t1esé
-é2t1esh
-é2t1e2si
-éte2szem
-ét1e2ve
-ét1ezr
-é2t1é2g
-été2k
-é2t1él
-é2t1érd
-é2t1érte
-é2t1érté
-ét1f2
-é2t1ic
-é2t1id
-éti2g
-ét1igé
-é2t1i2r
-ét1ist
-é2t1i2v
-é2t1ív
-é2t1o2l
-é2t1o2p
-éto2r1i
-é2t1ó2r
-ét1ök
-ét1ö2l
-ét1öm
-ét1ön
-ét1ös
-ét1ö2t
-ét1ö2z
-é2t1®r
-étrás1
-é1t2ró
-ét1sz
-ét1ug
-ét1uj
-ét1üt
-ét1¶2z
-étve2g
-é1u
-é1ú
-é1ü2
-é1¶
-é2vad
-év1adá
-év1adó
-é2valá
-é2v1a2z
-é2vel®
-1é2vent
-év1esté
-1é2v1ez
-1é2vér®
-év1érté
-é2vu
-é2v1ú2
-1évz
-éz1ab
-éz1a2d
-éz1ak
-é2z1at
-é2z1ág
-é2z1ál
-éz1á2p
-éz1d2r
-éze2d
-éze2m
-éz1eme
-éze2n
-éze2t1el
-éz1ev
-é2z1é2d
-é2z1érc
-éz1ill
-éz1ing
-ézi2ók
-é2z1i2r
-ézi2sel
-é2z1í2
-éz1k2
-éz1or
-éz1os
-é2z1ö
-éz3ser
-éz3sé
-éz3sis
-é2z3so
-éz3sö
-ézus1s
-ézü2
-éz1üg
-éz1üs
-éz1üt
-ézve2g
+ez1út
+1ezüs
+2é.
+é1a2
+é1á2
+éb2bá
+é2b1ir
+é2c1a
+é1ch
+é2c3so
+éc3sz
+é2d1ab
+é2d1a2c
+éd1ad
+é2d1ak
+éd1a2la
+é2d1a2n
+éd1a2p
+é2d1as
+éd1ág
+é2d1e2g
+éde2leme
+é2d1els
+é2d1eml
+é2derb
+é2derek
+é2deré
+é2dern
+é2derr
+é2dert
+é2desí
+édes3s
+é2d1él
+éd1értő
+éd1érv
+édi2a1s
+édiasz2
+é2d1i2g
+é2d1in
+é2d1ír
+édna2
+é2d1or
+éd1ut
+éd3za
+éd3zá
+é1e2
+éesz1
+é1é
+2éf
+é2g1ab
+éga2d
+ég1a2g
+é2g1aj
+é2g1a2k
+ég1a2l
+ég1a2z
+ég1á2g
+ég1ál
+é2g1ára
+é2g1elb
+ége2lem
+é2g1elg
+é2g1ell
+é2g1elm
+é2g1e2lő
+égelői2
+é2g1els
+ége2n
+é2g1eny
+ége2r1ü
+1é2gesd
+1é2geti
+1é2getn
+é2g1é2g
+é2g1é2l
+é2g1ép
+é2g1éri
+ég1érte
+ég1érté
+ég1érv
+é2g1id
+égi2g
+égig1a
+égigé2
+ég1ill
+é2g1ing
+ég1int
+ég1ír
+ég1o2l
+ég1ot
+ég1ó2r
+é2g1ö
+1é2gő
+ég1u2t
+é2g1ú2
+ég1ü2g
+ég1ür
+é2gy1eg
+é2gyele
+é2gy1em
+é2gy1esz
+é2gyeze
+é2gy1ér
+é2gy1év
+é2gy1o
+é2gy1ó2
+é2gy1ö2
+égyszáz1
+égyszín1
+é2gyu
+égyü2
+é2gy1ül
+é2heze
+é2hezi
+é2hezt
+éh1ín
+é1i
+éi2ro
+é1í2
+éj1a2d
+éj1e2g
+é2ji
+éj1it
+é2k1ab
+ék1acé
+é2k1a2d
+é2k1a2g
+é2k1a2j
+ék1a2la
+ék1alj
+ék1alk
+ék1ana
+éka2nya
+é2k1a2r
+ék1á2f
+é2k1ál
+é2k1árb
+é2k1á2ru
+é2k1áta
+é2k1elm
+é2k1elo
+é2k1e2mel
+ék1eng
+éke2nya
+ékes3s
+ék1ég
+éké2p
+ék1épí
+ék1épü
+ék1ér.
+é2k1é2rem
+ék1érl
+é2k1érte
+é2k1érté
+é2k1érz
+é2k1i2d
+ék1ing
+ék1int
+é2k1i2p
+éki2r
+ék1ira
+ék1ism
+ék1ír
+ék1íz
+ék1k2
+é2k1or
+é2k1osz
+é2k1ös
+é2k1ő2
+ék1t2
+é2k1ud
+é2k1u2t
+ék1út
+é2k1ünn
+é2k1ür
+é2k1üz
+él1abl
+él1akn
+é2l1a2l
+é2l1a2u
+él1áj
+él1á2l
+é2l1árk
+é2látf
+éld2
+él1dr
+é2lebé
+él1e2gy
+éle2k1a
+éle2ker
+éle2kö
+é2l1emb
+é2leme
+é2l1emp
+é2l1enn
+éle2sa
+éle2sz
+éle2ta
+éle2t1á2
+éle2t1e2l
+élet1érd
+éle2t1é2ve.
+éle2t1ö2
+é2l1é2d
+é2l1é2l
+él1é2ret
+él1é2vet
+él1é2vi
+él1f2
+é2l1i2d
+é2l1iga
+éligaz1
+éli2gá
+é2l1i2m
+é2l1in
+él1i2pa
+él1irá
+é2l1í2
+él1k2
+é2l1o2l
+él1op
+é2l1o2r
+él1ó2r
+élö2
+él1ök
+él1öl
+él1ön
+élőe2
+élőkész1
+él1őz
+él1p2
+éls2
+él1st
+él2t1e2v
+él1t2r
+él1ug
+él1uj
+él1u2t
+él1út
+é2l1üt
+ély1á2l
+ély1egy
+élye2n1
+é2lyil
+é2ly1in
+é2lyüt
+é2male
+ém1ass
+ém1ato
+é2m1á2l
+ém1áru
+ém1edé
+ém1e2le
+é2m1elh
+ém1elő
+é2mesem
+é2m1esz
+éme2ta
+éme2tel
+émé2l
+ém1étk
+é2m1ip
+é2m1ir
+ém1ol
+é2m1ó2
+é2m1ö2
+ém1p2
+ém1u2r
+én1ant
+éna1p2
+én1ass
+é2n1a2to
+é2n1áll
+én1átv
+én1egy
+é2nekel.
+1é2nekes
+1é2nekl
+én1elj
+én1elő
+én1elt
+é2nem
+én1emb
+é2n1é2g
+éné2m1
+én1f2
+én1int
+é2n1i2o
+é2n1ip
+én1ita
+é2n1i2z
+énkupac1
+énmo2n1
+2énn
+én1öve
+én2s1as
+én1s2p
+én2su
+én2sú
+én1t2r
+én1u2t
+2ény
+é2ny1a2
+é2ny1á2
+é2ny1ell
+ény1elv
+é2ny1e2r
+é2nyev
+é2nyél
+é2nyérté
+é2ny1érv
+é2nyérz
+é2nyis
+é2ny1it
+é2ny1í2r
+é2ny1o2
+é2ny1ó2
+é2ny1ö2
+é2nyu
+én2z1a2
+én2z1á2
+én2zéh
+én2z1i2
+én2z1o
+én2zö
+én2zse
+énz3sz
+én2z1u2
+é1o2
+é1ó
+é1ö
+é1ő
+ép1a2d
+ép1a2g
+ép1a2l
+ép1a2n
+épa2r
+épar2t
+ép1ág
+ép1ál
+ép1ám
+ép1áp
+é2p1á2r
+ép1e2gé
+ép1egy
+é2pe2lem
+é2p1ell
+é2p1ep
+ép1ern
+épes3s
+é2p1eti
+é2p1é2l
+é2p1ép
+épés1s
+épi2a
+é2p1i2p
+ép1ira
+ép1iro
+é2p1irt
+é2p1isk
+é2p1iz
+é2p1ír
+épo2
+ép1ok
+ép1ol
+ép2pak
+ép2p1an
+ép2pek
+éppo2
+ép2pod
+ép2p1ol
+ép1pr
+é1p2ró
+ép1t2
+ép1uj
+ép1u2n
+ép1u2r
+ép1u2t
+é2p1ú
+1épüle
+ér1abr
+é2r1a2d
+ér1ajá
+ér1aká
+éra1kl
+ér1akn
+é2r1a2l
+éra2n
+ér1any
+éra2r
+ér1ara
+ér1arc
+é2r1as
+é2r1a2t
+é2r1a2u
+ér1á2g
+ér1ál
+é2r1ár.
+érá2rak
+ér1áru
+ér1áz
+ér2ca
+ér2cá
+1ércb
+érc3c
+ér2ced
+1ér2c3h
+ér2c1o
+ér2c1ö
+ér2cz
+ér2dz
+ére2b
+é2r1eb.
+é2r1ebe
+é2r1e2dé
+ére2ga
+ére2g1á
+éreg1g
+é2r1e2gy
+ér1elk
+é2r1ell
+ér1e2lő
+é2r1els
+ér1eny
+é2r1e2re
+é2r1e2ső
+éres3s
+ére2ta
+ére2tel
+é2r1e2v
+é2rezh
+é2rezv
+ér1é2kek
+ér1ékel
+é2r1é2l
+é2réneke
+éri2as
+é2r1i2d
+éri2g
+ér1iga
+ér1ige
+ér1ill
+é2r1isk
+é2r1ist
+ér1i2sz
+é2r1itt
+é2r1iz
+é2r1ív
+ér1old
+ér1olv
+ér1ont
+é2r1or
+é2r1ö2
+é2rőse
+ér1p2
+érs2
+ér1sk
+ér1st
+1értelm
+1értőc
+1értőj
+1értőr
+1értőv
+ér1tra
+ér1u2r
+ér1u2t
+ér1u2z
+ér1úr
+ér1út
+ér1üld
+ér1üt
+érva2d
+érvén3n
+1érvv
+1érzeté
+1érzékenye
+1érzékenyí
+1érzékenyül.
+1érzékenyülé
+1érzékenyülh
+1érzékenyülte
+1érzékenyülts
+1érzékenyülv
+ésa2
+és1ad
+és1al
+é2s1an
+és1ál
+é2s1á2t
+é2s1eg
+és1elá
+és1e2le
+és1ell
+é2s1elm
+és1elo
+és1e2mel
+é2s1esz
+é2s1eti
+é2s1ev
+é2s1él
+é2s1érté
+és1é2ve.
+é2s1id
+é2s1in
+é2s1i2r
+é2s1i2v
+és1í2v
+és1k
+és1ol
+és1os
+é2s1ó
+é2s1öl
+és1ös
+és1p2
+éss2
+és1st
+és3sza
+és3szá
+és3szi
+és3szö
+és3szú
+és1t2r
+é2s1ú
+é2s1üg
+é2s1ü2t
+é1sy
+ész1a2d
+ész1a2g
+ész1a2l
+ész1a2n
+ész1a2r
+és3zav
+ész1á2l
+é2sz1egy
+ész1ell
+é2sz1esz
+é2szex
+é2szez
+é2sz1é2l
+ész1éte
+é2szid
+é2szim
+é2sz1ir
+észi2s
+ész1k2
+é2sz1o2k
+é2sz1ol
+é2sz1ot
+ész1ös
+ész2t1o
+é2s3zu
+é2szú
+ész1üg
+é2sz1üz
+é2t1a2d
+ét1ajt
+ét1a2ka
+ét1akk
+ét1akn
+ét1a2la
+ét1ann
+ét1apr
+ét1arg
+état2
+ét1a2to
+étau2
+é2t1ág
+ét1áll
+ét1árb
+éte2rá
+éte2reg
+éte2rel
+é2t1esé
+é2t1esh
+é2t1e2si
+éte2szem
+ét1e2ve
+ét1ezr
+é2t1é2g
+été2k
+é2t1él
+é2t1érd
+é2t1érte
+é2t1érté
+ét1f2
+é2t1ic
+é2t1id
+éti2g
+ét1igé
+é2t1i2r
+ét1ist
+é2t1i2v
+é2t1ív
+é2t1o2l
+é2t1o2p
+éto2r1i
+é2t1ó2r
+ét1ök
+ét1ö2l
+ét1öm
+ét1ön
+ét1ös
+ét1ö2t
+ét1ö2z
+é2t1őr
+étrás1
+é1t2ró
+ét1sz
+ét1ug
+ét1uj
+ét1üt
+ét1ű2z
+étve2g
+é1u
+é1ú
+é1ü2
+é1ű
+é2vad
+év1adá
+év1adó
+é2valá
+é2v1a2z
+é2velő
+1é2vent
+év1esté
+1é2v1ez
+1é2vérő
+év1érté
+é2vu
+é2v1ú2
+1évz
+éz1ab
+éz1a2d
+éz1ak
+é2z1at
+é2z1ág
+é2z1ál
+éz1á2p
+éz1d2r
+éze2d
+éze2m
+éz1eme
+éze2n
+éze2t1el
+éz1ev
+é2z1é2d
+é2z1érc
+éz1ill
+éz1ing
+ézi2ók
+é2z1i2r
+ézi2sel
+é2z1í2
+éz1k2
+éz1or
+éz1os
+é2z1ö
+éz3ser
+éz3sé
+éz3sis
+é2z3so
+éz3sö
+ézus1s
+ézü2
+éz1üg
+éz1üs
+éz1üt
+ézve2g
1fa
-faá2
+faá2
fae2
-fa2gyé
-fa2j1ö
-fa2jü
+fa2gyé
+fa2j1ö
+fa2jü
fala2n
fal1any
-fa2l1ár.
+fa2l1ár.
fa2l1e2g
fa2l1e2l
-fa2lí
+fa2lí
fao2
-faó2
+faó2
faru2
fa2r1us
fas2
@@ -4304,22 +4304,22 @@ fa1sk
fa1st2
fa1t2r
fa2us
-fazé2
-1fá
-fás3s
-fá2sü
-fá2t1é
-fázás1
+fazé2
+1fá
+fás3s
+fá2sü
+fá2t1é
+fázás1
1fe
fe2gy1i
fe2j1a
-fe2já
+fe2já
fe2jo
fe2l1a2
-fe2l1á2
+fe2l1á2
fe2l1e2g
fe2l1e2mel
-fel1emé
+fel1emé
fe2l1eml
fel1eng
fe2l1ere
@@ -4327,57 +4327,57 @@ fe2l1esk
fe2l1esz
fe2l1e2tet
fel1eve
-fe2l1é2g
-fel1éke
-fel1éks
-fe2l1él
-fe2l1ép
-fe2l1ér.
-fe2l1ért
-fel1érz
+fe2l1é2g
+fel1éke
+fel1éks
+fe2l1él
+fe2l1ép
+fe2l1ér.
+fe2l1ért
+fel1érz
fe2l1id
fe2lij
fe2l1i2s
feli2t
fe2l1ita
fe2l1iz
-fe2l1í2
+fe2l1í2
fe2l1o2
-fe2l1ö2
+fe2l1ö2
fel1p2
-fels®rész1
+felsőrész1
fel1t2
fe2lu
-fe2lú
-fen2ná
-fen2tí
-1fé
-fé2ká
-féko2
-fé2kú
-fé2l1a
-fé2l1á
-fé2leg
-féle2m
-fél1eme
-fé2l1esz
-fé2l1ez
-fé2lir
-fé2l1is
-fé2l1o
-fé2ló
-fé2lö
-fé2lu
-fé2lú
-féma2
-fé2mat
-fé2med
-fé2mel
-fé2mét
-fé2ny1e2l
-fé2ny1i
-fé2nyí
-2férá
+fe2lú
+fen2ná
+fen2tí
+1fé
+fé2ká
+féko2
+fé2kú
+fé2l1a
+fé2l1á
+fé2leg
+féle2m
+fél1eme
+fé2l1esz
+fé2l1ez
+fé2lir
+fé2l1is
+fé2l1o
+fé2ló
+fé2lö
+fé2lu
+fé2lú
+féma2
+fé2mat
+fé2med
+fé2mel
+fé2mét
+fé2ny1e2l
+fé2ny1i
+fé2nyí
+2férá
1f2fy
1fi
fi2ah
@@ -4392,52 +4392,52 @@ fi2n1ag
fi2nid
fint2
fi2n1u2
-fió2ki
+fió2ki
fi1sc
fist2
-fi2t1é2
+fi2t1é2
fi2tor
-1fí
+1fí
f1k2
fki2
fkis1
-f2ló
-f2lú
+f2ló
+f2lú
fme2
1fo
fog1g
fo2g1or
fo2g1os
fo2n1au
-fo2nát
+fo2nát
fond2
fon1dr
fo2nel
fo2n1in
-fo2nü
+fo2nü
fo2r1il
foto1s
-1fó
-1fö
-föle2
-fö2leg
-föl1el
-fö2len
-fö2l1esk
-fö2l1et
-fö2lék
-fö2lí
-1f®
-f®e2
-f®é2
-f®i2
-f®2r1ü2
-f®1tr
-f®u2
-f®ú2
+1fó
+1fö
+föle2
+fö2leg
+föl1el
+fö2len
+fö2l1esk
+fö2l1et
+fö2lék
+fö2lí
+1fő
+főe2
+főé2
+fői2
+fő2r1ü2
+fő1tr
+főu2
+főú2
fra1s
f2ric
-1f2rö
+1f2rö
fs2
f1st
ft1aj
@@ -4445,27 +4445,27 @@ ft1ak
1fu
fus3sz
fu2sz1ol
-1fú
-1fü
-fü2lo
-fül1t2
-fü2mi
-f1ü2té
-f1ü2t®
-1f¶
+1fú
+1fü
+fü2lo
+fül1t2
+fü2mi
+f1ü2té
+f1ü2tő
+1fű
1fy
1ga
ga2a
-g1a2bál
+g1a2bál
2g1abl
2gabr
-2g1a2cé
+2g1a2cé
ga2de
gae2
ga2gi
ga2kad
2g1a2lap
-2g1a2lám
+2g1a2lám
g1alb
g2ali
2g1alk
@@ -4476,115 +4476,115 @@ gan2cse
gan1d2
2gank
2g1a2nya
-ga2nyá
-ga2nyó
-gaó2
+ga2nyá
+ga2nyó
+gaó2
ga2pa.
2g1apj
ga2pol
-2g1a2pó
+2g1a2pó
2g1app
ga2se
-ga2sé
+ga2sé
ga2s1i
ga2su
-ga2szág
+ga2szág
g2at
gata2r
-gat1ará
+gat1ará
ga2t1eu
ga2tim
ga2ut
ga2vat
2gazg
-2gazít.
-2gazíta
-2gazítá
-2gazítók
-2gazítón
+2gazít.
+2gazíta
+2gazítá
+2gazítók
+2gazítón
2gazs
-1gá
-2g1á2bé
-2gábr
-3g2áci
-gá2dá
-2g1á2f
-gá2gy
-g1á2hí
-3g2áli
-g1állh
-g1állí
-g1álls
-g1állu
-2g1állv
-2g1á2mí
-gána2
-gá2nad
-gá2nal
-gá2nap
-gá2nau
-gá2n1e2
-gá2nén
-gá2n1ér
-gá2nin
-gá2n1ó
-gá2nú
-gá2nye
-gá2ny1út.
-2g1á2p
-2g1á2rad
-g1á2rak
-gá2ral
-g1á2ram
-gá2r1as
-gá2r1ál
-gá2rár
-gá2r1e
-gá2riz
-gá2rö
-gá2ru
-gá2r1út
-gá2san
-gá2s1e2
-gásé2
-gási2
-gá2sir
-gá2sze
-gá2szé
-gá2s3zö
-gá2ta2l
-gá2té
-2gátk
-3g2átló
-3g2áto
-gá2t1os
-2gátr
-3g2átu
-2g1á2tü
-2g1átv
-gá2z1ad
-gá2z1al
-gá2z1a2t
-gá2z1e2
-gázi2
-gá2z1ip
-gá2z1ó2r
-gázs2
-gáz3sé
-gá2zsu
-2g1á2zu
+1gá
+2g1á2bé
+2gábr
+3g2áci
+gá2dá
+2g1á2f
+gá2gy
+g1á2hí
+3g2áli
+g1állh
+g1állí
+g1álls
+g1állu
+2g1állv
+2g1á2mí
+gána2
+gá2nad
+gá2nal
+gá2nap
+gá2nau
+gá2n1e2
+gá2nén
+gá2n1ér
+gá2nin
+gá2n1ó
+gá2nú
+gá2nye
+gá2ny1út.
+2g1á2p
+2g1á2rad
+g1á2rak
+gá2ral
+g1á2ram
+gá2r1as
+gá2r1ál
+gá2rár
+gá2r1e
+gá2riz
+gá2rö
+gá2ru
+gá2r1út
+gá2san
+gá2s1e2
+gásé2
+gási2
+gá2sir
+gá2sze
+gá2szé
+gá2s3zö
+gá2ta2l
+gá2té
+2gátk
+3g2átló
+3g2áto
+gá2t1os
+2gátr
+3g2átu
+2g1á2tü
+2g1átv
+gá2z1ad
+gá2z1al
+gá2z1a2t
+gá2z1e2
+gázi2
+gá2z1ip
+gá2z1ó2r
+gázs2
+gáz3sé
+gá2zsu
+2g1á2zu
g1b2
g1d2r
1ge
gea2
-geá2r
-2gebé
+geá2r
+2gebé
ge2cet
-2g1e2dén
+2g1e2dén
2g1e2dz
2g1eff
-ge2gé
-gegész1
+ge2gé
+gegész1
ge2gye
ge2he
g2ek.
@@ -4594,111 +4594,111 @@ ge2leg
ge2lej
gel1eng
ge2lev
-ge2lég
-3g2elés
-2g1elhá
+ge2lég
+3g2elés
+2g1elhá
3g2elhe
3g2eli.
3gelik
gel1ism
-ge2l1í2
+ge2l1í2
3gelj.
-2g1eljá
+2g1eljá
3g2elne
-3gelné
+3gelné
3g2elni
g1elny
2g1e2l1o
-ge2lö
-3g2el®.
-ge2l®bb
-3gel®bé
-3g2el®h
-3g2el®j
-3g2el®k.
-3g2el®ket
-3gel®kh
-3gel®kk
-3gel®kö
-3gel®kr
-ge2l®l
-3g2el®m
-3g2el®n.
-3gel®ne
-ge2l®re
-3gel®r®
-ge2l®s
-3gel®t.
-2g1el®te
-3g2el®v
-ge2l®z
+ge2lö
+3g2elő.
+ge2lőbb
+3gelőbé
+3g2előh
+3g2előj
+3g2elők.
+3g2előket
+3gelőkh
+3gelőkk
+3gelőkö
+3gelőkr
+ge2lől
+3g2előm
+3g2előn.
+3gelőne
+ge2lőre
+3gelőrő
+ge2lős
+3gelőt.
+2g1előte
+3g2előv
+ge2lőz
2g1elp
-g1els®
+g1első
3g2elt.
3geltek
3geltes
3geltet.
3geltete
-3gelteté
+3gelteté
3gelteti
3geltetn
-2g1eltér
+2g1eltér
2g1elto
ge2lu
-ge2lül
-2g1elvá
+ge2lül
+2g1elvá
2g1elvez
2g1elvo
2g1elz
3g2em.
2g1ember
2g1e2mel
-ge2més
+ge2més
2g1eml
ge2na
genci2as
g2end
-3generá
+3generá
2g1enge
ge2n1is
-2g1ennék
+2g1ennék
2g1enni.
2g1ennie
2g1enyh
2g1enyv
ge2of
ge2o1g2
-ge2oló
+ge2oló
ge2om
ge2o1s
ge2ral
ge2r1a2n
-ge2r1ág
-ge2r1á2r
+ge2r1ág
+ge2r1á2r
g1e2rej
-ge2r1ekké
+ge2r1ekké
ge2riz
ge2r1os
-ge2rö
-2g1e2r®
-ge2r¶
+ge2rö
+2g1e2rő
+ge2rű
3g2es.
ge1sc
ge2sem
ge2sett
-2g1e2sés
+2g1e2sés
2g1e2sik
-2geskü
-2g1e2s®
-ge2sú
+2geskü
+2g1e2ső
+ge2sú
2gesze
-ge2szé
+ge2szé
ge2szik
2g1eszl
2g1eszm
2g1eszn
-2g1e2szü
-ge2sz¶
+2g1e2szü
+ge2szű
g2et.
ge2ter
2g1e2tete
@@ -4707,89 +4707,89 @@ ge2ter
ge2t1or
ge2ur
2g1e2ve
-2g1e2vé
-2g1e2v®
-1gé
-gé2ber
-2g1ébr
-gé2da
-gé2d1e2l
-gé2d1esz
-gé2dé
-gé2dí
-gé2d1o
-gé2gü
-gé2hes
-gé2led
-gé2let
-gé2lén
-gé2li.
-2g1éls
-gé2lya
-gé2lyá
-gé2lyeg
-géna2
-gé2nat
-géná2
-gé2n1ár
-gé2nát
-gé2n1el
-gé2nit
-gé2nyemb
-gé2nyeme
-gé2nyir
-gé2p1a
-gé2pá
-3g2épe
-gé2peg
-gé2pir
-gé2pí
-gé2po
-gé2pül
-gé2r1á
-2gérd
-g1é2red
-gé2reg
-2gérh
-g1é2rin
-2gérj
-2gérk
-2gérl
-g1érle
-2gérs
-2gérte
-2gérté
-g1érth
-g1érti
-g1értj
-g1érts
-g1értt
-g1értv
-gé2ru
-gé2rú
-2gérv
-2g1érz
-gé2sá
-gé2sel
-gé2so
-gé2sza
-2gészs
-2g1é2te
-2g1év.
+2g1e2vé
+2g1e2vő
+1gé
+gé2ber
+2g1ébr
+gé2da
+gé2d1e2l
+gé2d1esz
+gé2dé
+gé2dí
+gé2d1o
+gé2gü
+gé2hes
+gé2led
+gé2let
+gé2lén
+gé2li.
+2g1éls
+gé2lya
+gé2lyá
+gé2lyeg
+géna2
+gé2nat
+géná2
+gé2n1ár
+gé2nát
+gé2n1el
+gé2nit
+gé2nyemb
+gé2nyeme
+gé2nyir
+gé2p1a
+gé2pá
+3g2épe
+gé2peg
+gé2pir
+gé2pí
+gé2po
+gé2pül
+gé2r1á
+2gérd
+g1é2red
+gé2reg
+2gérh
+g1é2rin
+2gérj
+2gérk
+2gérl
+g1érle
+2gérs
+2gérte
+2gérté
+g1érth
+g1érti
+g1értj
+g1érts
+g1értt
+g1értv
+gé2ru
+gé2rú
+2gérv
+2g1érz
+gé2sá
+gé2sel
+gé2so
+gé2sza
+2gészs
+2g1é2te
+2g1év.
g1f2
gfe2li
g1g2ra
g2gy
-g3gyár
-g3gyér
+g3gyár
+g3gyér
g3gyi
-g3gyó
-g3gyö
-g3gy®
+g3gyó
+g3gyö
+g3győ
g3gyu
-ggy1ült
-g3gy¶
-1g2hék
+ggy1ült
+g3gyű
+1g2hék
1ghy
1gi
gi2abo
@@ -4807,28 +4807,28 @@ gi2aszi
gi2aszo
gi2ata
gi2av
-3g2iá
-3g2idá
+3g2iá
+3g2idá
2g1i2de
-2g1i2dé
-gi2d®
+2g1i2dé
+gi2dő
gie2r
gi1fl
2g1igaz
-gig1ár
+gig1ár
gig1e2s
-gig1él
-gi2gén
+gig1él
+gi2gén
gig3g
gi2gi
gi2g1o
-gi2gö
+gi2gö
gi2g1u
2g1i2gy
2gihl
gii2
2g1ikr
-2g1i2má
+2g1i2má
2g1i2mi
2g1imp
2g1ind
@@ -4837,13 +4837,13 @@ gii2
2gino
2gint.
2g1inte
-2g1inté
+2g1inté
2g1inti
-2g1int®
+2g1intő
2g1inv
3g2io
gi2or
-2g1i2rá
+2g1i2rá
2giro
gi2rod
giro1s
@@ -4860,26 +4860,26 @@ g1isc
2gittasodn
2gittasu
gius3s
-gi2vó
+gi2vó
2gizg
2g1i2zo
2g1izz
-1gí
-2g1íg
-2g1íj
-2g1í2n
-gí2ra
-gí2rá
-gí2ro
-gí2ró
-2g1í2z
+1gí
+2g1íg
+2g1íj
+2g1í2n
+gí2ra
+gí2rá
+gí2ro
+gí2ró
+2g1í2z
g1k2
gki2s1a
g2lio
-glóa2
-gme2g1á
+glóa2
+gme2g1á
1g2nac
-1g2náb
+1g2náb
g2n1e2l
gnes3s
gn1ing
@@ -4890,96 +4890,96 @@ go1g2r
goi2
goka2
gok1ad
-2g1o2ká
+2g1o2ká
2g1o2laj
g1olc
2g1olda
go2lin
-go2lór
+go2lór
2golvas
2g1o2lyo
go2m1as
2g1oml
g2on
-3goná
+3goná
gonc3s
go2nye
go2pe
g2oro
-gosz2kó
+gosz2kó
go1t2h
-1gó
-3gó.
-gó2ce
-gó2ch
-2górá
-gó2rák
-gó2rát
-gós3s
-gó2tí
-g1óv.
-g1ó2vo
-g1ó2vó
-1gö
-2göb
-2g1ö2le
-g1ö2li
-g1öls
-3gömb
-g1öml
-3g2öng
-g1önt
-3görb
-gör2cso
-3gördí
-3gördü
-g1ö2re
-3görg
-3görn
-g1ö2rü
-gö2s1é2
-2g1össz
-2g1ö2v
-1g®
-g®2g1®
-2g1®2ri
-2g1®rj
-2g1®rl
-2g1®2rö
-2g1®2rü
-2g1®rz
-g®2s1ü2
-g1®szí
-g1®szü
-g®ü2
-g®2z1e2k
-g®2zel
-g®2zsu
+1gó
+3gó.
+gó2ce
+gó2ch
+2górá
+gó2rák
+gó2rát
+gós3s
+gó2tí
+g1óv.
+g1ó2vo
+g1ó2vó
+1gö
+2göb
+2g1ö2le
+g1ö2li
+g1öls
+3gömb
+g1öml
+3g2öng
+g1önt
+3görb
+gör2cso
+3gördí
+3gördü
+g1ö2re
+3görg
+3görn
+g1ö2rü
+gö2s1é2
+2g1össz
+2g1ö2v
+1gő
+gő2g1ő
+2g1Å‘2ri
+2g1Å‘rj
+2g1Å‘rl
+2g1ő2rö
+2g1ő2rü
+2g1Å‘rz
+gő2s1ü2
+g1őszí
+g1őszü
+gőü2
+gő2z1e2k
+gő2zel
+gő2zsu
g1p2
-1g2rafá
+1g2rafá
1grafik
g2ra1p
-1g2ráf.
-grá2fe
-1gráfia
-1gráfiái
-1gráfián
-1gráfiát
-1gráfu
-grá2l1e2
-grá2rip
-grás1s
-g2ríz
-g2róf
+1g2ráf.
+grá2fe
+1gráfia
+1gráfiái
+1gráfián
+1gráfiát
+1gráfu
+grá2l1e2
+grá2rip
+grás1s
+g2ríz
+g2róf
gs2
g1sk
g1sp2
g1st2
-gszáz1
+gszáz1
gszt2
g1t2
-gtá2v1i2
-gtíz1
+gtá2v1i2
+gtíz1
1gu
3g2ub
2gu2g
@@ -4989,53 +4989,53 @@ gu2in
2g1uj
gu2na
gu2no
-3gurí
+3gurí
3g2uru
gu2sab
-gu2s1í2
+gu2s1í2
gu2sol
gus3s
gu2tak
gu2tam
gu2tat
gu2to
-2g1u2tó
-1gú
-g1úg
-2g1ú2j
-gú2nyi
-gú2te
-gú2té
-g1úth
-g1ú2ti
-g1útj
-g1útn
-g1ú2to
-g1útr
-g1útt
-1gü
-2g1üd
-2güg
-2g1üld
-gü2lik
-2g1ünn
-2gür
-gü2re
-gü2rü
-2g1üs
-2g1ü2t
-2g1ü2v
-2güz
-gü2ze
-1g¶
-2g1¶r.
-2g1¶2z
-gví2z1
+2g1u2tó
+1gú
+g1úg
+2g1ú2j
+gú2nyi
+gú2te
+gú2té
+g1úth
+g1ú2ti
+g1útj
+g1útn
+g1ú2to
+g1útr
+g1útt
+1gü
+2g1üd
+2güg
+2g1üld
+gü2lik
+2g1ünn
+2gür
+gü2re
+gü2rü
+2g1üs
+2g1ü2t
+2g1ü2v
+2güz
+gü2ze
+1gű
+2g1űr.
+2g1ű2z
+gví2z1
g1w
g2y
1gya
-gy1acé
-gy1a2dá
+gy1acé
+gy1a2dá
gy1adm
2gy1a2j
gya2lap
@@ -5044,72 +5044,72 @@ gy1ann
gy1a2nya
2gy1apa
2gyapi
-2gyapó
+2gyapó
2gyapu
-gya2r1ó2
+gya2r1ó2
2gyaty
2gyazo
-1gyá
-2gyábr
-2gyág
-gy1áll
-gy1álm
-gy1á2lo
-gyá2ma
-gyá2ria
-2gyáru
-2gyáta
-gy1átl
+1gyá
+2gyábr
+2gyág
+gy1áll
+gy1álm
+gy1á2lo
+gyá2ma
+gyá2ria
+2gyáru
+2gyáta
+gy1átl
1gye
3gyec
-2gyedün
+2gyedün
2gyela
2gyelemz
-2gyel®g
-2gyeltá
+2gyelőg
+2gyeltá
gy1emel
gy1eml
2gyerd
-gye2r®s
+gye2rős
gye2seg
2gy1ev
2gyezres
-1gyé
-gy1éle
-2gyép
-gy1érd
-gy1érte
-gy1érté
-gy1érz
+1gyé
+gy1éle
+2gyép
+gy1érd
+gy1érte
+gy1érté
+gy1érz
1gyi
-2gyid®
+2gyidő
gy1iga
-2gy1i2gé
+2gy1i2gé
2gyind
2gy1ing
gy1i2ra
-gy1irá
+gy1irá
2gy1iro
2gyist
gy1ita
-2gyivó
-1gyí
-2gy1í2r
-2gyív
+2gyivó
+1gyí
+2gy1í2r
+2gyív
gy1k2
1gyo
2gy1old
2gyolvad
2gyolvas
2gyope
-1gyó
-gy1órá
-gy1óri
-1gyö
-2gyönt
-1gy®
-2gy®r
-3gy®z
+1gyó
+gy1órá
+gy1óri
+1gyö
+2gyönt
+1győ
+2győr
+3győz
gy1pr
gys2
gy1st
@@ -5118,37 +5118,37 @@ gy1st
gy1ug
2gyuj
2gyura
-2gyurá
-1gyú
-2gyút
-1gyü
-2gyüt
-2gy1üz
-1gy¶
-3gy¶r
+2gyurá
+1gyú
+2gyút
+1gyü
+2gyüt
+2gy1üz
+1gyű
+3gyűr
gza2te
1ha
ha2b1ol
-ha2d1ál
+ha2d1ál
ha2d1os
ha2dur
-ha2d1ú
+ha2d1ú
ha2is
ha2je
2h1akl
ha2kol
ha1k2r
-hal1áp
+hal1áp
ha2leb
ha2l1e2l
ha2len
ha2l1es
-hal1ev®
-ha2lét
+hal1evő
+ha2lét
ha2l1iv
-ha2lí
+ha2lí
ha2lol
-ha2l1®
+ha2l1Å‘
ham1b
ha2m1osz
han2ch
@@ -5156,11 +5156,11 @@ han2c3s
han2g1e2
han2gut
2hani
-ha2nyá
-haó2
+ha2nyá
+haó2
ha1p2r
-ha2rál
-harán2
+ha2rál
+harán2
harc1c
har2ce
har2c3h
@@ -5171,72 +5171,72 @@ hart2
hasi2
ha2sim
ha2sol
-ha2s1¶2
+ha2s1ű2
ha2t1em
ha2tev
-ha2t1é2v
+ha2t1é2v
ha2t1old
-ha2t1ök
-1há
-2h1ács.
-2h1á2csi
-2háji
-2hájn
-2hájo
-2hájt
-há2lyú
-há2m1i
-há2nyin
-há2ral
-háro2ma
-há2sá
-há2t1e2
-há2t1ol
-há2t1or
-hátu2s
-hát1usz
-há2zab
-há2z1a2dó
-há2z1e2
-ház3sz
-1hä
+ha2t1ök
+1há
+2h1ács.
+2h1á2csi
+2háji
+2hájn
+2hájo
+2hájt
+há2lyú
+há2m1i
+há2nyin
+há2ral
+háro2ma
+há2sá
+há2t1e2
+há2t1ol
+há2t1or
+hátu2s
+hát1usz
+há2zab
+há2z1a2dó
+há2z1e2
+ház3sz
+1hä
1he
he2ad
3heg
he2gy1a
he2gyo
-he2gyó
+he2gyó
2he2id
he2io
2hela
-2henó
+2henó
he2od
he2ol
-he2rát
+he2rát
2heu
he2za
-he2zá
+he2zá
2hezn
-1hé
-hé2m1
-hé2nan
-hé2n1is
-hé1p2
-hé2rab
-hé2rar
-hé2r1eg
-hé2r1ep
-hé2tal
-hé2tá
-héte2
-hé2t1es
-hé2t1ez
-hé2t1é2
-hé2tó
-hé2z1á
-hé2z1e2
-hé2z1o2
-hé2zs
+1hé
+hé2m1
+hé2nan
+hé2n1is
+hé1p2
+hé2rab
+hé2rar
+hé2r1eg
+hé2r1ep
+hé2tal
+hé2tá
+héte2
+hé2t1es
+hé2t1ez
+hé2t1é2
+hé2tó
+hé2z1á
+hé2z1e2
+hé2z1o2
+hé2zs
1hi
2hia
hi2af
@@ -5247,21 +5247,21 @@ hi2as
hi2re
hi1sc
hi2se
-hi2t1á
+hi2t1á
hi2t1elv
hi2t1o
-hi2tú
-1hí
-3híd
-hí2de
-hí2dí
-hí2ga
-hí2mi
-hí2r1a2
-hí2r1o
-hí2rö
+hi2tú
+1hí
+3híd
+hí2de
+hí2dí
+hí2ga
+hí2mi
+hí2r1a2
+hí2r1o
+hí2rö
h1k2
-h2m1é
+h2m1é
h2mi
hno1g
1ho
@@ -5269,15 +5269,15 @@ hno1g
ho2gy1i
hola2
ho2lad
-ho2l1át
+ho2l1át
hol2d1al
ho2le
ho2l1iv
ho2n1al
ho2nav
-ho2n1ál
+ho2n1ál
ho2nis
-ho2nü
+ho2nü
ho2o
2hory
2hosb
@@ -5285,21 +5285,21 @@ ho2o
2hosz
ho1szk
2how
-1hó
-hóa2
-hó2c3sa
-hó2dz
-hó1kr
-2hónr
-1hö
-hökö1
-1h®
-h®e2
-h®2s1er
-h®s3s
+1hó
+hóa2
+hó2c3sa
+hó2dz
+hó1kr
+2hónr
+1hö
+hökö1
+1hő
+hőe2
+hő2s1er
+hős3s
h1p2
h2ri
-h2rü
+h2rü
hs2
h1sc
hsz2l
@@ -5309,143 +5309,143 @@ hu2i
hu2me
2husi
huszon1
-3hú
-hú2re
-hú2r1é
-hú2se
-hús3szé
-hú2sz1e
-hú2szé
-hú2sz1ó2
-hú2szö
-1hü
-1h¶
-hyá1
+3hú
+hú2re
+hú2r1é
+hú2se
+hús3szé
+hú2sz1e
+hú2szé
+hú2sz1ó2
+hú2szö
+1hü
+1hű
+hyá1
2i.
i1a
ia2cel
-ia2cér
+ia2cér
ia2c3h
-ia2dós
+ia2dós
iae2
i2afa
ia2gi
-i2ahá
+i2ahá
2iai
ia2kad
ia2kar
ia2kas
ia2kol
-ia1k2ré
+ia1k2ré
ia1kri
ia1kv
i2ale
-i2alé
+i2alé
ia2lu
i2ame
ia2mur
ia2nya
-iaó2
+iaó2
ia1p2
-i2asé
+i2asé
ia1s2p
-i2aszá
+i2aszá
ia2szor
-ia2szö
+ia2szö
ia2ty
iau2
-i1á
-2iáb
-iá2g
-2iák
-iá2kab
-iá2kév
-iála2
-iá2l1al
-iá2l1e2
-iá2l1in
-iána2
-iá2n1an
-iá2nyi
-iá2p
-iá2ro
-iá2ru
-iá2só
-iás3s
-iá2sü
+i1á
+2iáb
+iá2g
+2iák
+iá2kab
+iá2kév
+iála2
+iá2l1al
+iá2l1e2
+iá2l1in
+iána2
+iá2n1an
+iá2nyi
+iá2p
+iá2ro
+iá2ru
+iá2só
+iás3s
+iá2sü
ibai2
ibi2o
2ibn
ibu2c3
-1iccé
+1iccé
i1chy
-idá2szo
+idá2szo
1iddo
1i2dej
ide1k2v
2idel
-i2d1é2l
-i2dény
-2idés
-1i2déz
+i2d1é2l
+i2dény
+2idés
+1i2déz
id2ge
idi2a1s
i2d1id
i2d1i2ta
-i2domá
+i2domá
i2domo
-2idó
-1i2d®.
-i2d®v
+2idó
+1i2dő.
+i2dőv
2idp
idro1
idrosz2
id3ze
i1e
i2ec
-ie2dé
+ie2dé
2ieg
-ie2gé
+ie2gé
ie2gy
ie2le
-ie2léb
-ie2l®b
+ie2léb
+ie2lőb
ie2p
ie2rej
ie2rez
-ie2r®.
-ie2r®szakoln
-ie2r®v
+ie2rő.
+ie2rőszakoln
+ie2rőv
ier1s
ie2set
-ie2sé
+ie2sé
ie2si
-ie2s®
+ie2ső
ie2sz
ietz1
ie2ur
ie2v
-i1é
-ié2dere
-ié2g
-ié2ke
-ié2kí
-ié2l
-ié2pí
-ié2pü
+i1é
+ié2dere
+ié2g
+ié2ke
+ié2kí
+ié2l
+ié2pí
+ié2pü
ifi1b
if2lo
-2ifö
+2ifö
if2re
if2ri
if2ta
ig1a2lu
iga1p2
1igazg
-ig1áll
-ig1álm
-igá2nya
-ig1á2t1e2
+ig1áll
+ig1álm
+igá2nya
+ig1á2t1e2
ig1e2le
ig1ell
i2ges
@@ -5453,12 +5453,12 @@ ig1e2se
ig1esi
ige2t1o
i2g1ev
-i2g1ég
-ig1élv
-1i2gény
-ig1ér.
-ig1é2r®
-ig1ért
+i2g1ég
+ig1élv
+1i2gény
+ig1ér.
+ig1é2rő
+ig1ért
ig2gas
2igi
ig1im
@@ -5468,7 +5468,7 @@ ig2raf
igro1
ig1s
ig1ug
-i2g1ü2
+i2g1ü2
iha2d
iha2re
1ihl
@@ -5480,15 +5480,15 @@ i2ii
ii2m
ii2p
ii2s
-i1í2
+i1í2
1i2jed
1i2jes
ika1pr
-iké2l
-ik1éle
+iké2l
+ik1éle
iki2s1
-ik2kár
-ik2kí
+ik2kár
+ik2kí
ik2lor
ikro1s
i1k2ru
@@ -5496,22 +5496,22 @@ il1ald
i2l1alk
il1a2ny
il1ell
-1illú
+1illú
il2maj
il2m1a2k
il2m1am
il2man
-il2má
+il2má
il2mel
il2m1esz
il2mi
ilo1g2
ilumi2
ilumin1
-i2lü
-1i2mád
-ime2g1á
-imi2tár
+i2lü
+1i2mád
+ime2g1á
+imi2tár
2imka
2iml
2imog
@@ -5521,8 +5521,8 @@ im1sz
i2n1aj
in1akt
in2c1ez
-in2c1él
-in2c1ö
+in2c1él
+in2c1ö
in2d1ab
in2d1ah
in2d1am
@@ -5533,10 +5533,10 @@ ind1err
in2d1e2s
in2d1ett
in2d1e2z
-in2dét
+in2dét
in2din
-1indí
-in2d1ö2
+1indí
+in2d1ö2
ineke2
ine2kel
i2n1el
@@ -5547,34 +5547,34 @@ ine2ta
1infr
1ingad
1ingec
-in1g2rá
+in1g2rá
in1ido
in2kaj
-in2kál
+in2kál
in1old
-ino2má
-in1ó2ra
-in1öl
-in1ös
+ino2má
+in1ó2ra
+in1öl
+in1ös
in1sh
in1s2k
1insp
-int1étk
+int1étk
in2t1in
-in1tré
-in2t1ú2
-inú2
-in1út
+in1tré
+in2t1ú2
+inú2
+in1út
i1o
ioe2
i2of
-io1g2rá
+io1g2rá
io2ik
i2oka
-io2ká
+io2ká
io1kh
io2laj
-i2oló
+i2oló
iono1sz2
ion1s2
io1ny
@@ -5586,25 +5586,25 @@ io1sz2f
io1t2
i2ov
io2xidd
-i1ó
-i2ódi
-ió1f2
-ió1g2
-i2óha
-ió2kár
-ió2kir
-iókos1
-i2ólá
-i2ólo
-ió2rák
-i2óri
-i2ósá
-ió1spe
-i1ö2
-i1®
-i®2r
+i1ó
+i2ódi
+ió1f2
+ió1g2
+i2óha
+ió2kár
+ió2kir
+iókos1
+i2ólá
+i2ólo
+ió2rák
+i2óri
+i2ósá
+ió1spe
+i1ö2
+i1Å‘
+iő2r
1i2par.
-ipa2rág
+ipa2rág
ipa2r1e
i2pari
ipa2ris
@@ -5613,7 +5613,7 @@ ipe2rak
i1p2h
ip2lak
i1plexe
-i1p2lé
+i1p2lé
2ipo
ippa2
ip2p1ad
@@ -5621,24 +5621,24 @@ ippo1l
ip2ri
ip2rop
ip2sz1a
-ip2szá
-ip2szö
+ip2szá
+ip2szö
iqu2
1i2rati
1iratoz.
1iratozi
-irá2g1ál
-irá2nyá2ra
-irá2nye
+irá2g1ál
+irá2nyá2ra
+irá2nye
2ires
i2rew
irgonc1
2irob
iros3s
ir2s1a
-ir2s1á2
-1irtó
-ir2tü
+ir2s1á2
+1irtó
+ir2tü
is1abl
i2s1a2d
i2s1a2g
@@ -5650,17 +5650,17 @@ is1ant
is1any
isa2p
is1apa
-is1apá
+is1apá
i2s1ar.
i2s1a2ra
i2sasz
-is1atá
+is1atá
is1atl
i2s1a2u
-is1áll
-is1áru
-is1á2t1a2
-i2s1á2z
+is1áll
+is1áru
+is1á2t1a2
+i2s1á2z
i2s1ege
i2s1e2gy
i2s1elm
@@ -5670,90 +5670,90 @@ ise2n
is1enc
is1ene
i2serd
-is1esé
+is1esé
is1est
i2s1ev
-i2s1ép
-i2s1éri
+i2s1ép
+i2s1éri
i2s1i2n
isi2p
is1ipa
i2s1i2r
is1isk
is1ist
-is1í2v
+is1í2v
is1k
-1iskolát
+1iskolát
i1s2lis
1ismer.
1ismere
-1ismeré
+1ismeré
1ismerh
1ismeri
1ismerj
1ismern
-1ismer®
+1ismerő
1ismert
1ismerve
-1ismervény.
-1ismervénye
-1ismervényt
+1ismervény.
+1ismervénye
+1ismervényt
i1s2min
2iso
is1ob
i2s1ol
is1ord
-is1öc
-i2s1ör
-is1ös
-i2s1®
+is1öc
+i2s1ör
+is1ös
+i2s1Å‘
isp2
-1ispán.
+1ispán.
i1s2pe
i1s2por
is1pr
is1sr
is1st
isszo2ba
-is3szó
-is3szö
-is3szú
+is3szó
+is3szö
+is3szú
1isten.
1istene
1istenhit
-1istenné
-1istenn®.
-1istenn®k
+1istenné
+1istennő.
+1istennők
1istv
-is1úr.
-is1üg
-is1üs
-1i2szák
+is1úr.
+is1üg
+is1üs
+1i2szák
i1sz2f
isz1il
-isz2kóp
-isz1ön
+isz2kóp
+isz1ön
is3zsa
-isz2tár.
-it1adó
+isz2tár.
+it1adó
itai2
-itakész1
+itakész1
1ital.
1italt
it1ant
ita2tat
-it1á2ras
+it1á2ras
ite2la
2iter
-2ité
-i2t1é2l
-it2há
+2ité
+i2t1é2l
+it2há
i2t1i2g
itigaz1
it1ipa
-itköz1
+itköz1
ito1g2r
-ito2ká
+ito2ká
1ittam
1ittasodh
1ittasodi
@@ -5767,295 +5767,295 @@ i1u
iu2g
iu2mad
iu2m1a2t
-iu2mál
+iu2mál
iu2me
iu2mio
-iu2mí
+iu2mí
iu2n
iu2r
iu2ta
-iu2tán.
-iu2tó
+iu2tán.
+iu2tó
iu2z
-i1ú
-i2úg
-i2úte
-i1ü2
-i1¶2
+i1ú
+i2úg
+i2úte
+i1ü2
+i1ű2
iva2tin
-1i2vás.
+1i2vás.
1i2vot
ix1eg
ix1in
ix1p2
-iz1áll
+iz1áll
izene2
-ize2n1é
+ize2n1é
izen1n
-ize2s1á2
-1i2zél
-1izmú
+ize2s1á2
+1i2zél
+1izmú
1i2zom.
2izs
-iz1út
-1i2zül
-1izzí
-1izzó
-2í.
-í1a
-í1á
-í2d1a2
-íde2
-íd1el
-í2d1é2
-íd1ív
-í2d1os
-í1e
-í1é
-íg1a2g
-í2g1e2
-í2gé
-í2g1o2
-í2g1ö
-ígyá2
-ígyász1
-í1i
-í1í
-í2j1ác
-íjá2t
-í2j1áta
-íji2
-íj1ig
-íj1in
-í2j1os
-í2j1ö2
-í2jü
-ík1a2l
-ík1es
-í2k1i2
-íkké2
-í2k1ü2
-ílás1s
-íl1e2g
-í2l1i2r
-ílta2
-íl2tag
-íl2t1e2
-ím1a2d
-ímfe2
-ím1i2r
-ím1i2v
-í2m1í2
-í2m1o2
-ímok1
-í2n1a2r
-í2n1a2u
-í2n1az
-ín1árn
-í2n1e2le
-í2n1elm
-í2n1észl
-íni1k2
-í2n1il
-ín3n
-ín1ol
-í2n1or
-í2n1ö
-ín1s2
-ín1u2t
-ín1üt
-í1o
-í1ó
-í1ö
-í1®
-í2r1a2d
-ír1alk
-í2r1ar
-í2r1á2g
-ír1áll
-ír1ár.
-ír1á2ru
-írás3s
-1í2rász.
-1í2rászat.
-1írdáb
-í2r1eg
-í2r1er
-í2r1é2l
-írfe2
-ír1g2
-írin2
-íri2o
-í2r1i2p
-í2r1ir
-í2r1í
-ír1k2
-ír1old
-ír1oll
-ír1or
-ír1ös
-írs2
-ír1sp
-ír1t2r
-írus3s
-í2r1ú
-í2r1üg
-í2sz1a
-í2sz1á
-í2szeb
-í2sz1e2g
-í2szeln
-í2szel®
-í2szelv
-í2sz1e2m
-í2sz1o2
-í2sz1ö
-í2sz1®
-ísz3s
-ísz1tr
-íszü2
-í2sz1ül
-í2sz1ün
-í1u
-í1ú
-í1ü
-í1¶
-íva2l
-ív1ala
-í2varc
-ív1árf
-ív1eg
-íve2lem
-ív1elté
-íve2n
-í2v1e2re
-í2v1in
-ívi2z
-ív1izo
-ív1ol
-í2v1ö
-ív1üg
-íz1a2g
-íz1a2k
-íz1a2l
-íz1ág
-íz1ál
-íz1á2r
-íz1á2t1
-í2z1ef
-í2z1eg
-í2zei.
-íz1ell
-íz1eln
-íz1elv
-í2z1e2m
-íze2r
-íz1ere
-í2z1esz
-íze2z
-í2z1eze
-í2z1ezrei
-í2z1é2p
-í2z1ér.
-í2z1ill
-ízi1sp
-í2z1i2szo
-í2zivás
-í2zí
-ízo2
-íz1os
-íz1ó2r
-í2z1ö2
-íz1p2
-íz3sa
-íz3sá
-íz3su
-íz3sú
-íz3sz
-í2zü
-íz1ü2g
-1í2z¶
+iz1út
+1i2zül
+1izzí
+1izzó
+2í.
+í1a
+í1á
+í2d1a2
+íde2
+íd1el
+í2d1é2
+íd1ív
+í2d1os
+í1e
+í1é
+íg1a2g
+í2g1e2
+í2gé
+í2g1o2
+í2g1ö
+ígyá2
+ígyász1
+í1i
+í1í
+í2j1ác
+íjá2t
+í2j1áta
+íji2
+íj1ig
+íj1in
+í2j1os
+í2j1ö2
+í2jü
+ík1a2l
+ík1es
+í2k1i2
+íkké2
+í2k1ü2
+ílás1s
+íl1e2g
+í2l1i2r
+ílta2
+íl2tag
+íl2t1e2
+ím1a2d
+ímfe2
+ím1i2r
+ím1i2v
+í2m1í2
+í2m1o2
+ímok1
+í2n1a2r
+í2n1a2u
+í2n1az
+ín1árn
+í2n1e2le
+í2n1elm
+í2n1észl
+íni1k2
+í2n1il
+ín3n
+ín1ol
+í2n1or
+í2n1ö
+ín1s2
+ín1u2t
+ín1üt
+í1o
+í1ó
+í1ö
+í1ő
+í2r1a2d
+ír1alk
+í2r1ar
+í2r1á2g
+ír1áll
+ír1ár.
+ír1á2ru
+írás3s
+1í2rász.
+1í2rászat.
+1írdáb
+í2r1eg
+í2r1er
+í2r1é2l
+írfe2
+ír1g2
+írin2
+íri2o
+í2r1i2p
+í2r1ir
+í2r1í
+ír1k2
+ír1old
+ír1oll
+ír1or
+ír1ös
+írs2
+ír1sp
+ír1t2r
+írus3s
+í2r1ú
+í2r1üg
+í2sz1a
+í2sz1á
+í2szeb
+í2sz1e2g
+í2szeln
+í2szelő
+í2szelv
+í2sz1e2m
+í2sz1o2
+í2sz1ö
+í2sz1ő
+ísz3s
+ísz1tr
+íszü2
+í2sz1ül
+í2sz1ün
+í1u
+í1ú
+í1ü
+í1ű
+íva2l
+ív1ala
+í2varc
+ív1árf
+ív1eg
+íve2lem
+ív1elté
+íve2n
+í2v1e2re
+í2v1in
+ívi2z
+ív1izo
+ív1ol
+í2v1ö
+ív1üg
+íz1a2g
+íz1a2k
+íz1a2l
+íz1ág
+íz1ál
+íz1á2r
+íz1á2t1
+í2z1ef
+í2z1eg
+í2zei.
+íz1ell
+íz1eln
+íz1elv
+í2z1e2m
+íze2r
+íz1ere
+í2z1esz
+íze2z
+í2z1eze
+í2z1ezrei
+í2z1é2p
+í2z1ér.
+í2z1ill
+ízi1sp
+í2z1i2szo
+í2zivás
+í2zí
+ízo2
+íz1os
+íz1ó2r
+í2z1ö2
+íz1p2
+íz3sa
+íz3sá
+íz3su
+íz3sú
+íz3sz
+í2zü
+íz1ü2g
+1í2zű
1ja
ja2dag
ja2k1ev
ja2kiz
-ja2k1í
+ja2k1í
ja2lap
jan2s
j1a2ny
jao2
jas1as
-1já
-2j1á2bé
-2j1á2ga
-2j1ágg
-2j1áll
-2jánd
-2jánl
-2j1á2p
-2j1á2rak
-j1á2rasz
-2j1árr
-j1árus
-já2sal
-já2se
-jás3s
-já2t1ér
-2játne2
-já2t1osz
+1já
+2j1á2bé
+2j1á2ga
+2j1ágg
+2j1áll
+2jánd
+2jánl
+2j1á2p
+2j1á2rak
+j1á2rasz
+2j1árr
+j1árus
+já2sal
+já2se
+jás3s
+já2t1ér
+2játne2
+já2t1osz
jdona2
jdonat1
j1d2r
1je
-2jegé
-je2gés
-jegész1
-jegyá2
+2jegé
+je2gés
+jegész1
+jegyá2
je2gy1el
je2gy1in
je2gyo
je2l1a2
-jelá2
-je2l1át
+jelá2
+je2l1át
je2l1ele
je2ler
je2l1e2si
je2l1int
-je2l1í2
-2j1ellá
+je2l1í2
+2j1ellá
je2l1o
je2lu
je2mu
-je2n1á
+je2n1á
je2no
-je2ró
+je2ró
je2sa
-je2s1á
+je2s1á
je2sem
je2s1es
je2su
-je2süv
-je2tál
+je2süv
+je2tál
je2t1el
je2t1o2
je2tu
jeu2
2j1ex
-1jé
-jé2ga
-jé2g1á2
-jége2
-jé2g1eg
-jég3g
-jé2gi
-jé2g1o
-jéne2s
-jé2n1i
-2j1é2p
-jé2reg
-2j1érz
+1jé
+jé2ga
+jé2g1á2
+jége2
+jé2g1eg
+jég3g
+jé2gi
+jé2g1o
+jéne2s
+jé2n1i
+2j1é2p
+jé2reg
+2j1érz
jfeles1
-jfölös1
+jfölös1
j1g2r
1ji
j1il
@@ -6064,21 +6064,21 @@ j1il
2j1i2ta
2j1i2v
2j1i2z
-1jí
-jítókész1
-j1í2z
-j2jí
+1jí
+jítókész1
+j1í2z
+j2jí
jjob2
j1k2l
-jk1®r
-jk2ré
-jlás1s
-jl1át
+jk1Å‘r
+jk2ré
+jlás1s
+jl1át
jnal1u
1jo
jo2g1ak
jo2gal
-jo2g1ál
+jo2g1ál
jo2g1e
jog3g
jo2gin
@@ -6092,236 +6092,236 @@ jo2n1i
2jo2p
joro2
jo2se
-1jó
-jóa2
-jóá2
-jóle2s
-jó2l1es®
-jó2l1i
-jó2lö
-2jórár
-jó2s1e2
-jós3s
-jó2tál
-1jö
-j1önt
-1j®
-j1®r
-2j1®2sö
+1jó
+jóa2
+jóá2
+jóle2s
+jó2l1eső
+jó2l1i
+jó2lö
+2jórár
+jó2s1e2
+jós3s
+jó2tál
+1jö
+j1önt
+1jő
+j1Å‘r
+2j1ő2sö
j1p2
jra1s
j1s2p
-jsza2ké
+jsza2ké
jt1akn
jt1akt
jt1alk
jt1aut
-jt1áll
-j2t1á2ru
-jt1á2t1a2
+jt1áll
+j2t1á2ru
+jt1á2t1a2
j2t1e2gy
j2teleme
jt1elt
-j2t1é2le
-j2t1ér
+j2t1é2le
+j2t1ér
j2t1id
j2t1i2r
j2t1i2z
jt1osz
-j1t2rá
+j1t2rá
jtu2
1ju
jugo1
ju2hak
-1jú
-1jü
-j1üg
-jü2l
-2j1ü2r
-j1ü2té
-j1ü2t®
-2j1ü2v
-2j1ü2z
-1j¶
+1jú
+1jü
+j1üg
+jü2l
+2j1ü2r
+j1ü2té
+j1ü2tő
+2j1ü2v
+2j1ü2z
+1jű
j2z1a2k
j2z1a2ny
j2z1as
jz1es
j2z1is
jz1k2
-jz3sín
+jz3sín
jz3sor
jz3sz
1ka
2k1abl
-2kacé
+2kacé
ka2ch
ka2dom
-2kadók
+2kadók
kae2
kag2
ka1gr
-ka2iá
+ka2iá
kakas3s
2k1alg
-kanális1
+kanális1
2kang
2k1a2nyag
-ka2óv
-2kapád
-ka1pré
+ka2óv
+2kapád
+ka1pré
2k1a2ras
-2karcú
-ka2rén
+2karcú
+ka2rén
ka2rig
kar1ing.
-ka2rö
+ka2rö
ka2sem
-kasé2
-ka2séh
+kasé2
+ka2séh
ka2sor
-kasó2
-ka2s1ór
-kasü2l
+kasó2
+ka2s1ór
+kasü2l
ka2tab
ka2uto
ka2vat
-kazá2
-1ká
-ká2csin
-ká2c3sor
-2k1á2g
-ká2l1e
-2k1állam.
-2k1államr
-ká2nye
-k1á2rad
-ká2rak
-k1á2ram
-ká2r1e2
-ká2r1ér
-ká2r1oko
-ká2s1e
-kási2
-ká2sir
-2k1á2só
-ká2sü
-kásza2
-kász1al
-kát1ad
-ká2tal
-2k1átt
-2k1átv
+kazá2
+1ká
+ká2csin
+ká2c3sor
+2k1á2g
+ká2l1e
+2k1állam.
+2k1államr
+ká2nye
+k1á2rad
+ká2rak
+k1á2ram
+ká2r1e2
+ká2r1ér
+ká2r1oko
+ká2s1e
+kási2
+ká2sir
+2k1á2só
+ká2sü
+kásza2
+kász1al
+kát1ad
+ká2tal
+2k1átt
+2k1átv
k1b
1ke
kea2k
-keá2
+keá2
kee2
-kegész1
+kegész1
ke2gya
ke2gyu
-ke2gy1ú
+ke2gy1ú
2k1e2ke.
2k1elekt
2k1e2lemz
2keley
2k1elf
ke2l1os
-2k1e2l®a
-k1e2l®á
-2k1e2l®l
-2k1eltér
+2k1e2lőa
+k1e2lőá
+2k1e2lől
+2k1eltér
2k1ember
-ke2més
-kenés3s
-ken2tér
-kenü2
-ke2n1ül
-keó2
+ke2més
+kenés3s
+ken2tér
+kenü2
+ke2n1ül
+keó2
ke1p2r
ke2rab
ke2r1ar
-ke2rál
-ke2r1ár
-2kerd®
+ke2rál
+ke2r1ár
+2kerdő
2k1e2rej
kerekes1
-ke2r®s
+ke2rős
ker1s
ke2s1eg
2k1esem
-2k1e2s®
+2k1e2ső
ke2szi
-ke2s3zöl
+ke2s3zöl
ke2tok
keu2
ke2vez
-kevés3s
-1ké
-2ké2g
-ké2ja
-ké2j1u
-kéka2
-ké2k1á
-ké2k1e2r
-ké2kin
-ké2lya
-ké2ly1ü2
-ké2nyú
-ké2pa
-ké2p1á
-ké2p1ele
-ké2per
-ké2pid
-ké2pí
-ké2po
-2k1érm
-ké2r1o
-2k1értéke
-ké2ru
-ké2rú
-2kérzeté
-ké2sá
-ké2so
-ké2sz1a2
-ké2szá
-ké2szét
-ké2s3zö
-ké2tan
-ké2tál
-ké2t1ele
-ké2t1em
-ké2t1esz
-ké2tev
-ké2t1é2
-ké2tis
-ké2tí
-ké2t1os
-ké2tö
-ké2tu
-ké2t1ü2
-2k1év.
-2k1évb
-2k1é2vei
-ké2ves
-2k1é2vi
-2k1évn
-ké2za
-ké2zá
-ké2z1e2l
-ké2zem
+kevés3s
+1ké
+2ké2g
+ké2ja
+ké2j1u
+kéka2
+ké2k1á
+ké2k1e2r
+ké2kin
+ké2lya
+ké2ly1ü2
+ké2nyú
+ké2pa
+ké2p1á
+ké2p1ele
+ké2per
+ké2pid
+ké2pí
+ké2po
+2k1érm
+ké2r1o
+2k1értéke
+ké2ru
+ké2rú
+2kérzeté
+ké2sá
+ké2so
+ké2sz1a2
+ké2szá
+ké2szét
+ké2s3zö
+ké2tan
+ké2tál
+ké2t1ele
+ké2t1em
+ké2t1esz
+ké2tev
+ké2t1é2
+ké2tis
+ké2tí
+ké2t1os
+ké2tö
+ké2tu
+ké2t1ü2
+2k1év.
+2k1évb
+2k1é2vei
+ké2ves
+2k1é2vi
+2k1évn
+ké2za
+ké2zá
+ké2z1e2l
+ké2zem
kf2
k1fl
kh2
k2hai
-k2hája
+k2hája
1k2hed
khe2i
k2hil
1k2hos
-k2hó
+k2hó
1khr
-1k2hü
+1k2hü
1ki
kia2d
kia2g
@@ -6330,7 +6330,7 @@ kia2l
kia2n
kia2p
kia2s
-kiá2z
+kiá2z
kib2
ki1br
2kide
@@ -6338,32 +6338,32 @@ kideg1
kie2l
kie2m
kie2re
-kié2h
-kié2r
+kié2h
+kié2r
2k1ifj
ki1fr
2kiga
kigaz1
-2k1i2gé
+2k1i2gé
kii2
-ki1k2rá
+ki1k2rá
ki1k2ri
-kin2csá
+kin2csá
2k1ind
2k1inf
2k1ink
-kin2tét
+kin2tét
2k1inv
kio2k
kio2m
-kió2v
+kió2v
ki1pla
ki1ple
ki1p2r
ki2rat
ki2rod
ki2sab
-ki2s1ajtó
+ki2s1ajtó
ki2sal
ki2san
kis1asz
@@ -6371,7 +6371,7 @@ ki2sat
ki2s1emb
ki2sen
ki2s1es
-ki2s1é2r
+ki2s1é2r
ki2sis
2kisk
2kism
@@ -6382,29 +6382,29 @@ kis1p
kis3sz
ki1t2r
kiu2
-kiú2
-1kí
-2k1í2rá
-2k1í2ró
-2k1í2ve
-2kí2z
-kjelenés1
+kiú2
+1kí
+2k1í2rá
+2k1í2ró
+2k1í2ve
+2kí2z
+kjelenés1
kj1els
-k2k1ál
-kk1áru
+k2k1ál
+kk1áru
k2k1e2g
k2k1in
-kk1ír
-kk1ó2ra
+kk1ír
+kk1ó2ra
k1k2ri
-klá2má
-klá2mos
+klá2má
+klá2mos
kle2tin
-1k2lí
+1k2lí
k2lub
-klu2bé
+klu2bé
klus3s
-kmá2nyú
+kmá2nyú
kme2g
1ko
ko1g2r
@@ -6415,14 +6415,14 @@ kol1ajt
ko2lim
ko2naj
ko2n1al
-ko2n1ál
+ko2n1ál
ko2nor
-ko2nyé
+ko2nyé
koo2
2kope
ko1pro
ko2r1ad
-ko2r1átl
+ko2r1átl
ko2rel
ko2r1es
ko2r1il
@@ -6432,41 +6432,41 @@ kos3s
2koszl
2k1ou
2k1o2x
-1kó
-kó2d1é
-kó1fr
-kóku2
-2kóp.
-2kópb
-2kóph
-2kópj
-2kópk
-2kópo
-2kópp
-2kóps
-2kópu
-kóra2
-kó2r1an
-kó2res
-1kö
-kö2b1öl
-kö2dz
-2k1öng
-2köv.
-kö2zí
-1k®
-k®e2
-k®é2
-k®k2
-k®1kr
-k®u2
+1kó
+kó2d1é
+kó1fr
+kóku2
+2kóp.
+2kópb
+2kóph
+2kópj
+2kópk
+2kópo
+2kópp
+2kóps
+2kópu
+kóra2
+kó2r1an
+kó2res
+1kö
+kö2b1öl
+kö2dz
+2k1öng
+2köv.
+kö2zí
+1kő
+kőe2
+kőé2
+kők2
+kő1kr
+kőu2
k1p2
-kpá2ra
+kpá2ra
k2rip
1kripc
krosz2k
-1k2rómá
-krös3s
+1k2rómá
+krös3s
k1s2h
k1s2k
k1s2p
@@ -6475,12 +6475,12 @@ k1sz2f
kszt2
kt1alk
kta1p2
-kte2rá
+kte2rá
k2t1i2r
kto1g2
kto1s
ktosz2
-k1tré
+k1tré
ktro1g
ktro1s2
1ku
@@ -6488,270 +6488,270 @@ ktro1s2
2ku2g
2kuj
kul2csi
-kun2d1é
+kun2d1é
ku1p2r
ku2se
2kutaz
-2k1u2tá
+2k1u2tá
ku2zs
-1kú
-2k1úg
-2k1új
-kú2tá
-kú2t1o
-2kútr
-1kü
-2küdü
-2k1ü2g
-kü2la
-kü2lo
-kü2tö
-kü2t®
-kü2tü
-kü2z
-2k1üzl
-1k¶
+1kú
+2k1úg
+2k1új
+kú2tá
+kú2t1o
+2kútr
+1kü
+2küdü
+2k1ü2g
+kü2la
+kü2lo
+kü2tö
+kü2tő
+kü2tü
+kü2z
+2k1üzl
+1kű
1k2vad
k2van
-kvés3s
+kvés3s
1ky
-ky1ü
+ky1ü
1la
la2ar
-laá2
+laá2
lab2la.
-lac3há
+lac3há
2l1a2dag
l1adl
2l1adm
la2dod
la2dog
la2dom
-la2dóe
-la2dói
-la2dój
-la2dól
-la2dór
-la2dóv
+la2dóe
+la2dói
+la2dój
+la2dól
+la2dór
+la2dóv
la1dy
lae2
laga2l
lag1ala
la2gan
-la2g1ál
-lag1ár.
-la2gá2ra
-la2gép
-la2g1ér
+la2g1ál
+lag1ár.
+la2gá2ra
+la2gép
+la2g1ér
lag3gy
la2gor
la2g1osz
lai2g
la2i2re
la2j1ad
-la2j1ág
-la2j1ár.
+la2j1ág
+la2j1ár.
la2j1el
la2jol
-la2jü
+la2jü
la2kad
la2k1a2n
la2kel
la2k1es
-la2kérte
-2lakí
+la2kérte
+2lakí
la2k1osz
2l1alg
la2mad
la2m1al
la2map
-la2n1á2r
-la2n1ér
+la2n1á2r
+la2n1ér
lanye2
lany1er
lany1es
-la2nyé
-la2ny1í2r
-la2nyó
-laó2
+la2nyé
+la2ny1í2r
+la2nyó
+laó2
la2p1at
-lap1áll
-lapá2r
-lap1ár.
-lap1áro
-lap1áta
+lap1áll
+lapá2r
+lap1ár.
+lap1áro
+lap1áta
la2p1el
la2p1es
-la2p1ér
+la2p1ér
la2p1in
la2p1ir
-la2p1ír
-2l1a2pó
-la2pö
+la2p1ír
+2l1a2pó
+la2pö
2lapv
-la2rán
+la2rán
2l1arc
laro1
la2s1as
las3sze
la2su
la2sz1ar
-laszkész1
-lasz1óra
+laszkész1
+lasz1óra
la2t1a2la
-lat1ará
+lat1ará
lata2t
lat1ato
-la2t1árb
+la2t1árb
la2t1e2g
lat1ele
la2t1ell
la2tem
la2tep
-la2t1ék
+la2t1ék
la2ting
la2t1osz
-la2t1óri
-la2t1ö2v
+la2t1óri
+la2t1ö2v
2latti
la2vu
2lazm
la2zon
-1lá
-lá2b1iz
-2lábrá
-lá2but
-lá2d1al
-lá2dan
-lá2dor
-lá2d1ö
-lá2gal
-lág1g
-lá2g1ó2
-lág1s
-lá2hor
-2láí
-2láldá
-2láldo
-lá2l1e2
-2l1állo
-lá2lö
-lá2man
-lá2m1eg
-lá2m1el
-lá2mí
-lá2molv
-lám1osz
-lá2mu
-lána2
-lá2nal
-lá2n1an
-lá2nas
-láná2
-lá2nár
-lánc1c
-lá2nyol
-lá2pol
-lár1akt
-lá2ral
-lá2rat
-2láre
-lá2rö
-2l1á2ru
-l1á2rú
-lá2sal
-lá2s1e
-lá2s1ó2
-lá2sut
-lá2sze
-lát1al
-2láté
-2lávi
-lá2z1e
-lbá2szá
+1lá
+lá2b1iz
+2lábrá
+lá2but
+lá2d1al
+lá2dan
+lá2dor
+lá2d1ö
+lá2gal
+lág1g
+lá2g1ó2
+lág1s
+lá2hor
+2láí
+2láldá
+2láldo
+lá2l1e2
+2l1állo
+lá2lö
+lá2man
+lá2m1eg
+lá2m1el
+lá2mí
+lá2molv
+lám1osz
+lá2mu
+lána2
+lá2nal
+lá2n1an
+lá2nas
+láná2
+lá2nár
+lánc1c
+lá2nyol
+lá2pol
+lár1akt
+lá2ral
+lá2rat
+2láre
+lá2rö
+2l1á2ru
+l1á2rú
+lá2sal
+lá2s1e
+lá2s1ó2
+lá2sut
+lá2sze
+lát1al
+2láté
+2lávi
+lá2z1e
+lbá2szá
l1b2l
lc1e2v
lc1e2z
-lc1é2v
+lc1é2v
l2c3h
-lc1ív
-l2c1ó2
-lcs1á2g
-l2cs1ál
-l2csáta
-l2csél
+lc1ív
+l2c1ó2
+lcs1á2g
+l2cs1ál
+l2csáta
+l2csél
lcs1ing
-lcsó2r
+lcsó2r
lc3sz
ld1abr
ld1a2ny
lda1p
-lda2tál
-ld1áll
+lda2tál
+ld1áll
ld1egy
l2demel
l2d1ep
ldes1s
-lde2tér
-l2d1igé
+lde2tér
+l2d1igé
l2d1i2p
-l2d1ín
+l2d1ín
ldo2gas
l2d1old
ld1osz
-l2d1ó2r
-l2d1öl
+l2d1ó2r
+l2d1öl
ldt2
ld1tr
l2d1ut
-l2d1út
-ld3zá
+l2d1út
+ld3zá
1le
le2ab
lea2k
lea2v
-leá2p
-leá2zi
+leá2p
+leá2zi
2l1edd.
l1eddi
lee2s
le1fr
le3gali
-le2g1áll
-le3gáz
+le2g1áll
+le3gáz
le3ge.
le3gek.
-le3gel®t
+le3gelőt
lege2r
le3get
-legé2d
-le3gén
+legé2d
+le3gén
leg3g
le2gig
-le3görö
-leg®2
+le3görö
+legő2
le2gu
le3gya
-le3gyá
+le3gyá
l1e2gye.
l1e2gyedne
-l1egyedü
-le3gyé
+l1egyedü
+le3gyé
le3gyi
2l1egyl
-le3gyö
+le3gyö
lei2g
lei2s
2leji
le2kad
leka2t
-le2kál
-le2k1á2r
+le2kál
+le2k1á2r
le2k1e2l
le2k1e2m
-lek1e2r®
+lek1e2rő
le2k1id
-le2k®
+le2kő
le1kri
2lektr
le1kvi
@@ -6765,67 +6765,67 @@ le2m1a2d
2lemank
lemec1
2l1e2mel.
-2l1e2melé
+2l1e2melé
2l1e2melh
2l1e2meli
2l1e2melj
2lemelk
le2mell
2l1e2meln
-2l1e2mel®
+2l1e2melő
le2melt
-2l1e2melü
+2l1e2melü
2l1e2melv
-le2m1éle
-2lemés
-lem1irá
+le2m1éle
+2lemés
+lem1irá
le2m1itt
l1emleg
le2mol
le2m1osz
-le2m1ó2r
-le2mö
+le2m1ó2r
+le2mö
2lemu
-le2nál
-le2náz
+le2nál
+le2náz
le2n1e2g
le2n1el
le2ner
-lenés3s
+lenés3s
le2nir
le2n1o2
len1tra
-2lentrü
-l1e2nyész.
-l1e2nyésze
-l1e2nyészé
-l1e2nyészi
-l1e2nyészne
-l1e2nyész®
+2lentrü
+l1e2nyész.
+l1e2nyésze
+l1e2nyészé
+l1e2nyészi
+l1e2nyészne
+l1e2nyésző
le2o1g2
leo2k
-le2oló
-leó2v
+le2oló
+leó2v
le1pla
le1p2lo
-le1p2ré
+le1p2ré
le1pri
2l1erd
le2reg
-le2r®.
-le2r®b
-le2r®k
-le2r®n
-le2r®r
-2ler®szakol.
-le2r®v
+le2rő.
+le2rőb
+le2rők
+le2rőn
+le2rőr
+2lerőszakol.
+le2rőv
ler1s2
le2s1es
-l1e2sése
-l1e2sésé
-l1e2sésü
-2leskü
-le1smá
+l1e2sése
+l1e2sésé
+l1e2sésü
+2leskü
+le1smá
lesp2
le1spr
lest2
@@ -6833,88 +6833,88 @@ le1sto
le1str
le2szik
2l1eszm
-2lesz¶
+2leszű
let1e2lem
le2t1ell
letes1s
-le2t1í2
-le2t1ó2
+le2t1í2
+le2t1ó2
let2tas
2lety
-leu2tá
+leu2tá
l1e2vez.
l1e2vezt
2lexer
l1exp
le2zer
2l1ezr
-1lé
-2l1ébr
-lé2c3h
-lé2gem
-l1é2gés
-2légí
-lé2g1o
-2légt
-lé2gu
-lé2gyi
-lé2kal
-lé2k1any
-lé2k1eg
-lé2kesí
-lék1est
-lé2kép
-lé2k1ir
-lé2kú
-l1éld
-lé2led
-lé2les
-lé2lén
-2l1é2pí
-2l1é2pül
-l1érd
-2l1é2red
-lé2r1el
-lé2rés
-lé2rik
-lé2rin
-lé2rit
-lé2r1osz
-2l1é2r®.
-l1é2r®k
-2l1érté
-2l1értü
-lé2rün
-l1érve
-2lérz
-lé2sel
-lés3s
-2l1észh
-léta1
-lé2tál
-lé2te2l
-lét1ele
-lét1elé
-lét1elü
-lé2tig
-lé2tö
-2l1év.
-2l1évb
-2l1é2ven
-2l1é2ves
-2lévez
-2l1é2véb
-2lévi
-2l1évs
-l1é2vü
+1lé
+2l1ébr
+lé2c3h
+lé2gem
+l1é2gés
+2légí
+lé2g1o
+2légt
+lé2gu
+lé2gyi
+lé2kal
+lé2k1any
+lé2k1eg
+lé2kesí
+lék1est
+lé2kép
+lé2k1ir
+lé2kú
+l1éld
+lé2led
+lé2les
+lé2lén
+2l1é2pí
+2l1é2pül
+l1érd
+2l1é2red
+lé2r1el
+lé2rés
+lé2rik
+lé2rin
+lé2rit
+lé2r1osz
+2l1é2rő.
+l1é2rők
+2l1érté
+2l1értü
+lé2rün
+l1érve
+2lérz
+lé2sel
+lés3s
+2l1észh
+léta1
+lé2tál
+lé2te2l
+lét1ele
+lét1elé
+lét1elü
+lé2tig
+lé2tö
+2l1év.
+2l1évb
+2l1é2ven
+2l1é2ves
+2lévez
+2l1é2véb
+2lévi
+2l1évs
+l1é2vü
lfi2t1
lga1p2
l1g2ra
lgy1as
-l2gyel®v
+l2gyelőv
l2gyis
l2gy1ol
-l2gy1ú2s
+l2gy1ú2s
1li
lia2d
li2af
@@ -6923,72 +6923,72 @@ li2at
li2deg
2l1i2di
li2dom
-2l1i2d®
+2l1i2dő
li2eu
l1i2gaz
li2ge.
-2l1i2gé
+2l1i2gé
li1g2ra
2likk
li1k2l
2lill
li2nal
-2lindí
+2lindí
2l1indu
2l1inf
lin2ko
-li2nö
-2l1inté
+li2nö
+2l1inté
li2o1g2
-li2p®
+li2pő
li1pro
2l1i2ram
2l1i2rat
-li2rán
+li2rán
l1irt
2l1isko
2lism
-l1ismé
+l1ismé
li1spo
l1iste
-li2s1ü2
-li2szö
+li2s1ü2
+li2szö
lis3zs
li2t1el
li2t1old
li2vad
-li2vás
+li2vás
2l1izg
2l1izmo
2l1i2zo
-1lí
-l1íg
-2l1í2ny
-línyenc1
-lí2ran
-2lírá
-l1írh
-l1írj
-l1írn
-l1í2ró
-l1írt
-l1írv
-lí2tél
-lítés3s
-2l1ív.
-l1í2vá
-2l1ívs
-lízis1s
+1lí
+l1íg
+2l1í2ny
+línyenc1
+lí2ran
+2lírá
+l1írh
+l1írj
+l1írn
+l1í2ró
+l1írt
+l1írv
+lí2tél
+lítés3s
+2l1ív.
+l1í2vá
+2l1ívs
+lízis1s
lji2
l2j1ir
lka2tel
lke2ma
lkis1a
-lkó2c3
+lkó2c3
l1k2v
lla2gal
lla2m1el
-lla2nyá
+lla2nyá
lla2ny1e
lla2tal
lla2tat
@@ -6996,62 +6996,62 @@ lla2tel
lla2tet
lla2tor
l2l1azo
-l2l1áll
-l2l1á2p
-llá2rak
-llás3s
+l2l1áll
+l2l1á2p
+llá2rak
+llás3s
l2l1edz
l2l1elm
lle2ma
-lle2m1á
+lle2m1á
l2lemo
llen1n
-llé2ká
-llé2k1ol
-ll1í2rá
+llé2ká
+llé2k1ol
+ll1í2rá
ll1k2
-l2l1ös
+l2l1ös
ll1p2
lls2
ll1st
-l2l1üt
+l2l1üt
l2ly
l3lyu
-lm1ajá
+lm1ajá
lm1a2ny
l2m1arc
-lmá2nyé
+lmá2nyé
lm1elm
-lm1e2l®
+lm1e2lő
lmfe2
l2m1o2p
lm1s2
lmsz2
-lná2ros
+lná2ros
lne2o
lnia2
1lo
-2lobá
+2lobá
lo1dr
-loé2d
+loé2d
lo2g1a2d
-lo2gál
-lo1g2rá
-lo2g1ú
+lo2gál
+lo1g2rá
+lo2g1ú
lo2k1e2
lo2kos
lo2laj
lo2map
-lo2m1ál
-lom1á2ro
+lo2m1ál
+lom1á2ro
lo2mec
lomi2
lo2mid
lo2min
lom1itt
-lo2mí
+lo2mí
lo2m1o2r
-lo2m1ó2
+lo2m1ó2
lona2
lo2nag
lo2naj
@@ -7067,83 +7067,83 @@ lo1sz2k
2l1oszl
lo1t2h
lo2u2
-lo2xá
+lo2xá
lo2xi
lo1y
-1ló
-lói2d
-2l1ónn
-ló1p2
-2lórab
-2lórm
-ló1t2h
-ló1t2r
-ló2ze
-1lö
-lö2kel
-lök1o
-lö2m
-lö2n1á
-lö2n1é2
-lön3n
-lö2nó
-lö2pé
-2lö2r
-lö2sü
-l1ötl
-1l®
-2l®bbi
-2l®bbr
-2l®d.
-2l®hív
-l®i2d
-l®í2
-2l®kel
-2l®nn
-2l®ny.
-2l®nyé
-2l®nyh
-2l®nyö
-2l®nyr
-2l®nyt
-2l®nyü
-2l1®rl
-2l1®2rö
-2l1®2rü
-l®2s1égg
-l®s3s
-l®1szt
-2l®té2t1
-2l®tol
-l®u2
-2l®vés
-2l®vét
-l2p1a2láv
+1ló
+lói2d
+2l1ónn
+ló1p2
+2lórab
+2lórm
+ló1t2h
+ló1t2r
+ló2ze
+1lö
+lö2kel
+lök1o
+lö2m
+lö2n1á
+lö2n1é2
+lön3n
+lö2nó
+lö2pé
+2lö2r
+lö2sü
+l1ötl
+1lő
+2lőbbi
+2lőbbr
+2lőd.
+2lőhív
+lői2d
+lőí2
+2lőkel
+2lőnn
+2lőny.
+2lőnyé
+2lőnyh
+2lőnyö
+2lőnyr
+2lőnyt
+2lőnyü
+2l1Å‘rl
+2l1ő2rö
+2l1ő2rü
+lő2s1égg
+lős3s
+lő1szt
+2lőté2t1
+2lőtol
+lőu2
+2lővés
+2lővét
+l2p1a2láv
lpen1
lp2h
l1phe
-lp2lá
+lp2lá
lpo2ka
lpo2n
-lpon1á
+lpon1á
lp2rak
l1p2re
l1p2ri
l1p2ro
-l1p2ró
-lreá2
-lsá2r
+l1p2ró
+lreá2
+lsá2r
l1s2k
l1s2l
l1s2m
-ls®ü2
+lsőü2
l1s2p
l1s2r
lst2
ls2ta
ls2ti
lsus3s
-lsza2ké
+lsza2ké
l1sz2f
l1sz2l
lta2d
@@ -7151,21 +7151,21 @@ lt1ada
lt1a2gy
lt1ajt
lta2l1e2
-lta2l1é
+lta2l1é
l2tarc
l2t1a2u
-lt1ág.
-lt1á2ga
-lt1ápo
-l2t1árf
-lt1áta
-ltá2v1i2
-ltés1s
+lt1ág.
+lt1á2ga
+lt1ápo
+l2t1árf
+lt1áta
+ltá2v1i2
+ltés1s
lt1iva
-lt1í2v
-ltornác1
-lt1ö2vi
-lt1®r.
+lt1í2v
+ltornác1
+lt1ö2vi
+lt1Å‘r.
l1t2ri
l2t1u2t
1lu
@@ -7179,154 +7179,154 @@ l1ugr
lu2le
2luli
2lulr
-lu2m1é
-2lumí
+lu2m1é
+2lumí
lu2rak
2l1u2ru
lu2se
lu2sza
lu1t2h
-1lú
-lú2d1a
-lú2gá
-2l1ú2j
-2l1ú2sz
-lú2té
-2l1úth
-lú2ti
-2l1útj
-lú2to
-1lü
-2lüd
-2l1ü2g
-l1üldö
-lü2l1em
-lü2l1é
-2l1ülhe
-2l1üljö
-2l1ülne
-2l1ülni
-2l1ü2l®
-2l1ült.
-2l1ültem
-2l1ültet.
-2l1ültett
-l1ülté
-lü2lü
-2l1ü2r
-lü2té
-lü2ti
-lü2tö
-lü2t®
-lü2tü
-2l1ü2v
-2l1ü2z
-1l¶
-l1¶2z
+1lú
+lú2d1a
+lú2gá
+2l1ú2j
+2l1ú2sz
+lú2té
+2l1úth
+lú2ti
+2l1útj
+lú2to
+1lü
+2lüd
+2l1ü2g
+l1üldö
+lü2l1em
+lü2l1é
+2l1ülhe
+2l1üljö
+2l1ülne
+2l1ülni
+2l1ü2lő
+2l1ült.
+2l1ültem
+2l1ültet.
+2l1ültett
+l1ülté
+lü2lü
+2l1ü2r
+lü2té
+lü2ti
+lü2tö
+lü2tő
+lü2tü
+2l1ü2v
+2l1ü2z
+1lű
+l1ű2z
lv1alk
-lvás3s
+lvás3s
l2v1e2le
-l2v1el®t
+l2v1előt
l2v1els
l2v1ember
-l2v1ép
-l2v1érzé
-l2v1észl
+l2v1ép
+l2v1érzé
+l2v1észl
l2v1isk
-lvkész1
+lvkész1
l2v1ok
l2v1os
-l2v1öl
-l2v1®
-l2v1ú
+l2v1öl
+l2v1Å‘
+l2v1ú
l2y
1lya
lya2gya
ly1akc
ly1a2la
ly1alk
-lya2m1é
+lya2m1é
lyan3n
-ly1a2rá
+ly1a2rá
ly1arc
2ly1ass
ly1aut
2lya2z
ly1azo
-1lyá
-ly1áll
-ly1árn
-ly1á2ro
-2ly1áru
+1lyá
+ly1áll
+ly1árn
+ly1á2ro
+2ly1áru
1lye
2ly1e2c
lye2gi
lye2l
ly1elm
2ly1elv
-lyenü2
+lyenü2
ly1e2r
-1lyé
-2ly1ég
-2ly1ép
-2ly1érd
-2ly1érte
-2ly1érté
-2ly1érv
-2ly1érz
+1lyé
+2ly1ég
+2ly1ép
+2ly1érd
+2ly1érte
+2ly1érté
+2ly1érv
+2ly1érz
1lyi
2ly1id
-2ly1i2gé
+2ly1i2gé
ly1ill
2ly1im
ly1int
-2ly1irá
+2ly1irá
2ly1iro
2lyism
2ly1i2sz
-1lyí
+1lyí
1lyo
-2lyodú
+2lyodú
2lyokoz
2ly1or
-1lyó
-1lyö
-ly1ös
-2ly1®2
-lyt1áll
+1lyó
+1lyö
+ly1ös
+2ly1Å‘2
+lyt1áll
1lyu
2ly1ud
2ly1uj
2ly1ur
-1lyú
-ly1úr.
-2ly1út
-1lyü
-ly1ü2v
-2ly1üz
-1ly¶
+1lyú
+ly1úr.
+2ly1út
+1lyü
+ly1ü2v
+2ly1üz
+1lyű
lzus1s
1ma
2m1abl
-2m1a2cé
-ma2dé
+2m1a2cé
+ma2dé
madi2a
mad1osz
-ma2dóm
+ma2dóm
ma2es
ma2g1al
magas1s
ma2g1en
ma2gor
-ma2gö
-ma2gyú
+ma2gö
+ma2gyú
ma2io
2maja
2m1ajt
2m1akc
-2makó
-ma2kón
-ma2kós
+2makó
+ma2kón
+ma2kós
makro1
2m1a2lak
ma2lap
@@ -7335,79 +7335,79 @@ mal1t
ma2lu
2malv
ma2nat
-maó2
+maó2
ma2pas
2m1apj
ma1p2r
ma2s1i2k
mast2
ma1str
-ma2szö
-mat1á2ru
+ma2szö
+mat1á2ru
ma2t1e2l
ma2tig
mat1int
ma2t1ir
-2mat®
+2matő
ma2va
ma2z1e
-1má
-2m1ábr
-2m1ág.
-2m1á2ga
-2m1á2gú
-2m1á2gy
-má2j1o2
-mála2
-má2l1al
-má2lál
-má2l1e
-má2l1ér
-m1állí
-má2lu
-má2m1as
-má2mu
-má2ne
-má2nin
-má2nyal
-má2nyaz
-má2nye
-mányi2
-má2ny1ir
-má2nyí
-má2ny1út
-m1á2p
-2m1á2rad
-m1á2rak
-má2ru
-2m1á2rú
-má2se
-má2sir
-más3zs
-2m1á2t1a2
-2m1átm
-2m1átv
+1má
+2m1ábr
+2m1ág.
+2m1á2ga
+2m1á2gú
+2m1á2gy
+má2j1o2
+mála2
+má2l1al
+má2lál
+má2l1e
+má2l1ér
+m1állí
+má2lu
+má2m1as
+má2mu
+má2ne
+má2nin
+má2nyal
+má2nyaz
+má2nye
+mányi2
+má2ny1ir
+má2nyí
+má2ny1út
+m1á2p
+2m1á2rad
+m1á2rak
+má2ru
+2m1á2rú
+má2se
+má2sir
+más3zs
+2m1á2t1a2
+2m1átm
+2m1átv
mbak2
-mb1á2gy
+mb1á2gy
m2b1e2p
mbe2r1a
mbe2rep
-mbe2r1és
+mbe2r1és
m2b1ing
mb2lo
-mb1ús
+mb1ús
m1d2
mda1p2
1me
-meá2r
-2m1e2bé
+meá2r
+2m1e2bé
me2cet
-me2dén
+me2dén
me2g1ala
me2gan
-me2gác
-me2gát
-me2g1á2z
+me2gác
+me2gát
+me2g1á2z
me2g1ec
me2g1el
me2g1em
@@ -7415,49 +7415,49 @@ me2g1e2r
meg1esk
meg1esn
me2g1ette
-me2g1etté
-me2g1ettü
-me2g1éd
-me2g1é2l
-me2gép
+me2g1etté
+me2g1ettü
+me2g1éd
+me2g1é2l
+me2gép
megi2
me2gih
me2gil
me2g1ir
me2giv
me2giz
-me2g1í2
+me2g1í2
me2g1o2
-me2g1ó2
-me2g1ö2
-meg®2
+me2g1ó2
+me2g1ö2
+megő2
meg1s
me2g1u2
-me2g1ü2l
+me2g1ü2l
2m1egys
me2k1ar
-me2k1á2
-me2kél
-me2k1és
+me2k1á2
+me2kél
+me2k1és
me2k1id
me2k1ir
me2kis
-me2kí
+me2kí
mek1k2
me2kor
me2k1os
me2k1ot
-me2köl
+me2köl
2meled
2melet
2melk
-mel2l1é2rü
+mel2l1é2rü
mel2l1u
-2m1elmé
-2m1elnö
-me2l®a
-m1e2l®á
-mel®e2
+2m1elmé
+2m1elnö
+me2lőa
+m1e2lőá
+melőe2
2m1elr
m1elter
2m1emel
@@ -7466,60 +7466,60 @@ me2nya
me2op
2m1e2p
2m1e2rej
-2merny®
-me2r®m
-me2r®v
-2m1e2r¶
+2mernyő
+me2rőm
+me2rőv
+2m1e2rű
me2s1er
me2s1o2
me2su
-me2s1ú
+me2s1ú
2m1eszm
met1ell
me2t1or
-me2t1ó2r
-me2tú
-me2v®
-me2zár
+me2t1ó2r
+me2tú
+me2vő
+me2zár
me2zin
me2zor
-me2zö
+me2zö
me2zs
-1mé
-2m1ébr
-mé2g
-még1a
-még1i
-mé2k1á2
-méke2l
-mék1ell
-mék1el®
-mé2kin
-2m1élm
-mé2ly1a
-mé2lyá
-mé2lyig
-mé2ny1el
-mé2nyir
-2m1é2p
-mér2v1a
-2m1érz
-mé2sá
-mé2s1er
-mé2szé
-mé2szo
-mé2tap
-mé2t1em
-mé2té
-2m1év.
-mé2ven
-mé2ves
-2m1é2vi
-2m1é2vü
-mé2zil
-mé2z1o
-mé2zs
-mf2rá
+1mé
+2m1ébr
+mé2g
+még1a
+még1i
+mé2k1á2
+méke2l
+mék1ell
+mék1elő
+mé2kin
+2m1élm
+mé2ly1a
+mé2lyá
+mé2lyig
+mé2ny1el
+mé2nyir
+2m1é2p
+mér2v1a
+2m1érz
+mé2sá
+mé2s1er
+mé2szé
+mé2szo
+mé2tap
+mé2t1em
+mé2té
+2m1év.
+mé2ven
+mé2ves
+2m1é2vi
+2m1é2vü
+mé2zil
+mé2z1o
+mé2zs
+mf2rá
mg2
m1gr
mgubanc1
@@ -7530,16 +7530,16 @@ mi2aj
mia2l
mi2ap
mia2r
-mi2deá
+mi2deá
mi2deg
-m1i2dé
-2mid®
-mie2l®t
+m1i2dé
+2midő
+mie2lőt
2m1i2ga
migaz1
2m1i2ge
-2m1i2gé
-2m1i2má
+2m1i2gé
+2m1i2má
m1imp
min2ce
min2ch
@@ -7548,73 +7548,73 @@ min2der
mi2ol
mi2ono
mi2onr
-mió2t
+mió2t
2m1i2pa
2m1i2ro
2mirt
mis1eme
mita2
-mit1ár.
+mit1ár.
mi2tu
mi2zom
-1mí
-m1í2rá
-mí2ró
+1mí
+m1í2rá
+mí2ró
m2j1ol
m1k2
mla2u
-mlás1s
-mlé2k1a2
-mlé2kes
-mma2gá
+mlás1s
+mlé2k1a2
+mlé2kes
+mma2gá
mme2g
1mo
-mo1g2rá
+mo1g2rá
mo2ir
moki2
-mo2kó
-2m1oktá
-mo2k1ú
+mo2kó
+2m1oktá
+mo2k1ú
mo2laj
2molvas
mo2lyi
mo2ne.
-mo2né.
-mo2nü
+mo2né.
+mo2nü
mo2or
mo1p2l
mo2ren
-mo2rég
+mo2rég
mo2rid
2morie
-mország1
+mország1
mo2sar
mo2se
most2
-mosz2fé
+mosz2fé
mo2szim
2moszl
mosz1th
2m1o2x
-1mó
-2m1ó2rá
-mó1th
-1mö
-2m1öld
-2m1önt
-2m1öv
-1m®
-m®e2
-m®2rá
+1mó
+2m1ó2rá
+mó1th
+1mö
+2m1öld
+2m1önt
+2m1öv
+1mő
+mőe2
+mő2rá
mp2he
mp2hi
-mpor2t1á2r
+mpor2t1á2r
m1p2resszi
-m1p2ró
+m1p2ró
m1q
mst2
m1str
-msza2ké
+msza2ké
msz2c
m1sz2f
mszt2
@@ -7626,43 +7626,43 @@ m1t2r
mu2se
mus3s
mu2t1a2g
-mu2tár
-1mú
-mú2g
-múgy1
-2m1új
-mú2t
-m1úth
-2m1úto
-1mü
-2müg
-mü2gy
-mü2ka
-2m1ünn
-2mü2r
-2m1üs
-2m1ü2v
-mü2z
-1m¶
-m¶i2
-m¶k2
-m¶1kr
-m¶1st
-2m¶z
-m¶2zé
-m¶2zi
-m¶2zö
-m¶2z®
+mu2tár
+1mú
+mú2g
+múgy1
+2m1új
+mú2t
+m1úth
+2m1úto
+1mü
+2müg
+mü2gy
+mü2ka
+2m1ünn
+2mü2r
+2m1üs
+2m1ü2v
+mü2z
+1mű
+műi2
+műk2
+mű1kr
+mű1st
+2műz
+mű2zé
+mű2zi
+mű2zö
+mű2ző
mvas3s
-mze2t1á
+mze2t1á
mze2tel
-mze2t®
+mze2tő
1na
-n1abbó
+n1abbó
2n1abl
-2n1a2cé
-2n1a2dó
-na1dró
+2n1a2cé
+2n1a2dó
+na1dró
n1adt
nae2g
na2ge
@@ -7671,105 +7671,105 @@ nagy1ap
nagy1as
na2gyer
na2gyor
-na2gyó
-na2gy1ú
+na2gyó
+na2gy1ú
na2ig
nai2s
2n1a2kad.
-2n1a2kadá
+2n1a2kadá
2n1a2kadh
2n1a2kadnak
2n1a2kado
-2n1akadó
+2n1akadó
2n1a2kadt
-naki2á
-na2k®r
-nakü2
+naki2á
+na2kőr
+nakü2
2n1a2lap
na2lid
-2nalí
+2nalí
n1alj.
2n1ann
na2nya
nao2
-naó2
-na2pák
-nap1áll
+naó2
+na2pák
+nap1áll
na2p1el
na2pen
na2p1er
-na2p1ó2r
+na2p1ó2r
napu2
na2pud
na2put
na2tab
na2tel
-na2t1ér
+na2t1ér
na2t1osz
2n1a2ty
na2uk
na2us
na2uto
-na2zé
+na2zé
na2zo
-1ná
-ná2ch
-ná2cse
-ná2csü
-ná2d1e2
-2n1á2g
-ná2lab
-2n1álar
-nále2
-n1állá
-2n1állo
-ná2mí
-ná2nad
-nán2c1
-n1á2ram
-ná2r1e2
-2nárui
-ná2rú
-2n1árv
-ná2sü
-ná2szat
-ná2sze
-ná2s3zö
-ná2szú
-ná2szü
-ná2tal
-n1átf
-ná2tí
-2n1átl
-2n1átm
+1ná
+ná2ch
+ná2cse
+ná2csü
+ná2d1e2
+2n1á2g
+ná2lab
+2n1álar
+nále2
+n1állá
+2n1állo
+ná2mí
+ná2nad
+nán2c1
+n1á2ram
+ná2r1e2
+2nárui
+ná2rú
+2n1árv
+ná2sü
+ná2szat
+ná2sze
+ná2s3zö
+ná2szú
+ná2szü
+ná2tal
+n1átf
+ná2tí
+2n1átl
+2n1átm
nba2l1
n1b2l
n2c1a2g
n2c1ann
nc1asz
-n2c1á2ro
-n2cáru
-nc3csö
-n2c1ép
+n2c1á2ro
+n2cáru
+nc3csö
+n2c1ép
n2c3ha
-n2c3há
+n2c3há
nc3het
-n2c3hé
+n2c3hé
nc3hoz
nc3hu
nci2alis
nc1ing
nc1i2r
nc1ork
-n2c1ó2
+n2c1ó2
n2csab
-n2csáru
-ncs1árv
+n2csáru
+ncs1árv
ncs1elc
-n2csérte
-n2cs1íz
+n2csérte
+n2cs1íz
n2csosz
-ncs1®r
+ncs1Å‘r
n2csur
nd1arr
nda2tal
@@ -7779,25 +7779,25 @@ n2d1eb
n2d1edd
nd1egy
n2deh
-nd1ekö
-nde2ná
+nd1ekö
+nde2ná
nde2n1ev
-n2d1é2l
-n2d1ész.
-nd1éti
+n2d1é2l
+n2d1ész.
+nd1éti
nd1ink
ndme2
-n2d®rá
-n2d1®rn
-n2d1®2ro
-nd1®rö
+n2dőrá
+n2d1Å‘rn
+n2d1Å‘2ro
+nd1őrö
n1d2ram
n1dy
nd3zav
-n2d3zó
+n2d3zó
1ne
nea2k
-ne2áp
+ne2áp
2n1egy.
n1egyf
n1e2gyi
@@ -7805,18 +7805,18 @@ n1egyk
2n1egyn
n1egys
ne2k1eg
-ne2k1ó2
+ne2k1ó2
ne1kri
n1elk
-2n1e2l®a
-ne2l®k
-ne2l®t
+2n1e2lőa
+ne2lők
+ne2lőt
2n1elv
-ne2má
+ne2má
2n1ember
ne2m1eg
nemes1s
-ne2més
+ne2més
nem1id
nem1iss
n1eng
@@ -7824,197 +7824,197 @@ n1enn
ne2of
ne2oli
ne2olo
-ne2oló
+ne2oló
ne2or
ne2os
ne2ot
-neó2r
+neó2r
n1erd
2n1e2red
-2n1e2r®
-ne2sá
+2n1e2rő
+ne2sá
ne2sem
ne2setr
ne2so
-2n1e2s®
-nesü2
-ne2süv
+2n1e2ső
+nesü2
+ne2süv
nes3zs
-2n1e2sz¶
+2n1e2szű
ne2t1eg
-ne2tír
+ne2tír
ne2tok
ne2tol
-ne2t1öl
-ne2vés.
-2n1e2v®
+ne2t1öl
+ne2vés.
+2n1e2vő
ne2zer
-2nezüs
-1né
-2n1ég.
-2nége
-né2get
-2nég®
-né2gyá
-né2l¶
-né2p1a2
-né2pá
-né2peg
-né2p1e2l
-2n1é2pítk
-né2p1o
-né2pu
-2n1érc
-2n1érd
-né2ren
-2n1é2ré
-2n1érh
-2n1érm
-né2r®.
-2n1érte
-2n1érté
-2n1érv
-2n1érz
-né2szá
-né2szeg
-2n1étk
-néva2
-néve2l
-név1el®
-né2ves
-né2vü
-2névz
+2nezüs
+1né
+2n1ég.
+2nége
+né2get
+2négő
+né2gyá
+né2lű
+né2p1a2
+né2pá
+né2peg
+né2p1e2l
+2n1é2pítk
+né2p1o
+né2pu
+2n1érc
+2n1érd
+né2ren
+2n1é2ré
+2n1érh
+2n1érm
+né2rő.
+2n1érte
+2n1érté
+2n1érv
+2n1érz
+né2szá
+né2szeg
+2n1étk
+néva2
+néve2l
+név1elő
+né2ves
+né2vü
+2névz
nfe2li
-nfüs2
-nfüst1
-nfüstö2
-ng1a2dá
-ng1a2dó
+nfüs2
+nfüst1
+nfüstö2
+ng1a2dá
+ng1a2dó
n2g1a2la
n2g1alj
-n2g1ág
-n2g1árn
-ngás1s
+n2g1ág
+n2g1árn
+ngás1s
n2g1e2g
ng1elm
-nge2rá
-ng1érté
+nge2rá
+ng1érté
n2g1id
ngi2g
ng1iga
-ng1igé
+ng1igé
n2g1ing
n2g1int
-ng1ír
+ng1ír
ngo1szk
-n2g1ön
-ng1ö2z
+n2g1ön
+ng1ö2z
ng1ug
-ng1üz
-n2g1¶
+ng1üz
+n2g1ű
n2gy1em
-n2gyél
+n2gyél
n2gyis
-n2gyí
-nhá2zig
+n2gyí
+nhá2zig
nhe2i
-nhé2t1
+nhé2t1
1ni
ni2ad
ni2ah
ni2am
2n1i2de
ni2dom
-2n1i2d®
+2n1i2dő
nie2l
ni1f2
2n1i2ga
-2n1i2gá
-2nigé
+2n1i2gá
+2nigé
2n1i2ly
2n1imp
2n1ind
2n1inj
-2n1inté
+2n1inté
ni2pa
ni1p2r
ni2rat
-2n1i2rá
+2n1i2rá
2n1irg
2n1i2ro
2n1isk
-ni2s1ü2
+ni2s1ü2
ni2sza
ni2tal
-1ní
-2n1íg
-ní2ra
-2n1í2rá
-2n1í2ró
-2n1í2tél
+1ní
+2n1íg
+ní2ra
+2n1í2rá
+2n1í2ró
+2n1í2tél
nka1b
-nk1adós
-nk1ajá
+nk1adós
+nk1ajá
n2k1alk
nk1a2ut
-nk1áll
-nkás3s
-n2kátu
-nkci2ósz
+nk1áll
+nkás3s
+n2kátu
+nkci2ósz
n2k1ell
-nké2pel
+nké2pel
nki2g
nk1iga
n2k1ing
-nk1inté
+nk1inté
nki2s1a
nk1k2
nk1old
-n2k1ö2lé
+n2k1ö2lé
nk2rit
nkron1n
nk1uz
-nk1üz
+nk1üz
nlac1
nla2kos
nlo2n1
nme2g1
nmono2x
-nn1áll
-nn1ége
+nn1áll
+nn1ége
n2n1or
nn1ug
-n2n1ú
-nnü2
-nn1ül®
+n2n1ú
+nnü2
+nn1ülő
n2ny
-n3nyalá
+n3nyalá
nny1a2n
-nny1ár
-nny1á2z
+nny1ár
+nny1á2z
n3nyil
n3nyol
-nny1öz
+nny1öz
n3nyu
-n3nyú
+n3nyú
1no
no1ch
n1off
2nogn
-no1g2rá
+no1g2rá
2nogt
no2kar
no2kas
noke2
no2ker
no2k1ir
-no2kö
+no2kö
no1kro
2n1okta
-no2k1ú
+no2k1ú
2n1o2la
2n1o2ly
-no2mér
+no2mér
no2mol
nom1p
non2c3
@@ -8026,41 +8026,41 @@ no1p2la
n1ord
2nore
n1org
-no1szkó
+no1szkó
2n1oszl
nosz3s
-1nó
-nó2dár
-nó2rák
-n1ó2rán
-nó2rí
-nósz2
-nó2s3zen
-1nö
-nö2l
-2n1ö2r
-n1össz
-nö2t1e
-nö2ti
-1n®
-n®e2
-n®2ir
-2n1®r.
-2n1®2ré
-2n1®2ri
-2n1®rk
-2n1®rn
-2n1®2rö
-2n1®rs
-2n1®rt
-2n1®rz
+1nó
+nó2dár
+nó2rák
+n1ó2rán
+nó2rí
+nósz2
+nó2s3zen
+1nö
+nö2l
+2n1ö2r
+n1össz
+nö2t1e
+nö2ti
+1nő
+nőe2
+nő2ir
+2n1Å‘r.
+2n1ő2ré
+2n1Å‘2ri
+2n1Å‘rk
+2n1Å‘rn
+2n1ő2rö
+2n1Å‘rs
+2n1Å‘rt
+2n1Å‘rz
n1p2
n1r
n2s1akk
n2s1a2l
ns1e2le
ns1elt
-ns1ív
+ns1ív
ns3s
n1s2tab
nste2
@@ -8068,24 +8068,24 @@ ns2tei
n1stein.
n1steine
ns1ur
-ns1úr
+ns1úr
n1sy
-nsza2ké
+nsza2ké
nszeng1
-nsz2fé
+nsz2fé
n2t1akk
ntan2t1
ntap2
-n2t1a2rá
+n2t1a2rá
n2t1ark
nt1aut
nt1azo
-n2táld
-n2t1áll
-n2t1árf
-n2t1áru
-nt1átl
-nt1e2dé
+n2táld
+n2t1áll
+n2t1árf
+n2t1áru
+nt1átl
+nt1e2dé
n2t1egy
n2t1ela
nt1elr
@@ -8096,28 +8096,28 @@ nte2r1a
nte2sz
nt1esze
nt1eva
-nté2ké
-n2t1é2le
-n2t1érté
-nt1érz
-ntés1s
-nt1étke
+nté2ké
+n2t1é2le
+n2t1érté
+nt1érz
+ntés1s
+nt1étke
n1t2hu
nti1k2l
nti1p2
-nt1irá
+nt1irá
nt1izo
-nt1írá
-nt1írt
-n2t1íz
+nt1írá
+nt1írt
+n2t1íz
nto1g2
nt1o2ly
-nt1ó2ri
-n2t1ö2v
+nt1ó2ri
+n2t1ö2v
n2t1ug
ntus3s
-n2t1ü2s
-n2t1üt
+n2t1ü2s
+n2t1üt
ntya2
n2ty1al
1nu
@@ -8125,82 +8125,82 @@ n2ty1al
2nug
nu2go
nu2s1ol
-2n1u2tó
-1nú
-2n1úg
-2n1úté
-1nü
-2n1ü2g
-2n1üld
-n1üss
-2n1ü2te
-nü2ti
-nü2tö
-n1ü2t®
-2n1ü2z
-1n¶
+2n1u2tó
+1nú
+2n1úg
+2n1úté
+1nü
+2n1ü2g
+2n1üld
+n1üss
+2n1ü2te
+nü2ti
+nü2tö
+n1ü2tő
+2n1ü2z
+1nű
nvers1
n2y
1nya
2nyabl
-2nyadó
+2nyadó
2nyaga
-2nyagá
+2nyagá
2nyagb
2nyagh
2nyagn
nya2gos
2nyagr
2nyagy
-nya2k1ék
-nya2kér
+nya2k1ék
+nya2kér
nya2lap
2nyalm
2ny1ant
-nya2nyá
+nya2nyá
ny1apa
2ny1arc
ny1aut
-1nyá
-2nyág
-ny1á2lo
-2nyámh
-2nyámn
-2nyáp
-2ny1á2rat
-2nyárp
-2nyáru
-2nyásó
-2nyáta
+1nyá
+2nyág
+ny1á2lo
+2nyámh
+2nyámn
+2nyáp
+2ny1á2rat
+2nyárp
+2nyáru
+2nyásó
+2nyáta
1nye
2ny1e2gy
2nyelc
ny1elny
ny1elo
-ny1el®h
-2ny1el®n
-nyel2vá
+ny1előh
+2ny1előn
+nyel2vá
2nyemel
2ny1ene
nyereg1
-2nyes®
-1nyé
-2nyéhes
-ny1éle
-2ny1ép
-2nyész®e
-2nyév.
-2nyévb
-2nyévek
-2nyévet
-2nyévn
-2nyévr
-2nyévv
+2nyeső
+1nyé
+2nyéhes
+ny1éle
+2ny1ép
+2nyészőe
+2nyév.
+2nyévb
+2nyévek
+2nyévet
+2nyévn
+2nyévr
+2nyévv
1nyi
2nyid
2ny1iga
2ny1ill
-2nyimá
+2nyimá
2nyind
2nyinf
2ny1int
@@ -8210,8 +8210,8 @@ ny1éle
2nyism
2ny1ist
2ny1iz
-1nyí
-2nyív
+1nyí
+2nyív
ny1k2
nylo2n1
1nyo
@@ -8220,10 +8220,10 @@ nylo2n1
ny1op
ny1ors
2ny1ott
-1nyó
-1nyö
-ny1öl
-1ny®
+1nyó
+1nyö
+ny1öl
+1nyő
ny1p2
nys2
3nys.
@@ -8234,91 +8234,91 @@ ny1ud
2nyuno
2nyus
2ny1u2t
-1nyú
-2nyújs
-ny1úr.
-ny1ú2sz
-2nyútj
-2nyútt
-1nyü
-2ny1üg
-2nyüld
-ny1ür
-2ny1üt
-1ny¶
-2ny¶r
-ny1¶r.
-2ny¶z
-ny1¶2zé
+1nyú
+2nyújs
+ny1úr.
+ny1ú2sz
+2nyútj
+2nyútt
+1nyü
+2ny1üg
+2nyüld
+ny1ür
+2ny1üt
+1nyű
+2nyűr
+ny1űr.
+2nyűz
+ny1ű2zé
ny2van
n2z1ak
n2z1a2ny
n2z1a2p
-nz1á2ru
-nz1e2dé
+nz1á2ru
+nz1e2dé
n2z1eg
n2z1elf
n2z1ell
-n2z1e2l®
+n2z1e2lő
n2z1ember
-nz1e2més
+nz1e2més
nze2s
nz1eszk
-nz1éhe
-nz1ére
-n2z1érm
-n2z1ér®
+nz1éhe
+nz1ére
+n2z1érm
+n2z1érő
n2z1i2p
nz1k2
-n2z1ön
-nz1ös
+n2z1ön
+nz1ös
nz1p2
-nz3ság
-nz3sár
+nz3ság
+nz3sár
nz3seg
-n2z3só
-nz1ü2g
-nz1üz
+n2z3só
+nz1ü2g
+nz1üz
nz3z
2o.
2o1a
-oa2cé
+oa2cé
oa2n
oan1e
-o1á
+o1á
2oba
obai2
-obás3s
+obás3s
ob2bol
-ob2bö
+ob2bö
2obi
obi2lan
obi2o
2obo
obo2ra
-o2b1ü2
+o2b1ü2
2oca
2oce
oc1e2m
-2océ
-oc2k1é2
-2ocö
-o2csí
-o2csú
+2océ
+oc2k1é2
+2ocö
+o2csí
+o2csú
oc3sz
o2c3z
oda1p
-1o2dáz.
-1o2dázh
-1o2dázn
-1o2dázó
-1o2dázt
-1o2dázzu
+1o2dáz.
+1o2dázh
+1o2dázn
+1o2dázó
+1o2dázt
+1o2dázzu
2ode
-2odé
-od1éve
-o2d1í2
-1o2dú
+2odé
+od1éve
+o2d1í2
+1o2dú
2o1e
o2ei
oe2l
@@ -8327,16 +8327,16 @@ o2er
o2es
oe1t2
oe2v
-2o1é
-oé2dere
-o2ég
-oé2l
+2o1é
+oé2dere
+o2ég
+oé2l
2ofa
2ofe
-2ofé
+2ofé
o1fl
2ofo
-2ofó
+2ofó
o1f2ri
og1a2la
o2g1alt
@@ -8344,9 +8344,9 @@ o2g1ap
og1assz
o2g1asz
oga2t1e2
-2ogá
-og1átk
-og1átr
+2ogá
+og1átk
+og1átr
2oge
o2g1e2d
og1e2g
@@ -8356,24 +8356,24 @@ oge2o
og1ere
oge2s
o2g1ez
-o2g1él
-og1érv
+o2g1él
+og1érv
o2g1id
o2g1i2g
og1int
o2g1i2p
og1ir
o1g2lic
-og2lób
+og2lób
o1g2nai
-2ogó
-o2g1ö
+2ogó
+o2g1ö
2o1g2raf
-2ográ
+2ográ
o2g1u2t
-o2g1ü2
+o2g1ü2
2ogy
-ohó2cs
+ohó2cs
o1i
o2ib
o2ih
@@ -8381,122 +8381,122 @@ o2inte
oi2o
2oiz
oi2zo
-o1í
-2ojá
+o1í
+2ojá
2oje
-ok1ajá
+ok1ajá
o2k1a2la
ok1alj
ok1a2ra
ok1arc
ok1ass
o2k1a2to
-okás1s
+okás1s
2oke
oke2d
-ok1edé
+ok1edé
ok1e2g
o2k1e2m
ok1ere
-ok1er®
+ok1erő
o2k1es
ok1e2v
ok1ez
-2oké
-ok1é2ne
-o2k1ér.
-o2k1érc
-o2k1érte
-o2k1éve
+2oké
+ok1é2ne
+o2k1ér.
+o2k1érc
+o2k1érte
+o2k1éve
ok2hi
o2k1i2d
-ok1i2rá
+ok1i2rá
ok1ist
ok1izm
-o2kí
-ok1ív
-ok1íz
+o2kí
+ok1ív
+ok1íz
ok2lim
ok2lor
okon1n
o2k1osz
-ok1ó2r
-o2k1öb
-o2k1ö2l
-okö2r
+ok1ó2r
+o2k1öb
+o2k1ö2l
+okö2r
ok2ris
ok2rom
2oku
o2k1u2s
-o2k1ü2
+o2k1ü2
ola1d
ol1ada
1olajf
o2lajt
-olaszó2
-ola2szór
+olaszó2
+ola2szór
2olat
ola2tol
-ol1áll
-olás1s
+ol1áll
+olás1s
ol2c1e
-ol2cé
+ol2cé
ol2csin
ol2c3sor
ol2dap
-ol2dál
+ol2dál
ol2d1is
ol2d1ud
-ol2d1ü
+ol2d1ü
2ole
o2l1e2l
-o2l1é2r
-ol2f1ö
-ol2fü
+o2l1é2r
+ol2f1ö
+ol2fü
o2l1il
ol1ind
2olit
olki2
-ol2l1®
-ol1ó2rá
+ol2l1Å‘
+ol1ó2rá
ol1p2
ol2taj
-ol2tág
+ol2tág
olte2
ol2t1el
ol2t1em
-ol2t1ér
-ol2tí
-ol2t®r
-ol2t1ü
+ol2t1ér
+ol2tí
+ol2tőr
+ol2t1ü
o2l1ug
1olvad
1olvas
oly1agy
o2lyaj
-o2lyál
-o2ly1ü2
-o2m1a2dó
+o2lyál
+o2ly1ü2
+o2m1a2dó
o2m1adt
om1agy
o2m1a2j
o2m1akn
-om1akó
+om1akó
o2m1a2l
o2m1ana
o2m1ann
om1app
o2m1ar
om1atom
-o2m1árb
-o2m1áru
-omás3s
+o2m1árb
+o2m1áru
+omás3s
2omb
-om2bág
+om2bág
om2ber
2ome
om1ece
-o2m1edé
+o2m1edé
o2meg
om1egy
ome2l
@@ -8508,13 +8508,13 @@ o2m1e2m
om1ene
ome2o1
omeosz2
-o2m1e2r®
+o2m1e2rő
o2m1e2v
o2m1e2z
-2oméd
-om1érc
-o2m1érte
-om1éve
+2oméd
+om1érc
+o2m1érte
+om1éve
om1ide
o2m1il
om1ind
@@ -8522,96 +8522,96 @@ o2m1ip
o2m1i2r
o2m1ism
om1izo
-om1ír
-om1í2v
+om1ír
+om1í2v
omog2
o2m1ola
o2m1old
o2m1op
2omor
-o2m1ö2
-o2m1®2
+o2m1ö2
+o2m1Å‘2
om1p2lo
om1p2re
oms2
om1st
o2m1ud
o2m1uj
-o2m1ü2
-2om¶
-om1¶z
-on1agá
+o2m1ü2
+2omű
+om1űz
+on1agá
on1ajt
ona2le
on1a2va
-o2n1átr
-on1átv
+o2n1átr
+on1átv
on2cas
-on2c1é2
+on2c1é2
onc3sz
-on2d1ó2r
+on2d1ó2r
o2n1e2g
o2nek
one2l
on1ele
-on1el®
+on1elő
one2r
on1ern
-o2n1ég
-on1éhe
-o2n1é2l
-on1éne
-o2n1é2p
-on1év.
-on1éve
+o2n1ég
+on1éhe
+o2n1é2l
+on1éne
+o2n1é2p
+on1év.
+on1éve
ong1asz
oni2g
-on1igé
+on1igé
o2n1ip
on1ism
on1izz
-onkás1
+onkás1
on3nye
on3nyo
o2n1old
on1opt
ono2szi
-o2n1ö2
-o2n1®
+o2n1ö2
+o2n1Å‘
on2t1aj
-ont1á2ron
-on2tát
+ont1á2ron
+on2tát
on2ted
-on2t1ér
-on2t1ös
+on2t1ér
+on2t1ös
on1t2ri
on1ud
on1ug
o2n1ut
-onú2
-o2núj
-on1ús
-2onü
-on1ü2l
-on1üt
-on1ü2v
+onú2
+o2núj
+on1ús
+2onü
+on1ü2l
+on1üt
+on1ü2v
ony1any
-o2ny1ál
+o2ny1ál
ony1em
o2nyer
ony1es
-ony1ég
+ony1ég
o2ny1ir
o2ny1it
-o2ny1ó2
-o2nyö
-o2ny1®2
-2onysiosá
+o2ny1ó2
+o2nyö
+o2ny1Å‘2
+2onysiosá
on2zed
on2z1es
-onzé2
-on2zér
-on2zsá
+onzé2
+on2zér
+on2zsá
2o1o
o2ob
o2of
@@ -8620,9 +8620,9 @@ o2ol
oo2r
o2ot
oo2x
-o2ó
-o1ö2
-o1®
+o2ó
+o1ö2
+o1Å‘
2opa
op1e2g
2oph2
@@ -8634,7 +8634,7 @@ op2le
op2rod
2ops
opsz2t
-2opü1
+2opü1
or1abl
or1ala
or1alj
@@ -8646,31 +8646,31 @@ or1any
ora1p
or1arc
or1atl
-o2r1á2g
-or1á2rak
-or1áru
-or2cs®
-or2dö
-or2dú
+o2r1á2g
+or1á2rak
+or1áru
+or2cső
+or2dö
+or2dú
o2r1e2d
or1elm
or1eln
or1elo
-or1e2l®
+or1e2lő
or1els
o2r1e2m
o2r1eng
or1eny
o2r1e2r
ore2s
-or1es®
-or1é2gé
-o2r1é2l
-or1é2ne
-o2r1ép
+or1eső
+or1é2gé
+o2r1é2l
+or1é2ne
+o2r1ép
2orgia
orgi2ai
-2orgiá
+2orgiá
or1i2de
1o2rie
o2riga
@@ -8681,13 +8681,13 @@ or1isp
or1iss
or1iste
ori2sz
-o2r1ír
-o2ríz
+o2r1ír
+o2ríz
or1kr
or2ne.
o2r1or
-or1ó2r
-o2r1ö
+or1ó2r
+o2r1ö
or1pl
or1pr
or2r1e2v
@@ -8695,28 +8695,28 @@ orse2
or2sel
or2ses
or2set
-orsé2
-or2s1ég
-or2s1ér
-or2sét
+orsé2
+or2s1ég
+or2s1ér
+or2sét
or2sis
ors3s
-1ország.
+1ország.
or2t1a2d
-or2táru
+or2táru
or2teg
ort1elm
or2t1em
ort1esz
-ort1ért
+ort1ért
ort1ing
or2t1osz
-or2t1ös
+or2t1ös
o2r1ud
o2r1ug
or1u2r
o2r1u2t
-o2r1ü
+o2r1ü
o1ry
orz1z
o2s1ac
@@ -8724,8 +8724,8 @@ o2s1a2la
o2s1alk
osa2t
os1aty
-o2s1áf
-os1áll
+o2s1áf
+os1áll
ose2
os1ed
os1eg
@@ -8734,65 +8734,65 @@ os1emb
os1en
os1er
os1esz
-o2s1ép
+o2s1ép
o2s1id
os1ina
os1int
o2sir
-o2s1í2r
+o2s1í2r
os1k
oski2
osme2
os1p2
ossz1es
-os3szék
-os3szö
-os3sz®
+os3szék
+os3szö
+os3sző
os2t1any
os1the
1ostro
1ostya
o2s1uj
o2s1ut
-os1úr.
-os1út
-o2s1ü2
+os1úr.
+os1út
+o2s1ü2
osz1alk
o2sz1e2l
o1sz2fe
2o1szkl
-2oszkóp.
-2oszkópk
-2oszkópo
-2oszkópp
+2oszkóp.
+2oszkópk
+2oszkópo
+2oszkópp
osz1ors
-osz1ó2r
-o2s3zö
-o2s3z®
+osz1ó2r
+o2s3zö
+o2s3ző
o2szut
-o2sz¶
+o2szű
ota1g
o2t1a2u
-o2t1ág
-ot1á2rak
+o2t1ág
+ot1á2rak
2ote
o2t1e2g
-2otéka
-o2t1érté
+2otéka
+o2t1érté
o1t2he
ot2hi
-2otí
+2otí
oto1g2
oto1p
otosz2f
otot2
-otókész1
-otó2pa
-o2t1ó2sá
+otókész1
+otó2pa
+o2t1ó2sá
2otro
ot2tar
-ot2tég
-o2t1ü2
+ot2tég
+o2t1ü2
o1u
o2uc
o2un
@@ -8800,9 +8800,9 @@ o2ur
o2us
o2ut
ouv2
-o1ú
-o1ü
-o1¶
+o1ú
+o1ü
+o1ű
ovas3s
owat2
o2wi
@@ -8811,818 +8811,818 @@ o1ya
o1ye
oy1s2
oza2g1
-oza2tí
-ozatkész1
+oza2tí
+ozatkész1
oza2t1ol
-ozás3s
-oz1é2p
+ozás3s
+oz1é2p
o2z1il
ozi1sz2
oz3sz
-2ó.
-ó1a
-óa2c
-2óa2d
-óa2g
-óa2j
-2óak
-2óa2l
-2óa2m
-óa2n
-2óa2r
-2óa2u
-óa2v
-2óa2z
-2ó1á
-óá2c
-óá2gak
-óá2l
-óá2p
-óá2r
-óá2t1
-2óbar
-óba1s2
-2óbec
-2óbef
-2óbem
-2óbes
-2óbé
-2óbil
-2óbio
-2óbir
-2óbit
-óbo2rá
-ó2c1an
-óc3c
-óc3ho
-2óci
-2ócí
-óc3ság
-ó2csár
-óc3sip
-óc3sz
-2ódar
-ó2d1ál
-ódá2r
-ód1ára
-ódás1s
-2óde
-ó2d1id
-ód1isk
-2ódí
-ó2d1ír
-ód1öl
-ód2res
-ód2rót
-ó1dy
-ód3zs
-2ó1e2
-óel1a2
-ó1é
-óé2g
-óé2l
-óé2ne
-óé2p
-óé2ré
-óé2ri
-óé2r®
-2óérté
-2óérz
-óé2te
-óé2ve
-2ófa.
-2ófae
-2ófá
-2ófi
-2ófo
-2ófr
-óf2ri
-ófus1s
-2ófü
-2óg
-ógi2as
-ógo2r1as
-ógy1a2n
-ógy1el
-ógy1es
-ógy1ér
-ógy1in
-ó2gyü
-2óhá
-2óhé
-2óhi
-2óhí
-2óhor
-2óh®
-2óhu
-ó1i
-2ói2de
-2ói2d®
-ói2g
-2óigé
-ói2má
-2óing
-2óint
-2ói2p
-ói2rat
-2ói2rá
-ói2ro
-2ói2s
-ói2ta
-ói2z
-2ó1í2
-2ójáté
-2óje
-2ókap
-2ókate
-ók1áll
-ók1áru
-ó2k1eg
-2ókel
-2óker
-2ókez
-2ókény
-2óképe
-2óképl
-2óképn
-2óképt
-2óképz
-2ókéré
-2ókér®
-2ókés
-ó1k2hi
-2ókie
-2ókine
-ók1int
-2ókiny
-ók1iro
-2ókomm
-2ókoo
-2ókö
-ó1kraj
-ó1k2ré
-ók2ri
-ó1k2ro
-ó2kum
-2ókut
-2ókül
-2óküs
-ó2k1üz
-ól1aj
-ó2l1a2r
-ólás3s
-1ólb
-2óle
-ó2l1e2se
-ó2l1e2si
-ó2l1ér
-óli2óé
-ólo2m1e
-ólo2mé
-ól1öl
-ólu2mi
-2ómag
-2óme
-ómen1k2
-2ómére
-2óméré
-2ómérn
-2ómét
-2ómi
-2ómor
-2ómoz
-2ómó
-2óm¶
-2ónag
-óna2ké
-óna2kü
-ó2n1al
-ó2n1áll
-ón1e2d
-2óné
-ón1o2x
-2ónö
-ón1ön
-ón1öt
-ónus3s
-ó2n1ut
-ó2n1ü2
-2ónyil
-2ó1o2
-ó1ó2
-2ó1ö2
-ó1®
-2ópa
-óp1a2rá
-2ópá
-ó1p2l
-ó1p2ré
-ó1p2ro
-ó1p2ró
-ó2raa
-1ó2rab
-1ó2ral
-2órád
-1ó2ráé
-órá2g
-ór1ágy
-1ó2ráh
-1ó2rár
-1ó2ráv
-2óre
-ó2r1e2g
-ó2r1e2l
-óre2s
-ór1ese
-ó2r1e2ti
-ó2r1é2l
-ó2r1i2o
-ó2r1ism
-ór1ír
-2óro
-ó2r1o2ki
-ó2r1o2ko
-2órö
-ó2s1as
-ó2s1ál
-2óse
-ó2s1e2g
-ós1emb
-ó2s1id
-ó2s1i2n
-ós1isk
-ós1k
-óskész1
-2ósor
-ó2s1os
-ósó2
-ós1ór
-ós1p2
-2óspe
-ós2pek
-ós2por
-óst2
-ó1s2tí
-2ó1str
-2ósu
-ó2s1ur
-ó2s1úr
-ósü2l
-2ós¶
-2ósza
-ós3zac
-2ószá
-2ószel
-2ószem
-2ószen
-2ószé
-2ószi
-2ószí
-ósz2láv.
-2ószol
-2ószó
-ószóza2
-2ószö
-ós3zs
-ósz1th
-ószt2r
-ó1sz2v
-ót1a2d
-2ótag
-2ótar
-ót1áll
-2ótár
-2ótáv
-ótá2v1i2
-ótá2v1í2
-2ótec
-ót1e2g
-ót1ej
-2ótel
-2óten
-2óter
-2ótén
-ót1il
-ót1ing
-2ótí
-ót1í2v
-ótme2g1
-ót1orr
-ó2t1ors
-2ótov
-2ótö
-ót2ré
-ótt¶z1
-2ótu
-ót1u2t
-2ótü
-ó1u2
-ó1ú2
-2ó1ü2
-ó1¶
-ó2vat
-2óvál
-2óve
-2óvé
-1óvh
-2óvi
-óv1in
-1óvj
-1óvn
-1ó2vod
-1óvt
-2óza
-óza1s
-óza2tak
-óza2t1al
-óza2t1e
-óz1e2m
-ó2z1é2
-ózi2a
-ó2z1i2n
-ó2z1u2r
-ó2z1ú2
-óz3zs
-2ö.
-ö1a
-ö1á
-ö2b1á2
-öb2b1a2
-öb2bá
-öb2b1ez
-öb2b1is
-öb2b1o
-öb2bó
-ö2b1eg
-ö2b1e2l
-ö2b1e2n
-ö2b1ért
-öbme2
-ö2csé
-ö2d1a2
-ö2d1é2v
-ödfé2
-ö2d1is
-ö2d1í
-ö2d1o
-ö2d1ó2
-öd3zs
-öd3zu
-ö1e
-ö1é
-ö2g1a2
-ö2g1elf
-ö2g1esz
-ö2g1ev
-ögés3s
-ög3g
-ö2g1id
-ö2g1im
-ö2g1in
-ö2g1o
-ö2g1u2
-ö1i
-ö1í
-ö2k1a2
-ö2k1á
-ök1elh
-ö2k1e2m
-ö2k1érté
-ökés3s
-ök1ész
-öki2
-ö2k1id
-ö2k1if
-ö2k1im
-ök1ív
-ök1íz
-ökma2
-ö2ko
-ökös3s
-1ökrö
-öksza2
-ökü2l
-ö2k1ülé
-ö2l1a2
-ö2l1á
-öl2csá
-öl2cs1í
-öl2cso
-öl2dab
-öl2d1a2l
-öl2dan
-öl2d1as
-öl2d1á2
-öl2d1éh
-öld1ing
-öl2d1is
-öl2dos
-öl2dz
-öl1e2b
-öl1egy
-ö2lel
-ö2le2m
-öl1eme
-öl1emé
-öl1eml
-öl1eng
-ö2l1e2r
-ö2l1esz
-ö2l1e2v
-ö2l1é2g
-ölé2k
-öl1éke
-ö2l1é2l
-ölé2nyeg
-ö2l1é2p
-ö2l1ér.
-ö2l1é2rek
-ö2l1érh
-ö2l1érj
-ö2l1érn
-ö2lér®
-ö2l1ért
-öl1f2
-öl2gya
-öl2gyá
-ö2l1id
-ö2l1ij
-ö2l1il
-ö2l1i2r
-ö2l1is
-ö2l1iz
-öl1í2r
-ö2l1o2
-ö2l1öl
-ölös3s
-ö2l1ö2v
-öl1p2
-ö2l1u2
-ö2lú
-ö2l1ült
-ö2l1üt
-1ölyv
-ö2m1a2
-ö2m1á2
-2ömb
-öm2b1a2
-öm2b1á
-ömbé2
-öm2bú
-ö2m1eb
-öme2g1a
-ömeg1g
-ö2m1el
-ö2m1él
-ö2m1it
-ö2m1o2
-öm1p2
-ömpin2
-ö2m1u
-ö2n1a2
-ön1ám
-ön1á2p
-ön1át
-2önc
-ön2ci
-ön1e2g
-ö2n1e2l
-ö2n1em
-ön1e2r
-ön1es
-ön1e2v
-ö2n1é2l
-ön1é2p
-ön1ész
-ö2név
-ön1év.
-ön2gyá
-öni2
-ön1ig
-ön1im
-ön1in
-ön1ir
-ön1is
-ö2n1ír
-önké2r1e
-ön2n1a2
-ön2n1á
-ön1or
-ön1os
-ön1ó2r
-ön1®2r
-öntös3s
-ö2n1u2
-ö2n1ú
-ön1üt
-ö2ny1a2
-ö2ny1o
-öny2v1a2
-öny2vár
-önyves1
-öny2v1ég
-ö1o
-ö1ó
-ö1ö
-ö1®
-öp1ép
-öpi2
-öp1ir
-ö2r1a2
-ö2r1á2
-2örb
-2örc
-2ördí
-2ördü
-1ö2reg
-öre2ga
-öre2gu
-ö2r1el
-ö2r1er
-ö2rég
-ö2r1é2l
-ör1é2ri
-örés1s
-örfö2l
-ör2f1ölé
-2örg
-öri2g
-ö2r1iga
-ö2r1in
-ör1i2p
-ö2r1ir
-ö2r1is
-ör1i2v
-ö2r1ír
-ö2r1ív
-2örn
-ör2ny1a2
-ö2r1o
-2örög
-örös3s
-örösz2
-ör2t1a2l
-ör2t1í2
-ö2r1u2
-ö2r1ú2
-1örv.
-ör2zs1a
-ör2zs1á
-ö2s1a2
-ö2s1á2
-ö2s1el
-ö2s1em
-öses3s
-ö2s1ez
-ösi2
-ö2s1in
-ö2s1iz
-ös1k
-ö2s1o2
-ö2s1ó2
-ös1®r
-össz1ál
-ös3szí
-ö2s1üg
-ös1ü2v
-öszt1an
-ösz2t1el
-öt1a
-öt1á2
-öt1e2m
-öte2z
-öt1eze
-öt1ér
-öt1é2v
-1ötf
-2öth
-1ötk
-1ötm
-öt1ó2
-ö2tön
-ö2tös
-öt2t1á2
-öt1u
-ötü2
-öt1ül
-ötve2g
-ötvé2nyé
-ö1u
-ö1ú
-ö1ü
-ö1¶
-1öv.
-öveg1g
-övis1s
-1övn
-1övv
-ö2z1a2
-ö2z1á2
-ö2z1eb
-ö2z1egés
-ö2zellá
-ö2z1em
-ö2z1er
-ö2z1e2s
-öz1e2v
-öz1élel
-öz1é2let.
-özé2pem
-öz1é2pí
-ö2z1érd
-öz1étk
-ö2z1i2g
-ö2z1int
-ö2z1i2r
-öz1ír
-özme2
-ö2z1o2
-özok1
-ö2z1ó2
-öz1p2
-ö2z3s
-ö2z1u2
-ö2z1ú2
-öz1ü2g
-öz1ü2z
-ö1zy
-2®.
-®1a
-®a2c
-®a2dan
-®a2dati
-®a2dá
-®a2dok
-®a2dot
-®a2dó
-®adókész1
-®a2g
-®a2j
-®a2k
-®a2l
-®a2n
-®a2p
-®a2r
-®a2t
-®a2u
-®a2z
-®1á2
-®át1
-®ba2l1
-®b2bis
-®b2bu
-®1b2l
-®1b2r
-®2d1el
-®dés3s
-®2d1in
-®d2ró
-2®1e
-®e2c
-®e2d
-®e2g
-®e2le
-®el1o
-®e2l®tte
-®e2n
-®e2p
-®e2re
-®e2r®b
-®e2r®i
-®e2r®k
-®e2r®ne
-®e2r®nk.
-®e2r®r
-®e2r®s
-®e2r®t
-®e2r®v
-®e2s
-®1é
-®é2g
-®é2l
-®é2p
-®é2ri
-®é2te
-®1f2r
-®ga2z1
-®ge2o
-®1i
-®i2dea
-®i2deá
-®i2deg
-®i2dé
-®i2d®
-®i2g
-®i2ma
-®i2má
-®i2na
-®i2p
-®i2ra
-®i2ro
-®2isz
-®i2ta
-®i2va
-®i2z
-®1í
-®í2r
-®í2v
-®job2
-®1k2ré
-®1o2
-®1ó2
-®1ö2
-®1®2
-®1p2
-®po2ra
-®r1al
-®r1at
-1®2r1a2u
-1®2r1ál
-®r1á2p
-®r1ár
-®r1át
-®r1e2ge
-®r1e2gé
-®rei2g
-®r1elv
-®rend®2
-®2r1é2l
-®r1iga
-1®2ril
-®r1ing
-®2r1i2p
-®2r1ir
-®2r1o2l
-®ron2g
-1®2r1or
-®r1osz
-1®rör
-®rös1s
-®2r1öv
-1®2r1®r
-®r1p2
-1®rse
-®rt2
-1®rti
-1®r1tr
-®r1u2t
-®2rül
-®2s1ad
-®s1a2g
-®2s1ak
-®2s1a2l
-®s1a2n
-®s1ará
-®sa2v
-®2s1ál
-®s1egy
-®s1e2l
-®2s1em
-®2s1ep
-®s1erd
-®se2s
-®s1ese
-®2sib
-®2s1id
-®s1iz
-®s2kál
-®s1okt
-®s1p2
-®s2pe
-®ssz2
-®s3szl
-®s3szü
-®st2
-®1str
-®2s1ür
-®sz1e2l®
-®szt2
-®t1áll
-®t2ra
-®t2ri
-®t2t1o
-®1u
-®u2r
-®1ú
-®ú2r
-®ú2s
-®1ü
-®ü2g
-®ü2r
-®ü2t
-®ü2v
-®ü2z
-®1¶
-®z1a2g
-®z1elo
-®2z1er
-®z3sug
-®2z3sü
-®z3sz
-®zü2
-®z1üz
+2ó.
+ó1a
+óa2c
+2óa2d
+óa2g
+óa2j
+2óak
+2óa2l
+2óa2m
+óa2n
+2óa2r
+2óa2u
+óa2v
+2óa2z
+2ó1á
+óá2c
+óá2gak
+óá2l
+óá2p
+óá2r
+óá2t1
+2óbar
+óba1s2
+2óbec
+2óbef
+2óbem
+2óbes
+2óbé
+2óbil
+2óbio
+2óbir
+2óbit
+óbo2rá
+ó2c1an
+óc3c
+óc3ho
+2óci
+2ócí
+óc3ság
+ó2csár
+óc3sip
+óc3sz
+2ódar
+ó2d1ál
+ódá2r
+ód1ára
+ódás1s
+2óde
+ó2d1id
+ód1isk
+2ódí
+ó2d1ír
+ód1öl
+ód2res
+ód2rót
+ó1dy
+ód3zs
+2ó1e2
+óel1a2
+ó1é
+óé2g
+óé2l
+óé2ne
+óé2p
+óé2ré
+óé2ri
+óé2rő
+2óérté
+2óérz
+óé2te
+óé2ve
+2ófa.
+2ófae
+2ófá
+2ófi
+2ófo
+2ófr
+óf2ri
+ófus1s
+2ófü
+2óg
+ógi2as
+ógo2r1as
+ógy1a2n
+ógy1el
+ógy1es
+ógy1ér
+ógy1in
+ó2gyü
+2óhá
+2óhé
+2óhi
+2óhí
+2óhor
+2óhő
+2óhu
+ó1i
+2ói2de
+2ói2dő
+ói2g
+2óigé
+ói2má
+2óing
+2óint
+2ói2p
+ói2rat
+2ói2rá
+ói2ro
+2ói2s
+ói2ta
+ói2z
+2ó1í2
+2ójáté
+2óje
+2ókap
+2ókate
+ók1áll
+ók1áru
+ó2k1eg
+2ókel
+2óker
+2ókez
+2ókény
+2óképe
+2óképl
+2óképn
+2óképt
+2óképz
+2ókéré
+2ókérő
+2ókés
+ó1k2hi
+2ókie
+2ókine
+ók1int
+2ókiny
+ók1iro
+2ókomm
+2ókoo
+2ókö
+ó1kraj
+ó1k2ré
+ók2ri
+ó1k2ro
+ó2kum
+2ókut
+2ókül
+2óküs
+ó2k1üz
+ól1aj
+ó2l1a2r
+ólás3s
+1ólb
+2óle
+ó2l1e2se
+ó2l1e2si
+ó2l1ér
+óli2óé
+ólo2m1e
+ólo2mé
+ól1öl
+ólu2mi
+2ómag
+2óme
+ómen1k2
+2ómére
+2óméré
+2ómérn
+2ómét
+2ómi
+2ómor
+2ómoz
+2ómó
+2ómű
+2ónag
+óna2ké
+óna2kü
+ó2n1al
+ó2n1áll
+ón1e2d
+2óné
+ón1o2x
+2ónö
+ón1ön
+ón1öt
+ónus3s
+ó2n1ut
+ó2n1ü2
+2ónyil
+2ó1o2
+ó1ó2
+2ó1ö2
+ó1ő
+2ópa
+óp1a2rá
+2ópá
+ó1p2l
+ó1p2ré
+ó1p2ro
+ó1p2ró
+ó2raa
+1ó2rab
+1ó2ral
+2órád
+1ó2ráé
+órá2g
+ór1ágy
+1ó2ráh
+1ó2rár
+1ó2ráv
+2óre
+ó2r1e2g
+ó2r1e2l
+óre2s
+ór1ese
+ó2r1e2ti
+ó2r1é2l
+ó2r1i2o
+ó2r1ism
+ór1ír
+2óro
+ó2r1o2ki
+ó2r1o2ko
+2órö
+ó2s1as
+ó2s1ál
+2óse
+ó2s1e2g
+ós1emb
+ó2s1id
+ó2s1i2n
+ós1isk
+ós1k
+óskész1
+2ósor
+ó2s1os
+ósó2
+ós1ór
+ós1p2
+2óspe
+ós2pek
+ós2por
+óst2
+ó1s2tí
+2ó1str
+2ósu
+ó2s1ur
+ó2s1úr
+ósü2l
+2ósű
+2ósza
+ós3zac
+2ószá
+2ószel
+2ószem
+2ószen
+2ószé
+2ószi
+2ószí
+ósz2láv.
+2ószol
+2ószó
+ószóza2
+2ószö
+ós3zs
+ósz1th
+ószt2r
+ó1sz2v
+ót1a2d
+2ótag
+2ótar
+ót1áll
+2ótár
+2ótáv
+ótá2v1i2
+ótá2v1í2
+2ótec
+ót1e2g
+ót1ej
+2ótel
+2óten
+2óter
+2ótén
+ót1il
+ót1ing
+2ótí
+ót1í2v
+ótme2g1
+ót1orr
+ó2t1ors
+2ótov
+2ótö
+ót2ré
+óttűz1
+2ótu
+ót1u2t
+2ótü
+ó1u2
+ó1ú2
+2ó1ü2
+ó1ű
+ó2vat
+2óvál
+2óve
+2óvé
+1óvh
+2óvi
+óv1in
+1óvj
+1óvn
+1ó2vod
+1óvt
+2óza
+óza1s
+óza2tak
+óza2t1al
+óza2t1e
+óz1e2m
+ó2z1é2
+ózi2a
+ó2z1i2n
+ó2z1u2r
+ó2z1ú2
+óz3zs
+2ö.
+ö1a
+ö1á
+ö2b1á2
+öb2b1a2
+öb2bá
+öb2b1ez
+öb2b1is
+öb2b1o
+öb2bó
+ö2b1eg
+ö2b1e2l
+ö2b1e2n
+ö2b1ért
+öbme2
+ö2csé
+ö2d1a2
+ö2d1é2v
+ödfé2
+ö2d1is
+ö2d1í
+ö2d1o
+ö2d1ó2
+öd3zs
+öd3zu
+ö1e
+ö1é
+ö2g1a2
+ö2g1elf
+ö2g1esz
+ö2g1ev
+ögés3s
+ög3g
+ö2g1id
+ö2g1im
+ö2g1in
+ö2g1o
+ö2g1u2
+ö1i
+ö1í
+ö2k1a2
+ö2k1á
+ök1elh
+ö2k1e2m
+ö2k1érté
+ökés3s
+ök1ész
+öki2
+ö2k1id
+ö2k1if
+ö2k1im
+ök1ív
+ök1íz
+ökma2
+ö2ko
+ökös3s
+1ökrö
+öksza2
+ökü2l
+ö2k1ülé
+ö2l1a2
+ö2l1á
+öl2csá
+öl2cs1í
+öl2cso
+öl2dab
+öl2d1a2l
+öl2dan
+öl2d1as
+öl2d1á2
+öl2d1éh
+öld1ing
+öl2d1is
+öl2dos
+öl2dz
+öl1e2b
+öl1egy
+ö2lel
+ö2le2m
+öl1eme
+öl1emé
+öl1eml
+öl1eng
+ö2l1e2r
+ö2l1esz
+ö2l1e2v
+ö2l1é2g
+ölé2k
+öl1éke
+ö2l1é2l
+ölé2nyeg
+ö2l1é2p
+ö2l1ér.
+ö2l1é2rek
+ö2l1érh
+ö2l1érj
+ö2l1érn
+ö2lérő
+ö2l1ért
+öl1f2
+öl2gya
+öl2gyá
+ö2l1id
+ö2l1ij
+ö2l1il
+ö2l1i2r
+ö2l1is
+ö2l1iz
+öl1í2r
+ö2l1o2
+ö2l1öl
+ölös3s
+ö2l1ö2v
+öl1p2
+ö2l1u2
+ö2lú
+ö2l1ült
+ö2l1üt
+1ölyv
+ö2m1a2
+ö2m1á2
+2ömb
+öm2b1a2
+öm2b1á
+ömbé2
+öm2bú
+ö2m1eb
+öme2g1a
+ömeg1g
+ö2m1el
+ö2m1él
+ö2m1it
+ö2m1o2
+öm1p2
+ömpin2
+ö2m1u
+ö2n1a2
+ön1ám
+ön1á2p
+ön1át
+2önc
+ön2ci
+ön1e2g
+ö2n1e2l
+ö2n1em
+ön1e2r
+ön1es
+ön1e2v
+ö2n1é2l
+ön1é2p
+ön1ész
+ö2név
+ön1év.
+ön2gyá
+öni2
+ön1ig
+ön1im
+ön1in
+ön1ir
+ön1is
+ö2n1ír
+önké2r1e
+ön2n1a2
+ön2n1á
+ön1or
+ön1os
+ön1ó2r
+ön1ő2r
+öntös3s
+ö2n1u2
+ö2n1ú
+ön1üt
+ö2ny1a2
+ö2ny1o
+öny2v1a2
+öny2vár
+önyves1
+öny2v1ég
+ö1o
+ö1ó
+ö1ö
+ö1ő
+öp1ép
+öpi2
+öp1ir
+ö2r1a2
+ö2r1á2
+2örb
+2örc
+2ördí
+2ördü
+1ö2reg
+öre2ga
+öre2gu
+ö2r1el
+ö2r1er
+ö2rég
+ö2r1é2l
+ör1é2ri
+örés1s
+örfö2l
+ör2f1ölé
+2örg
+öri2g
+ö2r1iga
+ö2r1in
+ör1i2p
+ö2r1ir
+ö2r1is
+ör1i2v
+ö2r1ír
+ö2r1ív
+2örn
+ör2ny1a2
+ö2r1o
+2örög
+örös3s
+örösz2
+ör2t1a2l
+ör2t1í2
+ö2r1u2
+ö2r1ú2
+1örv.
+ör2zs1a
+ör2zs1á
+ö2s1a2
+ö2s1á2
+ö2s1el
+ö2s1em
+öses3s
+ö2s1ez
+ösi2
+ö2s1in
+ö2s1iz
+ös1k
+ö2s1o2
+ö2s1ó2
+ös1őr
+össz1ál
+ös3szí
+ö2s1üg
+ös1ü2v
+öszt1an
+ösz2t1el
+öt1a
+öt1á2
+öt1e2m
+öte2z
+öt1eze
+öt1ér
+öt1é2v
+1ötf
+2öth
+1ötk
+1ötm
+öt1ó2
+ö2tön
+ö2tös
+öt2t1á2
+öt1u
+ötü2
+öt1ül
+ötve2g
+ötvé2nyé
+ö1u
+ö1ú
+ö1ü
+ö1ű
+1öv.
+öveg1g
+övis1s
+1övn
+1övv
+ö2z1a2
+ö2z1á2
+ö2z1eb
+ö2z1egés
+ö2zellá
+ö2z1em
+ö2z1er
+ö2z1e2s
+öz1e2v
+öz1élel
+öz1é2let.
+özé2pem
+öz1é2pí
+ö2z1érd
+öz1étk
+ö2z1i2g
+ö2z1int
+ö2z1i2r
+öz1ír
+özme2
+ö2z1o2
+özok1
+ö2z1ó2
+öz1p2
+ö2z3s
+ö2z1u2
+ö2z1ú2
+öz1ü2g
+öz1ü2z
+ö1zy
+2Å‘.
+Å‘1a
+Å‘a2c
+Å‘a2dan
+Å‘a2dati
+őa2dá
+Å‘a2dok
+Å‘a2dot
+őa2dó
+őadókész1
+Å‘a2g
+Å‘a2j
+Å‘a2k
+Å‘a2l
+Å‘a2n
+Å‘a2p
+Å‘a2r
+Å‘a2t
+Å‘a2u
+Å‘a2z
+ő1á2
+őát1
+Å‘ba2l1
+Å‘b2bis
+Å‘b2bu
+Å‘1b2l
+Å‘1b2r
+Å‘2d1el
+ődés3s
+Å‘2d1in
+őd2ró
+2Å‘1e
+Å‘e2c
+Å‘e2d
+Å‘e2g
+Å‘e2le
+Å‘el1o
+őe2lőtte
+Å‘e2n
+Å‘e2p
+Å‘e2re
+őe2rőb
+őe2rői
+őe2rők
+őe2rőne
+őe2rőnk.
+őe2rőr
+őe2rős
+őe2rőt
+őe2rőv
+Å‘e2s
+ő1é
+őé2g
+őé2l
+őé2p
+őé2ri
+őé2te
+Å‘1f2r
+Å‘ga2z1
+Å‘ge2o
+Å‘1i
+Å‘i2dea
+ői2deá
+Å‘i2deg
+ői2dé
+ői2dő
+Å‘i2g
+Å‘i2ma
+ői2má
+Å‘i2na
+Å‘i2p
+Å‘i2ra
+Å‘i2ro
+Å‘2isz
+Å‘i2ta
+Å‘i2va
+Å‘i2z
+ő1í
+őí2r
+őí2v
+Å‘job2
+ő1k2ré
+Å‘1o2
+ő1ó2
+ő1ö2
+Å‘1Å‘2
+Å‘1p2
+Å‘po2ra
+Å‘r1al
+Å‘r1at
+1Å‘2r1a2u
+1ő2r1ál
+őr1á2p
+őr1ár
+őr1át
+Å‘r1e2ge
+őr1e2gé
+Å‘rei2g
+Å‘r1elv
+őrendő2
+ő2r1é2l
+Å‘r1iga
+1Å‘2ril
+Å‘r1ing
+Å‘2r1i2p
+Å‘2r1ir
+Å‘2r1o2l
+Å‘ron2g
+1Å‘2r1or
+Å‘r1osz
+1őrör
+őrös1s
+ő2r1öv
+1Å‘2r1Å‘r
+Å‘r1p2
+1Å‘rse
+Å‘rt2
+1Å‘rti
+1Å‘r1tr
+Å‘r1u2t
+ő2rül
+Å‘2s1ad
+Å‘s1a2g
+Å‘2s1ak
+Å‘2s1a2l
+Å‘s1a2n
+ős1ará
+Å‘sa2v
+ő2s1ál
+Å‘s1egy
+Å‘s1e2l
+Å‘2s1em
+Å‘2s1ep
+Å‘s1erd
+Å‘se2s
+Å‘s1ese
+Å‘2sib
+Å‘2s1id
+Å‘s1iz
+ős2kál
+Å‘s1okt
+Å‘s1p2
+Å‘s2pe
+Å‘ssz2
+Å‘s3szl
+ős3szü
+Å‘st2
+Å‘1str
+ő2s1ür
+ősz1e2lő
+Å‘szt2
+őt1áll
+Å‘t2ra
+Å‘t2ri
+Å‘t2t1o
+Å‘1u
+Å‘u2r
+ő1ú
+őú2r
+őú2s
+ő1ü
+őü2g
+őü2r
+őü2t
+őü2v
+őü2z
+ő1ű
+Å‘z1a2g
+Å‘z1elo
+Å‘2z1er
+Å‘z3sug
+ő2z3sü
+Å‘z3sz
+őzü2
+őz1üz
1pa
-paá2
+paá2
pa2ce
pa2ch
pa2dag
@@ -9637,7 +9637,7 @@ pa2mur
pa2nal
p1a2nya
pa2p1il
-par1ágá
+par1ágá
2parb
pa2r1el
par1isk
@@ -9646,147 +9646,147 @@ pa2r1ok
par2t1a2l
par2tol
pa2t1eg
-pat1ért
+pat1ért
pa2ul.
pa2x
2p1axi
-1pá
-pá2csü
-pá2ga
-pá2gy
-p1állí
-p1álló
-pá2mí
-2pámn
-pá2mu
-pána2
-pá2n1am
-pá2n1e
-pá2ny1át
-pá2po
-2páram
-pá2r1ato
-pá2r1e2
-pár2tak
-pár2tál
-pár2tár
-pár2t1e
-pár2tér
-pá2rus
-pá2sir
-pá2t1a
-2p1átm
-pá2t1uk
+1pá
+pá2csü
+pá2ga
+pá2gy
+p1állí
+p1álló
+pá2mí
+2pámn
+pá2mu
+pána2
+pá2n1am
+pá2n1e
+pá2ny1át
+pá2po
+2páram
+pá2r1ato
+pá2r1e2
+pár2tak
+pár2tál
+pár2tár
+pár2t1e
+pár2tér
+pá2rus
+pá2sir
+pá2t1a
+2p1átm
+pá2t1uk
pba2l1
-pci2ókér
+pci2ókér
pd2
p1dr
1pe
pea2
2peci
-pe2dén
-pegész1
+pe2dén
+pegész1
pe2is
p1elemz
2p1elk
2p1elm
2pelo
pe2l1os
-2p1e2l®á
-2p1eltér
+2p1e2lőá
+2p1eltér
2p1ember
2p1e2mel
-pe2mó
+pe2mó
2pene
pen3ny
pe2no
pe2nya
pe2po
per1akt
-pe2r1él
+pe2r1él
pe2rid
per1int
pe2r1os
pe2rox
-pe2ró
-pe2rö
-2p1e2r®
-pe2rú
-pe2sú
-pe2sz1á
+pe2ró
+pe2rö
+2p1e2rő
+pe2rú
+pe2sú
+pe2sz1á
pe2szu
-pe2sz1ü2
+pe2sz1ü2
2p1e2v
-1pé
-2p1é2g
-2p1é2je
-péki2
-pé2kü
-2p1é2lé
-2p1élm
-2p1élr
-2p1é2neke
-2p1é2pí
-pé2pü
-2p1érd
-2p1érv
-2p1érz
-pé2s1e2l
-pé2sz1á2
-pé2szü
-2p1év.
-2p1évv
+1pé
+2p1é2g
+2p1é2je
+péki2
+pé2kü
+2p1é2lé
+2p1élm
+2p1élr
+2p1é2neke
+2p1é2pí
+pé2pü
+2p1érd
+2p1érv
+2p1érz
+pé2s1e2l
+pé2sz1á2
+pé2szü
+2p1év.
+2p1évv
pfe2li
p1f2ri
p1f2ro
p2hem
-p2hiá
+p2hiá
1phila
p2hiu
1p2hok
-1p2hó
+1p2hó
1pi
pi2ad
2picl
pi2den
pi2deo
-2p1i2d®
+2p1i2dő
pi2eg
pier2re.
2p1i2ga
pigaz1
2pige
-2p1i2gé
+2p1i2gé
2p1i2ly
-2p1i2má
+2p1i2má
pin2g1a
-ping1ár
-pi2óh
-pi2ós
+ping1ár
+pi2óh
+pi2ós
pi2rat
pi2rod
2p1ism
pi1t2h
2pizz
-1pí
-2p1íg
-pí2r1a2
-pí2rá
-pí2rol
-2p1í2ró
-p1í2tél
+1pí
+2p1íg
+pí2r1a2
+pí2rá
+pí2rol
+2p1í2ró
+p1í2tél
pki2s1
plas2
1play.
ple2is
-p2lö
-plüs2
-plüss1
+p2lö
+plüs2
+plüss1
pno1g2
1po
po2csiz
po1gra
-po1g2rá
+po1g2rá
2p1okm
po2laj
pol2c3s
@@ -9796,62 +9796,62 @@ pon2gas
pon2t1e
2ponz
2po2pe
-po2p1é2
+po2p1é2
po1pl
pop1s
-por1adó
+por1adó
po2res
por1s
por2t1el
por2tes
-por2tér
+por2tér
por2tin
-por2tü
+por2tü
po2se
-po2s1é
+po2s1é
po1szf
2p1oszl
po2t1el
-1pó
-póka2
-pó2k1ag
-pó2rák
-pó2rán
-pó2rát
-pós3s
-pó2t1a2
-pó2tá
-pó2t1e2
-pó2t1é2
-pó2ti
-pó2tor
-pó2tu
-pó2t1ü2
-1pö
-1p®
-p®1kr
-2p1®r.
+1pó
+póka2
+pó2k1ag
+pó2rák
+pó2rán
+pó2rát
+pós3s
+pó2t1a2
+pó2tá
+pó2t1e2
+pó2t1é2
+pó2ti
+pó2tor
+pó2tu
+pó2t1ü2
+1pö
+1pő
+pő1kr
+2p1Å‘r.
pp1akk
pp1ekk
ppko2
ppo2d
pp1oda
-pp2ró
-p2pú
+pp2ró
+p2pú
p2rec
prek2
pre1kl
pre1p2
1presszionis
-1p2resszí
-1prédál.
-1prédálá
+1p2resszí
+1prédál.
+1prédálá
1p2riv
1p2roce
1p2rog
p2roj
pro1k2h
-pru2s1á
+pru2s1á
prus3s
p1sc
p1s2k
@@ -9859,7 +9859,7 @@ p2s1ork
p1s2p
p1st2
1pszic
-psz1ön
+psz1ön
pszt2
p2t1i2o
pto1g2
@@ -9867,228 +9867,228 @@ pt1olv
1pu
pu2s1a2n
pu2se
-1pú
-p1úg
-pú2t
-1pü
-2p1ü2g
-pügyész1
-2p1üld
-2püle
-2p1ünn
-püt2
-pü1th
-2p1ü2z
-1p¶
+1pú
+p1úg
+pú2t
+1pü
+2p1ü2g
+pügyész1
+2p1üld
+2püle
+2p1ünn
+püt2
+pü1th
+2p1ü2z
+1pű
1py
1qa
-1qá
+1qá
1qe
-1qé
+1qé
1qi
-1qí
+1qí
1qo
-1qó
-1qö
-1q®
+1qó
+1qö
+1qő
1qu
qu2i
-1qú
-1qü
-1q¶
+1qú
+1qü
+1qű
q2v
1ra
-ra2b1ár
+ra2b1ár
rabi2g
rab1iga
-rab1igá
+rab1igá
r1a2dag
2radm
rae2g
ra2et
-raé2dere
+raé2dere
2rafik
ra1f2r
rai2g
2rajc
2r1a2kar
-ra2kác
-ra1klé
+ra2kác
+ra1klé
ra1k2ro
ra2lak
ra2l1eg
2ralk
-ral2lá
+ral2lá
2r1als
ra2mad
ra2mir
-ra2mí
+ra2mí
ra2nal
ran2ga
ran2ge
-ran2szá
+ran2szá
ra2nyal
-ra2nyál
+ra2nyál
ranye2
rany1er
-ra2nyé
-ra2nyó
+ra2nyé
+ra2nyó
2ranza
2ranziti
rao2
-ra2pák
+ra2pák
2rapp
ra1p2r
-ra2rán
+ra2rán
rast2
ra1sta
-rasztá2r
-raszt1áro
-2r1a2tád
+rasztá2r
+raszt1áro
+2r1a2tád
2ratc
-ra1thó
+ra1thó
ra2tir
-2ratké
+2ratké
2ratki
2ratokn
ra2tomo
2ratoz.
2ratozi
2ratst
-ra2tür
+ra2tür
ra2ub
ra2us
-2raví
+2raví
raza2
raz1any
ra2zel
-1rá
-2r1ábr
-rá2ca
-2ráfia
-2ráfiái
-2ráfián
-2ráfiát
-2ráfj
-2ráfp
-2ráfu
-2rá2fü
-rá2ge
-rá2gén
-rág3g
-rá2gi.
-rá2gil
-2rágun
-2rágy
-rá2l1a2l
-2r1állan
-2r1állo
-rá2lyú
-rá2nér
-ránt1ak
-ránt1a2l
-ránt1á2r
-rán2t1e
-2rányí
-rá2nyol
-2rányú
-rá1p2
-rá2rad
-2rárak
-r1á2ram
-rá2r1ál
-rá2rár
-rárboc1
-rá2r1é
-rá2rin
-rá2rok
-rá2rol
-2ráru
-rá2rul
-rá2rus
-2r1á2rú
-rá2sir
-rá2s1ol
-2rásó
-rás1ó2r
-rát1ad
-rát1á2r
-2rátlé
-2r1átm
-rá1tro
-2r1átv
-rá2zsár
-rba2ná
+1rá
+2r1ábr
+rá2ca
+2ráfia
+2ráfiái
+2ráfián
+2ráfiát
+2ráfj
+2ráfp
+2ráfu
+2rá2fü
+rá2ge
+rá2gén
+rág3g
+rá2gi.
+rá2gil
+2rágun
+2rágy
+rá2l1a2l
+2r1állan
+2r1állo
+rá2lyú
+rá2nér
+ránt1ak
+ránt1a2l
+ránt1á2r
+rán2t1e
+2rányí
+rá2nyol
+2rányú
+rá1p2
+rá2rad
+2rárak
+r1á2ram
+rá2r1ál
+rá2rár
+rárboc1
+rá2r1é
+rá2rin
+rá2rok
+rá2rol
+2ráru
+rá2rul
+rá2rus
+2r1á2rú
+rá2sir
+rá2s1ol
+2rásó
+rás1ó2r
+rát1ad
+rát1á2r
+2rátlé
+2r1átm
+rá1tro
+2r1átv
+rá2zsár
+rba2ná
r1b2la
r1b2r
rc1ab
r2c1al
rc1a2m
-rc1ará
-r2c1ál
-r2c1áp
-rc1edé
+rc1ará
+r2c1ál
+r2c1áp
+rc1edé
r2c1ele
-r2c1el®
+r2c1elő
rc1esz
-rcé2l
-r2c1él.
-r2c1éle
-r2c1élé
-r2c1éll
-rc1élt
-rcés3
+rcé2l
+r2c1él.
+r2c1éle
+r2c1élé
+r2c1éll
+rc1élt
+rcés3
rc3hel
r2c1i2d
rc1ing
r2c1izo
-rckész1
+rckész1
rc1kr
rc1or
-r2c1ó2
-rc1ön
-rc1ös
-rc3s®t
+r2c1ó2
+rc1ön
+rc1ös
+rc3sőt
rc3za
-rd1ág
-rde2kér
-rd1él.
-rd1é2le
-rd1élr
+rd1ág
+rde2kér
+rd1él.
+rd1é2le
+rd1élr
r2d1id
r2d1i2nak
-rd1íz
+rd1íz
r2d1or
-rd1ös
-r1d2rá
+rd1ös
+r1d2rá
rdu2s1
-rd1út
+rd1út
r1dy
rd3zo
1re
-re2ájá
-re2ák
-reá2l1u
-re2áv
+re2ájá
+re2ák
+reá2l1u
+re2áv
2r1ebh
-re2cá
+re2cá
re2ch
redenc1
re2dir
-re2dí
+re2dí
re2dor
ree2s
re2et
re2g1a2l
re2gap
-r1egóv
+r1egóv
2r1egy.
re2gyez1
-2r1e2gyé
+2r1e2gyé
2r1egys
re2inh
-rei2rá
-2rejü
+rei2rá
+2rejü
rek1arc
re2k1asz
re2k1emb
@@ -10097,36 +10097,36 @@ re2k1ot
re2lad
2relemi.
2r1e2lemz
-2relmél
-2r1elnö
+2relmél
+2r1elnö
2relo
re2l1os
-re2l®i
+re2lői
2r1elr
2r1elto
2r1elv.
-2r1elvá
+2r1elvá
2r1elvek
2r1elvet
-2r1elvév
+2r1elvév
2r1elvk
2r1elvn
r1elz
re2maj
2r1ember
re2mel
-re2m1®
+re2m1Å‘
2r1enti
re2of
re2o1g2
re2ok
re2op
re2ot
-re2ók
-re2ól
-re2ós
-re2ót
-re2óv
+re2ók
+re2ól
+re2ós
+re2ót
+re2óv
re2pad
re2pak
re2pal
@@ -10136,11 +10136,11 @@ rep1os
re1p2res
2r1erd
re2res
-2r1e2r®
+2r1e2rő
2r1ers
re2sa
-re2sá
-2reskü
+re2sá
+2reskü
2resszionis
2r1eszm
re2t1any
@@ -10148,65 +10148,65 @@ ret1ell
ret1elo
reu2t
rev1e2le
-re2vés
-2r1e2v®
+re2vés
+2r1e2vő
re2x1
2r1ezr
-1ré
-2rédál.
-2rédálá
-2r1é2de
-2réf
-ré2gá
-ré2g1ó2
-2r1é2hes
-ré2kal
-ré2kel
-rék1el®
-r1é2kes
-ré2les
-2r1é2let
-2r1élm
-2rély
-ré2mo
-ré2mu
-ré2p1ed
-2r1é2pí
-ré2pü
-2r1ér.
-r1érd
-2r1é2ret
-2réri
-2r1érté
-2r1érz
-ré2sza
-ré2szá
-ré2sz1er
-ré2szo
-ré2sz1ö
-ré2tal
-ré2tí
-2r1étk
-ré2tö
-2réven
-2r1é2ves
-ré2z1a
-ré2z1e2
-ré2zin
-ré2z1o
-ré2zsi
-réz3sz
+1ré
+2rédál.
+2rédálá
+2r1é2de
+2réf
+ré2gá
+ré2g1ó2
+2r1é2hes
+ré2kal
+ré2kel
+rék1elő
+r1é2kes
+ré2les
+2r1é2let
+2r1élm
+2rély
+ré2mo
+ré2mu
+ré2p1ed
+2r1é2pí
+ré2pü
+2r1ér.
+r1érd
+2r1é2ret
+2réri
+2r1érté
+2r1érz
+ré2sza
+ré2szá
+ré2sz1er
+ré2szo
+ré2sz1ö
+ré2tal
+ré2tí
+2r1étk
+ré2tö
+2réven
+2r1é2ves
+ré2z1a
+ré2z1e2
+ré2zin
+ré2z1o
+ré2zsi
+réz3sz
rfi1s
r1f2l
-r2f1öln
+r2f1öln
r1f2r
-rgás1s
-rgés3s
+rgás1s
+rgés3s
rg2ha
rg2la
r1g2r
r2gy1asz
-r2gyál
+r2gyál
rgy1e2s
r2gyis
1ri
@@ -10216,21 +10216,21 @@ ri2ag
ri2ah
ri2aj
ri2ala
-ri2amé
+ri2amé
ri2ap
-2ribü
-ri2deá
+2ribü
+ri2deá
ri2dei
ri2deo
2ridg
-2r1i2d®
+2r1i2dő
ri2ed
rie2m
riet2te
r1i2gaz
-2r1i2gé
+2r1i2gé
ri1klo
-ri1k2ló
+ri1k2ló
ri2lal
ri1ly
2r1i2nas
@@ -10243,64 +10243,64 @@ rin1tho
riog2
rio1k2
ri2om
-ri2ósz
+ri2ósz
2r1i2ra
-ri2rá
+ri2rá
r1i2ri
2r1i2ro
-ri2rón
+ri2rón
2r1irt
-2riskolát
+2riskolát
ri2sor
2risten.
2ristene
-2ristenné
-2ristenn®.
-2ristenn®k
+2ristenné
+2ristennő.
+2ristennők
2risza
2r1i2tal
-ri2vás
-2r1i2vó
+ri2vás
+2r1i2vó
ri2x1el
ri2xi
2r1izmo
r1i2zom
2rizz
-1rí
-2ríj
-rí2ja
-rí2rá
-rí2ró
-rí2ve
-rí2vé
-rí2vü
+1rí
+2ríj
+rí2ja
+rí2rá
+rí2ró
+rí2ve
+rí2vé
+rí2vü
r2j1er
r2j1u2r
rk1ang
rkas3s
-rká2n1e2
+rká2n1e2
rkes2
-r1k2hé
+r1k2hé
r1k2hi
rki2g
rk1iga
r2k1ill
rki2s1
r1k2la
-rk2rá
+rk2rá
rk2re
-rk2ré
+rk2ré
r1k2ri
-r2k1út
+r2k1út
rle2g1a
-rle2g1á
-rm1akó
+rle2g1á
+rm1akó
rma2tal
-rma2tár
-r2m1áll
-rmá2nyi
-rme2g1á
-rmé2kel
+rma2tár
+r2m1áll
+rmá2nyi
+rme2g1á
+rmé2kel
r2m1ors
rmo1sz2t
rm1s2
@@ -10311,23 +10311,23 @@ rne2tel
rnet1o
r2n1ip
rno1g2
-r2n1ó2d
-rnó1s
+r2n1ó2d
+rnó1s
rn1s2
r2nyaj
r2nyalak
rny1old
-r2nyús
+r2nyús
1ro
-roá2
+roá2
2robl
-2rodú
+2rodú
2rofe
ro2g1ad
-ro2gár
-ro1gráf
+ro2gár
+ro1gráf
ro2k1as
-rok1ás
+rok1ás
roke2
ro2ked
ro2ker
@@ -10336,24 +10336,24 @@ ro1kli
ro1kri
2r1o2laj
2r1olda
-2r1oltó
-ro2m1ál
-ro2m1á2ro
+2r1oltó
+ro2m1ál
+ro2m1á2ro
2rombi
ro2mel
ro2m1es
-rom1ért
-ro2mév
+rom1ért
+ro2mév
rom1ist
ro2m1iz
-ro2mí
+ro2mí
ro2m1or
-ro2m1ó2r
+ro2m1ó2r
ro2nop
-ro2nú
-ro2nü
+ro2nú
+ro2nü
ro2nyu
-ron2zá
+ron2zá
ro1p2r
2r1org
2r1o2ro
@@ -10362,113 +10362,113 @@ ro2ru
ro2sar
ro2se
ro2sin
-ros3szá
-rosz2fé
-roszlán1n
-ro2szó
-1ró
-róa2
-ró2dis
-ró2dö
-róme2
-rómeg1
-ró2mez
-2róms
-róp2
-ró1pr
-ró2ráj
-ró2rák
-ró2rán
-ró2rát
-ró2ri
-ró2t1ak
-ró2tin
-róz1z
-1rö
-2r1ö2b
-rö2k1é2l
-rö2k1érv
-2rökí
-2rökl
-rök1o
-rö2le
-2röme.
-2römé
-2römne
-rö2pi
-2r1ö2r
-rö2s®
-rö2sü
-rö2ve
-1r®
-2r®db
-2r®dí
-2r®dr
-r®e2
-r®1g2
-r®i2rá
-2r®lk
-2r®lt
-2r®nke
-2r®nkk
-2r1®rn
-r®2s1á2
-r®2si
-2r®sít®.
-2r®sít®r
-2r®szakol.
-2r®szakolá
-2r®szakolj
-2r®szakolt
-2r®tl
+ros3szá
+rosz2fé
+roszlán1n
+ro2szó
+1ró
+róa2
+ró2dis
+ró2dö
+róme2
+rómeg1
+ró2mez
+2róms
+róp2
+ró1pr
+ró2ráj
+ró2rák
+ró2rán
+ró2rát
+ró2ri
+ró2t1ak
+ró2tin
+róz1z
+1rö
+2r1ö2b
+rö2k1é2l
+rö2k1érv
+2rökí
+2rökl
+rök1o
+rö2le
+2röme.
+2römé
+2römne
+rö2pi
+2r1ö2r
+rö2ső
+rö2sü
+rö2ve
+1rő
+2rődb
+2rődí
+2rődr
+rőe2
+rő1g2
+rői2rá
+2rőlk
+2rőlt
+2rőnke
+2rőnkk
+2r1Å‘rn
+rő2s1á2
+rő2si
+2rősítő.
+2rősítőr
+2rőszakol.
+2rőszakolá
+2rőszakolj
+2rőszakolt
+2rőtl
r1p2h
rp2la
rp2le
rpo2i
-rp2ré
-r1p2rí
+rp2ré
+r1p2rí
r1p2ro
-r1p2ró
+r1p2ró
rqu2
-r2r1árb
-rrás1s
+r2r1árb
+rrás1s
r2r1ir
rri2ta
r2r1oll
-rró1d2
+rró1d2
rr1p2
rr1sp
-r2rü
+r2rü
r2s1ac
rsa2il2
r2s1a2la
rs1alu
rs1a2ny
rs1ara
-rs1áru
+rs1áru
rs1ele
rs1esz
rse2t
rs1ete
-r2s1ép
-rs1éte
-rs1étt
+r2s1ép
+rs1éte
+rs1étt
r2s1i2d
rs1iga
r2s1in
r2s1i2o
r2s1i2r
rs1ist
-r2s1í2r
+r2s1í2r
r1smi
r2s1olv
r2s1ors
rsp2
rs1st
rs3sza
-rs3szá
-rs3szí
-rs3szö
+rs3szá
+rs3szí
+rs3szö
rs2tab
rste2i
r1s2to
@@ -10476,14 +10476,14 @@ rst2r
r1stru
r2s1ur
r2s1u2t
-r2s1ú2s
-rs1üld
-rsza2ké
-rszáraz1
+r2s1ú2s
+rs1üld
+rsza2ké
+rszáraz1
r1sz2f
r1sz2k
r1szn
-r1sz2tá
+r1sz2tá
r1szt2r
rta1g2
r2t1aj
@@ -10492,23 +10492,23 @@ rta2me
rt1app
r2t1a2u
r2t1a2z
-rt1ág.
-r2t1á2ga
-rt1ágr
-rtá2ló.
-rtá2ly1át
-rtá2rul
-r2t1átl
-rteá2
+rt1ág.
+r2t1á2ga
+rt1ágr
+rtá2ló.
+rtá2ly1át
+rtá2rul
+r2t1átl
+rteá2
rt1e2gy
rt1eml
r2t1ent
rtes1s
-r2t1é2le
-r2t1érd
-rt1érte
-r2t1érz
-rt2hág
+r2t1é2le
+r2t1érd
+rt1érte
+r2t1érz
+rt2hág
r1t2hen
r2t1i2d
rti2g
@@ -10527,11 +10527,11 @@ rt2ran
rt2rom
rt1t2
r2t1u2t
-r2t1új
-r2tüd
-rt1ünn
-rt1ür
-r2t1üt
+r2t1új
+r2tüd
+rt1ünn
+rt1ür
+r2t1üt
rty2v
1ru
rua2
@@ -10539,81 +10539,81 @@ r1ubb
r1udv
rue2
rug3g
-rugós1
+rugós1
2r1ugr
-2ruktú
+2ruktú
ru2ru
ru2se
ru2sin
-2rusí
+2rusí
ru2su
ru2szu
ru2tak
ru2tat
-ru2tó.
+ru2tó.
ru2tu
-2ruü
-1rú
-rú2d1a2
-rú2du
-rú2ri
-2r1útj
-2r1ú2to
-2r1útr
-1rü
-rü2lér
-rü2l1öl
-rü2l1ön
-2r1ünn
-2r1ü2r
-2rü2t
-2r1ü2v
-2r1ü2z
-1r¶
-r1¶rt
+2ruü
+1rú
+rú2d1a2
+rú2du
+rú2ri
+2r1útj
+2r1ú2to
+2r1útr
+1rü
+rü2lér
+rü2l1öl
+rü2l1ön
+2r1ünn
+2r1ü2r
+2rü2t
+2r1ü2v
+2r1ü2z
+1rű
+r1űrt
rvas3s
-r2v1e2l®i2
+r2v1e2lői2
rve2ra
-r2v1érte
+r2v1érte
r2v1ip
r2v1or
rv1osz
-ry1é2
+ry1é2
r2z1a2la
rza2t1al
-r2z1ára
+r2z1ára
rze2tel
rzs1a2n
-rz3ság
-r2zs®
+rz3ság
+r2zső
rz3sz
1sa
2s1abr
-sa2cé
-sa2dói
-sa2dój
-sa2dók
-sa2dór
+sa2cé
+sa2dói
+sa2dój
+sa2dók
+sa2dór
3sajd
2s1ajta
-2sajtón
+2sajtón
sa2kan
2sakar
s1akc
sa2k1el
sa2kis
-sa2k1í
+sa2k1í
2salf
2salji
2salm
2salu
sa2m1il
-sa2mí
+sa2mí
sao2
2sapa
-2sapá
+2sapá
2sapr
-sa1pré
+sa1pré
sa2ran
2s1a2ri
3sas.
@@ -10626,72 +10626,72 @@ sa2su
sa2uc
sa2un
savar1a
-sa2v1ál
-1sá
-sábe2
-sá2b1er
-sá2fo
-sá2gal
-sá2g1ál
-3ságb
-3ságd
-3sá2ge
-3ságé
-3ságf
-3ságg
-3ságh
-3sági
-sá2gí
-3ságk
-3ságm
-3ságo
-sá2g1osz
-3ságp
-3ságr
-3ságs
-3ságu
-3ságü
-2s1á2gy
-2s1áld
-2sáll
-3sámf
-sán1t2
-sá2r1a2g
-2s1á2rai.
-s1á2rak
-sá2r1al
-2s1á2ram
-sá2r1ál
-s1árbo
-sá2r1e
-2s1árfor
-2sáru
-s1á2ruk
-sá2rul
-s1á2rus
-2s1á2rú
-sá2sás
-sáskész1
-s1á2só
-2sáta
-s1átad
-s1átf
-2sáth
-2s1á2ti
-s1á2tí
-2sátl
-2s1átm
-2s1á2tü
-2sátv
-sá2ve
-sá2v1i2
+sa2v1ál
+1sá
+sábe2
+sá2b1er
+sá2fo
+sá2gal
+sá2g1ál
+3ságb
+3ságd
+3sá2ge
+3ságé
+3ságf
+3ságg
+3ságh
+3sági
+sá2gí
+3ságk
+3ságm
+3ságo
+sá2g1osz
+3ságp
+3ságr
+3ságs
+3ságu
+3ságü
+2s1á2gy
+2s1áld
+2sáll
+3sámf
+sán1t2
+sá2r1a2g
+2s1á2rai.
+s1á2rak
+sá2r1al
+2s1á2ram
+sá2r1ál
+s1árbo
+sá2r1e
+2s1árfor
+2sáru
+s1á2ruk
+sá2rul
+s1á2rus
+2s1á2rú
+sá2sás
+sáskész1
+s1á2só
+2sáta
+s1átad
+s1átf
+2sáth
+2s1á2ti
+s1á2tí
+2sátl
+2s1átm
+2s1á2tü
+2sátv
+sá2ve
+sá2v1i2
sb2
s1bl
s1br
scar2
s2ch
1sche
-1sché
+1sché
sda2d1
s1d2r
s1dy
@@ -10699,149 +10699,149 @@ s1dy
sea2
se2bat
se2b1o
-se2bó
+se2bó
se2cs1a
-2s1e2dén
+2s1e2dén
2s1e2dz
se2ger
-2s1e2gér
-segész1
+2s1e2gér
+segész1
se2gyed
2s1egz
se2her
se2il2
se1kra
-2selá
-se2lál
-2s1elnö
+2selá
+se2lál
+2s1elnö
2selo
se2l1os
-2s1e2l®a
-2s1e2l®l
+2s1e2lőa
+2s1e2lől
2s1elto
2s1e2lu
2semel
-2semé
+2semé
2senc
-sen2d1®2r
+sen2d1Å‘2r
se2nyer
se2nyir
-se2nyú
-se2ö
+se2nyú
+se2ö
2s1e2pi
2s1e2po
se2rej
-2s1e2r®
-se2sá
+2s1e2rő
+se2sá
s1esem
-se2sés
+se2sés
ses2ti
-s1eszkö
-se2sz¶
+s1eszkö
+se2szű
se2tik
2seto
se2tok
se2t1ol
-2s1e2vés
+2s1e2vés
se2vo
-2s1e2v®
-1sé
-sé2g1a
-sé2g1á2
-sé2g1eg
-sége2l
-sé2g1ele
-ség1eli
-sé2gés
-ség1ész
-ség3g
-sé2gigé
-sé2g1í2
-sé2g1o2
-ség1s
-2s1éh.
-2s1éhs
-s1élm
-2sély
-sé2lyeg
-sé2mas
-sé2mu
-s1é2pí
-sé2pü
-2s1érc
-sé2rin
-s1értel
-2s1érz
-2s1étk
-2sétt
-2sétv
-2séve.
-sé2vei
+2s1e2vő
+1sé
+sé2g1a
+sé2g1á2
+sé2g1eg
+sége2l
+sé2g1ele
+ség1eli
+sé2gés
+ség1ész
+ség3g
+sé2gigé
+sé2g1í2
+sé2g1o2
+ség1s
+2s1éh.
+2s1éhs
+s1élm
+2sély
+sé2lyeg
+sé2mas
+sé2mu
+s1é2pí
+sé2pü
+2s1érc
+sé2rin
+s1értel
+2s1érz
+2s1étk
+2sétt
+2sétv
+2séve.
+sé2vei
s1f2
s1g2
sha2k
s2hi.
s2hin
1si
-si2bá
-si2dé
-s1i2d®
+si2bá
+si2dé
+s1i2dő
sie2l
si2em
2s1ifj
2siga
s1i2gaz
si2ge.
-2s1i2gé
+2s1i2gé
si1gl
sig2ni
s1i2nas
2sinf
-si2ójá
+si2ójá
2sipa
si2rod
3sisak
2sisk
2s1isp
sis3s
-si2s1ü2
+si2s1ü2
si2tal
-si2tá
-siú2
+si2tá
+siú2
s1izmo
2sizo
si2zol
si2zom
-1sí
-sí2ka
-sí2ke
-sí2nü
-sí2r1e2
-sító1b
-2sív
-s1í2zes
-s1ízü
+1sí
+sí2ka
+sí2ke
+sí2nü
+sí2r1e2
+sító1b
+2sív
+s1í2zes
+s1ízü
sk2
-skás3s
+skás3s
1s2kic
ski2s1a
s1kl
-sközé2
-skö2z1él
+sközé2
+skö2z1él
s1kv
1s2lag
sla2te
1s2lav
-sle2t1á2
-sme2g1á
-smerés1s
+sle2t1á2
+sme2g1á
+smerés1s
1so
2sob
so2d1e
-sodé2
-so2dév
+sodé2
+so2dév
so2d1os
-2sodú
+2sodú
3sof
so2kaj
so2kar
@@ -10849,179 +10849,179 @@ so2ke
so2kir
2s1okke
2s1o2kos
-so2kó
+so2kó
2sokta
s1o2laj
-s1oldó
-s1oltó
+s1oldó
+s1oltó
so2n1al
so2n1e
-so2n1é
-son2t1ár
+so2n1é
+son2t1ár
son2t1e
so2nye
-sor1áll
+sor1áll
so2r1e2
-2s1orrú
+2s1orrú
3sort
2sosz
s1oszt
2s1otth
2s1o2x
-1só
-só2kál
-2s1ó2lo2
-2sórá
-só2rán
-sós3s
-1sö
-2s1öbl
-2söc
-s1öko
-s1önte
-2s1öntv
-sö2r1i2
-2sös
-s1ösv
-1s®
-s®e2
-s®é2
-s1®rm
-s1®rn
-s®2sok
+1só
+só2kál
+2s1ó2lo2
+2sórá
+só2rán
+sós3s
+1sö
+2s1öbl
+2söc
+s1öko
+s1önte
+2s1öntv
+sö2r1i2
+2sös
+s1ösv
+1ső
+sőe2
+sőé2
+s1Å‘rm
+s1Å‘rn
+ső2sok
1sparh
-1s2páj
+1s2páj
spiros1
spis3s
sp2l
spor2te
-spor2tö
-1s2pór
+spor2tö
+1s2pór
3spra
s1pro
s1p2s
srau2
-sren2d1®
-sré2z1
-1s2róf
+sren2d1Å‘
+sré2z1
+1s2róf
s1s2k
-ss2rá
+ss2rá
ss3s
sst2
s1s2ta
-ss2tí
+ss2tí
s2sz
sszat2
-ssz1á2ru
+ssz1á2ru
s3szele
-s3szél
-s3szép
-ssz1ér.
+s3szél
+s3szép
+ssz1ér.
ssz1ing
s3szom
-s3szóko
-s3szól
-ssz1ös
-s3szöv
+s3szóko
+s3szól
+ssz1ös
+s3szöv
ssz3s
sszt2
s3sztr
-s3sz¶
-1stafí
+s3szű
+1stafí
s2t1alj
s2t1alk
1stansan
-s2t1a2rá
-1stájg
+s2t1a2rá
+1stájg
s2t1eb
1steinig
1steinj
1steinr
1steint
-ste2ná
+ste2ná
ste2ra
ste2u
-sté2ká
-s2t1é2li
-s2t1érc
-st1érm
-s2t1érz
+sté2ká
+s2t1é2li
+s2t1érc
+st1érm
+s2t1érz
s2t1i2r
-1s2tíl
-st1íz
+1s2tíl
+st1íz
sto1g2
sto2ris
-st®2r
-st1®r.
-st1®rc
-st1®re
-st1®rö
-st1®rs
+stő2r
+st1Å‘r.
+st1Å‘rc
+st1Å‘re
+st1őrö
+st1Å‘rs
s1trag
st2rap
-st2róf
-1struktú
-st1új
-s2t1ür
+st2róf
+1struktú
+st1új
+s2t1ür
1su
2s1ugr
2s1ujj
s1u2ra
-s1u2rá
+s1u2rá
2surn
su2tal
sutas1s
-2sutá
-su2tó
+2sutá
+su2tó
2suz
-1sú
-sú2cse
-s1újd
-2sújí
-s1újs
-2súr.
-sú2r1as
-s1úrb
-sú2t1á
-sú2té
-sú2ti
-sú2tü
-1sü
-2süd
-2s1ü2gy
-2süld
-sü2n®
-sü2re
-sü2rü
-2süs
-sü2sz
-3süt®
-2s1ü2z
-1s¶
-s¶s1
+1sú
+sú2cse
+s1újd
+2sújí
+s1újs
+2súr.
+sú2r1as
+s1úrb
+sú2t1á
+sú2té
+sú2ti
+sú2tü
+1sü
+2süd
+2s1ü2gy
+2süld
+sü2nő
+sü2re
+sü2rü
+2süs
+sü2sz
+3sütő
+2s1ü2z
+1sű
+sűs1
1s2vin
s2z
1sza
2szac
-sza2dá
-sz1a2dó
-3szaká
+sza2dá
+sz1a2dó
+3szaká
3szakm
3szaks
2sz1alj
2szalk
sz1ass
sza1tro
-1szá
-3szám
-szá2m1e
-szá2m1ér
-s3záp
-3szárn
-3szárú
-3száza
-3százn
-3százö
+1szá
+3szám
+szá2m1e
+szá2m1ér
+s3záp
+3szárn
+3szárú
+3száza
+3százn
+3százö
szd2
sz1dr
1sze
@@ -11030,8 +11030,8 @@ sz1dr
2szelemz
2sz1elm
3szemc
-3szemü
-3szem¶.
+3szemü
+3szemű.
3szend
3szepl
sze2rej
@@ -11042,101 +11042,101 @@ sze2rej
2szesem
sze1tro
sz1ezr
-1szé
-3széké
-szé2nö
-sz1érc
-2sz1érd
-2sz1éré
-sz1értá
-2szérté
-sz1érv
-széte2
-1szférá
+1szé
+3széké
+szé2nö
+sz1érc
+2sz1érd
+2sz1éré
+sz1értá
+2szérté
+sz1érv
+széte2
+1szférá
1szi
2szic
2sz1iga
-sz1igé
+sz1igé
3szigo
3szimb
2szira
2szisk
2szism
sz1isza
-1szí
-3szív¶
-1szkóp.
-1szkópk
-1szkópo
-1szkópp
+1szí
+3szívű
+1szkóp.
+1szkópk
+1szkópo
+1szkópp
1szo
3szob
3szof
-szo2l1ál
+szo2l1ál
3szorg
2szors
2szorv
-1szó
-1szö
-3szöge
-3szögk
-2szövv
-1sz®
-3sz®l
+1szó
+1szö
+3szöge
+3szögk
+2szövv
+1sző
+3szől
szs2
sz3sap
sz3sas
-s3zsák
-sz3sár
-sz3sát
+s3zsák
+sz3sár
+sz3sát
sz3seg
sz3sel
s3zsem
sz3ser
-sz3sé
+sz3sé
sz3sik
sz3sir
sz3so
-sz3só
-s3zsö
+sz3só
+s3zsö
sz3sp
sz3st
-sz3sú
-sz3sü
+sz3sú
+sz3sü
sz3sz
sz2t1ap
-sz2t1á2rak
-sz2táro
-1sztárr
-sz2táto
+sz2t1á2rak
+sz2táro
+1sztárr
+sz2táto
1sztorit
-1sztráj
+1sztráj
1szu
2szu2b
-2szutó
+2szutó
2szuz
-1szú
-2szúth
-2szúto
-2szúts
-1szü
-2szüg
-3szür
-2szüt
-1sz¶
-2sz¶e
-2sz¶s
+1szú
+2szúth
+2szúto
+2szúts
+1szü
+2szüg
+3szür
+2szüt
+1szű
+2szűe
+2szűs
sz1z
sz2zo
sz3zs
1ta
2t1abr
-2t1a2cé
+2t1a2cé
t1a2dan
-ta2datá
+ta2datá
ta2dati
ta2dato
-2t1a2dá
+2t1a2dá
t1adh
t1adj
t1adl
@@ -11146,141 +11146,141 @@ ta2dog
ta2dok
ta2dom
ta2dot
-2tadó
-t1a2dó.
-t1a2dója
+2tadó
+t1a2dó.
+t1a2dója
t1adv
tae2
-2tafí
+2tafí
ta1fr
ta2g1av
-ta2g1ál
+ta2g1ál
tag1g
tai2g
ta2iga
ta2i2re
ta2kad
2t1akc
-2t1aktí
+2t1aktí
ta2l1adn
ta2lakb
-2talakí
+2talakí
t1a2laku
2t1alany
-ta2lapú
+ta2lapú
ta2l1as
-ta2l1áll
-talás1s
+ta2l1áll
+talás1s
ta2l1em
ta2l1e2s
-talé2k1e2
+talé2k1e2
ta2l1ur
-talú2
-ta2lúr
-ta2l1út
+talú2
+ta2lúr
+ta2l1út
ta2mid
ta2nan
-ta2n1év
+ta2n1év
2t1anny
tan1osz
-ta2n1ó2r
+ta2n1ó2r
2tansan
ta2nyag
tao2
ta2pa.
-ta2pán
+ta2pán
ta1ph
2tapp
-ta1pré
+ta1pré
2taran
-2tarán
-ta2s1á2r
+2tarán
+ta2s1á2r
ta2sel
ta2sem
ta1s2p
2tassz
-tas3szá
+tas3szá
ta1sta
tat1ato
-2tatiká
+2tatiká
2t1a2ty
-ta2utó
+ta2utó
2tazo
ta2zon
-1tá
-2t1ábr
-2tádi
-2tág.
-tá2ga.
-tá2gat
-2t1á2gá
-2t1ágb
-tá2ge
-2t1ágg
-2tágn
-2t1á2go
-2tágr
-t1á2gun
-tá2gú
-2t1á2gy
-táje2
-tá2j1eg
-2tájg
-tá2lét
-2t1áll.
-2t1állj
-2t1álln
-2t1állo
-2t1állt
-tá2lyéb
-tá2lyér
-tá2mí
-tá2m1os
-tán1alm
-tánc1c
-tá2ne
-2tánv
-tá2nyú
-2tánz
-tá2pa
-tá2pe
-tá2pin
-tá2rab
-tá2raj
-tá2r1ál
-tá2r1e2
-tá2r1ér
-tá2rid
-tá2rin
-tá2rí
-tá2r1osz
-2táru.
-tá2ruh
-tár1ur
-2t1á2rus
-tá2rút
-tá2s1ár.
-tá2s1e
-tá2sin
-tá2só
-tás1ó2r
-tás3s
-tást2
-tás1tr
-tá2sü
-tá2sza
-2t1át1ad
-2t1átm
-2t1áts
-2t1átt
-2t1á2tü
-táva2
-tá2v1ad
-tá2vér
-tá2zsa
+1tá
+2t1ábr
+2tádi
+2tág.
+tá2ga.
+tá2gat
+2t1á2gá
+2t1ágb
+tá2ge
+2t1ágg
+2tágn
+2t1á2go
+2tágr
+t1á2gun
+tá2gú
+2t1á2gy
+táje2
+tá2j1eg
+2tájg
+tá2lét
+2t1áll.
+2t1állj
+2t1álln
+2t1állo
+2t1állt
+tá2lyéb
+tá2lyér
+tá2mí
+tá2m1os
+tán1alm
+tánc1c
+tá2ne
+2tánv
+tá2nyú
+2tánz
+tá2pa
+tá2pe
+tá2pin
+tá2rab
+tá2raj
+tá2r1ál
+tá2r1e2
+tá2r1ér
+tá2rid
+tá2rin
+tá2rí
+tá2r1osz
+2táru.
+tá2ruh
+tár1ur
+2t1á2rus
+tá2rút
+tá2s1ár.
+tá2s1e
+tá2sin
+tá2só
+tás1ó2r
+tás3s
+tást2
+tás1tr
+tá2sü
+tá2sza
+2t1át1ad
+2t1átm
+2t1áts
+2t1átt
+2t1á2tü
+táva2
+tá2v1ad
+tá2vér
+tá2zsa
tb2
t1bl
-tbor2dó
+tbor2dó
t1br
tca1f2
t1d2
@@ -11291,34 +11291,34 @@ te2aka
te2as
te2av
2t1e2dz
-te2g1á
-tegész1
+te2g1á
+tegész1
2t1egys
-tejá2
+tejá2
te2j1ell
te2jo
te2j1u2
-te2k1ó2
-te2kú
-te2kür
+te2k1ó2
+te2kú
+te2kür
tela2
te2l1ad
-2t1e2lál
-te2lár
-te2lát
+2t1e2lál
+te2lár
+te2lát
2t1elha
-2t1elhá
+2t1elhá
2t1elhel
2telix
2te2l1os
-2t1eltá
+2t1eltá
2t1elv.
2t1elvi
-2t1elv¶
-te2m1ál
+2t1elvű
+te2m1ál
t1embl
2t1e2mel
-te2més
+te2més
te2m1os
te2n1a2
2t1endr
@@ -11327,107 +11327,107 @@ te2ner
ten3n
te2n1u
t1enyv
-te2oló
+te2oló
te2rad
te2ran
te2r1ar
-te2r1ár
-2terd®
+te2r1ár
+2terdő
ter1egy
2t1e2rej
te2r1est
te2ror
-te2rö
-2t1e2r®
+te2rö
+2t1e2rő
te2rut
te2s1a
-2tesemé
-2t1esél
-t1e2sés
+2tesemé
+2t1esél
+t1e2sés
tesi2
te2sin
t1esni
-2t1e2s®
+2t1e2ső
tes2tal
-te2süv
-tesz1ál
+te2süv
+tesz1ál
2t1eszm
tes3zs
-2t1e2sz¶
+2t1e2szű
teto1s
te2t1ot
-te2t1öl
+te2t1öl
te1t2ro
-teu2tá
+teu2tá
2t1e2zer
2tezr
-1té
-2t1ébr
-2tég.
-té2hes
-t1éhs
-té2kal
-té2k1a2n
-té2k1as
-té2k1au
-té2k1eg
-té2k1ell
-té2kép
-té2k1ir
-té2k1í2
-té2kö
-té2lá
-té2l1e2r
-té2l1os
-2téls
-té2lu
-2télü
-té2l¶
-té2lyem
-té2nin
-té2ny1el
-2t1é2pí
-té2ran
-térá2
-té2r1ár
-2térdek
-té2r1e2l
-té2rem
-tér1emb
-té2r1ész
-té2r1in
-té2ris
-2térm
-2t1érték
-té2sa
-té2s1á
-té2sel
-té2s1o
-té2szes
-tés3zsí
-té2tar
-té2tál
-2tév.
-2t1évb
-2t1é2vei
-té2ven
-2tévet
-2tévéb
-2tévét
-2tévh
-2t1é2vi
-2t1évr
-2t1é2vü
-té2zs
+1té
+2t1ébr
+2tég.
+té2hes
+t1éhs
+té2kal
+té2k1a2n
+té2k1as
+té2k1au
+té2k1eg
+té2k1ell
+té2kép
+té2k1ir
+té2k1í2
+té2kö
+té2lá
+té2l1e2r
+té2l1os
+2téls
+té2lu
+2télü
+té2lű
+té2lyem
+té2nin
+té2ny1el
+2t1é2pí
+té2ran
+térá2
+té2r1ár
+2térdek
+té2r1e2l
+té2rem
+tér1emb
+té2r1ész
+té2r1in
+té2ris
+2térm
+2t1érték
+té2sa
+té2s1á
+té2sel
+té2s1o
+té2szes
+tés3zsí
+té2tar
+té2tál
+2tév.
+2t1évb
+2t1é2vei
+té2ven
+2tévet
+2tévéb
+2tévét
+2tévh
+2t1é2vi
+2t1évr
+2t1é2vü
+té2zs
t1f2l
tg2
-tgár2
+tgár2
t1gn
t1gr
-tha2d1é
+tha2d1é
t2hai
t2hak
-tha2l1ás
+tha2l1ás
tha2me
1t2hau
1theid
@@ -11440,9 +11440,9 @@ t2hov
1thy
1ti
tia2t
-2t1i2dé
+2t1i2dé
2t1i2do
-2t1i2d®
+2t1i2dő
tien2
tie2r
2t1ifj
@@ -11450,10 +11450,10 @@ ti1f2r
2t1i2ge
2t1ign
ti1g2ra
-ti1grá
+ti1grá
ti1kh
ti1k2le
-ti1k2ló
+ti1k2ló
ti1k2ri
ti2lan
ti2l1i2p
@@ -11464,11 +11464,11 @@ ti2ne.
ti2n1es
tin2gi
tin2g1o
-ti2nö
-ti2nú
+ti2nö
+ti2nú
ti2par
-2t1i2rán
-ti2rén
+2t1i2rán
+ti2rén
ti2rig
ti2rod
ti1sl
@@ -11476,37 +11476,37 @@ ti1sl
tis3s
ti1str
2tistv
-ti2sü
-2t1i2vó
+ti2sü
+2t1i2vó
tize2n1
ti2zom
-2t1i2zü
-1tí
-2t1íg
-2t1í2j
-t1í2rás
-2t1í2ró
-tí2vel
-tív1ele
-tí2v1ér
-tí2v¶
-tí2za
-tí2zó
+2t1i2zü
+1tí
+2t1íg
+2t1í2j
+t1í2rás
+2t1í2ró
+tí2vel
+tív1ele
+tí2v1ér
+tí2vű
+tí2za
+tí2zó
t1k2
-tká2nya
+tká2nya
tla2c3
tla2g1e
tlag1g
tlas1s
-tme2g1é
+tme2g1é
tna2k
tno1g2
1to
2t1obj
-todé2
-to2dév
+todé2
+to2dév
to2k1ad
-to2k1ö
+to2k1ö
2t1o2laj
to2lim
2tolvas
@@ -11515,12 +11515,12 @@ tome2
to2mel
to2men
2toml
-t1omlá
-to2mó
-2tomú
+t1omlá
+to2mó
+2tomú
to2nalm
to2nel
-to2nü
+to2nü
to2nye
to1p2h
to2rab
@@ -11530,193 +11530,193 @@ to2r1e2l
2torie
to2r1isk
toros1s
-to2ró
+to2ró
tor1s2
tosi2
to2sin
to2sze
-tosz2kó
+tosz2kó
2t1oszl
to1tra
2t1ou
to1y
-1tó
-2tódok
-2t1ó2év.
-2t1ó2rai
-tó2rás
-tó2s1e2
-tó1spe
-tó1spo
-tós3s
-tó1t2r
-2tóvod
-1tö
-2tödn
-2tödü
-tö2kör
-t1öltöz
-tö2n1í2
-tö2n®
-2t1öntu
-tö2s1i
-t1ötr
-2töv.
-2tövn
-2tövö
-1t®
-t®1dz2n
-t®e2
-t®i2rá
-2t®rb
-2t1®rl
-2t1®2rü
-2t1®rz
-t®1sté
-t®u2
-t®ü2
+1tó
+2tódok
+2t1ó2év.
+2t1ó2rai
+tó2rás
+tó2s1e2
+tó1spe
+tó1spo
+tós3s
+tó1t2r
+2tóvod
+1tö
+2tödn
+2tödü
+tö2kör
+t1öltöz
+tö2n1í2
+tö2nő
+2t1öntu
+tö2s1i
+t1ötr
+2töv.
+2tövn
+2tövö
+1tő
+tő1dz2n
+tőe2
+tői2rá
+2tőrb
+2t1Å‘rl
+2t1ő2rü
+2t1Å‘rz
+tő1sté
+tőu2
+tőü2
t1p2
tpen1
-1t2rafá
+1t2rafá
1tranziti
tra1ps
tras2
-t2rádá
-trás1s
-1tréf
+t2rádá
+trás1s
+1tréf
1t2ril
troa2
tron3n
trosz2
tro1szk
-tró2zs
+tró2zs
1t2rup
-1t2rü
+1t2rü
t1ry
tsa2va
-1t2sé.
+1t2sé.
t1s2k
t1s2p2
t1s2t2
1t2sub
1tsy
-tsza2ké
+tsza2ké
tsza2te
-tszá2ze
+tszá2ze
t1sz2f
t1sz2t
tt1aszt
t2t1a2u
-t2t1áll
+t2t1áll
tt1egy
t2t1elm
tt1eml
-tté2g
-tt1ége
-tté2l
-tté2res
+tté2g
+tt1ége
+tté2l
+tté2res
t2t1id
t2t1isk
t2t1ors
tt1ott
-tt1óra
-tt®2sa
-tt2rén
-tt¶z3s
+tt1óra
+ttő2sa
+tt2rén
+ttűz3s
t2ty
1tu
tu2go
-tu2mál
+tu2mál
tu2min
tu2se
tu2sze
-tu2sz1é2
+tu2sz1é2
tu2szi
2t1u2tak
tu2tas
2t1utc
tu2u
-1tú
-2t1úg
-2t1újd
-2t1újs
-tú2lan
-tú2lat
-tú2l1á2
-tú2l1é2
-tú2ló
-tú2lö
-tú2r1e
-tú2r1é
-tú2sze
-tú2to
-1tü
-2t1ü2g
-tü2len
-tü2l1e2s
-tü2lér
-tü2lo
-tü2lü
-tü2te
-tü2té
-tü2tö
-tü2t®
-2t1ü2v
-2t1üzl
-1t¶
-t¶2za
-t¶2z®r
-t¶2zs
+1tú
+2t1úg
+2t1újd
+2t1újs
+tú2lan
+tú2lat
+tú2l1á2
+tú2l1é2
+tú2ló
+tú2lö
+tú2r1e
+tú2r1é
+tú2sze
+tú2to
+1tü
+2t1ü2g
+tü2len
+tü2l1e2s
+tü2lér
+tü2lo
+tü2lü
+tü2te
+tü2té
+tü2tö
+tü2tő
+2t1ü2v
+2t1üzl
+1tű
+tű2za
+tű2zőr
+tű2zs
tva1k2
tva2ra
-tváro2s1u
+tváro2s1u
tve2neg
tve2ra
twa2
t2y
1tya
tyau2
-1tyá
-tyás3s
+1tyá
+tyás3s
1tye
-1tyé
+1tyé
1tyi
-1tyí
+1tyí
1tyo
-1tyó
-1työ
-1ty®
+1tyó
+1työ
+1tyő
1tyu
-1tyú
-1tyü
-1ty¶
-ty2vá
+1tyú
+1tyü
+1tyű
+ty2vá
tz3sc
2u.
u1a
u2ad
ua2e
ua1yi
-u1á
-uá2ru
+u1á
+uá2ru
uba2l
u2b1ala
-ub1éle
+ub1éle
ub1ord
-uca2t1á
+uca2t1á
2uch
-uc3ság
-u2cs1ál
+uc3ság
+u2cs1ál
uda2tal
-uda2tál
+uda2tál
uda2te
-udás3s
+udás3s
2ude
udi2o
2udiz
2udoc
2udod
-2udoé
+2udoé
2udok
2udot
u1dy
@@ -11726,64 +11726,64 @@ uel1o
ue2s
ues3ze
ue2v
-u1é
-ué2p
+u1é
+ué2p
2uf
ug1alj
-ug1ág
-ugá2rá
+ug1ág
+ugá2rá
2uge
ug1el
-u2gé.
+u2gé.
2ugg
2ugh
u2g1ir
u2g1iv
-ug1ír
+ug1ír
ugosz2l
ug1ut
-u2g1ü
+u2g1ü
ugya2
uh1ako
-u2h1ál
-uhás1s
+u2h1ál
+uhás1s
u1i
-u1í
-uk2kór
-uk1üt
+u1í
+uk2kór
+uk1üt
ula2tin
-u2l1áll
-ulás3s
+u2l1áll
+ulás3s
ul2cs1e2
-ul2cs1ó
+ul2cs1ó
ul1ex
-u2l1ér
+u2l1ér
ulit2
uli1tz
-u2l1í2
+u2l1í2
2ulk
ul2l1os
2ulo
-ul2t1ü2
-u2l1ü2
+ul2t1ü2
+u2l1ü2
2uly
um1a2da
u2m1a2l
-um1áll
+um1áll
um1e2d
ume2g1
u2m1e2l
um1ev
-u2m1érté
+u2m1érté
umik2
umi1kr
um1ing
um1i2on
-um1ivá
-um1ív
+um1ivá
+um1ív
u2m1ol
u2m1osz
-u2m1®2
+u2m1Å‘2
umplis1
um1pr
u2nal
@@ -11792,15 +11792,15 @@ u2n1ar
un1g2l
1unj
u1o
-u1ó
-uó2l
-u1ö
-u1®2
+u1ó
+uó2l
+u1ö
+u1Å‘2
2upa
upe2r1e2
upe2rin
upla1
-u1p2ró
+u1p2ró
u2rad
2uralgia
2uralgik
@@ -11809,13 +11809,13 @@ u2ralo
ura2m1i
2uran
ure2u
-2uréká
+2uréká
ur2f1e
-2urí
+2urí
2urob
uro2ka
2urol
-2uróp
+2uróp
u1ry
us1abl
u2s1a2d
@@ -11824,13 +11824,13 @@ u2s1ar
u2s1as
u2s1a2u
u2s1a2z
-us1áru
+us1áru
us1eb
us1e2g
us1e2l
us1ez
-u2s1ék
-us1ép
+u2s1ék
+us1ép
u2s1id
us1int
u2s1i2r
@@ -11838,472 +11838,472 @@ u2s1is
us1izo
us1k
us1old
-us1ó2r
-u2s1ö2
+us1ó2r
+u2s1ö2
us1p2
2uss.
-2ussé
+2ussé
2ussh
2ussn
2ussr
2usst
us1sy
us3szem
-us3szí
+us3szí
u2s1u2t
-u2s1ü2
+u2s1ü2
us3zav
-u2sz1ág
+u2sz1ág
u2sz1el
-u2sz1ö
+u2sz1ö
usz3s
u2t1a2ny
1u2taz
-után1n
-1utánz
+után1n
+1utánz
u2t1e2l1
u1t2he
u1t2hi
ut2hu
u2t1i2p
-utó1sz
-2utü1
+utó1sz
+2utü1
u1u
-uu2m1á
+uu2m1á
uu2miz
-u1ú
-u1ü2
-u1¶
+u1ú
+u1ü2
+u1ű
2ux.
u1y
2uzal
uzeo2
-2uzó
+2uzó
uzz2
-2ú.
-ú1a
-úa2l
-úa2n
-ú1á2
-2úbar
-ú1b2r
-ú2cs1as
-ú2csárb
-úcse2
-úcs1em
-úcs1en
-úcs1er
-úcs1es
-ú2cs1é2
-ú2csid
-ú2csí
-úda2n
-ú2d1ez
-úd1ug
-ú1e2
-ú1é
-úg1ál
-úgás1s
-ú2gya2
-úgy1ag
-úgy1ah
-úgy1is
-úhús3
-ú1i
-úi2d
-2úis
-ú1í
-új1ang
-új1es
-új1ez
-új1é2
-1újf
-1ú2jí
-új1k2
-1újr
-új1ud
-ú2k1al
-ú2k1a2n
-ú2k1e2s
-2úkoro
-2úkó
-úk1ól
-ú2k1ü2
-2úl
-ú2l1ad.
-ú2l1ada
-ú2l1a2dá
-ú2l1a2dó
-ú2l1aj
-úla2n
-úl1ál
-úl1d2
-ú2l1e2d
-ú2l1eg
-ú2l1e2m
-ú2l1er®
-ú2l1e2s
-ú2l1ex
-úl1é2d
-úl1ég
-úl1é2r
-ú2l1in
-ú2l1is
-ú2l1iz
-ú2l1í2
-ú2l1ol
-úl1ó2r
-úl1öl
-úl1öm
-úl2tag
-ú2lyar
-ú2ly1e2
-ú2lyér
-2úm
-únyi2
-úny1ir
-ú2ny1ö2
-ú1o
-ú1ó
-ú1ö
-ú1®2
-úpos3s
-ú2r1an
-ú2r1att
-ú2r1a2u
-ú2r1áll
-ú2r1á2ri
-úr1e2g
-úr1e2l
-úr1es
-1ú2ré.
-úr1ék
-úr1é2l
-ú2rig
-ú2rin
-úr1int
-ú2r1ot
-ú2r1ö
-úrs2
-úr1sm
-2úru
-úsa2
-ú2s1ad
-ús1e2l1
-úsele2
-ús1e2v
-ús1ex
-úsé2
-ú2s1ét
-ú2s1il
-ú2s1i2p
-ú2s1old
-ú2s1®
-ús3sze
-ús3szí
-2úsze
-úsz1ej
-úsz1es
-úsz1ev
-úsz1ez
-úsz1év
-úsz1öl
-út1a2d
-út1á2g
-út1á2s
-út1át
-1útd
-út1ef
-út1e2g
-út1ép
-út1ér
-útie2
-úti1p
-út1irá
-út1old
-1úto2n1
-út1®
-2ú1u2
-ú1ú
-ú1ü2
-ú1¶
-úz3sz
-2ü.
-ü1a
-ü1á
-ü2dí
-üd1íz
-1ü2dü
-üd2v1i2
-üd2vo
-ü1e2
-ü1é
-ü2g1el
-ügy1in
-ügy1o
-ü2gy1®2
-ü2h1a
-ü1i
-ü1í
-ük1ac
-üka2n
-üka2p
-ü1k2hé
-ü1k2hi
-ük2ker
-ük1u2
-ü2l1a2d
-ü2l1ag
-ül1a2l
-ü2l1á2
-ül1eng
-1ü2lep
-ül1esh
-ül1e2s®
-üle2t1a
-üle2tá
-üle2teg
-üle2t1e2l
-ü2l1ég
-ü2l1ép
-ül1ér.
-ül1érz
-ü2l1í2
-ül1ol
-ül1or
-ül1ölt
-ü2l1ö2v
-ül®e2
-ül®i2r
-ül2tad
-ültá2
-ül2táp
-ül2t1ár
-ül2tát
-1ültes
-ü2l1u2
-ü2l1ú2
-ü2l1ü2l
-ül1üt
-üm1il
-ün1id
-ün1kri
-ü2n1ó2
-ü1o
-ü1ó
-ü1ö
-ü1®
-ü1p2h
-1ü2reg
-üreg1g
-1ü2rí
-ür2ja
-ürke1
-ü2röm
-üss1eg
-üs2t1a
-üs2t1á
-üs2t1e2
-üsté2
-üs2t1ére
-üs2t1il
-üs2t1í2
-üs2t1o
-üs2t1ó2
-ü2teg
-ütés3s
-üt2t1á
-üt2tem
-üt2t1é2
-ü1u
-ü1ú
-ü1ü
-ü1¶
-üveg1g
-üze2ma
-üze2mo
-1ü2zene
-2¶.
-¶1a2
-¶1á2
-¶2cs1á
-¶cs1ip
-¶2d1e
-¶1e
-¶e2g
-¶e2p
-¶e2v
-¶1é
-¶é2l
-¶é2p
-¶fa2je
-¶1i
-¶i2p
-¶1í2
-¶ka2g
-¶1k2ro
-¶l®ú2
-¶2n1el
-¶2n1e2s
-¶n3n
-¶1o2
-¶1ó
-¶1ö
-¶1®
-¶ra2
-¶r1an
-¶r1at
-¶r1ál
-¶r1es
-¶r1i2p
-¶2r1ol
-¶r1öl
-¶r1p2
-¶2r1u2
-¶r1üg
-¶1s2ká
-¶s3s
-¶s2to
-¶2s1u
-¶1t2r
-¶1u2
-¶1ú
-¶1ü2
-¶1¶
-¶ve2r
-¶ves1s
-¶za2
-¶z1ak
-¶z1an
-¶2z1á
-¶2z1el
-¶2z1e2r
-¶2z1e2s
-¶z1ev
-¶z1érm
-¶2z1im
-¶2z1is
-¶2z1o2
-¶2z1ör
-¶z1ö2v
-¶z1®r.
-¶z1®rs
-¶z1®rz
-¶z1p2
-¶z3su
+2ú.
+ú1a
+úa2l
+úa2n
+ú1á2
+2úbar
+ú1b2r
+ú2cs1as
+ú2csárb
+úcse2
+úcs1em
+úcs1en
+úcs1er
+úcs1es
+ú2cs1é2
+ú2csid
+ú2csí
+úda2n
+ú2d1ez
+úd1ug
+ú1e2
+ú1é
+úg1ál
+úgás1s
+ú2gya2
+úgy1ag
+úgy1ah
+úgy1is
+úhús3
+ú1i
+úi2d
+2úis
+ú1í
+új1ang
+új1es
+új1ez
+új1é2
+1újf
+1ú2jí
+új1k2
+1újr
+új1ud
+ú2k1al
+ú2k1a2n
+ú2k1e2s
+2úkoro
+2úkó
+úk1ól
+ú2k1ü2
+2úl
+ú2l1ad.
+ú2l1ada
+ú2l1a2dá
+ú2l1a2dó
+ú2l1aj
+úla2n
+úl1ál
+úl1d2
+ú2l1e2d
+ú2l1eg
+ú2l1e2m
+ú2l1erő
+ú2l1e2s
+ú2l1ex
+úl1é2d
+úl1ég
+úl1é2r
+ú2l1in
+ú2l1is
+ú2l1iz
+ú2l1í2
+ú2l1ol
+úl1ó2r
+úl1öl
+úl1öm
+úl2tag
+ú2lyar
+ú2ly1e2
+ú2lyér
+2úm
+únyi2
+úny1ir
+ú2ny1ö2
+ú1o
+ú1ó
+ú1ö
+ú1ő2
+úpos3s
+ú2r1an
+ú2r1att
+ú2r1a2u
+ú2r1áll
+ú2r1á2ri
+úr1e2g
+úr1e2l
+úr1es
+1ú2ré.
+úr1ék
+úr1é2l
+ú2rig
+ú2rin
+úr1int
+ú2r1ot
+ú2r1ö
+úrs2
+úr1sm
+2úru
+úsa2
+ú2s1ad
+ús1e2l1
+úsele2
+ús1e2v
+ús1ex
+úsé2
+ú2s1ét
+ú2s1il
+ú2s1i2p
+ú2s1old
+ú2s1ő
+ús3sze
+ús3szí
+2úsze
+úsz1ej
+úsz1es
+úsz1ev
+úsz1ez
+úsz1év
+úsz1öl
+út1a2d
+út1á2g
+út1á2s
+út1át
+1útd
+út1ef
+út1e2g
+út1ép
+út1ér
+útie2
+úti1p
+út1irá
+út1old
+1úto2n1
+út1ő
+2ú1u2
+ú1ú
+ú1ü2
+ú1ű
+úz3sz
+2ü.
+ü1a
+ü1á
+ü2dí
+üd1íz
+1ü2dü
+üd2v1i2
+üd2vo
+ü1e2
+ü1é
+ü2g1el
+ügy1in
+ügy1o
+ü2gy1ő2
+ü2h1a
+ü1i
+ü1í
+ük1ac
+üka2n
+üka2p
+ü1k2hé
+ü1k2hi
+ük2ker
+ük1u2
+ü2l1a2d
+ü2l1ag
+ül1a2l
+ü2l1á2
+ül1eng
+1ü2lep
+ül1esh
+ül1e2ső
+üle2t1a
+üle2tá
+üle2teg
+üle2t1e2l
+ü2l1ég
+ü2l1ép
+ül1ér.
+ül1érz
+ü2l1í2
+ül1ol
+ül1or
+ül1ölt
+ü2l1ö2v
+ülőe2
+ülői2r
+ül2tad
+ültá2
+ül2táp
+ül2t1ár
+ül2tát
+1ültes
+ü2l1u2
+ü2l1ú2
+ü2l1ü2l
+ül1üt
+üm1il
+ün1id
+ün1kri
+ü2n1ó2
+ü1o
+ü1ó
+ü1ö
+ü1ő
+ü1p2h
+1ü2reg
+üreg1g
+1ü2rí
+ür2ja
+ürke1
+ü2röm
+üss1eg
+üs2t1a
+üs2t1á
+üs2t1e2
+üsté2
+üs2t1ére
+üs2t1il
+üs2t1í2
+üs2t1o
+üs2t1ó2
+ü2teg
+ütés3s
+üt2t1á
+üt2tem
+üt2t1é2
+ü1u
+ü1ú
+ü1ü
+ü1ű
+üveg1g
+üze2ma
+üze2mo
+1ü2zene
+2ű.
+ű1a2
+ű1á2
+ű2cs1á
+űcs1ip
+ű2d1e
+ű1e
+űe2g
+űe2p
+űe2v
+ű1é
+űé2l
+űé2p
+űfa2je
+ű1i
+űi2p
+ű1í2
+űka2g
+ű1k2ro
+űlőú2
+ű2n1el
+ű2n1e2s
+űn3n
+ű1o2
+ű1ó
+ű1ö
+ű1ő
+űra2
+űr1an
+űr1at
+űr1ál
+űr1es
+űr1i2p
+ű2r1ol
+űr1öl
+űr1p2
+ű2r1u2
+űr1üg
+ű1s2ká
+űs3s
+űs2to
+ű2s1u
+ű1t2r
+ű1u2
+ű1ú
+ű1ü2
+ű1ű
+űve2r
+űves1s
+űza2
+űz1ak
+űz1an
+ű2z1á
+ű2z1el
+ű2z1e2r
+ű2z1e2s
+űz1ev
+űz1érm
+ű2z1im
+ű2z1is
+ű2z1o2
+ű2z1ör
+űz1ö2v
+űz1őr.
+űz1őrs
+űz1őrz
+űz1p2
+űz3su
1va
vaa2
-va2d1ál
-va2d1ár
+va2d1ál
+va2d1ár
va2d1e2
vadi2
va2did
va2d1ol
-v1a2dón
-va2dö
-va2d1®
+v1a2dón
+va2dö
+va2d1Å‘
va2d3z
va2ge
vaja2
va2j1ad
va2j1e
-va2jö
+va2jö
va2k1e2s
va2n1eg
van1es
-va2név
+va2név
2vang
van3n
va2nol
-va2n1ó2
-va2nö
+va2n1ó2
+va2nö
vao2
va2r1al
va2rany
va2rar
va2r1ir
-2varú
+2varú
va2s1aj
va2s1e2
-va2sék
+va2sék
va2sid
va2s1in
-va2sö
+va2sö
vas3sze
-vas3szé
+vas3szé
vast2
vas1tr
-va2s1ü
+va2s1ü
vasz3s
-va2t1á2r
-va2t1é
+va2t1á2r
+va2t1é
vat1int
vatt2
-1vá
-váb2bal
-váb2be
-vá2csi
-vá2csü
-vá2dal
-vádi2
-vá2dir
-v1állap
-v1állás
-2vállo
-2vállv
-vá2ma
-vá2m1á
-vá2m1e
-vá2mi
-vá2m1u2
-vá2n1a2r
-vá2n1ár
-vá2ne
-vá2nis
-vá2nú
-vá2ny1as
-vá2ny1e
-vány1ér
-vá2ral
-vá2re
-2várf
-vá2ris
-vá2r1oml
-vá2rö
-várs2
-vár1sp
-vá2ruh
-vá2rus
-vá2r1ú2
-vá2szi
-v1átm
-vá2t1ors
-2v1á2tü
-vá2zal
-vá2z1e2
-vá2ziz
-váz3sz
+1vá
+váb2bal
+váb2be
+vá2csi
+vá2csü
+vá2dal
+vádi2
+vá2dir
+v1állap
+v1állás
+2vállo
+2vállv
+vá2ma
+vá2m1á
+vá2m1e
+vá2mi
+vá2m1u2
+vá2n1a2r
+vá2n1ár
+vá2ne
+vá2nis
+vá2nú
+vá2ny1as
+vá2ny1e
+vány1ér
+vá2ral
+vá2re
+2várf
+vá2ris
+vá2r1oml
+vá2rö
+várs2
+vár1sp
+vá2ruh
+vá2rus
+vá2r1ú2
+vá2szi
+v1átm
+vá2t1ors
+2v1á2tü
+vá2zal
+vá2z1e2
+vá2ziz
+váz3sz
vd2
v1dr
1ve
ve2g1a2
-ve2g1á
+ve2g1á
ve2g1ele
-veg1ért
+veg1ért
ve2g1i
-ve2gí
-ve2g1ö
+ve2gí
+ve2g1ö
ve2gya
ve2gy1e2lem
ve2gyemb
-ve2gyér
+ve2gyér
ve2gyip
ve2il
-2v1elég
-2v1elhá
+2v1elég
+2v1elhá
2v1elm
ve2l1o
-2v1elvá
+2v1elvá
2v1e2mel
2v1eml
vene2g
@@ -12311,80 +12311,80 @@ ve2n1egy
ve2n1emb
ve2n1esz
ve2n1e2v
-ve2n1év
+ve2n1év
ven3n
-ve2nó
-ve2nö
+ve2nó
+ve2nö
ve1p2
vera2
-ve2r1á
+ve2r1á
ve2r1eng
ve2r1esz
ve2r1ip
ve2r1ol
ve2ror
-ve2ró
-2ver®sít®.
-2ver®sít®r
+ve2ró
+2verősítő.
+2verősítőr
vers3s
ver2s3ze
ve2sa
ve2ser
-ve2sú
-ve2süv
+ve2sú
+ve2süv
2v1eszm
-ve2s3zö
+ve2s3zö
ve2t1a2
-ve2tár
-1vé
-vé2der
-vé2do
-vé2dz
-vé2ga
-vé2gá
-vé2g1eg
-vé2g1ele
-vé2g1er
-vé2geté
-végig1
-vé2gin
-vé2g1í2
-vé2gó
-vé2la
-vé2l1á2
-vé2l1e2r
-vé2l1o
-vé2lu
-vé2nas
-vé2ny1e2l
-vé1p2
-vé2pí
-vé2r1á2
-vé2rel
-vé2ron
-2vérté
-vé2rú
-vé2rül
-vé2sz1á2
-vé2szeg
-vé2sz1o
-vé2tí
-2v1év.
+ve2tár
+1vé
+vé2der
+vé2do
+vé2dz
+vé2ga
+vé2gá
+vé2g1eg
+vé2g1ele
+vé2g1er
+vé2geté
+végig1
+vé2gin
+vé2g1í2
+vé2gó
+vé2la
+vé2l1á2
+vé2l1e2r
+vé2l1o
+vé2lu
+vé2nas
+vé2ny1e2l
+vé1p2
+vé2pí
+vé2r1á2
+vé2rel
+vé2ron
+2vérté
+vé2rú
+vé2rül
+vé2sz1á2
+vé2szeg
+vé2sz1o
+vé2tí
+2v1év.
v1f2
-vgé2
+vgé2
vhez1
1vi
2vick
vi2cs1a
-vi2csö
-2v1i2d®
+vi2csö
+2v1i2dő
vi2dz
2v1inh
vin2t1es
vi2pa
2v1i2rat.
2v1i2rata
-2v1i2ratá
+2v1i2ratá
2v1i2rath
2virati
2v1iratk
@@ -12397,93 +12397,93 @@ vi2pa
2v1ism
vissz1e2
2v1izg
-1ví
-2v1í2rás.
-2vírász.
-2vírászat.
-2v1írda
-2vírdáb
-2v1í2ró
-ví2z1a2
-ví2zá
-víze2
-ví2z1el
-ví2zer
-ví2z1es
-ví2z1o
-ví2zó
-ví2zs
-2víz¶
+1ví
+2v1í2rás.
+2vírász.
+2vírászat.
+2v1írda
+2vírdáb
+2v1í2ró
+ví2z1a2
+ví2zá
+víze2
+ví2z1el
+ví2zer
+ví2z1es
+ví2z1o
+ví2zó
+ví2zs
+2vízű
v1k2
1vo
-vo2lál
+vo2lál
vo2l1e2
vo2r1a
vo2se
vos3s
-1vó
-vóé2
-v1ó2rá
-vó1s2p
-vó2s3zen
-vóví2
-1vö
-vöt2
-1v®
-v®u2
+1vó
+vóé2
+v1ó2rá
+vó1s2p
+vó2s3zen
+vóví2
+1vö
+vöt2
+1vő
+vőu2
v1p2
vso2rol
-vsza2ké
+vsza2ké
v1t2
1vu
2v1u2t
-1vú
-vú2sz
-1vü
-2vüg
-vü2gy
-vü2les
-v1ünn
-2v1ü2t
-2v1üz
-1v¶
+1vú
+vú2sz
+1vü
+2vüg
+vü2gy
+vü2les
+v1ünn
+2v1ü2t
+2v1üz
+1vű
1vy
1wa
wa2e
wa2i
wa2le
wa1sh
-wat2t1á2
-1wá
+wat2t1á2
+1wá
1we
we2b1o
we2i
-we2ö
+we2ö
wesze1
-1wé
+1wé
w2h
whi2
1wi
wi2c
wi2e
wi2r
-1wí
+1wí
1wo2
-1wó
-1wö
-1w®
+1wó
+1wö
+1wő
1wu
-1wú
-1wü
-1w¶
+1wú
+1wü
+1wű
1xa
2x1a2l
x1ar
-1xá
+1xá
x1b2
1xe
2xe2g
-1xé
+1xé
1xi
2xidj
2xido
@@ -12491,33 +12491,33 @@ x1b2
2xio
xi2ol
xi2on
-1xí
-x1ív
+1xí
+x1ív
1xo
xo2d
xo2g
-1xó
-1xö
-1x®
-xpor2t1á2r
+1xó
+1xö
+1xő
+xpor2t1á2r
1xu
-xusá2
-xu2s1é
+xusá2
+xu2s1é
xus3s
-1xú
-2x1ü2
-1x¶
+1xú
+2x1ü2
+1xű
x2x
-yaá2
+yaá2
y1abl
-ya2cél
+ya2cél
y1a2dag
-y1a2dón
+y1a2dón
yae2
ya2gar
-ya2g1ál
-ya2gá2r
-yag1ár.
+ya2g1ál
+ya2gá2r
+yag1ár.
ya2ged
ya2g1el
ya2g1en
@@ -12528,20 +12528,20 @@ yag1osz
y1agy.
ya2gyak
y1agyk
-y1a2gyú
+y1a2gyú
y1ajt
ya2kala
-yaké2r
-yak1ére
+yaké2r
+yak1ére
ya2kiz
y1a2lak.
-ya2l1ék.
+ya2l1ék.
y1alm
ya2m1al
-ya2m1ár.
-ya2m1árb
-ya2m1árh
-ya2m1árn
+ya2m1ár.
+ya2m1árb
+ya2m1árh
+ya2m1árn
ya2mel
ya2m1is
yan1ar
@@ -12549,34 +12549,34 @@ yan1at
ya2n1e
ya2n1i
yan1o2d
-ya2n®
-yan1®k
-yan1®t
-ya2nyáé
-ya2nyái
-ya2nyák
-ya2nyám
-ya2nyán
-ya2nyát
+ya2nő
+yan1Å‘k
+yan1Å‘t
+ya2nyáé
+ya2nyái
+ya2nyák
+ya2nyám
+ya2nyán
+ya2nyát
y1anyj
-y1a2nyó
+y1a2nyó
ya2pa.
ya2pas
-y1a2páb
-y1a2pák
-y1a2pám
-y1a2pán
-y1a2pár
-y1a2pás
-y1a2pát
-y1a2páv
+y1a2páb
+y1a2pák
+y1a2pám
+y1a2pán
+y1a2pár
+y1a2pás
+y1a2pát
+y1a2páv
y1a2pi
-yapo2tá
-y1a2pó
+yapo2tá
+y1a2pó
y1app
ya1p2r
y1a2pu
-y1a2rány
+y1a2rány
y1arcn
y1arco
y1arcr
@@ -12585,66 +12585,66 @@ y1arcr
ya2r1el
y1argu
ya2s1ol
-y1atád
+y1atád
yat2te
y1a2ty
-ya2utó
+ya2utó
y1a2zon
-y1ábr
-yá2du
-y1á2g
-y1álar
-yálas3
-y1áld
-yáma2
-yá2man
-yá2map
-yá2m1as
-yá2mí
-yá2m1os
-yá2mu
-y1á2po
-yá2rad
-y1á2ram
-y1árbo
-yá2r1e
-yá2r1i2p
-yá2rö
-y1árp
-y1árud
-y1á2ruh
-yá2rul
-y1á2rus
-yár1ut
-yá2sar
-yási2
-yá2sir
-y1á2só
-yá2sze
-yás3zen
-yá2szé
-yá2szor
-yá2szü
-y1á2t1a
-y1á2t1e2
-y1áth
-y1átk
-y1átn
-yátne2
-y1áts
-y1á2tü
+y1ábr
+yá2du
+y1á2g
+y1álar
+yálas3
+y1áld
+yáma2
+yá2man
+yá2map
+yá2m1as
+yá2mí
+yá2m1os
+yá2mu
+y1á2po
+yá2rad
+y1á2ram
+y1árbo
+yá2r1e
+yá2r1i2p
+yá2rö
+y1árp
+y1árud
+y1á2ruh
+yá2rul
+y1á2rus
+yár1ut
+yá2sar
+yási2
+yá2sir
+y1á2só
+yá2sze
+yás3zen
+yá2szé
+yá2szor
+yá2szü
+y1á2t1a
+y1á2t1e2
+y1áth
+y1átk
+y1átn
+yátne2
+y1áts
+y1á2tü
y1b2
ybee2
ybor2d
y1d2r
ye2d1a
-ye2dá
-ye2d1ó2
+ye2dá
+ye2d1ó2
ye2d1u
ye2g1a2
-ye2gá
+ye2gá
ye2g1el
-yegész1
+yegész1
yeg1g
y1egy.
ye2gyen
@@ -12656,9 +12656,9 @@ y1e2lemz
yeletes1
y1elha
ye2l1o
-y1e2l®g
+y1e2lőg
y1elr
-y1eltá
+y1eltá
ye2man
ye2mas
ye2mat
@@ -12667,80 +12667,80 @@ ye2mel
ye2m1er
ye2m1es
ye2na
-ye2n1á2
+ye2n1á2
ye2ner
yenes1s
-ye2n1é2l
+ye2n1é2l
ye2ni
ye2n1o
y1e2po
yereg1g
y1e2rej
-y1e2r®r
-ye2r®v
+y1e2rőr
+ye2rőv
yers1s
yesa2
ye2s1al
-ye2s1á
+ye2s1á
yes1egy
yesi2
-ye2s1í2r
-ye2sú
+ye2s1í2r
+ye2sú
y1eszm
-ye2s3zö
+ye2s3zö
yes3zs
-yesz2t1ék
-ye2sz¶
-ye2t1ér
+yesz2t1ék
+ye2szű
+ye2t1ér
y1e2ve
-y1e2vé
-y1e2v®
+y1e2vé
+y1e2vő
y1e2zer
yezernyolc1
-y1é2ber
-yé2g
-y1égb
-y1ége
-y1éhes
-yé2let
-y1élm
-yé2pí
-y1é2pü
-yé2rak
-yér1ára
-y1érde
-yé2r1el
-yé2ri
-yé2rol
-y1érték
-y1érze
-y1érzé
-yé2sza
-yé2szá
-y1étk
-y1é2t¶
-y1év.
-y1évb
-y1é2vek
-yé2ven
-y1é2ves
-y1é2vet
-y1é2vi
-y1évn
-y1évr
-y1évv
+y1é2ber
+yé2g
+y1égb
+y1ége
+y1éhes
+yé2let
+y1élm
+yé2pí
+y1é2pü
+yé2rak
+yér1ára
+y1érde
+yé2r1el
+yé2ri
+yé2rol
+y1érték
+y1érze
+y1érzé
+yé2sza
+yé2szá
+y1étk
+y1é2tű
+y1év.
+y1évb
+y1é2vek
+yé2ven
+y1é2ves
+y1é2vet
+y1é2vi
+y1évn
+y1évr
+y1évv
y1f2l
y1f2r
yha2d
-y2h1adó
+y2h1adó
y1icc
y1i2de
y1i2do
-y1i2d®
+y1i2dő
y1ifj
y1i2gaz
yi1k2ri
-y1i2má
+y1i2má
y1imp
yi2nas
y1ind
@@ -12749,8 +12749,8 @@ y1inge
y1i2par
yi2ram
y1i2rat.
-y1i2rán
-y1i2rás
+y1i2rán
+y1i2rás
y1i2rod
y1irt
y1ish
@@ -12758,86 +12758,86 @@ y1isk
y1ism
y1isn
yi2tal
-y1i2vó
-yí2le
-yí2róé
-yí2rói
-yí2rón
-yí2rór
-yí2rót
-y1í2v
+y1i2vó
+yí2le
+yí2róé
+yí2rói
+yí2rón
+yí2rór
+yí2rót
+y1í2v
yki2s1a
y1k2l
-yközé2
-ykö2z1él
+yközé2
+ykö2z1él
yk1uj
yme2g
-ymeg1á
+ymeg1á
yo2gi
yoki2
y1o2k1ir
y1o2kos
y1o2koz
-y1oktá
+y1oktá
yo2laj
-y1oldá
+y1oldá
yo2m1e
yo2m1ol
yo2n1e
-yoné2
-yo2néh
+yoné2
+yo2néh
yo2nis
yo2niz
-yo2n1í
+yo2n1í
yon3n
yon1s
-yo2nü
+yo2nü
y1o2pe
y1orm
y1orom
-y1orrú
+y1orrú
yo2se
yos3s
-yo2sú
+yo2sú
y1oszt
-yó2gya
-yó2gy1e2
-yó2gyé
-yó2gyi
-y1ó2lo
-yó2rai
-yó2ráj
-yó2rák
-yó2rán
-yó2rás
-yó2rát
-yó2riá
-yós3s
-yó2s1ü
-y1öb
-yö2kés
-y1önt
-yö2r1i
-y1ö2töd
-y1ötv
-yö2zön
-y®e2
-y1®rl
-y1®rr
-y1®rs
-y1®rz
+yó2gya
+yó2gy1e2
+yó2gyé
+yó2gyi
+y1ó2lo
+yó2rai
+yó2ráj
+yó2rák
+yó2rán
+yó2rás
+yó2rát
+yó2riá
+yós3s
+yó2s1ü
+y1öb
+yö2kés
+y1önt
+yö2r1i
+y1ö2töd
+y1ötv
+yö2zön
+yőe2
+y1Å‘rl
+y1Å‘rr
+y1Å‘rs
+y1Å‘rz
ypen3
yp2re
-yp2ré
+yp2ré
yp2ro
-yp2ró
+yp2ró
y1p2s
-yren2d1®
-ysé2gel
+yren2d1Å‘
+ysé2gel
y1s2k
y1s2p
yst2
-y1stí
+y1stí
y1str
y1sz2l
y1sz2r
@@ -12845,7 +12845,7 @@ y1sz2t
y2t1ac
y1t2h
y1t2r
-yu2g1á
+yu2g1á
yu2ge
y1ugr
yu2gy
@@ -12854,151 +12854,151 @@ yu2l1e
yu2n
y1uno
y1u2ra
-y1u2rá
-yu2sé
+y1u2rá
+yu2sé
y1u2szo
y1utc
-y1újs
-yú2kó
-yúl1l
-yú1p2
-y1ú2ri
-yú2szá
-y1útj
-yú2ton
-y1útró
-y1útt
-y1üd
-y1ü2gy
-y1üld
-yü2t
-y1üte
-y1üté
-yü2ze
-yü2zé
-y1üzl
-y1¶2z®
+y1újs
+yú2kó
+yúl1l
+yú1p2
+y1ú2ri
+yú2szá
+y1útj
+yú2ton
+y1útró
+y1útt
+y1üd
+y1ü2gy
+y1üld
+yü2t
+y1üte
+y1üté
+yü2ze
+yü2zé
+y1üzl
+y1ű2ző
yvai2
yva2j
-yv1ajá
+yv1ajá
yv1ank
yv1a2ra
-yv1állo
-yv1állv
-yv1á2rak
-y2v1áru
+yv1állo
+yv1állv
+yv1á2rak
+y2v1áru
yve2g
yvegy1
-yv1érté
+yv1érté
y2v1in
-y2v1í2r
+y2v1í2r
y2vu
-y2v1ú
-yv1üg
+y2v1ú
+yv1üg
yze2t1a2
yze2tele
yze2t1o
1za
-2z1a2cé
+2z1a2cé
z1a2dag
-za2d1ár
+za2d1ár
zade2
za2del
-za2dí
+za2dí
z1a2dog
-za2dóh
-za2dói
-za2dót
+za2dóh
+za2dói
+za2dót
zae2
za2g1e
zai2g
za2jan
-za2j1árt
+za2j1árt
z1a2kara
-z1a2karó
+z1a2karó
za2k1av
za2kem
za2k1i2r
-za2k1ír
+za2k1ír
za2k1osz
-zalé2ké
+zalé2ké
2zanya
zao2
-z1a2pó.
-z1a2pók
-z1a2ráb
-za2rány
+z1a2pó.
+z1a2pók
+z1a2ráb
+za2rány
2zarc
za2sem
za1s2l
zat1akt
za2t1a2n
zata2r
-zat1ará
+zat1ará
za2tem
za2t1in
-za2t1ív
+za2t1ív
2zaty
z1a2tya
-za2tyá
+za2tyá
zau2t
z1az.
z1azh
za2zo
-1zá
-z1ábr
-záé2
-zá2g1al
-zá2gat
-zá2g1ál
-zá2ge
-zág1g
-zá2g1ú
-2z1á2gy
-zá2kin
-zále2
-zá2l1eg
-zá2l1em
-zá2lér
-2záll
-zá2los
-zál1t2r
-zá2m1a2d
-zá2map
-zá2mar
-zá2mis
-zá2nú
-z1á2rada
-z1á2ram
-zá2r1is
-zá2r1osz
-zá2r1ó2ra
-zá2rö
-zár1s2
-zá2sin
-záskész1
-2z1á2só
-záte2r
-z1átv
-zázé2
-zá2zév
-zá2z1ol
-záz3sz
+1zá
+z1ábr
+záé2
+zá2g1al
+zá2gat
+zá2g1ál
+zá2ge
+zág1g
+zá2g1ú
+2z1á2gy
+zá2kin
+zále2
+zá2l1eg
+zá2l1em
+zá2lér
+2záll
+zá2los
+zál1t2r
+zá2m1a2d
+zá2map
+zá2mar
+zá2mis
+zá2nú
+z1á2rada
+z1á2ram
+zá2r1is
+zá2r1osz
+zá2r1ó2ra
+zá2rö
+zár1s2
+zá2sin
+záskész1
+2z1á2só
+záte2r
+z1átv
+zázé2
+zá2zév
+zá2z1ol
+záz3sz
z1b2
zbee2
zdas2
z2d1ass
-zd2ró
+zd2ró
zd1ur
1ze
2zea2
-zeá2z
+zeá2z
2z1eb.
ze2bei
ze2bek
z1e2dz
zee2
-zegész1
+zegész1
ze2gol
2zegy
ze2gyes
@@ -13007,31 +13007,31 @@ z1egys
zei2g
zei2s
ze2k1e2g
-ze2kép
-ze2lál
+ze2kép
+ze2lál
z1elej
ze2l1eml
z1e2lemz
-z1elhá
+z1elhá
2zellen
-z1elnö
+z1elnö
ze2l1os
-ze2l®g
+ze2lőg
z1elvo
ze2mad
-ze2már
-zeme2iké
+ze2már
+zeme2iké
ze2m1ell
-2zemés
+2zemés
zem1id
ze2m1iz
zenci2a
zene2tel
zen2tan
zen2t1est
-zen2tí
+zen2tí
zeo2m
-zeö2
+zeö2
ze2per
ze1ph
ze1p2r
@@ -13040,50 +13040,50 @@ ze2raj
ze2ran
ze2r1ar
ze2r1as
-zer1ára
-ze2red®
+zer1ára
+ze2redő
zere2g
zer1egg
ze2r1egy
zer1ejt
-2zerejü
-ze2r1él
+2zerejü
+ze2r1él
ze2r1ill
ze2r1ip
ze2ris
2zerj
ze2ror
-2z1e2r®
+2z1e2rő
zer1s
ze2r1u2
ze2set
ze2sit
-ze2s®
-2z1esté
+ze2ső
+2z1esté
zes1ut
-ze2süv
-zesz1ár.
-ze2széle
+ze2süv
+zesz1ár.
+ze2széle
ze2szip
2zeszk
zes3zs
ze2t1any
-ze2tál
-ze2tát
+ze2tál
+ze2tát
ze2t1ell
ze2telm
-ze2térte
-ze2tí
+ze2térte
+ze2tí
zetme2
zetmeg1
ze2tok
-ze2t1ó2r
+ze2t1ó2r
ze2ty
z1e2ur
2zev
ze2vez
z1e2vol
-ze2v®
+ze2vő
ze2zer
2z1ezre.
2zezred
@@ -13095,125 +13095,125 @@ ze2zer
2zezrel
2zezres
2zezret
-1zé
-zé2dal
-zé2d1elem
-zé2d1és
-zé2dz
-2zég
-z1é2ge
-zé2hes
-2z1éhs
-z1éjs
-zé2kin
-zé2lak
-zé2l1á2
-2zé2lel
-zél1elt
-zé2lene
-zé2l1e2r
-2zélet.
-2z1é2letb
-2z1é2lete
-2z1é2leté
-2z1é2leti
-2z1é2letr
-zé2lir
-zé2lo
-zé2lu
-zéndio2
-zéne2
-zé2neg
-zé2n1el
-zé2n1is
-zé2nu
-zé2p1a2
-zé2pá
-zép1emb
-zé2p1ér
-zé2pir
-zé2pis
-2zépí
-zé2p1o
-zé2pu
-2zépül
-zé2r1á2
-zé2reg
-zér1emb
-zé2rés
-zé2rig
-zé2r1o
-zé2r®t
-2z1érté
-2z1érth
-2z1érz
-zé2sa
-zé2sel
-zé2sí
-zés3s
-zé2tap
-zé2t1á2
-zé2te2l
-zét1ele
-zét1ese
-zét1esn
-zét1est
-zé2ti
-2zétk
-zé2t1o
-zé2tö
-zé2tu
-zé2tú
-zé2t1ü
-zé2t¶
-z1év.
-zé2vek
-2z1é2ven
-2z1é2ves
-2z1é2vi
-2z1évn
+1zé
+zé2dal
+zé2d1elem
+zé2d1és
+zé2dz
+2zég
+z1é2ge
+zé2hes
+2z1éhs
+z1éjs
+zé2kin
+zé2lak
+zé2l1á2
+2zé2lel
+zél1elt
+zé2lene
+zé2l1e2r
+2zélet.
+2z1é2letb
+2z1é2lete
+2z1é2leté
+2z1é2leti
+2z1é2letr
+zé2lir
+zé2lo
+zé2lu
+zéndio2
+zéne2
+zé2neg
+zé2n1el
+zé2n1is
+zé2nu
+zé2p1a2
+zé2pá
+zép1emb
+zé2p1ér
+zé2pir
+zé2pis
+2zépí
+zé2p1o
+zé2pu
+2zépül
+zé2r1á2
+zé2reg
+zér1emb
+zé2rés
+zé2rig
+zé2r1o
+zé2rőt
+2z1érté
+2z1érth
+2z1érz
+zé2sa
+zé2sel
+zé2sí
+zés3s
+zé2tap
+zé2t1á2
+zé2te2l
+zét1ele
+zét1ese
+zét1esn
+zét1est
+zé2ti
+2zétk
+zé2t1o
+zé2tö
+zé2tu
+zé2tú
+zé2t1ü
+zé2tű
+z1év.
+zé2vek
+2z1é2ven
+2z1é2ves
+2z1é2vi
+2z1évn
zf2
zfe2l1em
zfe2li
-z2féri
+z2féri
z1fr
z1g2
-zgás3s
-zgá2sz
-zgés3s
-zgó1s2
+zgás3s
+zgá2sz
+zgés3s
+zgó1s2
zhad1
zharminc1
1zi
zi2ac
2zicc
zi1ch
-z1i2dé
-z1i2d®
+z1i2dé
+z1i2dő
zie2l
zie2m
zigaz1
2zigazg
-zi2gáz
-2z1i2gén
+zi2gáz
+2z1i2gén
zi1g2r
zikus1s
z1imma
-zi2n1á2r
+zi2n1á2r
z1indu
zi2nol
-zi2nór
+zi2nór
zin2t1el
zin2ter
zin2to
zi2ol
-zi2óc
-zi2óp
+zi2óc
+zi2óp
z1i2par
zi1p2l
zi1p2r
z1i2rat
-2z1i2rá
+2z1i2rá
zi2rod
zi2sal
zi2seg
@@ -13225,42 +13225,42 @@ zi2sor
zis3szi
2z1iste
zi2tut
-ziú2
-2z1i2vó
+ziú2
+2z1i2vó
2zizm
zi2zom
2zizz
-1zí
-zí2n1ál
-zí2nár
-zí2n1o
-zí2nu
-z1í2ró
-zítés3s
-zí2val
-zí2viz
-2z1í2z
+1zí
+zí2n1ál
+zí2nár
+zí2n1o
+zí2nu
+z1í2ró
+zítés3s
+zí2val
+zí2viz
+2z1í2z
z1kh
-zkiá2
+zkiá2
zkie2
z2k1ing
zk2le
z1k2lin
z1k2lu
-zkon2tár
+zkon2tár
z2kopi
-z2kópiá
-z2kópr
+z2kópiá
+z2kópr
z1k2ra
z1k2ru
z1k2val
zle2ta
-zle2tá
+zle2tá
zle2t1emb
zle2ter
zle2t1o
z2log
-zme2g1á
+zme2g1á
z2nob
1zo
zoki2
@@ -13273,10 +13273,10 @@ zo2mag
2zomv
2zomz
zo2naj
-zo2n1áll
+zo2n1áll
zo2ner
-zoné2
-zo2név
+zoné2
+zo2név
zon2tel
zon2tol
zo2nyan
@@ -13288,196 +13288,196 @@ zo2r1as
2zorg
z1orke
z1orr.
-z1orrú
+z1orrú
z1orvo
2z1o2x
-1zó
-zóá2
-zó1dre
-zó1p2
-z1ó2rai
-z1ó2ras
-zó2ta.
-zó2t1ért
-zó1t2h
-zó1t2r
-zózat1át
-1zö
-zög1ért
-zö2g1öl
-3zölde
-zöl2din
-z1ölel
-zö2les
-2zöne
-2zönö
-2z1ötv
-2zöv
-2z1ö2z
-1z®
-z®1dr
-z®e2r
-z®ren2
-z®rend1
-z®2ro
-2z®rs
-2z®rz
-z®u2
+1zó
+zóá2
+zó1dre
+zó1p2
+z1ó2rai
+z1ó2ras
+zó2ta.
+zó2t1ért
+zó1t2h
+zó1t2r
+zózat1át
+1zö
+zög1ért
+zö2g1öl
+3zölde
+zöl2din
+z1ölel
+zö2les
+2zöne
+2zönö
+2z1ötv
+2zöv
+2z1ö2z
+1ző
+ző1dr
+zőe2r
+zőren2
+zőrend1
+ző2ro
+2zőrs
+2zőrz
+zőu2
zpen3
z1p2l
z1p2ro
-z1p2ró
+z1p2ró
zre2d3z
-zren2d1®
+zren2d1Å‘
z2s
1zsa
2zsaj
zs1a2la
2zs1amu
z3sapk
-1zsá
-2zság
-z3ság.
-z3sága
-z3ságá
-z3ságt
-zsá2rá
+1zsá
+2zság
+z3ság.
+z3sága
+z3ságá
+z3ságt
+zsá2rá
1zse
z3sej
-1zsé
-2z3ség
-2zs1ép
-zs1érv
+1zsé
+2z3ség
+2zs1ép
+zs1érv
1zsi
2zsir
zs1iro
2zs1ita
-1zsí
-z3sík
-2z3síp
+1zsí
+z3sík
+2z3síp
1zso
2zsor
zs1orv
-1zsó
-1zsö
-1zs®
+1zsó
+1zsö
+1zső
zsp2
zs3s
zst2
-z3s2tí
+z3s2tí
1zsu
-1zsú
-z3súl
-1zsü
-zs1üg
-zs1ü2té
-1zs¶
+1zsú
+z3súl
+1zsü
+zs1üg
+zs1ü2té
+1zsű
zsz2
z3sza
-z3szá
+z3szá
z3szeg
z3szek
z3szem
zs3zen
z3szere
-z3szé
-z3szí
+z3szé
+z3szí
z3szo
-z3szó
-z3sz®
+z3szó
+z3sző
zszt2
z3szu
-z3szü
-z3sz¶
-zt1a2dó
-zt1apá
+z3szü
+z3szű
+zt1a2dó
+zt1apá
z2t1arc
zt1assz
-z2táld
-zt1á2ram
-z2tátj
-z2tátu
-ztá2v1i2
+z2táld
+zt1á2ram
+z2tátj
+z2tátu
+ztá2v1i2
z2t1elo
z2t1emb
z2tep
z2tered
z2tesem
-z2t1é2g
-z2t1é2le
-z2t1érté
+z2t1é2g
+z2t1é2le
+z2t1érté
zt2hen
ztia2
z2t1id
zti2g
-z2t1igé
+z2t1igé
z2t1i2p
-z2t1irá
-z2t1iré
-z2t1í2r
+z2t1irá
+z2t1iré
+z2t1í2r
zto1g2
zto2n1
zto2ris
z2torit
zto1szk
-ztó1dr
-zt2ráj
-z1t2ré
-z2túj
-z2t1út
-ztül1l
-z2t1üt
+ztó1dr
+zt2ráj
+z1t2ré
+z2túj
+z2t1út
+ztül1l
+z2t1üt
1zu
zu2b1a
3zubb
zu2b1i
zu1c2
-zu2g1ár
-zu2gí
+zu2g1ár
+zu2gí
z1ugr
zu2gu
2z1uj
zule2
zu2l1esi
z1urn
-zu2só
+zu2só
2zut
z1u2ta
-z1u2tá
-z1u2tó
+z1u2tá
+z1u2tó
3zuz
-1zú
-2zúj
-z1ú2jo
-z1újs
-2zút
-z1úth
-z1útj
-z1ú2to
-z1úts
-3zúz
-1zü
-2z1üd
-2züg
-zü2ni
-zürkés1
-2züs
-2züt
-z1ü2té
-z1ü2t®
-z1ü2v
-2züz
-zü2zem
-z1üzl
-1z¶
-z¶2csi
-z¶2k1a
-z¶2za
-z¶2zér
-z1¶2z®
-zz1áll
+1zú
+2zúj
+z1ú2jo
+z1újs
+2zút
+z1úth
+z1útj
+z1ú2to
+z1úts
+3zúz
+1zü
+2z1üd
+2züg
+zü2ni
+zürkés1
+2züs
+2züt
+z1ü2té
+z1ü2tő
+z1ü2v
+2züz
+zü2zem
+z1üzl
+1zű
+zű2csi
+zű2k1a
+zű2za
+zű2zér
+z1ű2ző
+zz1áll
z2zs2
-z3zsí
+z3zsí
zz3st
}
diff --git a/Master/texmf-dist/tex/context/patterns/lang-is.pat b/Master/texmf-dist/tex/context/patterns/lang-is.pat
index 8ba475d2604..d0088ed4c8f 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-is.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-is.pat
@@ -24,4195 +24,7 @@
% begin pattern data
-\patterns {
-.a[eth]3
-.a[eth]a4
-.a[eth]k2
-.a[eth]l4a
-.af3n
-.af3re
-.afr3[iacute]
-.af1s4
-.agn5[uacute]
-.al3e
-.al4l
-.am4s
-.an3k
-.ann4e
-.ar2
-.ar3a4b5
-.arth5
-.asp3
-.aum5a
-.[aacute]m4
-.[aacute]n4a
-.ba4
-.da4
-.dam5a
-.dav3
-.dr4
-.ds4
-.du4
-.dust5
-.ed5ik
-.eftir5
-.eigin5g
-.eink4
-.ekt4
-.er4m
-.eyf2
-.fa4
-.fi4
-.fj[aacute]r3
-.fl4
-.fla4
-.fr4
-.fr[aacute]1
-.ga2
-.gar4
-.gas5l
-.gd4
-.gem5
-.gja2
-.gl2
-.gr4
-.gu4
-.her5sk
-.il4
-.ingj5
-.is4m
-.[iacute]s1l
-.ja2
-.jar4
-.ka4
-.kal5e
-.kam5e
-.kap[iacute]3
-.kart5
-.kast3
-.kn4
-.kr4
-.kur4
-.la4
-.lag5e
-.leik5sv
-.l[iacute]b5
-.lu4
-.ma2
-.maj5
-.mak5r
-.mi4
-.mj4
-.mu4
-.mynst4
-.na2
-.n[iacute]5f
-.n[yacute]5f
-.ol4[iacute]u.
-.[oacute]a4
-.[oacute][eth]5al
-.[oacute]f4
-.[oacute]g2
-.[oacute]k4
-.[oacute]m4i
-.[oacute]s2
-.pa4
-.pl4
-.ra2
-.ram4
-.r[iacute]4
-.r[oacute][eth]4
-.r[uacute]m3
-.saman5
-.sk4
-.ski4
-.skj4
-.skr4
-.sl2
-.sm4
-.sm[aacute]3l
-.sn4
-.snar5a
-.sp4
-.spr4
-.st4
-.sta2
-.ta4
-.ti2
-.til3
-.t[iacute]5f
-.tr4
-.tu2
-.tv[iacute]1
-.ung3l
-.unn5usta
-.[uacute]r1
-.[uacute]t1
-.[uacute]t5s
-.vegg5s
-.vist3
-.yfir3
-.[aeligature]vi3s
-.[odiaeresis]fl3
-.[odiaeresis]gr5
-.[odiaeresis]r3s
-.[odiaeresis]t3u
-2a3a4
-a4ab
-a4ad
-2a1[aacute]2
-2a1b
-ab4a
-3ab[iacute]s
-a5by
-ab[aeligature]k4l
-4ac
-2a1d4
-a5d[oacute]
-a4du
-1a[eth]
-4a[eth]a[eth]
-a[eth]3al
-a[eth]3ar
-2a[eth]fa
-4a[eth]f[odiaeresis]
-a[eth]3g
-a[eth]3i
-2a[eth]l
-a[eth]4li
-4a[eth]2m
-2a[eth]sh
-3a[eth]u.
-2a[eth]v
-2a1e
-a5ei
-a4es
-2af
-af3ald
-af3arn
-a3f[aacute]
-af4fr
-af3g
-a1fj
-a3fl[oacute]
-a1flu
-af5ork
-a1fr
-af3r[eacute]
-afr4u
-a5fr[aeligature]
-4afsd
-af1sk
-4afsso
-af2u
-a1ful
-a1fun
-3afur[eth]
-2ag
-a3gau
-ag5[aacute]l
-ag5is
-a5gj
-agn4ara
-ag2ne
-ag5ot
-a1gr
-ag4ra
-ags4i[eth]
-ag4sp
-ag4stj
-ag4ul
-ag3[aeligature][eth]
-4a1h
-4ai
-a3i[eth]
-a4in
-a[iacute]4h
-2aj
-a3j[odiaeresis]
-2ak
-akaup4s
-a5k[aacute]
-a1ke
-a5kinnin
-a5kistu
-a1kj
-ak5rei
-aks4l
-4akss
-ak3u
-a3kv
-a5ky
-a5k[yacute]
-a3k[odiaeresis]
-2al
-a1lag
-4aland
-a5landi[eth]
-a5landinu
-alas4
-al[aacute]4
-a4lem
-al3er
-al1f
-al1g
-5alge
-3alh
-alis4
-al4[iacute]n
-al3kj
-alk5s
-al3k2u
-al4l[iacute]
-all2s
-allst4
-al4l[yacute]
-4alma[eth]
-al5mann
-al5m2i
-a3log
-a5lok
-al5op
-a5l[oacute][eth]
-al4s[aeligature]t
-al5up
-al5[uacute]
-al3v4
-a3ly
-a1l[aeligature]
-a1l[odiaeresis]
-2am
-am3ang
-a3mann
-am3ari
-am3ars
-am3a4s
-am3dr
-a3m[iacute]
-am3k
-am2m
-amm4is
-a1m[oacute]
-am3se
-ams2i
-am1t
-1an
-3an.
-3ana.
-an3ada
-4anag
-2anal
-4anau
-2an[aacute]
-4and.
-and1e
-4an4d[iacute]
-andr4
-4and[odiaeresis]
-4ane
-an5ei
-2ang
-an4ga
-ang1d
-an4gj
-ang5spi
-an2g3[odiaeresis]
-4anib
-4ani[eth]
-an5[iacute]n
-2ank
-ank5l
-ank3v
-3anm
-ann5d
-4annf
-4annh
-ann1k
-4annl
-4anns
-annsk4
-4an4o
-anst4
-an3sti
-an3t[iacute]
-3anu
-4an[uacute]
-4an[yacute]
-4an[aeligature]
-4an[odiaeresis]
-2a3o
-2a3[oacute]
-2ap
-ap3al
-a3per
-a3pil
-a3po
-a5pre
-ap3te
-a5p4un
-a5p[odiaeresis]r
-1ar
-3ar.
-ar3afu
-ara5kr
-ar3ang
-4arani
-ar4arp
-ar2as
-ar5ast.
-ar3au
-2ar[aacute]4
-4ar[aacute][eth]
-5ar3[aacute]k
-3ar3[aacute]r
-3ar1[aacute]s
-ar1[aacute]t
-3ard2
-4ard[iacute]
-4ar[eth].
-ar[eth]ar5[aacute]
-4ar[eth]i
-4ar[eth]s
-3ar[eth]u.
-2are
-3ar1ef
-4aref.
-5areig
-5arein
-a3rek
-ar3el
-ar3en
-ar5er
-a3ret
-4a1r[eacute]
-2arf
-3arfe
-3arf[eacute]
-arfs3k
-ar1fu
-ar3gj
-ar4gr[aeligature]
-args4
-arg3sl
-4ar5i[eth]
-4arif
-ar3in
-ar4ind
-ar5ist.
-4a5rit
-4a1r[iacute]
-ar3j4
-4ark.
-ark4is
-ar5kj
-ar3kr4
-4arms
-ar3m[uacute]
-4arna.
-4aro[eth]
-4arol
-4arot
-2ar[oacute]
-2arp
-4arra
-arr2i
-arr4u
-ar4s[aacute]
-3arse
-ar1sk
-ar4spi
-arst4
-5arst[iacute]
-ar3su
-ar5til
-artr2
-ar5tra[eth]
-ar3u
-ar4u[eth]
-4ar4ug
-5arum
-2ar1[uacute]
-a5r[uacute]s
-ar3v4
-ar3yf
-4ar[yacute]
-2ar[aeligature]
-a3r[aeligature][eth]
-ar5[aeligature]v
-4ar[odiaeresis]
-as2
-4a1sa
-as3an
-2a3s[aacute]
-4ase
-4as[eacute]
-2asi
-a5sinna
-2asj
-4a1sk
-2asl
-a3slag
-2a1sm
-4asn
-4aso
-4as[oacute]
-2asp
-asp[iacute]t4
-4ass
-ass4v
-1ast
-4asta[eth]
-ast4and
-4astau
-4aste
-4ast[eacute]
-4astig
-4astin
-ast4ing
-4astir[eth]
-4a1st[iacute]
-4astj
-ast3l
-4asto
-2ast[oacute]
-4astr[aacute]
-ast5r[aacute][eth]
-4astr[iacute]
-4a3str[aeligature]
-4astr[odiaeresis]
-4astul
-4a3st4un
-4ast[uacute]
-4a3sty
-4ast[aeligature]
-4ast[odiaeresis]
-2a1su
-2a1sv
-4as4y
-2as[yacute]
-4as[aeligature]
-2as[odiaeresis]
-2at
-at3a[eth]
-a3tak
-a3tal
-at4anv
-ata4r
-a1te
-at3ey
-3ath
-a1til
-a3tj
-3atk
-atns3
-a4t[oacute]
-atr4a
-at1re
-3at1ri
-at2sp
-a5t2un
-a1t[uacute]
-at4ve
-3atvi
-a1t[odiaeresis]
-2a4u2
-4au[eth].
-au[eth]5li
-5au[eth]n
-aug4as
-au4m
-aum5ba
-aum5un
-aun5dr
-aup5e
-aup3l
-a5upp
-au4s
-ausa5m
-au4t
-2a1[uacute]
-2a1v
-av4ar.
-a3vir
-2ay
-a5yf
-4az
-2a1[thorn]
-a2[thorn][oacute]
-2a3[aeligature]
-4a5[odiaeresis]
-[aacute]1a
-[aacute]ak4
-[aacute]a5lo
-[aacute]1b
-[aacute]4bu
-[aacute]1d4
-4[aacute][eth]
-[aacute][eth]2s
-[aacute][eth]3sn
-[aacute][eth]3sta
-[aacute][eth]2u
-[aacute][eth]3us
-[aacute]1e
-[aacute]f2
-[aacute]5f[aacute]
-[aacute]5f[iacute]
-[aacute]3fl
-[aacute]fl[aeligature][eth]4
-[aacute]f5un
-[aacute]g2i
-[aacute]gl4
-[aacute]gr2
-[aacute]g1s
-[aacute]g3v
-[aacute]1h
-[aacute]1i
-[aacute]k2a
-[aacute]kam4
-[aacute]kap4
-[aacute]k[oacute]4
-[aacute]la3m
-[aacute]l3arf
-[aacute]l2as
-[aacute]5lau
-[aacute]3let
-[aacute]lf3d4
-[aacute]lf5sk
-[aacute]l4m
-[aacute]lm5an
-[aacute]lm5u
-[aacute]lp3
-[aacute]l4se
-[aacute]l5sva
-[aacute]l5ug
-[aacute]5l[uacute]
-[aacute]l3[aeligature][eth]
-2[aacute]m
-[aacute]m[aacute]l5a
-[aacute]msl4
-[aacute]2n
-[aacute]n4aro
-[aacute]n2as
-[aacute]n4o
-[aacute]3n[yacute]
-5[aacute]n[aeligature]
-[aacute]3o
-4[aacute]p
-[aacute]ra5g
-[aacute]r3an
-[aacute]rar4
-[aacute]5r[eacute]
-[aacute]r3f4
-[aacute]r5g
-[aacute]r5k4
-[aacute]r1m
-[aacute]rns4
-[aacute]rn5sl
-[aacute]r2st
-[aacute]r5t
-[aacute]r1u
-[aacute]r3v
-[aacute]5r[aeligature]
-[aacute]s5en
-[aacute]1sk
-[aacute]2ska
-[aacute]4ske
-[aacute]3s4l
-[aacute]s2m
-[aacute]st2
-[aacute]st5i
-[aacute]st5r[aacute][eth]
-[aacute]st5r[iacute]k
-[aacute]st5v
-4[aacute]su4
-[aacute]s5va
-[aacute]t3a[eth]
-[aacute]1te
-[aacute]tr4as
-[aacute]ttar3
-5[aacute]ttin.
-[aacute]tt3un
-[aacute]1t[aeligature]
-[aacute]1u
-[aacute]uk4
-[aacute]3ve
-[aacute]3v[iacute]
-[aacute]1v[aeligature]
-[aacute]1[thorn]
-[aacute]5[aeligature][eth]
-b2a
-4ba.
-ba[eth]k4
-ba4h
-bak5sl
-ba2n
-4bana
-4ban[iacute]
-bank5an
-4bans
-b5ant
-bar2b
-bar[eth]4as
-bar2n
-b[aacute]4s
-2b4b
-bb3a[eth]
-bb3an
-bb5arn
-bb3i
-bb3u[eth]
-1be
-bess4
-b2i2
-bi[eth]5i
-bi[eth]5lis
-bi[eth]5r4
-bif1
-bilj5
-bill5
-4binn
-bisk3
-b4it
-bit2a
-4b[iacute]a
-2b3[iacute]s
-2b3[iacute]u
-3bj
-bjar2
-b4l2
-bl4[iacute]unn
-4bn
-5bo
-3b[oacute]4
-b[oacute]k3s
-b4r2
-br5a[eth]
-bra4s
-3bro
-br4u
-3br[uacute]
-4bum4
-bur2
-3bur[eth]
-burst5a[eth]
-bu4s
-1b[uacute]
-b[uacute]f4
-b[uacute]3sta
-1by
-1b[yacute]
-b[aeligature]k2i
-b[aeligature]n4a
-1b[aeligature]r
-b5[aeligature]ttism
-1b[odiaeresis]
-4b[odiaeresis]ki
-c4a
-ci4
-ck4
-4da.
-daf4
-dak2
-3dal.
-5dals
-da1m4
-d5ang
-d4an[iacute]
-d4arad
-d4ar4a[eth]
-dar4[aacute]r
-d3arf
-d5arp
-dask4
-da3sl
-4dav
-d1b
-2dd
-4dea
-d5ef
-3deg
-1deil
-d1en
-d5e[oacute]
-5dep
-d1f4
-d1g2
-d4gi
-d1h
-d1i
-di5fu
-d3ill
-dim4
-di3ma
-di3nav
-d2ine
-dir3s
-d[iacute]3d
-d5[iacute][eth]
-d5[iacute]nu
-3d[iacute]s
-d[iacute]v3
-3dj4
-djarf5a
-d1k2
-d1l2
-d2la
-dl3a[eth]
-d3lag
-d3lau
-d4li[eth]
-dl3u
-d1m
-d5olf
-d5[oacute][eth]
-d3[oacute]f
-d[oacute]5l[iacute]
-1d[oacute]2m
-d[oacute]m5an
-d[oacute]5ne
-3d[oacute]r
-d[oacute]2s
-d[oacute]s5e
-4dq
-d5ra[eth]f
-dr4a[eth]s5
-d5ra[eth]st
-drafn4
-dr4ara
-3dreg
-d5reip
-d5rey
-d5ri[eth]a
-d3r[iacute]k
-d5ro[eth]
-dru4
-d4r[aeligature]t
-2ds
-d5sal
-d4sj[odiaeresis]
-dsk2
-ds4ko
-ds5kun
-ds1l
-d5sn[odiaeresis]
-ds1s4
-d1st4
-d4sti
-ds4u[eth]
-d4s[odiaeresis]f
-d1t2
-d1u
-duf4
-5duft
-duk4
-d4umb
-du5r[aeligature]
-d4usta
-d3[uacute]n
-d[uacute]n4a
-d[uacute]t4
-d1v4
-4dw
-1dy
-1d[yacute]
-d3[thorn]
-1d[aeligature]
-4d[aeligature]f
-4d[aeligature]r
-3d[odiaeresis]
-[eth]1a
-[eth]af4
-[eth]a3g
-[eth]ak4
-[eth]4albo
-[eth]3ald
-[eth]al4is
-[eth]4a1m4
-[eth]3a4n
-[eth]anmeg4
-[eth]ar1a
-[eth]3ar3f
-[eth]ar3l
-[eth]ar4lis
-[eth]ar3t4
-[eth]3ar[uacute]
-[eth]at4a
-[eth]3au
-[eth]3[aacute]2
-[eth]1b
-[eth]1d2
-[eth]1e
-[eth]3f4
-[eth]1g
-[eth]2ga
-[eth]2gi
-[eth]g4l
-[eth]4gn
-[eth]gu4
-[eth]3g4ul
-[eth]1h
-[eth]1i
-[eth]i3g
-[eth]ik4
-[eth]3in
-[eth]is5l
-[eth]ist4
-[eth]4ista
-[eth]is4ve
-[eth]j3as
-[eth]3j[oacute]
-[eth]4ju
-[eth]3ke
-[eth]1kr
-[eth]k2un
-[eth]3kunn
-[eth]1kv
-[eth]1l[aacute]
-[eth]l2in
-[eth]l4ist
-[eth]3l[iacute]
-[eth]l4ur
-[eth]1l[aeligature]
-[eth]1m2
-[eth]num4
-[eth]3o
-[eth]3[oacute]
-[eth]1p2
-[eth]r5[aacute]t
-[eth]1re
-[eth]1r[eacute]
-[eth]3rik
-[eth]3r[iacute]k
-[eth]5r[oacute]
-[eth]r1u
-[eth]3r[uacute]
-[eth]1r[aeligature]
-[eth]r[aeligature][eth]is5
-[eth]s5afl
-[eth]s5[aacute]
-[eth]4seg
-[eth]s4inn
-[eth]1sk
-[eth]skr4
-[eth]4sk[uacute]
-[eth]s5kv
-[eth]4sk[odiaeresis]
-[eth]s4lu
-[eth]2so
-[eth]s3or
-[eth]ss4
-[eth]1st2
-[eth]2st[iacute]
-[eth]3st[odiaeresis]
-[eth]s4u
-[eth]4svi
-[eth]2s[aeligature]
-[eth]1t4
-[eth]1u
-[eth]3u[eth]
-[eth]3ug
-[eth]3ull
-[eth]5uls
-[eth]5unn
-[eth]3unu
-[eth]3ur
-[eth]ur5[aacute]
-[eth]ur3f
-[eth]ur5g4
-[eth]ur5st
-[eth]1v
-[eth]v5a[eth]
-[eth]v3ann
-[eth]v3arn
-[eth]1y
-[eth]5[yacute]
-[eth]1[thorn]
-eat4
-ebr5e
-ed4e
-e1dik
-ed3it
-e[eth]3a2
-e[eth]al1
-e[eth]3il
-e[eth]4is
-e2f
-e3fal
-ef3i
-efj5an
-ef4n
-4eft.
-2efts5
-eg4ge
-eg3i
-egr5u
-eg3u4l
-egur4s
-e4i
-ei[eth]5ar
-ei[eth]4st
-eif4as
-ei4ka
-eik3li
-eik3u
-eil3ag
-eil5[odiaeresis]
-ei2m
-eim5u
-eing4
-1eink
-4eino
-eist5a[eth]
-e4k
-ek2is
-ekj5a
-ekn3
-ek3u
-ek5[uacute]
-e2l
-el5[aacute]s
-el4d
-el3eg
-elf3in
-el4gr
-el1i
-4el[iacute]
-el3[iacute]n
-el4ke
-el2l
-ell5an
-ell3e
-elleg4
-el3[oacute]
-el3r
-el1s[iacute]
-5elsk
-el4te
-elu5s
-e2m
-em4ba
-1embe
-em5ens
-em3i4
-emj3
-em4l
-eml2i
-empl5
-em5u
-e2n
-4enc
-en4g
-eng3a
-enik4
-2enn
-enn4t
-en4t
-ep4h
-ep3i
-epl5i
-e4pr
-ep4t
-e4r
-er3al
-er5au
-er5[aacute]
-4er[eth]
-5ere
-er5et
-erf5ar
-er2fr
-erf3u
-erg5l
-er4gr
-er3i
-er2k
-er4la
-erl3i
-er4l[iacute]
-er4mi
-erm5in
-er5[oacute]l
-er5skj
-er1un
-er2v
-er3[odiaeresis]
-er[odiaeresis]f4
-e2s
-es3a
-es4ban
-es4bu
-4esj
-e5ske
-4eso
-esp3a
-es2s
-est3a[eth]
-est5[odiaeresis]
-e3s[aeligature]
-etik4
-et5ils
-etna4
-et5o
-etr5an
-etr3u
-etul4
-et2us
-ext4u
-5eyrar
-[eacute]3b
-[eacute]1d
-[eacute][eth]2s
-[eacute]3fe
-[eacute]1g4
-[eacute]5ky
-[eacute]1l
-[eacute]la4g
-[eacute]l4ara
-[eacute]2li
-[eacute]4lj
-[eacute]l3r
-[eacute]r1
-[eacute]r4[aacute]
-[eacute]r4r
-[eacute]rs4
-[eacute]r4un
-[eacute]r3v
-[eacute]3sm
-[eacute]tt4ug
-[eacute]t4un
-[eacute]tur4
-f3a[eth]
-fa2g
-fa5k
-1fall
-fal4u
-fa4n[aacute]
-fa5p4
-f2ar
-f3ar[eth]
-f4are
-f4arg
-farka5l
-f3arl
-fast3e
-f[aacute]3f
-f5[aacute]ns
-f[aacute]3r[aacute]
-f[aacute]3ta
-f[aacute]3v
-f1b4
-fd2an
-f1dr
-f5d[uacute]
-f[eth]a4l
-1fe
-f3ef
-f3ein
-3fel
-f3end
-ferl5i
-fer3t
-f1ey
-1f[eacute]
-f4fa
-f2fo
-f1fr
-ff4st
-ff[aeligature]r4a
-f1g2
-f2ga
-f2gi
-fg4n
-f1h
-f3i[eth]
-fik4
-f5il.
-f5ili
-f3ill
-f5ils
-f5ilv
-fim3a
-f4ine
-f3inu
-3fir[eth]i
-f3ir[eth]u
-firg2
-f3irn
-1firs
-3f4isk
-fi5so
-f3ist.
-f3istu
-fis5v
-f[iacute]4
-f5[iacute]kv
-f3[iacute]s
-fj4a
-fj5a[eth]u
-fj5ann
-fj4e
-f1k2
-fl3and
-fl4at
-3flata
-f5l[aacute]t
-f4len
-fl5g
-1flo
-5flut
-flv4
-4fl[yacute]
-1fl[odiaeresis]
-f1m
-4fn
-fn1g
-f5n4[iacute]
-fn3k
-fn5ok
-1fo
-4fop
-forf4
-fork4
-1f[oacute]
-fr2
-4fra.
-fr3a[eth]
-fra4m
-fram3l
-fr5and
-4frar
-2fri.
-fr5in
-fr[iacute]5m4
-f3r[oacute]f
-fru4
-fr3u[eth]
-1fr[aeligature]
-2f3r[aeligature]k
-4fr[aeligature]n
-fs3[aacute]
-f4sel
-f4skaf
-fsl4
-fs3li
-fs5na
-f2so
-fs5or
-fsr4
-fss4
-f4sti
-f5s4t[aeligature]
-fs1v
-f4s[aeligature]
-ft3a[eth]
-fta4sk
-ft5[aacute]
-f3te
-ft2s
-fts5l
-ft3u
-ft4ul
-f1u
-4fu.
-f3u[eth]
-3fugl
-fund4as
-2f3ur
-5fur[eth]ul
-fur5e
-furs4
-fur3t
-4f2us
-f5ust.
-f3ustu
-f1v4
-1fy
-f3yrt
-f1[thorn]
-1f[aeligature]
-1f[odiaeresis]
-f[odiaeresis]r4l
-g1a
-4ga.
-4g3a[eth]
-gaf4ar
-gagl4
-3gagn
-gak4
-ga4lag
-gal4is
-5gals
-5galt
-gam3al
-gam4i
-g5and
-1gang
-gap4a
-g4ard.
-g2ar[eth]
-3gar[eth].
-3gar[eth]a
-3gar[eth]i
-3gar[eth]4s
-5gar[eth]ur
-g3ar3f
-gar4kl
-gar3l
-gar3t
-4gas
-g4as.
-g4as[iacute]
-g3ast.
-ga5sta[eth]
-1gata
-gat4r
-g[aacute]2
-3g[aacute]f
-g[aacute]5le
-g1b
-gd4ans
-g3de
-g4du
-gd4v
-g[eth]4aro
-1ge
-3gei
-2g1el
-gen4
-g5end
-3geng
-g3ent
-5ger[eth]
-ger5[iacute]
-germ4
-gerv5a
-get3r
-g1f2
-ggis5
-ggjaf3
-ggj5ar
-gg5r[aacute]
-gg3r[aeligature]
-ggs4v
-gg3ug
-gg2v
-g4g[odiaeresis]
-g1h
-g1i
-4gi.
-4gik
-gi5kv
-3gild
-g5ill
-5gilt
-gim4a
-4g3i4n
-gis4a
-g4isp
-g5ist[aeligature]
-g[iacute]r5a
-g[iacute]s4
-gjaf5ar
-gjaf5o
-gjak4
-gjal4
-gj4asta
-1gj[odiaeresis]
-g1k4
-gkal4
-g1l[aacute]
-g4le[eth]
-g3leg
-gl5[eacute]
-gl3f2
-g3lit
-g5l[iacute]n
-gl3[oacute]t
-glsk4
-3glugg
-glu3s
-gl4y
-g3l[aeligature]r
-g1m4
-gnap4
-gnart4
-g4n[aacute]
-gn3g
-g3n[oacute]
-gn4se
-gn5ug
-g4n[yacute].
-3gol
-g3or
-3g[oacute][eth]
-g[oacute]r5
-g[oacute]4ur
-g1p
-g3rak4
-gr4an
-gra2s
-gras5sv
-g2r[aacute]
-1grei
-g3reis
-g5rey[eth]
-gr2i
-2gri.
-gri[eth]4
-g3r[iacute]k
-3gr[oacute]
-3grund
-3grunn
-g3r[aeligature][eth]i
-g2r[aeligature]n
-4gs
-gs1[aacute]
-g4sei
-gsk4
-gs4len
-gsl2u
-gs4l[odiaeresis]
-gs3m
-gs5or
-gs3s4
-gs4si
-gs1v
-gt3a[eth]
-g3te
-gt4s
-2g1u
-g4u[eth]i
-gu[eth]l4
-5g2u[eth]s
-gu[eth]4s[oacute]
-g3u[eth]u
-5gufu
-gu4lagi
-g5ulin
-g3ull
-g3uls
-gu5mi[eth]
-g3un
-gurf4
-gur3g
-g4usta
-g3[uacute]
-g[uacute]st5a
-g1v
-g2va
-g3val
-5gy[eth]
-g1[thorn]
-1g[aeligature]
-g[aeligature][eth]4as
-g[aeligature]l4
-g[aeligature]r3
-1g[odiaeresis]4
-h2a4
-4ha.
-ha[eth]4
-haf4sp
-hand5r
-hat3r
-h[aacute]3g
-h[aacute]l4
-h[aacute]3re
-h[aacute]4ski
-h[aacute]5sta
-h[aacute]s4u
-h[aacute]t4
-h[aacute]5ti
-h[aacute]tr4
-h[aacute]1v
-he4
-hei2
-hellis5
-hen2r
-herk4
-her3l4
-hersk4
-4hersla
-hey5st
-4hg
-h4i
-hig4
-him5b
-hin4
-hit4as
-hit4n
-2h[iacute]2
-h5[iacute]a
-h[iacute]5b
-hj4
-h2l2
-4hl.
-4hls
-hlu4
-h4n2
-hnja4
-hnj[aacute]3l
-holl3u
-horm5
-h[oacute]2
-h[oacute]m5e
-h[oacute]t3
-hr4
-4hs
-hu4
-hug1r
-hug3u
-hul5i
-hundr4
-h[uacute]2
-h[uacute]m3
-4h[uacute]r
-h[uacute]s5k
-hv4
-hvar4
-hvik3
-5hy
-h[aeligature]f5a
-h[aeligature]tt4us
-h[odiaeresis]st3
-2ia
-i5as
-4i5[aacute]
-4i1b
-ibb3
-ibl3[iacute]
-4ic
-2id4
-i3da
-i1de
-i3dr
-1i[eth].
-4i[eth]f
-2i[eth]3g
-i[eth]5jar[eth]
-4i[eth]r
-4i[eth]s
-i[eth]5sal
-2i[eth]u
-4ie
-i3ef
-4if
-if5arn
-ifat4
-i2fen
-if4g
-if3is
-if4t
-i4fy
-4i2g
-iga3m
-ig[eth]5u
-ig1en
-ig5r[iacute]
-2i1h
-2ii
-i5i[eth]
-4ij
-4ik
-ik5[aacute]
-ik3i
-ik4is
-ikt5o
-i4kv[odiaeresis]
-2il
-ila2g
-il4ara
-i1l[aacute]
-4ile
-ilf4a
-il1fi
-il1g4
-i5li[eth]u
-il5in
-il3ip
-il5[iacute]s
-il[iacute]4um
-il4kv
-il3lag
-ill5an
-il3l[aacute]
-i1lo
-il4sa
-il1sk
-il3sn
-ilst4
-il[aeligature]k4
-i5l[odiaeresis]n
-4im
-im4b
-imb3u
-im3i
-im4i[eth]
-im4la
-im4m
-i5m[oacute]
-im4sv
-1i2n
-4inaf
-in3an
-4inar
-inat5r
-2i3nau
-2ina2v
-inav3[iacute]
-4in[aacute]
-4ind.
-in4ga
-ingj5arni
-4ingr
-ingv4
-2inns
-2innu
-in1o
-4in[oacute]
-in1s4k
-in2sp
-in3sta
-in5ul
-4in[yacute]
-2i3o
-4i[oacute]
-2ip
-i5pil
-3ir.
-4ira
-2i1r[aacute]
-2ir[eth]i
-4ir[eth]n
-4ire
-4ir[eacute]
-irf2i
-4irfs
-4irig
-2irit
-4i1r[iacute]
-2irk
-irk3u
-ir3l
-ir1m4
-4irnd
-4irni.
-4irnin
-4irnis
-4ir[oacute]
-irs4[aacute]
-irst4
-ir3tal
-irt5i
-4irtl
-irt4[odiaeresis]
-ir3ug
-4ir[uacute]
-4ir[odiaeresis]
-i2s
-1is.
-2isa
-4isag
-i5saga
-i3sam
-is2as
-3isd
-2ise
-4ishv
-3isins
-4is[iacute]4
-4isj
-i3sj[oacute]
-2isk
-is4ka
-isk5el
-iski3m
-isk5inn.
-3isko
-isk2u
-isk1v
-5isk[odiaeresis]
-2isl[eacute]
-is3l[aeligature]
-5isma
-is5me
-4isni
-isp3a[eth]
-isp3u
-iss2i
-is5s[uacute]
-ist3al
-2iste
-4ist[eacute]
-4istig
-i5stik
-ist4is
-ist5[iacute]n
-4isto
-4ist[oacute]
-4isty
-4ist[aeligature]
-2ist[odiaeresis]
-is5t[odiaeresis]k
-is1v
-4isvi
-is4vi[eth]
-5isvin
-i3sv[aeligature]
-2is[odiaeresis]
-2it
-it3a[eth]
-it5ann
-i5tei
-4ith
-it4ha
-it5ill
-itis4m
-it2ka
-itn5es
-it3r[iacute]
-it4st[odiaeresis]
-it3un
-it4urn
-it4ve
-4iu
-4i[uacute]
-4i1v
-i2v5[iacute]s
-4ixs
-2i3[thorn]
-4i[aeligature]
-4i[odiaeresis]
-[iacute]1a
-4[iacute]5ak
-[iacute]al3
-[iacute]5ald
-[iacute]3ali
-[iacute]2as
-[iacute]5at
-[iacute]5au
-[iacute]5[aacute]
-[iacute]b4a
-[iacute]5bar
-[iacute]4be
-5[iacute]b[uacute]
-[iacute]5dag
-[iacute][eth]2s3
-[iacute][eth]sk4
-[iacute]3el
-[iacute]3en
-[iacute]et3n
-[iacute]5ett
-[iacute]2f
-[iacute]f3e[eth]
-[iacute]4f3i
-[iacute]f5r[iacute]
-[iacute]fs3k
-[iacute]f4sp
-[iacute]2g
-[iacute]g3e
-[iacute]3gil
-[iacute]1h
-[iacute]1i
-[iacute]k3a4
-4[iacute]k4anar
-4[iacute]k4ani
-[iacute]k5is
-[iacute]kk2i
-5[iacute]km
-[iacute]k2n
-[iacute]kn5e
-[iacute]k4s
-[iacute]k3us
-2[iacute]l
-[iacute]lak4
-[iacute]l2as
-[iacute]l5[aacute]r
-[iacute]l5f4
-[iacute]3l[iacute]
-5[iacute]lm[aacute]
-[iacute]l3sk
-4[iacute]m
-[iacute]m3a[eth]
-[iacute]ma3l4
-[iacute]m3an
-[iacute]m4g
-[iacute]m5o
-[iacute]m5t
-[iacute]m3un
-[iacute]2n
-[iacute]5n[aacute]
-[iacute]n5e
-[iacute]n3ge
-[iacute]n5t
-[iacute]nu3g4
-[iacute]n3[uacute]
-[iacute]3[oacute]p
-[iacute][oacute]p5[iacute]u
-4[iacute]p
-[iacute]r5ak
-[iacute]ra4s
-[iacute]4r5i
-[iacute]r4sv
-[iacute]r3t
-[iacute]1r[aeligature]
-[iacute]r5[odiaeresis]
-[iacute]2se
-[iacute]4s5j
-[iacute]sl2
-3[iacute]slen
-[iacute]sl5i
-[iacute]s2m
-[iacute]2st
-[iacute]s5ter
-[iacute]t5a[eth]
-[iacute]t5als
-[iacute]t3i
-[iacute]tj5
-[iacute]t3re
-[iacute]tr5[oacute]
-4[iacute]ub
-[iacute]5u[eth]
-4[iacute]ul
-[iacute]u1ma
-[iacute]3un
-[iacute]u5p
-[iacute]3ur
-[iacute]4ura
-4[iacute]usa
-[iacute]u3t
-4[iacute]uv
-[iacute]vo4
-[iacute]5[thorn]
-j2a
-j3a[eth]
-j5a[eth]i
-3jaf4n
-ja5kl
-jal2
-jal5i[eth]
-ja5l[oacute]
-j4am
-j3an
-j4aram
-j3ari
-jark4i
-jarn4i[eth]
-j4ar[aeligature]
-jas4
-jask4u
-j3ast
-j[aacute]l5as
-j[aacute]l4f
-j[aacute]lf3a
-3j[aacute]rn
-j[aacute]r4u
-j[aacute]v3
-j[aacute]var5
-j1e
-jend4a
-j4ep
-j4er
-j4et
-j1i
-j[oacute]5b
-j[oacute]5fr
-j[oacute]2s
-j[oacute]5ug
-j[oacute]3ve
-j1u
-juf4
-jug2
-jug5as
-ju4g[oacute]
-j4u1l2
-jur4e
-5j2urt
-jurt4i
-j2us4
-j3ust.
-3j[odiaeresis]fn
-3j[odiaeresis]k
-j[odiaeresis]l3k
-j[odiaeresis]l1m
-ka[eth]4s
-kaf4an
-ka4fr
-kag4as
-ka4j
-kaj5a
-kak4l
-kal2
-3kald
-4kalf
-k4all
-3kam4b
-kam2s5
-k3ana
-k4anaf
-k3ann.
-k4an[oacute]
-k4ant
-5kanta
-4kapa
-kark4
-1k2ar2l
-k4arm
-k3arn
-kar2r
-k4art
-kar4v
-kask4
-3kass
-5kastal
-k5astu.
-1kau
-5kaup
-k[aacute]k5
-k[aacute]m3
-k1b
-k1d4
-2k1end
-3kenn
-3kerf
-5kerl
-ker4m
-k1f4
-kfalls5
-k3g
-kgl4
-k1h
-k3i[eth]
-ki[eth]5l
-kig4
-k5ill
-k5ilsi
-kim2
-k5ing
-k4ip
-k1ir
-k3ir[eth]
-5kirk
-k5irn
-k4irt
-k1is
-k5ise
-kisk4
-k3ist.
-k4it
-ki3te
-3k[iacute]l
-k[iacute]s3
-k[iacute]t3u
-kja4l
-kjar4a
-kjar5f
-kju3g
-1kj[odiaeresis]
-3kj[odiaeresis]r
-kka5l
-kk5e
-kkj1[oacute]
-k2kl
-kk1l[aacute]
-kk4li
-kk3r[iacute]
-kk4se
-kkul4
-kkv5i[eth]
-kl2
-kl3a[eth]
-kl3ann
-kl[aacute]4
-5klef
-kleif5a
-k4lem
-k1lin
-3klj
-3kluk
-3kl[uacute]
-1kl[aeligature]
-k1m2
-k4mi[eth].
-kn3ar
-k2ney
-kni5svi
-3kn[uacute]
-1ko
-2kob
-koff5
-kol5d
-kol4l
-kol5sv
-3kon
-4kons
-3kos
-kot4as
-k[oacute]3d
-k[oacute]3m4
-k[oacute]r5a
-k1[oacute]tt
-kra5l
-kr2as
-k2r[aacute]
-k5r[eacute]
-kr2i
-krif3a
-1kr[odiaeresis]
-3kr[odiaeresis]f
-4ks
-ks4l[iacute]
-ks4l[odiaeresis]
-ks4m[aacute]
-ks4n
-ksp4
-k4ste
-k4st[oacute]
-k4str
-ksyf4
-kt3a[eth]
-kt5er
-k4t[iacute]
-k3tora
-k5ty
-2k1u
-k3u[eth]
-k4u[eth]i
-kuf4
-kuk4
-kulegr4
-kum4
-kumb5
-k5un.
-k5una.
-k3unar
-k5uni
-5kunn[aacute]tta
-k3unu
-k3ups
-k2ur[eth]
-kur5k
-k2us
-ku5sl
-k3ust.
-k5ustum
-ku3sty
-k[uacute]2
-3k[uacute]lu
-k3[uacute]n
-k[uacute]3re
-k[uacute]t4us
-3kven
-4kv[eacute]
-4kvu
-kv4un.
-1k4v[aeligature]
-3kv[odiaeresis]
-4kv[odiaeresis]r
-k5[thorn]
-3k[odiaeresis]k
-5k[odiaeresis]ld
-5k[odiaeresis]nn
-5k[odiaeresis]s
-2la.
-4lac
-la4dan
-2la[eth]
-la[eth]4al
-4laf
-laf4as
-laf4r
-l3afs
-3lag[eth]
-4lage
-2lak
-la5k[oacute]
-la1l2
-l3ald
-lam4b
-2lana
-l2and
-3land.
-3lands
-1lang
-lank5as
-4lann
-l5anna.
-l4an[oacute]
-lan4t
-la3pl4
-2lar
-l4aram
-l4are
-larg4
-l4aris
-l3arn
-la3r[oacute]
-lart4
-l4ary
-2las
-las3i
-las3le
-la5sli
-last5a[eth]
-lat3[iacute]n
-lat4u
-1lau
-2laum
-laut5as
-l[aacute]2g
-l[aacute]m5a
-l[aacute]n5e
-4l[aacute]r
-l[aacute]4t
-5l[aacute]tum
-l[aacute]3v
-2l1b
-2ld
-ld3ar
-ld3d
-ldem4
-ld3ey
-ldig4
-ldr4as
-ld5rau
-l4dri
-ld5ro
-ldr3[oacute]
-1le
-4le.
-2lef
-l1efn
-4legn
-leif5as
-leik3v
-4lein
-4lek
-4lel
-4lenn
-4lep
-2ler
-le5r[iacute]
-les5e
-2let
-l3ex
-2ley.
-4leyj
-2leym
-lf4as
-lf5[aacute]t
-lf4dr
-lf3f
-lf2i
-lf5inn.
-l3fj
-lf2l
-lfla4
-l4f[oacute]
-lf4sp
-lftr4
-lft4un
-4lg
-lg2a
-lgar4s
-lg5ast
-l1g[aacute]
-l4ges
-lgil4
-lg4isi
-lg3[iacute]
-lgl4
-lgni5s
-l1gr
-lg4[uacute]
-l1h
-4li.
-lik4a
-li5kv
-lil2
-li5la
-li3li
-l2ind
-4lings[aacute]
-l3inn
-l5inn.
-2l3inu
-4l3ir
-l1is
-l5is.
-l4is[aacute]
-l3isi
-lisk4
-l5isr
-l4isti
-l5istu.
-lit4ar
-3litl
-l3[iacute]a.
-l[iacute]4b
-1l[iacute]f
-l[iacute]f5a
-l[iacute]k3k
-l[iacute]m5ug
-4l[iacute]p
-1l[iacute]t
-l1[iacute]u
-l4[iacute]uf
-l4[iacute]uh
-l4[iacute]utr
-lj3ar
-lj5ar[eth]
-1lj[oacute]s
-lj[oacute]s5k
-lj[oacute]s3l
-lj3ug
-ljur4
-lj4uru
-2lk
-lkap4
-lk4as
-l1ke
-l3kr
-l3k[uacute]r
-l1kv
-l3ky
-2ll
-ll3et
-l4ley
-ll3f
-ll1g2
-ll3i[eth]a
-lli3g
-lliss4
-l1lit
-ll[iacute]t4
-ll3k4
-ll3m
-ll1[oacute]t
-lls5t[aeligature]
-ll5te
-ll5ug
-ll3v
-2lm
-lm5ari
-lm3ars
-lmb4
-l3me
-l1m[oacute]
-lnar4
-ln4i[eth]
-l5no
-lo4
-5lo[eth]
-5loki
-4lon
-4l1or
-5los
-l[oacute][eth]3r
-l[oacute]5gr
-l[oacute]4ma
-lp5t
-2l1r
-l2ri
-l3rit
-2ls
-ls[iacute]4
-l2sj4
-l5skin
-ls4kon
-ls4nesi
-l3sta[eth]
-lst4in
-ls1ve
-4lt
-lt3a[eth]
-l5til
-lt4s
-lt4[uacute]
-l1t[aeligature]
-2lu
-4lu.
-l3u[eth]
-lugl4
-luk4i
-l4u1l4
-l1um
-lu1ma
-l1un
-3lund
-l3unu
-lu5pe
-l1ur
-2l1v
-l2va
-lv3a[eth]
-l3val
-l4v[iacute]u
-ly4
-3lyf
-1lyn
-l1yr
-1l[yacute]
-2l[yacute]f
-l[yacute]t4a
-4l[yacute]ti
-2l1[thorn]
-1l[aeligature]g
-l[aeligature]kj3
-l[aeligature]kjar5
-5l[aeligature]kk
-1l[aeligature]ti
-1l[odiaeresis]g
-l5[odiaeresis]l
-4l[odiaeresis]t
-m2a
-2ma.
-m4ab
-m4ad
-m3a[eth].
-m3a[eth]a
-m3a[eth]i
-m3a[eth]r
-m5a[eth]s
-1ma[eth]u
-maf4
-m4ag
-3mag4n
-m4ak
-mal4as
-mal3dr
-m3alf
-m3all
-m4alp
-mal4t
-ma1m4
-4man.
-4mana.
-m4an[aacute]
-m3anb
-2m3and2
-m3ank
-m3anl
-mann4as
-3manni
-3manns
-mann5t
-2m3ans
-man5sa
-m3ant
-4manu
-ma2r
-m3ara
-m3arb
-m3ar[eth]
-1m4ark
-marks5
-m3arn
-mar3o
-mar4s
-mars5m
-m4ar[uacute]
-m1as
-mask4
-ma4sp
-m3ast.
-1m[aacute]
-4m[aacute].
-3m[aacute]2l
-m[aacute]l3f4
-2m[aacute]m
-m[aacute]5mu
-m[aacute]5p
-4m[aacute]r
-4mb
-mb5a[eth]i
-m1ban
-mb3i
-mb4ir
-mb3un
-md2as
-md5asta
-md4v
-1me
-4me.
-me[eth]3
-m5ef
-megin3
-5m2eis
-meltr4
-m1end
-3menn
-m5erh
-m3er3[iacute]
-mest5a
-m1f4
-m4f[iacute]
-mf[odiaeresis]r4u
-m1g2
-mgl4
-m1h
-mi[eth]3i
-mi[eth]r4
-mi3ge
-3mik
-milj3
-mil4l
-millj3
-m3ing
-5minj
-m3inn.
-min4s
-m3inu
-m3ir
-m1is
-mis3k
-mis3lu
-mism4
-2m[iacute]
-mj[oacute]3sl
-m1k
-m2ka
-mk4arg
-mk4as
-mk2i
-mk4l
-m1l
-m2la
-m3lag
-m3lau
-m2l[aacute]
-ml3[aacute]r
-m2li
-m5luk
-4mm
-m2m3a
-mm5b
-m4m[oacute]
-mm4sv
-mm3u
-m4nesku
-2mog
-4mok
-3mol
-mong5
-m[oacute]d3
-m[oacute][eth]4s
-m[oacute]5g4
-m5[oacute]n[iacute]
-m[oacute]3rau
-m[oacute]4s
-3m[oacute]t
-mp3[aacute]
-m5pe
-mp3i
-m3rau
-m5r[aacute]
-m3re
-m3r[yacute]
-m1r[aeligature]
-4ms
-ms5[aacute]l
-m2se
-ms5ei
-m5skau
-ms5kj
-ms5l[aacute]
-msn4
-mssetr4
-m1sv
-m4sv[iacute]
-mt3a[eth]
-m4ti
-mt2is
-m3tug
-mt5un
-mt4us
-mt2v
-m1t[odiaeresis]
-m1u
-4mu.
-mug4u
-4mul
-4mum
-m2un
-1mund
-m3ung
-4mur
-m4uru
-mu5sta
-m3[uacute][eth]
-m[uacute]g4u
-m1[uacute]n
-m[uacute]s4a
-m1v4
-1my
-3m[yacute]
-m[yacute]5m
-m1[thorn]
-1m[aeligature]
-1m[odiaeresis]
-m[odiaeresis]r4
-n1a
-4na.
-na2da
-na4d[iacute]
-na[eth]ar3
-naf4
-nafl4
-nafl5an
-3nafn
-nak4a
-na4kr
-nal2
-na3la
-n3ald
-na3li
-na1ma
-n4anaf
-n5ang
-n5ann
-n4arak
-n3ar3f
-n4arfi
-n4arf[odiaeresis]
-narg4
-n4aris
-nar5m
-nar5rin
-n4aru
-n4ar[uacute]
-nat4
-n5aug
-n3auk
-naum5a
-1n[aacute]
-n[aacute]1g
-n[aacute]1k
-3n[aacute]4m
-n[aacute]n5ast
-n1b
-nb[aeligature]j4
-nd3er
-nd4isv
-n4dj
-nd3[oacute]t
-nd3rek
-ndr1u
-nd1r[aeligature]
-nd4sen
-nd3ug
-nd5ul
-ndur5g
-nd3[uacute]
-1ne
-ne[eth]2s
-3n2ef
-4nefl
-n4em
-nem5a
-2n1en
-4n4er
-nestr4
-netl4
-n5eyi
-n3eyj
-n[eacute]5sk
-n1f2
-nfr4
-nga1m
-ng5are
-ng2as
-n2ge
-ng5ek
-n3ger
-n3get
-ng1ey
-ngi5k
-ngil4i
-ngi5li[eth]
-ng5lag
-ngl2i
-ngl5i[eth]
-ng5[oacute]lfs
-ng4ra
-ngr5an
-n3gr[iacute]
-ngr3u
-ng3r[aeligature]
-ng4sj
-ng4sp
-ng4ste
-ngurs3
-ngu3t
-n1h
-4n1i
-n4i[eth]i
-ni5fr
-ni3gr
-ni3lu
-ni5m
-n4iru
-n3isa
-n4is[aacute]
-nisk4
-ni3sk[oacute]
-nis2m
-nis5s
-ni3ste
-ni5st[aeligature]
-n3[iacute]a
-n3[iacute]sk
-n1[iacute]u
-n[iacute]4um
-nj[aacute]l4
-nk2
-nk3a[eth]
-nk5and
-nk3ans
-n5k[aacute]
-n1ke
-nk3i
-n5k[oacute]
-n3kunn
-n5ky
-n5k[odiaeresis]
-n1l2
-nli4
-n4list.
-n1m4
-n2n
-nn1[aacute]
-nn1e
-nn3g2
-nnk4i
-nn4sj
-nn5ske
-nn4sto
-nn5stun
-nn5t[oacute]
-nn3ug
-nn2us
-nn3[uacute][eth]
-n1or
-1not
-n5[oacute]lf
-5n[oacute]ttin
-n3p4
-n1r
-n3ram
-n5rau
-n2r4i
-n3rit
-n3sak
-n5s[aacute]t
-n4seg
-ns5es
-ns5is
-ns1[iacute]
-n3skil
-nsk[iacute]r4
-ns5kja
-n5sk[odiaeresis]
-nsn4a
-ns5r
-nst4e
-nt3a[eth]
-n5tak.
-n5taki
-n3tal
-n1te
-ntgen5
-n3til
-n2t[iacute]
-nt2s
-nt5sk
-nt5sm
-nt3ug
-nt4v
-n1t[yacute]
-n1t[odiaeresis]
-n1u
-nuf4
-n4ugr
-nuk2
-nu1l
-nu1ma
-5numd
-nungs3
-nur5f
-nur4l
-n3ust.
-nu5sta[eth]
-nu4sv
-nu5ta
-3n[uacute]m3
-n[uacute]4s
-n1v
-n5yf
-n3yrk
-1n[yacute]
-n3[yacute]g
-n[yacute]3l
-n[yacute]5sk
-n1[thorn]
-1n[aeligature]
-n[aeligature]l4a
-3n[odiaeresis]f
-n3[odiaeresis]ld
-n5[odiaeresis]n
-5obs
-o[eth]a3l
-o[eth]r4
-o[eth]s5l
-o[eth]4ug
-o2f
-of3ang
-off4u
-of3o
-of5r
-of4sj
-of5su
-oga3l4
-ogast4
-ogs4u
-ok4as
-olak4
-old3u
-ol2g
-oll5eg
-ol5lit
-oll4st
-ol3m
-ol3[oacute]
-oltal4
-o2m
-om3a
-om4m3
-om2u
-om3un
-on3sv
-on4t
-on5t[oacute]
-on4us
-opa5p
-op2h3
-op5u4
-ora4
-or4di
-or1e
-or2fe
-or2gr
-3or[iacute]
-orlag4
-or2ma
-or4mi
-4orn
-or4ne
-or4sta
-ortr4
-ort3ug
-or1u
-or3ug
-or3v4
-or4vi[eth]
-or3y
-o4s
-osk3i
-os3m
-os2s
-ost5i
-ost5un
-4o4t
-ot3a[eth]
-ota5l4
-otam4
-ot3ro
-ots4[aacute]
-ot5un
-o4u
-o3ve
-ox4
-[oacute]1a
-[oacute]aflat4
-[oacute]5an
-[oacute]ar4s
-[oacute]b3ak
-[oacute]d4a
-[oacute][eth]i4
-[oacute][eth]l4
-[oacute][eth]m4
-[oacute][eth]v4
-[oacute]5e
-[oacute]f3ar
-[oacute]f4as
-[oacute]flu5s
-[oacute]fr4
-[oacute]f5us
-[oacute]2fy
-[oacute]4f[odiaeresis]
-[oacute]2g
-[oacute]1h
-[oacute]1i
-[oacute]k5lo
-[oacute]3kr
-[oacute]k2u
-[oacute]la3m
-[oacute]l2as
-[oacute]l5ik
-[oacute]l4is
-[oacute]l4kv
-[oacute]l5om
-3[oacute]lsk
-[oacute]4m3a[eth]
-[oacute]m3ar
-[oacute]m4b[aeligature]
-[oacute]m2g
-[oacute]m4is
-[oacute]ml4
-[oacute]m3p
-[oacute]m3stu
-[oacute]m3u
-[oacute]2m[odiaeresis]
-[oacute]4n
-[oacute]n3[iacute]
-[oacute]n5kv
-[oacute]p4e
-[oacute]p2h5
-[oacute]r4as
-[oacute]r[aacute]4
-[oacute]r2d
-[oacute]r4d[odiaeresis]
-[oacute]r5es
-[oacute]rf4
-[oacute]rg4
-[oacute]4ri
-[oacute]r4is
-[oacute]r[iacute]k4
-[oacute]rj4
-[oacute]rk4
-[oacute]rm4
-[oacute]rn4o
-[oacute]r3[oacute]n
-[oacute]rr4
-[oacute]rs4a
-[oacute]r1u
-[oacute]sa5f
-[oacute]sak4
-[oacute]3sem
-[oacute]s3end
-[oacute]5skaf
-[oacute]sk4as
-[oacute]sk5in
-[oacute]s2l
-[oacute]slav3
-[oacute]2s[oacute]
-[oacute]sp4
-[oacute]s4se
-[oacute]4ta
-[oacute]t3a[eth]
-[oacute]tap4
-[oacute]t5ef
-[oacute]til4t
-[oacute]5t[iacute]
-[oacute]t4[oacute]
-[oacute]t2v
-[oacute]1u
-[oacute]um5b
-[oacute]v4a
-[oacute]5vat
-[oacute]y4
-[oacute]5[thorn]
-p1a
-pag4
-pa4le
-pa3m
-pa4n
-pan3g[oacute]
-pa2r
-p4arat
-pari3f
-par5[iacute]
-p2art
-par5te
-p4aru
-p2[aacute]k
-p4[aacute]l
-p[aacute]5m
-p4[aacute]r
-p[aacute]2s
-p4[aacute]t
-p1b
-p5d
-p1el
-1peni
-3pers
-p1f2
-p1g2
-p1h
-p1i
-pil5ar
-5pilt
-p4ink
-pist5i
-pit4
-3p[iacute]p
-p[iacute]2t
-pl2
-pl3a[eth]
-pla4s
-p4l[aeligature]
-3pl[odiaeresis]
-p1m4
-1pok
-3p[oacute]s
-p2p
-pp5aks
-pp5e
-pp3[iacute]
-ppk4
-pp1l
-pp3[oacute]
-pp1r
-ppsk4
-4pra
-pr2i
-p4ris
-pr[iacute]4
-3prj
-1pr[oacute]
-pr[oacute]5fas
-pr[oacute]5m
-p1sa
-pss4
-p1st
-pt2[uacute]
-p1u
-puk4i
-pu1l
-pur4a
-3p[uacute]
-p[uacute]f4
-p1v
-qu4
-2ra
-4ra.
-5ra[eth]sh
-raf4f
-r3ald
-ral4i
-r4all
-r3als
-3ranal
-r4ani.
-3ranns
-r4an[oacute]
-4r3ar
-r4ara[eth]
-r4ar[uacute]
-r4ary
-r4ar[aeligature]
-ras3i
-ra3tu
-r4aum
-1r[aacute][eth]
-r[aacute]f4i
-r[aacute]5kv[aeligature]
-r[aacute]rs4
-r4[aacute]sa
-r1b4
-rba4
-r1d
-r2d[iacute]
-r4[eth]
-r[eth]4ar4[aacute]
-r[eth]5is
-r[eth]1l2
-r[eth]4mu
-r[eth]5r[aacute]
-r[eth]5su
-r[eth]3sv
-r[eth]v4
-r4ef.
-r4efs
-5reftsk
-1regl
-r3eig
-3reik
-r5enu
-r5eu
-r4eyn
-r4[eacute]
-r1fal2
-rfa5li
-rf4ar
-r3f[aacute]
-r5fe[eth]
-rf1is
-r1fj
-rfj[aacute]r4
-rf4l[odiaeresis]
-rf[oacute]g5
-r1fr
-rfr4u
-rf4st
-r3fund
-rf4ur[eth]
-rgj4a[eth]
-rgj4ar
-rg2l4
-r5gly
-r1gr
-r2gra
-r4grey
-r5h
-4ri.
-4r3i[eth].
-rig2
-riga5s
-r3ild
-4rin
-rin5e
-ringj5ar
-r3inu
-rip4s
-4r3ir
-ri3sk
-ris5l2
-3risn
-rist5a[eth]
-ris4un
-1ri4t
-rit3li
-4r[iacute].
-4r[iacute]f
-r[iacute]kis3
-4r[iacute]l
-r[iacute]st4
-4r[iacute]u
-4r[iacute][thorn]
-rj3ar
-rj[aacute]4l
-rj[oacute]3sa
-rj[oacute]sk5a
-rka1m
-rkaup4s
-r3k[aacute]
-r1ke
-rk1ef
-r4kell
-r4kelss
-rkju3s
-rk4se
-rk1sm
-rk4sp
-rk4[uacute]
-rk5vei
-r3k[odiaeresis]
-r1l2
-rl3a[eth]
-rl5ann
-r2li4
-rl4i[eth]
-rlis5s
-r3lit
-rl3m
-rlof4
-rmak4
-r1man
-rm[aacute]ls5
-rmb4
-rm2i
-r1mi[eth]
-rmil4
-r5mj
-rmk4
-rml4
-r3m[oacute][eth]
-rmr4
-rn3ar
-rnar5l
-rn1g
-rn5[oacute]r
-rn5s[iacute]
-rn5sm
-rn4so
-r4nu
-r5numi
-ro4
-rog4as
-ron4
-r1or
-r[oacute]5gr
-r[oacute]4m
-r[oacute]4sa
-r[oacute]s3[oacute]
-5r[oacute]ti
-r5pal
-r3p[oacute]
-r1pr
-r4pri
-rp2s
-rp3sk
-r5py
-rr5ar
-r1r[aacute]
-r1re
-r1r[eacute]
-r1r[iacute]
-rr2k
-r3r[oacute]
-rr1u
-r5r[uacute]
-r1r[aeligature]
-r1sa
-r4saf
-rs4[aacute]r
-rsegl4
-r3ser
-rs4inn
-r3ske
-r5skil
-rs4lan
-rs2m[aacute]
-r1st
-r2sti
-rst4v
-r3st[odiaeresis]
-rs2u
-r5sund
-r4s[uacute]
-r1sv
-rt3a[eth]
-rta5g
-r3tak
-rta4sk
-r5t[aacute]
-rt5er
-rt3ey
-rt2hu
-r4t[iacute]k
-r3t[oacute]
-r3tr[odiaeresis]
-rt4se
-rt5sl
-rtt4
-rt4uru
-rt4[uacute]
-r4tv
-rt4ve
-r1t[aeligature]
-rt1[odiaeresis]f
-r1u[eth]
-r4u[eth]un
-ruk4i
-ru5li
-ru2m
-r1ur
-r4uss
-r3ust.
-rut4v
-r4[uacute][eth]
-3r[uacute]m
-r[uacute]st5
-r1v
-rv3a[eth]
-r3ve
-r2vi
-rvi3g
-rv3ing
-rv4un
-r3v[aeligature]
-r3yr
-1r[yacute]m
-r1[thorn]
-1r[aeligature]kt
-r[aeligature]md5a
-1r[aeligature]n
-r[aeligature]t3i
-r[odiaeresis]f4ug
-r[odiaeresis]k1r
-r[odiaeresis]l4
-2sa.
-4sab
-2s3a[eth]
-s4a[eth]f
-1sag
-4sagr
-4sagt
-sal5at
-4s3ald
-1sa2m
-sam5b
-4sam1e
-sam3m
-sam1s
-sam5y
-2san
-s4ands
-2s3ar
-s4are
-sarg4
-s4aro
-s4arp
-2s1as
-2sat
-sat4a
-2sau
-s3auk
-4sav
-s[aacute]4
-s3[aacute]b
-s5[aacute]f
-s[aacute]lar5
-s1[aacute]r
-s3[aacute]s
-s1b
-s3d4
-1se
-2s1ef
-4seld.
-5semi
-5sens
-2ser
-2ses
-3set
-sex3
-2s1ey
-s4ey[eth]
-1s[eacute]
-s5f4
-sfl4
-sfr4
-s1g4
-sgl2
-s1h
-sh[aacute]4s
-s1i
-s3i[eth].
-5s4i[eth]a
-s4i[eth]i
-sif2
-si5fi
-1sig
-sind4ar
-sind4as
-5sinnu
-2s5ins
-s3ir
-s3ist
-s4isv
-si3ta
-s[iacute]3br
-1s[iacute][eth]
-s[iacute][eth]k4
-s[iacute]gl4
-s3[iacute]k
-s[iacute]4m
-s[iacute]nk5a
-s3[iacute]r
-s1[iacute]s
-s5[iacute]u.
-s[iacute]3v
-s[iacute]4ve
-1sj
-s3jaf
-sjar4
-s4j[aacute]
-sj[oacute]5l
-sj[oacute]3m4
-sj[oacute]3s
-4sju
-3sj[uacute]
-s2k
-2sk.
-4ska.
-4ska[eth]
-skaf4a
-4skal
-2skan
-1ska4p
-4skas
-1sk[aacute]
-1skei
-3skemm
-4sken
-3skey
-s4k2i
-2ski.
-4ski[eth]
-sk3inu
-3skip
-2skir
-4skis
-3sk[iacute]r
-5skj[aacute]
-4sk4n
-3sko[eth]
-4skon
-4skos
-1s4kot
-1sk[oacute]
-5sk[oacute]g
-1skr[aacute]
-4skr[oacute]
-3skr[uacute]
-4sks
-sk3uri
-sk3ust
-2skv
-1sky
-3sk[yacute]
-1sk[aeligature]
-sla2
-sla3f
-s4lam
-slands5
-3s4l[eacute]
-sl2is
-s1l[iacute]
-s4l[iacute][eth]
-s3lof
-s3lok
-1sl[oacute]
-slu3s
-1slys
-s3l[aeligature]k
-s1m2
-4sma
-sm[aacute]1s
-sm[aacute]5v
-4sme
-s4mek
-s2mi
-1sm[iacute]
-smj4
-4sm[odiaeresis]
-s2ne
-3snei[eth]
-5sner
-s3nes
-3sneyd
-sn4i[eth]
-sn2o
-1sn[uacute]
-4sn[uacute]m
-s4n[yacute]
-sn[aeligature][eth]5
-1so
-4sod
-3son
-2sor
-s5or[eth]i
-1s[oacute]4
-s4[oacute]l
-s[oacute]l3e
-s[oacute]l3s
-2s[oacute]m
-s5[oacute]mag
-4s[oacute]s
-1sp2
-sp[iacute]t3
-spj4
-4spl
-4spra
-2spr[oacute]
-s5pund
-sr2an
-s5rau
-s1r[aacute]
-s1re
-s1r[eacute]
-s1r[iacute]
-s5ro
-s5r[aeligature]
-s3r[odiaeresis]
-s3s4[aacute]
-ss3er
-ss5[iacute]
-s1s4k4
-ssl2
-ssm4
-ss5or
-s1st
-s4stir
-s1sv
-s2t
-2st.
-s4ta
-2sta.
-4stal
-4stap
-5starfi
-5starfs
-4sta[aeligature]
-1ste
-3stef
-3stein
-5stekk
-4stet
-1st[eacute]
-st4he
-4sti.
-1stig
-st4isl
-3st[iacute]g
-2st[iacute]m
-4st[iacute]u
-1stj4
-4stj[oacute]n
-5stj[oacute]r
-5stj[odiaeresis]r
-4stl
-st3le
-1sto
-3stof
-1st[oacute]
-4st[oacute]n
-3st[oacute]r
-st2r
-str5al
-5stranda
-5strang
-5straum
-5str[aacute].
-1stre
-3str[iacute]
-4str[uacute]
-s3try
-5str[odiaeresis]n
-st5t
-2s4tu
-3stund
-1st2[uacute]
-4stv
-3st[yacute]
-1st[aeligature]
-2st[aeligature]k
-1s4t[odiaeresis]
-3st[odiaeresis][eth]
-4st[odiaeresis]l
-5st[odiaeresis]ng
-s1u
-su3f4
-5sum3a
-s2ung
-s5upp
-s5ura
-sust4i
-s[uacute]4
-s[uacute]ln4
-s5[uacute]n
-s5[uacute]rs
-s[uacute]t5
-sv4
-4svag
-4sval
-s3vat
-s5ve[eth]
-s4vef
-s2vei
-s3veik
-3svein
-5svep
-4svex
-s4vi[eth]i
-5svi[eth]i.
-s4vik
-svik3u
-s5vin
-s1vo
-s2v[aeligature]
-1sv[aeligature][eth]
-1sy
-2s3yfi
-3syn
-4s3yr
-3s4[yacute]
-s1[thorn]
-1s[aeligature]
-4s[aeligature][eth]
-s[aeligature]f4
-s[aeligature]5fa
-3s[aeligature]j
-3s[aeligature]l
-4s[aeligature]s
-1s[odiaeresis]
-3s[odiaeresis]g
-s[odiaeresis]gu5s
-2s3[odiaeresis]ld
-3s[odiaeresis]m
-2s3[odiaeresis]r
-t2a[eth]
-ta2fr
-1taka
-5takend
-t4al.
-tala4m
-4tam
-ta1ma
-t5amt
-ta4n[aacute]
-3tang
-4tar
-t4ar4a[eth]
-tar5is5
-tark4
-tarp4
-tar5s[aacute]
-tar[aeligature]v4
-t1as
-t4as.
-ta5sl
-tat4
-ta4v[iacute]
-t4[aacute]4
-5t[aacute]kn
-4t[aacute]nd
-t1b
-t1d
-4teg[iacute]
-5tegu
-tei4
-tein5g
-t1eis
-1tek
-3tekj
-tekkj5
-t1end
-ten5[oacute]
-4tepl
-t3ett
-2tey
-t[eacute]4l
-t3f2
-tfirr4
-t1g
-t1h
-th5ers
-t1i
-ti4an
-ti5kis
-tild4
-4tin
-tirk4
-t4ir[aeligature]
-tist4
-t5ist.
-ti3sta
-tistil4
-t2isv
-1tit
-1t[iacute]
-4t[iacute].
-4t[iacute]a
-3t[iacute][eth]
-t[iacute]4l
-3t[iacute]m
-4t[iacute]n
-4t[iacute]t
-t[iacute]v3
-t4j[odiaeresis]
-t1k
-tk4a
-t4k2i
-tlaf4
-t3lag
-t4lag.
-tl2an
-tl5ann
-t1l[aacute]
-tl2i
-tlur4
-t1l[aeligature]
-2t3m4
-tn2s
-tnsk4
-tnskr4
-to4
-1tog
-t3on
-3torg
-5toru
-1t[oacute]m
-t[oacute]m3a
-t[oacute]m5as
-5t[oacute]nl
-t[oacute]r1
-t[oacute]r5au
-t[oacute]ri3s
-t1[oacute]t
-t3p
-tra2b
-5tra[eth]ari
-tr3al[iacute]
-tr2an
-tr3ann
-tr5ar
-3traus
-t4rey
-1tr[eacute]
-tr4is
-t5risi
-t5r[iacute]ka
-3trj
-t5r[oacute]f
-tr3[oacute]tt
-tr3ug
-tr3una
-tr5uni
-1t4r[uacute]
-1try
-t5ry[eth]
-t3r[aeligature]n
-3tr[odiaeresis][eth]
-4ts
-t1sa
-ts4inn
-t5s[iacute]
-tsj4
-t1sk4
-ts1s
-t1st4
-ts4u
-t2sy
-tt3a[eth]
-ttak4i
-ttar5f
-tt5[aacute]
-tte5r[iacute]
-tt5ern
-t4t[iacute]
-tt5j
-tt1l
-tt1or
-tt3r[aeligature]
-tt3ug
-tt4ugl
-ttv4
-t1t[aeligature]
-t1u
-4tu.
-t4u[eth]i
-tugl4
-tuk4
-tu3l4i[eth]
-tum2
-tu5min
-t2ung
-3t4ungl
-tup4
-t3ur3e
-tur3k
-t5urs
-t4usa
-t4usu
-tutr4
-t[uacute]d3
-t3[uacute][eth]
-t[uacute]4l
-1t[uacute]n
-t[uacute]n4a
-t1[uacute]r
-t[uacute]3sk
-t1v
-5tveggj
-t5ver
-5t[yacute]s
-t1[thorn]
-3t[aeligature]k
-1t[odiaeresis]k
-1t[odiaeresis]l
-t5[odiaeresis]ls
-2u1a
-u3af
-u5au
-2u1[aacute]4
-u[aacute][aeligature]tl4
-4u1b4
-4uc
-4ud4
-u1da
-u5d[aacute]
-u3de
-u3d[oacute]
-u3dr
-2u[eth]a
-u[eth]4are
-u[eth]3k4
-2u[eth]l
-u[eth]m4
-2u[eth]4n
-2u[eth]r
-u[eth]5ris
-u[eth]4se
-u[eth]3sv
-u[eth]5s[aeligature]
-4u[eth]ul
-2u5e
-4u[eacute]
-4uf
-uf5[aacute]
-ufd4
-u5fit
-u3fj
-u1fr
-u3ful
-u5f[uacute]
-2ug
-4ugal
-4ugat
-4uge
-4ugil
-4u1gj
-4ugla
-ug1lj
-4uglu
-ug4n
-4ug[oacute]
-u5gran
-4ugre
-4ugrj
-4ugr[oacute]
-ug3r[aeligature]
-ug3ta
-4ug[odiaeresis]
-4u1h
-4ui
-u5i[eth]
-4u[iacute]4
-2uj
-2uk
-ukak4
-uk4as
-u1ke
-u5kinnin
-ukku3s
-u5k[oacute]
-u3kv
-2ul
-3ul.
-4u1lag
-ul3ar
-3ulb
-4ule
-u5lind
-ul4is
-u1l[iacute]
-ul3k2
-ul4la
-4ulln
-ullt4
-4u3lo
-u3l[oacute]
-ul5sv
-ult4i
-ul3us
-ul5v4
-u3l[aeligature]
-4u1l[odiaeresis]
-3um.
-2uma
-umak4
-u1man
-um4aran
-2um[aacute]
-um[aacute]l4ar
-um4ba
-um5b[aeligature]
-um4b[odiaeresis]
-2umd
-2ume
-um3ein
-4umi
-umj4
-um4ki
-4uml
-umm4a
-4u5mo
-2um[oacute]
-4ump
-2umr
-ums4
-um3sl
-3umst.
-um1t4
-4umu
-um5unn
-4um[uacute]
-2umy
-2um[yacute]
-2um[aeligature]
-2um[odiaeresis]
-un3ar1
-unar5a
-un2as
-4unat
-2u1nau
-2un[aacute]
-2und
-4une
-4unk
-2unn[aacute]
-4unns
-2unnu
-unn5ug
-4uno
-4un[oacute]
-uns4an
-4unt
-1unu
-4unur
-4un[aeligature]
-4un[odiaeresis]
-2u3o
-uol4
-4u[oacute]
-2up
-upp1
-upp5a
-uppal5
-upp4i
-3ur.
-2ura
-ura4f
-ur5a4m
-ur2an
-ur5anna
-2ur[aacute]
-ur[eth]a5r[aacute]
-2ure
-u1rek
-ur3ey
-4u1r[eacute]
-urf4a
-ur3fl
-urg4e
-ur3gj
-ur5in
-4urit
-4ur[iacute]
-u3r[iacute]k
-ur3j4
-urk4a
-ur1m
-ur3n[iacute]
-4uro
-4ur[oacute]
-ur1sk4
-ur3sna
-ur4sta
-ur4sv[odiaeresis]
-ur5til
-urt4ir
-ur1u
-ur4unn
-4urus
-ur3v4
-ur4vis
-4uryk
-4ur[yacute]
-2ur[aeligature]
-4ur[odiaeresis]
-2usa
-u3sal
-4us4[aacute]
-2use
-4us[iacute]
-2usj
-4u1sk
-4usl
-2u3s4m
-2usn
-4uso
-4us[oacute]
-4usp
-u5starf
-4ust[aacute]
-4uste
-2ust[eacute]
-2usti
-2ust[iacute]
-4usto
-4ust[oacute]
-4ustr
-3ustu.
-2ust[uacute]
-4usty
-4ust[yacute]
-4ust[aeligature]
-4ust[odiaeresis]
-u5sund
-4u3sv
-4usy
-2us[yacute]
-2us[odiaeresis]
-2ut
-ut3a[eth]
-ut2as
-u3te
-u5til
-u3t[oacute]
-ut4st[oacute]
-ut2[uacute]
-u1t[aeligature]
-2u3u
-4u5[uacute]
-4u3v
-2uy
-u3yf
-2u1[thorn]
-4u[aeligature]
-2u5[odiaeresis]
-[uacute]1a
-[uacute]al4
-[uacute]3arf
-[uacute]b3an
-[uacute]bli3
-[uacute][eth]3ar
-[uacute][eth]5g
-[uacute]3e
-[uacute]f5ar
-[uacute]fl2
-[uacute]f5li
-[uacute]f5ly
-[uacute]fs4[aacute]
-[uacute]5gala
-[uacute]g[oacute]3
-[uacute]4g[aeligature]
-4[uacute]1i
-[uacute]k1l
-[uacute]kr1u
-[uacute]k4s
-[uacute]l5er
-5[uacute]l4f
-[uacute]lf5al
-[uacute]l4[iacute]3
-[uacute]l[iacute]p4
-[uacute]3lo
-4[uacute]2m
-[uacute]m4r
-[uacute]m4si
-[uacute]4n
-[uacute]nd4ug
-[uacute]n4g[odiaeresis]
-[uacute]pl5i
-[uacute]r5ef
-[uacute]r[iacute]t4
-[uacute]r5sl
-[uacute]r1t
-[uacute]r3un
-[uacute]r5v
-[uacute]3r[aeligature]
-2[uacute]s
-[uacute]4sa
-[uacute]s3ei
-[uacute]s3[iacute]
-[uacute]s4sti
-[uacute]s4sv
-[uacute]s1v
-[uacute]t3e
-[uacute]t2he
-[uacute]ti5f
-[uacute]t2is
-[uacute]tj4
-[uacute]t1l2
-[uacute]t1r
-4[uacute]1u
-[uacute]1v
-[uacute]4va
-[uacute]5[thorn]
-v2a2
-va[eth]r5
-va5fo
-va5h
-5vallag
-va4n
-var4ma
-varps3
-var5[uacute]
-var4v
-v3ast
-va4t
-3vax
-ve[eth]5l
-ve3fe
-1veg
-v2ei
-3vei[eth]
-vein4as
-5veis
-4velg
-2vep
-v4er
-1ver[eth]
-ver3gj
-3verk
-ver2s
-v[eacute]2
-v5[eacute]s
-v3[eacute]t5
-2v3h
-v2i
-2vi.
-v4i[eth]
-5vi[eth]ar
-vi[eth]3l
-vil4i
-vi3li[eth]
-3viln
-vi4lo
-vin3gj
-4vip
-3virk
-visk5un
-3viss
-vis4v
-5vita
-vitk5
-vit2n
-4viv
-4v[iacute]b
-2v[iacute][eth]
-5v[iacute]k
-3v[iacute]si
-v[iacute]sl3a
-v[iacute]1v
-2vn
-vo3k
-vol4
-vork4
-vor4r
-4vr1
-4vs
-2vu
-v1u[eth]
-v1un
-5v[aeligature]g
-wa4
-win4s4
-x5ar
-x2as
-x3e
-x3f
-x5i
-xis4
-x[iacute]3
-x[iacute]k4
-x5[iacute]u
-xt5a[eth]
-x1u4
-y5ba
-y[eth]2s
-yf5a
-yf1i
-yfj5a[eth]
-yft4is
-y1i
-yj3ar
-yj5[oacute]
-yk5e
-yk3i
-yk3su
-yk3u
-yk3v
-ylf5i
-ylgn4
-yll5a
-yl4v
-ym3a
-ymp5[iacute]
-y4n
-ynj5ar
-ynj3[oacute]
-yn4k
-yn4t
-yn5u
-yp2us
-yr5e
-yr1i
-yr3il
-yrir3
-yrj3
-yrkv3a
-yr2l
-yr2s
-yr1u
-y2s
-ysj3
-ys2s
-yst3ug
-yt4h
-ytil4
-yt4k
-y3v
-[yacute]5a
-[yacute]af5
-[yacute]5[aacute]
-[yacute][eth]2s
-[yacute]fl4
-[yacute]3flu
-[yacute]g4r
-[yacute]g4u[eth]
-[yacute]1i
-[yacute]ja5f4
-[yacute]m4a
-[yacute]m4k
-[yacute]pru4
-[yacute]p2s
-[yacute]rf4
-[yacute]ri3m
-[yacute]ri5p4
-[yacute]r3l
-[yacute]4si
-[yacute]sig4
-[yacute]s4l
-[yacute]s4m
-[yacute]3st[aacute]
-[yacute]5u
-[yacute]5[uacute]
-[yacute]3v
-[yacute]5y
-z[oacute]4
-[thorn]2a
-[thorn]am4
-[thorn]arf5a
-[thorn]ar4m
-4[thorn]b
-[thorn]2i
-[thorn]ist3i
-[thorn]j[oacute]4
-[thorn]ol5a
-[thorn]or3f4
-[thorn]or3g
-[thorn]orm4
-[thorn]1[oacute]l
-3[thorn][oacute]r
-[thorn][oacute]r5i
-[thorn]2r2
-[thorn]ra4
-[thorn]r[aacute]s4
-[thorn]ris4
-[thorn]r[iacute]l4
-[thorn]r[iacute]3t
-[thorn]ru4
-[thorn]um5a
-[thorn]umb3
-[thorn]ur2
-[thorn][uacute]s3
-[thorn]2v
-[thorn]ver5sk
-[aeligature]1b
-[aeligature][eth]n5
-[aeligature][eth]nis5
-[aeligature][eth]2s
-[aeligature][eth]4ug
-4[aeligature]f
-[aeligature]f1a
-[aeligature]4fi
-[aeligature]f3ust
-[aeligature]g5ist
-[aeligature]1i
-[aeligature]j3
-[aeligature]j4al
-[aeligature]jark4
-[aeligature]k1a
-[aeligature]k1li
-[aeligature]k3u
-[aeligature]2l
-[aeligature]l3an
-[aeligature]l3e
-[aeligature]l3us
-[aeligature]m3a
-[aeligature]m4al
-[aeligature]4mundu
-[aeligature]nak4
-[aeligature]n4k
-[aeligature]r1a
-[aeligature]r3e
-[aeligature]rg[odiaeresis]ng5
-[aeligature]rif4
-[aeligature]r3ist
-[aeligature]ri3sv
-[aeligature]r3l
-[aeligature]r4n
-[aeligature]r2s
-[aeligature]r5un
-[aeligature]r1us
-[aeligature]5r[uacute]
-[aeligature]s4is
-[aeligature]t5ise
-[aeligature]tl5i
-[aeligature]5u
-[aeligature]va5g
-[aeligature]5val
-[aeligature]v3ar
-[aeligature]v4ara
-[aeligature]3ve
-[aeligature]v3in
-[odiaeresis][eth]2
-[odiaeresis][eth]l3
-[odiaeresis][eth]m5
-[odiaeresis][eth]3un
-[odiaeresis][eth]v5an
-[odiaeresis][eth]v3ar
-[odiaeresis]1fa
-[odiaeresis]fl3[oacute]
-[odiaeresis]fn5
-[odiaeresis]fr3u
-[odiaeresis]f3u
-[odiaeresis]4g
-[odiaeresis]g3gj
-[odiaeresis]ggv3
-[odiaeresis]g1re
-[odiaeresis]g2us
-[odiaeresis]k5e
-[odiaeresis]k5r[aacute]
-[odiaeresis]k3st
-[odiaeresis]k3ul
-[odiaeresis]kv3a
-[odiaeresis]4l
-[odiaeresis]l1f4
-[odiaeresis]lk2
-[odiaeresis]lu5mi
-[odiaeresis]l5un
-[odiaeresis]l2v
-[odiaeresis]lv5an
-[odiaeresis]m4b
-[odiaeresis]m3u
-[odiaeresis]nd4l
-[odiaeresis]ng5sv
-[odiaeresis]ng4us
-[odiaeresis]ng4v
-[odiaeresis]ngv3a
-[odiaeresis]nk3
-[odiaeresis]nn4l
-[odiaeresis]n3ug
-[odiaeresis]n5un
-[odiaeresis]r1e
-[odiaeresis]r4ge
-[odiaeresis]r4lan
-[odiaeresis]rm5un
-[odiaeresis]r3[oacute]
-[odiaeresis]r3ug
-[odiaeresis]r1un
-[odiaeresis]r3und
-[odiaeresis]rus4
-[odiaeresis]r2v
-4[odiaeresis]rva
-[odiaeresis]rv5al
-[odiaeresis]rv5an
-[odiaeresis]rv5ar
-[odiaeresis]rv4i
-[odiaeresis]r1y
-[odiaeresis]r5[aeligature]
-[odiaeresis]4s
-[odiaeresis]sk3ul
-[odiaeresis]s3u
-[odiaeresis]t4s
-[odiaeresis]3tug
-[odiaeresis]t2v
-[odiaeresis]tv3a
-[odiaeresis]5u
-}
+\patterns {}
% end pattern data
diff --git a/Master/texmf-dist/tex/context/patterns/lang-la.pat b/Master/texmf-dist/tex/context/patterns/lang-la.pat
index 35835d999b5..0eb65cb143b 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-la.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-la.pat
@@ -51,10 +51,10 @@
2s3dem.
3p2sic
3p2neu
-[aeligature]e1
-[oeligature]e1
-[aeligature]1
-[oeligature]1
+æe1
+Å“e1
+æ1
+Å“1
a1ia
a1ie
a1io
diff --git a/Master/texmf-dist/tex/context/patterns/lang-nl.pat b/Master/texmf-dist/tex/context/patterns/lang-nl.pat
index 3c5f81bfb5a..2e4bdfbe870 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-nl.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-nl.pat
@@ -124,7 +124,7 @@
.ets5te.
.eu3
.eus5
-.[eacute]2
+.é2
.f4
.fel4s
.g4
@@ -210,7 +210,7 @@
.lu4s
.m4
.ma5d
-.ma5[idiaeresis]
+.ma5ï
.meel5d
.me5la
.me5ni
@@ -524,8 +524,8 @@ ae3r
ae2s3
ae4s5t
a3eu
-a2[ediaeresis]
-a4[ediaeresis]r
+a2ë
+a4ër
4afa
af3aa
a2f3ac
@@ -621,9 +621,9 @@ ai1st
ai5tj
ai3tr
aiu4
-a[idiaeresis]n4
-a[idiaeresis]ns5
-a[idiaeresis]s3o4
+aïn4
+aïns5
+aïs3o4
2a1j
ajaars5
aka2
@@ -671,7 +671,7 @@ a2l3el
ale5ro
ale5ste
ale4tj
-a3l[egrave]
+a3lè
al4fen
alf3l
al5fon
@@ -728,7 +728,7 @@ am4i
4amm
am3oli
a2m3o4v
-3amp[egrave]
+3ampè
am2pl
am4ple
am4sm
@@ -1000,7 +1000,7 @@ as3te
a3stek
a3stem
as5ten
-as3t[egrave]
+as3tè
asting5sp
as1to
as3tob
@@ -1090,7 +1090,7 @@ auto3p
2auts3
auw3a
4auz
-a4[udiaeresis]
+a4ü
avast4
ave3c
avee4
@@ -1109,9 +1109,9 @@ a5vor
axis4
ay2a
4azif
-[adiaeresis]3h
-[adiaeresis]mme3
-[adiaeresis]3r
+ä3h
+ämme3
+ä3r
1b
4b.
3ba
@@ -1131,7 +1131,7 @@ ba4lar
bal3dw
bale4
bal3ev
-ba3li[ediaeresis]
+ba3lië
bal4kl
ba3lo
bals4
@@ -1434,10 +1434,10 @@ ce4t3j
ceto4
cet3og
cet3oo
-1c[eacute]
+1cé
c3g
4ch.
-3cha[idiaeresis]
+3chaï
5chao
3chas
1chau
@@ -1452,7 +1452,7 @@ che5ri
che3ru
5ches
che3us
-1ch[eacute]
+1ché
5chir
4chn
2chp
@@ -1562,7 +1562,7 @@ ct3sp
1c2u
cu5d4
cu3en
-cu3[eacute]s
+cu3és
cui5s
cui2t
cuit5e
@@ -1573,8 +1573,8 @@ cu3ra
cus3o
c3w
1cy
-1[ccedilla]
-[ccedilla]a4o
+1ç
+ça4o
4d.
1da
3da.
@@ -1600,7 +1600,7 @@ da4g3r
dag4s3t
da2gu
3dai
-da3[idiaeresis]
+da3ï
da3ke
da4ker
2dakk
@@ -1797,7 +1797,7 @@ deve4
2dex
4d1exa
4dexp
-3d[egrave]
+3dè
2d1f
2d3g
d4gaf
@@ -1931,7 +1931,7 @@ do3pee
d3ops
d3opz
4d5org
-do4ri[ediaeresis]
+do4rië
d3ork
dors5m
do3sp
@@ -2363,8 +2363,8 @@ eet3sp
eet5ste
ee5v
ee5z
-e[ediaeresis]n3
-e5[ediaeresis]r
+eën3
+e5ër
ef3ad
efa4z
efde5l
@@ -2579,7 +2579,7 @@ e4l3eta
ele4tr
e4l3etu
el3exc
-e3l[eacute]
+e3lé
elfi4d
el1fl
elf3s4
@@ -2755,7 +2755,7 @@ en5tee
en5tei
ente5re
en4terv
-3ent[egrave]
+3entè
en1t2h
en5tom
ent4r
@@ -2996,7 +2996,7 @@ e2r3or
er1ov
er3oxi
e3roz
-e3r[odiaeresis]
+e3rö
er4plu
errie5tj
er3scr
@@ -3276,61 +3276,61 @@ e3zee
ezers5
e3zo
ezz4
-[eacute]3a
-[eacute]1d
-[eacute]dee4
-[eacute]di3
-[eacute]1g
-[eacute]gee5
-[eacute]3h
-[eacute]3j
-[eacute]3n
-[eacute]3p
-[eacute]3r
-[eacute]1t
-[egrave]1
-4[egrave]c
-[egrave]2l
-[egrave]2s
-[egrave]5t
-[egrave]ta5
-[ecircumflex]1
-[ecircumflex]2p
-[ecircumflex]3per
-[ecircumflex]5t
-3[ediaeresis]
-4[ediaeresis].
-[ediaeresis]2b
-[ediaeresis]3c
-[ediaeresis]3d
-[ediaeresis]e2
-[ediaeresis]en3
-[ediaeresis]3j
-[ediaeresis]1l
-5[ediaeresis]n
-[ediaeresis]nce3
-[ediaeresis]n4e
-[ediaeresis]ns2
-[ediaeresis]n5sc
-[ediaeresis]nt2
-[ediaeresis]n5th
-[ediaeresis]n5tw
-[ediaeresis]3p
-[ediaeresis]1ra
-[ediaeresis]1re
-[ediaeresis]1ri
-[ediaeresis]1ro
-[ediaeresis]ro1g2
-[ediaeresis]ro3s
-[ediaeresis]2s
-[ediaeresis]3si
-[ediaeresis]s3t
-[ediaeresis]1t
-[ediaeresis]t4s
-[ediaeresis]ts3te
-[ediaeresis]ve5
-[ediaeresis]ven4
-4[ediaeresis]zu
+é3a
+é1d
+édee4
+édi3
+é1g
+égee5
+é3h
+é3j
+é3n
+é3p
+é3r
+é1t
+è1
+4èc
+è2l
+è2s
+è5t
+èta5
+ê1
+ê2p
+ê3per
+ê5t
+3ë
+4ë.
+ë2b
+ë3c
+ë3d
+ëe2
+ëen3
+ë3j
+ë1l
+5ën
+ënce3
+ën4e
+ëns2
+ën5sc
+ënt2
+ën5th
+ën5tw
+ë3p
+ë1ra
+ë1re
+ë1ri
+ë1ro
+ëro1g2
+ëro3s
+ë2s
+ë3si
+ës3t
+ë1t
+ët4s
+ëts3te
+ëve5
+ëven4
+4ëzu
4f.
1fa
f3aanb
@@ -3405,9 +3405,9 @@ fe3ron
fe4t3j
fetu5r
2f3ex
-1f[eacute]
-3f[egrave]
-3f[ecircumflex]
+1fé
+3fè
+3fê
4f1f
f5fe
f5fi
@@ -3505,7 +3505,7 @@ fo1ru
fo3t
2f3oud
4f1ov
-3f[odiaeresis]
+3fö
4f5p4
fpers5te.
fpits5te.
@@ -3814,9 +3814,9 @@ ge3ui
5g4ev
4gex
5g4ez
-1g[eacute]
-g[eacute]di4
-3g[egrave]
+1gé
+gédi4
+3gè
4g1f
gfijn5ste
4g3g4
@@ -3884,7 +3884,7 @@ glet3j
g5lev
g5lice
g5lich
-3gli[ediaeresis]
+3glië
g2lif
g5lijs
g2lim
@@ -4490,7 +4490,7 @@ ie3de
ie4dro
ied3w
i1ee4
-ie[ediaeresis]2
+ieë2
ie3fi
ie2fl
ie3fle
@@ -4601,11 +4601,11 @@ i1euz
ie3v
ie3z
iezel5a
-i3[eacute]s
-i1[eacute]t
-i1[egrave]
-i4[ediaeresis]g
-i4[ediaeresis]va
+i3és
+i1ét
+i1è
+i4ëg
+i4ëva
4if
if3aa
if3ad
@@ -4725,7 +4725,7 @@ ile3u
il3e4ve
ilevin4
i4l3e2z
-i3l[eacute]
+i3lé
il5f
i3li
ilie5g
@@ -4904,7 +4904,7 @@ ira3k
i1r2e
ires4
ire3st
-i3r[eacute]
+i3ré
i1ri
irk4s
i1ro
@@ -5037,32 +5037,32 @@ iwit3
4iz
i3ze
ize3t
-[icircumflex]3
-[icircumflex]t4
-1[idiaeresis]
-2[idiaeresis].
-[idiaeresis]5a
-[idiaeresis]1c
-[idiaeresis]1d
-[idiaeresis]e4n3
-[idiaeresis]e5nen.
-[idiaeresis]2n3a
-[idiaeresis]ns5m
-[idiaeresis]n3sp
-[idiaeresis]n3u
-[idiaeresis]3n4ur
-[idiaeresis]3o
-[idiaeresis]3ri
-[idiaeresis]3ro
-4[idiaeresis]s.
-[idiaeresis]s3a
-[idiaeresis]4sc
-[idiaeresis]5sche
-[idiaeresis]s3l
-[idiaeresis]3so
-[idiaeresis]s3t
-[idiaeresis]1t
-[idiaeresis]5z
+î3
+ît4
+1ï
+2ï.
+ï5a
+ï1c
+ï1d
+ïe4n3
+ïe5nen.
+ï2n3a
+ïns5m
+ïn3sp
+ïn3u
+ï3n4ur
+ï3o
+ï3ri
+ï3ro
+4ïs.
+ïs3a
+ï4sc
+ï5sche
+ïs3l
+ï3so
+ïs3t
+ï1t
+ï5z
4j.
1jaar
jaar5tj
@@ -5579,7 +5579,7 @@ kie4s4t
kie5ste
kie4tj
kieze4
-2ki[ediaeresis]
+2kië
kijk5l
k3ijs
4kijv
@@ -5898,7 +5898,7 @@ ku3re
kur3s
3ku2s
kut3
-2k[ucircumflex]
+2kû
2kv
k3ve
kven4t3
@@ -6234,7 +6234,7 @@ lie4sp
lie3s4t
lie4to
li3eu
-3li[egrave]
+3liè
3lift
l4ig
li3go
@@ -6352,7 +6352,7 @@ l3maa
lmaat5
lm3a4ca
lm3af
-lma5[idiaeresis]
+lma5ï
l3mak
lm3arc
lm3art
@@ -6634,7 +6634,7 @@ m4ag
ma3gl
ma5go
ma3gr
-ma[idiaeresis]4
+maï4
ma5ka
ma5ke
5ma3k4r
@@ -6789,9 +6789,9 @@ mets5te.
meve4
m3e4ven
2mex
-3m[eacute]
-3m[egrave]
-3m[ecircumflex]
+3mé
+3mè
+3mê
2m1f
mfa3t
mf4l
@@ -7031,13 +7031,13 @@ nad4e
na5dra
2n1adv
5nae
-n3a[ediaeresis]
+n3aë
4n1af
na3f4lu
n2a3g4
na1h
3nai
-3na[idiaeresis]
+3naï
n2ake
na3k4l
na3kr
@@ -7282,7 +7282,7 @@ ne2u
ne3ums
neu5ste
2nex
-3n[eacute]
+3né
2n3f
2ng
ngaat5j
@@ -7317,7 +7317,7 @@ ng5lin
ng5lop
n3goe
ng3of
-n3go[idiaeresis]
+n3goï
n2g1on
ng5oor
ng5op
@@ -7470,7 +7470,7 @@ n5offi
n3o2ge
n5ogi
1nogr
-3no[idiaeresis]
+3noï
no3kl
no3k2w
no2li
@@ -7674,7 +7674,7 @@ nte5nach
ntene5ten
nte5rad
nte4rof
-n3t[egrave]
+n3tè
nt3ha
n4tho
n5thol
@@ -7754,7 +7754,7 @@ nxo4
4n3yo
2nz
nzet5s
-3[ntilde]
+3ñ
4o.
4oa
o3aa
@@ -7919,7 +7919,7 @@ oe5toe
oe4t3ra
oet4s3p
oet3w
-2o[ediaeresis]
+2oë
of3ar
of3at
o4fav
@@ -7996,7 +7996,7 @@ oi5sc
ois2p
oist2
ois5tj
-o3[idiaeresis]
+o3ï
2o1j
2ok
o3ka.
@@ -8288,7 +8288,7 @@ oot3h
oot5o
oot3r
oot4sl
-o1[odiaeresis]
+o1ö
2opa
o4p3ac
op3ad
@@ -8384,7 +8384,7 @@ ore4no
or2gl
o1ri
o5ria
-3ori[ediaeresis]
+3orië
o5rig.
o5rigere
o4r3ink
@@ -8480,7 +8480,7 @@ o3stas
o3stat
os5te.
os4tem
-o5stero[idiaeresis]
+o5steroï
os4th
os4to
os5toli
@@ -8607,13 +8607,13 @@ ow3r
o4x
oys4
ozet5
-[odiaeresis]3l
-[odiaeresis]1p
-[odiaeresis]pe1
-[odiaeresis]4r
-[odiaeresis]s4
-[odiaeresis]s5t
-[odiaeresis]5su
+ö3l
+ö1p
+öpe1
+ö4r
+ös4
+ös5t
+ö5su
4p.
4paan
paar5du
@@ -8709,7 +8709,7 @@ pe3de
pe3do
p4ee4
3pee.
-3pee[ediaeresis]
+3peeë
pee5li
4peen
5pees
@@ -8781,8 +8781,8 @@ pets5te
petu5
3peuk
5peut
-1p[eacute]
-3p[ecircumflex]
+1pé
+3pê
2p1f
2p1g
pge5s
@@ -8878,7 +8878,7 @@ poe2s3
poes5t
poets5te.
3poez
-3po[ediaeresis]
+3poë
p2ofa
3pogi
po5gr
@@ -9599,12 +9599,12 @@ roep3l
roe4rei
roet4j
4roev
-3ro[ediaeresis]
+3roë
r5offi
r4ofi
ro3fl
roges5
-1ro[idiaeresis]
+1roï
ro3kl
3rokm
rok3sp
@@ -10045,7 +10045,7 @@ s5bo
2sca
4sce
5scena
-5sc[egrave]
+5scè
3s4ch2
4sch.
sch4a
@@ -10199,8 +10199,8 @@ se4ven
4s1ex
4sez
se2ze
-3s[eacute]
-3s[egrave]
+3sé
+3sè
2s1f
4sfed
s5fei
@@ -10239,7 +10239,7 @@ si5an
sici4
si3co
3sie.
-3sie[ediaeresis]
+3sieë
sie5fr
sie5kl
siep4
@@ -10249,7 +10249,7 @@ sie3so
sie3st
sie5ta
sie5to
-si5[egrave]
+si5è
si1f4
5s2ig
si5go5
@@ -10327,7 +10327,7 @@ sk4i
3s2ki.
3skied
skie3s
-3ski[ediaeresis]
+3skië
ski5sc
s2k3j
s3ko
@@ -10502,7 +10502,7 @@ s1oge
so3gl
3sogy
5soi
-3so[idiaeresis]
+3soï
3sok
s2ol
5sol.
@@ -10618,7 +10618,7 @@ s3plu
sp4o
s2poe
s3poes
-4spo[ediaeresis]
+4spoë
4spog
4spol
2s3pom
@@ -11203,8 +11203,8 @@ teve4r
3tex.
4t3exe
4texp
-1t[eacute]
-t[egrave]3
+1té
+tè3
4t3f
4t3g2
tgaat5
@@ -11461,7 +11461,7 @@ to5rec
t5orga
t4ori
3toria
-to4ri[ediaeresis]
+to4rië
tor3k
tor4m3a
toro4
@@ -11492,7 +11492,7 @@ tpi3s
tr4
3tra.
4t3raad
-5trac[eacute]
+5tracé
5trafo.
3trag
4tragez
@@ -11539,7 +11539,7 @@ t3roed
t3roes
5trofy
3trog
-t4ro[idiaeresis]
+t4roï
5troj
4trol.
5trola
@@ -11689,7 +11689,7 @@ tt3uu
3tuch
3tu3e
5tueu
-tu3[eacute]s
+tu3és
3tuig
5tuin
4tuip
@@ -11783,7 +11783,7 @@ ue3st
u1eu
u5eul
u3ez
-u3[egrave]
+u3è
u4f3an
u1fl
u1f4r
@@ -12063,7 +12063,7 @@ u4s5l
u4sm
u2s5n
uso2
-us3o[idiaeresis]
+us3oï
us3os
u2s3p
us5pi
@@ -12166,12 +12166,12 @@ u3ya
4uz
uze3t4
uzie2
-[ucircumflex]t3s4
-1[udiaeresis]
-[udiaeresis]4b
-[udiaeresis]1n
-[udiaeresis]3ri
-[udiaeresis]s3l
+ût3s4
+1ü
+ü4b
+ü1n
+ü3ri
+üs3l
1v2
2v.
vaar4ta
@@ -12574,8 +12574,8 @@ y5dr
ydro3
y1e
yes3
-y3[eacute]s
-y3[egrave]
+y3és
+y3è
y1f
y1g
ygu2
diff --git a/Master/texmf-dist/tex/context/patterns/lang-no.pat b/Master/texmf-dist/tex/context/patterns/lang-no.pat
index 49eea0fd93c..bdb39a68d90 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-no.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-no.pat
@@ -33,2379 +33,7 @@
% begin pattern data
-\patterns {
-.ae3
-.ak3k2l
-.ak3k2r
-.an1d2ra
-.an3k
-.an1s
-.anti1k2l
-.anti1k6r
-.anti1k4v2
-.anti1p
-.be5la
-.be1t
-.bi4tr
-.der3i
-.der4iv
-.de2s1to
-.diagno5
-.di4s3
-.ek2s1k
-.ek4s5p
-.er1in
-.er1ob
-.for4st
-.hove4d3
-.hoveds2
-.il4t1r
-.nabo1
-.om1
-.ove4
-.pro1g6r
-.pro5k2l
-.pro1sp
-.re4in
-.re4u
-.sinn4s1t
-.si4s3te
-.sk6
-.stat4s5
-.st4r
-.s[aring]3
-.s[aring]5re
-.til3
-.unn3s2l
-.ve4l1e4g
-.ve4l1e4t
-.yt5r
-.[ostroke]v3r
-.[ostroke]y4e
-a1a
-a2b1av
-ab1le
-a2b1re
-3abst
-ade5la
-5adg
-ad2op
-ads2k
-ad1st
-a1e
-ae4der
-ae2ne.
-a1fj
-a4f3le
-a4gef
-a4gi
-ag5in
-ag3l[ostroke]
-ag5si
-a4gy
-a3h
-a1ikk
-a1ing
-a1isk
-a1ism
-a1ist
-a3j
-a1k
-a3ka
-a4kad
-a2kb
-a2k1d
-a3ke
-a2kf
-a2kh
-a4kk
-a2kl
-a2kn
-a3kr
-ak2rel
-ak3s2m
-a4kt
-3akti
-a3la
-a4l1ad
-alder4s5
-a1le
-a1li
-a4l3ins
-a2l1i2so
-al3k
-al4kn
-4alkv
-all2s5kap
-a1lo
-a2lomr
-a2l1oms
-al1sa
-al5si
-al1st
-a3lu
-a1ly
-a1l[aeligature]
-1a2manu
-am4pa
-3a4naly
-an3erk
-an5g2rep
-an5g2rip
-ang2s3e
-ang3s4et
-ang3s4ik
-angs3in
-ang3som
-an1ion
-an1i2so
-an4k5r
-an5si
-1ansku
-an1s2t
-an1sv
-a3nu
-3anv
-a5o
-ao2pe
-a5pe
-a3pi
-a5po
-ap3p4lau
-ap3p4li
-ap3p2re
-ap3p2ro
-a1ra
-ar5av
-1arb
-a1re
-a2rea
-3arg
-a1ri
-1arkiv
-a3ro
-ar3so
-ar1st
-a1ry
-a1r[aring]
-a3sa
-a1si
-a3so
-as4s5kr
-as4t3ro
-a1ta1
-a2t1aks
-a1te
-a5t2e5g
-a1ti
-a1to
-ato5v
-a3tr
-a4t1re
-at1s4pr
-a1tu
-a3t[ostroke]
-a1t[aring]
-a4u4v
-aue4r
-a5va
-a1ve
-av1b
-3avg
-a1vi
-1a2vis.
-1a2vise
-3a4v1l
-av3r
-av1s4
-av1v
-a5v[aeligature]
-a3z
-1ba
-ba4k1
-ba4k2e
-ba5k2er
-ba5k2u
-ba4ti
-4b1b
-b2b1h
-b2b1k
-b2b1l
-b2b1m
-b2b1t
-4bd
-1be
-be1dra
-be1driv
-be1dro
-be1k
-be3kj
-be3ro
-be5ru
-be3s2
-bes4p
-be4s3te1
-be5s4te2m.
-be5s4te2mm
-be5s4te2mt
-be1tr
-1bi
-b1j
-blom4st3r
-1bl[aring]1
-4b1n
-1bo
-bo4gr
-bo3ra
-bo5re
-bor2t5r
-1br4
-1bruk2s1
-bry5som
-br[ostroke]d3
-4bs
-b1si
-b1s4k
-b3so
-b1st
-b5t
-3bu
-bu4s5tr
-4b1uts
-b5w
-1by
-by3s
-5b[aeligature]
-1b[ostroke]
-1b[aring]
-1ce
-1ci
-ci3e4s1
-3da
-d5anta
-4d1art
-da4s
-5dat
-4d3av
-d1b
-d2b1k
-4d1d
-d2d1b
-d2d1f
-d2dh
-d2d1p
-d2d1r
-d2d4s1
-d2d1t
-d2dv
-d2d1[aring]r
-3de
-de5d
-ded4ren
-4de4lem
-de2n1om
-de4n1un
-der5eri
-de4r1etter
-de4rig
-de4s3ill
-d1f
-2d5g4
-d3h
-1di
-di2ale
-di2alo
-di1e
-dig5sti
-di3l
-di4ll
-2d1int
-di5s4i
-dis4k3l
-dis5t6r
-d3j
-d1k
-d1l
-d1m
-4d1n
-3do
-dom2s3l
-do1o
-4dop
-4d1ord
-4d5ov
-d1p
-3d2rif
-d1risk
-3dr[ostroke]v
-ds5an
-ds5av
-d2s1ev
-ds5in
-ds1k
-2d4s3l
-2d4sm
-d2s3n
-ds3or
-ds1p
-ds3s4k
-ds3s2l
-ds3s4t
-ds3s4v
-d4s1tj
-dst[aring]4
-d4su
-ds5v
-d5s4y
-d3ta
-d5t2e
-d1to
-d3tr
-1du
-dub5
-d1v
-3dy
-3d[ostroke]
-d[ostroke]r1g2l
-4d1[ostroke]s
-e1ab
-e2abi
-e5ad
-ea1g
-e3ak
-e1al
-e2a1li
-e3a2l1inn
-e3an
-e4ane
-e4ano
-e5ap
-e1a2rea
-e1ark
-e1a1t
-e2atra
-ea4t1re
-e1a2tt
-e3av
-e1b2l
-eblikk4s5
-ebs3
-e1ch
-e4d5ar
-edb2l
-e4d1ei
-ed3re
-ed3rin
-ed4str
-e1d[aring]
-e3e
-4eelem
-ee2ne.
-ee4r
-3eff
-e3fj
-e3fr
-egg5a
-e4ggek
-e4gg1r
-eg2g4s5
-e1gr
-e3gu
-e1h
-e4i
-eid2s1
-eid4s3k
-eid3s2om
-eid4s3t2
-eid4s3pr
-eie4r
-e5inn
-e5inv
-ei5el
-e5isk.
-e5iske.
-e1j
-e2jn
-e2k
-e3ka
-e3ke
-2e3kj
-e3k2l
-e4k3ler
-e4k3let
-e4k3ling
-4e3ko
-e3kr
-ek5sa
-3ek5sem
-eksi5s2t
-3eksp
-ek4s3t
-eks4t1av
-ek5su
-e3ku
-e5kv
-e5ky
-e1la.
-e3lad
-e1lag
-el3ak
-el1al
-el3ar
-e1las
-e3le
-e4lek
-3e4lem
-e1li
-4elig
-5elim
-e4l3int
-elle2
-e3lo
-e4l1om
-el5sa
-e4lse
-el5s4en
-el1to
-el4t1ri
-el4t1ro
-e5lu
-e3ly
-e3l[aeligature]
-e3l[ostroke]
-em4p5le
-em1s
-em2s1l
-e1mu
-en5ak
-e4nan
-en1d2rek
-en5g2rad
-en5g2ro
-4enn
-en1opp
-e2nord
-en4s3inte
-en3so
-en1s4v
-ents1k
-e3nu
-e4n1ut
-e4n1[ostroke]2v
-e1n[aring]
-e2n1[aring]r
-e1o
-e2o3an
-e2o3d
-e2ogr
-e2o3li
-e2o3o
-eo2pe
-e3opp
-e3ord
-e3ov
-epi3
-e1pl
-e1po
-e1pr
-e3ra
-e4rag
-e4rak
-e4r3av
-er1d2r
-e3re
-er5ege
-e4r1ess
-er4g3r
-e3ri
-e4rib
-e4r1inn
-er1k
-er2kna
-er2kni
-er2kt
-er3o4pp
-ero5d
-er5ov
-er1s
-er2sk
-er3s2ki
-er3s2kj
-er3som
-er5t4r
-e3rum
-er5un
-e5ry
-e3r[ostroke]
-er5[ostroke]n
-e3se
-e3si
-e4s1m
-e3so
-e5sper
-e4s3ting
-e1ta
-eta1b2le
-e1te
-etek4s
-e1ti
-e3tj
-e1to
-e3tr
-e4t1ris
-ette6r1a
-e3tu
-e1ty
-e5t[aeligature]
-e5t[ostroke]
-e1u2ke
-eu1kl
-e3um
-e3un
-3euro
-e1usi
-e3ut
-e1va
-e3ve
-e4v3erf
-e1vi
-e1v[aeligature]
-e3[aeligature]2
-2e3[ostroke]2
-e5[aring]
-e[aring]4r
-1fa
-fa2g1r
-fags3
-fall2s1
-f4ar
-fa1se
-fa4t1r
-f1b
-f1d
-3fe
-fei2l5o
-fe5no
-fe2s1t
-fe5s4tere
-fe5s4tert
-f1f
-f2f1b
-f2f1c
-f2f1k
-f4f3l
-f2f1m
-f2f1opp
-f2f1r
-f2f1s
-f1g
-f1h
-1fi
-fis4k3l
-f1k
-3f2l
-5f4la
-1fo
-fol2k5l
-fo2r1an
-for1d2ra
-for1d2riv
-for1edl
-fo2r1eld
-fo2r1els
-for1e2vig
-fo4r1e6n
-for1g2l
-fo4ri
-fo2r1o
-for1som
-for5st
-for3u4
-fo2r1[ostroke]4
-f1p
-fra5t2
-fred1som
-frie4re
-f1s4
-4ft
-ft1b
-f3ta
-f1te
-f1ti
-ft4s3
-fts5k
-ft5s4pr
-ft4s[aring]r
-f5tvi
-1fu
-f1v
-3fy
-3f[ostroke]
-f[ostroke]5f4
-f[ostroke]l1som
-f[ostroke]4r5en
-f[aring]1k
-1ga
-2g3art
-gart4s5
-g1b
-g1d
-3ge
-ge1d4ren
-4gelem
-4g5enden
-ge2o
-ger3in
-ge3s
-g3f
-4g1g
-g2g1b
-g2g1d
-g2g1f
-g2g1h
-g2g1l
-g2g1m
-g2g1s
-g2g5t
-g2g1v
-g1h
-1gi
-gi1b
-2g1inte
-gi1on.
-gi1one
-gi1ons
-gi1po
-gi5st4r
-5gj
-gje2n
-3gj[ostroke]1
-g3k
-g1l
-1g2lad
-1g2las
-g2lb
-1g2lyf
-1g2lys
-g2l[ostroke]
-g1m
-gn1d2r
-g1nu
-3go
-4g3om
-g5ov
-2g3p
-1gr
-gra2m1a
-5g4rav
-5g4rens
-5g4rep
-5g4r2o5v
-gro6v5s
-5g4rup
-gr4u
-g4s3a
-g5s4at
-gsde4len
-gsha4
-g3sla
-g2s1n4
-gs3or
-g4s3p
-gs3s2k
-gs3s2t
-g4sti
-g1su
-gs3v
-g4s5y4t
-g4s1[ostroke]
-g3s[aring]
-g3t
-g4t1i1f4
-g3v
-1gy
-g5yd
-3g[aring]
-4ha.
-ha2s1t
-h4av
-hav2s5p
-hav2s5m
-heds3
-he4r1etter
-5het
-het4s5
-2h1h
-hi4e
-hi3s
-ho5ko
-ho1pe
-ho5ve
-hovs3
-4h3t
-hun4
-hun5nen
-hun5kj
-hund3
-hu4s3tr
-hve4r3an
-hvo4
-i1a
-i2a1b4
-i3a2b5le
-i2a1d
-i2a1f
-i2a1g2
-i2a1k
-i2a1li
-i2a1m
-i2a1ne
-i2a1s
-i3a2s1m
-i3a2s1t
-i2a1t
-i3b
-i4b1le
-i3dr
-ids5k
-idi1om.
-idi1ot.
-id4t1
-i1e4gen
-i2ek
-i1el
-i1en
-4i5en.
-i5e2ne.
-i2eo
-i2ep
-i3er
-i2es
-i3es.
-i3et.
-i2eti
-if3f2r
-i4f3le
-if3r
-i5fto
-i3gu
-i4gut
-i3h
-i5i
-i5j
-i1ka
-i1ke
-i1kj
-ik2k1ord
-ik1l
-ik5led
-i5ko
-ik3re
-ik5ri
-iks5t
-ik4tu
-i3ku
-ik3v
-i3lag
-i3le
-il5ei
-il5el
-i3li
-i4l5id
-i4l3int
-il3k4
-ilmeld5
-ilmel4di
-i1lo
-i5m2u
-ind4eks
-in1eks
-3inf
-ing2s1
-in4n1ar
-in4n1ad
-in2n1ord
-inn5s4e
-inn3s2l
-in2n3t
-in2n1u
-in4n1y
-in1s
-in4sv
-5integ
-intet5s6
-in2t1re
-i3nu
-io3a
-i5pi
-i3pli
-i3plu
-i5pr
-i3r
-i4rd
-i4rf
-i4r3k
-ir4k3n
-i3ri
-i4rl
-i4r1m
-i4r1s
-i4r5t
-i4r1v
-i1s
-i2sf
-i3si
-i2sk
-is5kj
-is1ko
-is5ku
-is1k[ostroke]
-i2sl
-i4sm
-i2s1n
-i4s5p
-i2sr
-i2s1t
-i3s2to
-i2s1un
-i3s2und
-i5sua
-i2s1v
-i1ta
-i1te
-i1ti
-i3to
-i3tr
-i4t5re
-i1tu
-i3ty
-i5t[aeligature]
-i1u
-i2ume
-ium2s1
-i1va
-i1ve
-i1vi
-i1[ostroke]
-i[ostroke]4k
-i2[ostroke]1si
-i1[aring]4r
-jds1
-j4e
-je2s1t
-j5k
-ju5s2t
-3kap
-k2arb
-ka2s1t
-1kav
-k5b
-k1d2r
-kel5s
-ke1mu
-2k1endr
-2k1e2nerg
-ke1ple
-ke3sk
-ke4s1kv
-ke3s2t
-2k1f
-4k1g
-k3h
-ki3e
-1k2ing
-ki4n1u2
-3kj[ostroke]
-4k1k
-k2k1aks
-k2k1a4naly
-k2k1a2rea
-k2k3arb
-k2k1au
-k2k1av
-k2k1b
-k2k1d
-k2k1ei
-k2k3f
-k2k1g2
-k2k1h
-k2k1int
-k2k1l
-k2k1m
-k2k1n
-k2k1opp
-k2k3p
-k2k1r
-k2k1s
-kk1s4a
-kk2s5av
-kk2s1f
-kk3s4k
-kk3s4n
-kk3s2pe
-kk2s1s
-kk3s2l
-kk3s2t
-kk4s3tep
-kk2s1v
-k2k3t
-k4k1ut
-k2k3v
-k2k1[ostroke]k
-k2k1[ostroke]l
-6kl.
-k5lak
-kla4t1r
-k1le
-k4led
-k1lig
-3klu
-kne2b3l
-k4ny
-3kod
-1kon
-1ko1o
-ko3ra
-3kort
-ko3v
-k1pl
-k1pr
-1kra
-kraft5s4
-5kry
-kry5sta
-4k1s
-ks3an
-k2s1f
-k1si
-ksi3st
-k2s3k
-k2s3l
-k2s1m
-k2sn
-k2s1p
-k2s1r
-ks3s2t
-k2s3tant
-k2ste
-k2s1ti
-k2str
-k2stu
-k2s5v
-k1t
-6kt.
-k4tar
-k2td
-k4terh
-kti4e
-k2t1inn
-k2tm
-k2tn
-k2t1opp
-k2tov
-k2t5re
-kt3s
-kt4s1al
-kt4s1dr
-kt4s1f
-kt4s1g
-kt4s1kil
-kt4s1kon
-kt4s1l
-kt4s1m
-kt4s1p
-kt4s1r
-kt4s1s
-kt4s1tr
-kt4s1ut
-kt4s1v
-kt4s1[ostroke]kn
-k2t1ut
-k2tv
-ku2e
-ku3el
-ku3er
-ku3et
-2kuly
-3kur
-1kus
-ku2s1t
-3kut
-1k4var
-k2ved
-k2vet
-1k2vis
-1k2vot
-k4vu
-3k[aring]
-1lab
-lad3r
-la1d4ra
-5lagd
-la4g1opp
-la4g3r
-1lam
-4la4nal
-la2s1t
-1lat
-l1b
-ldiagnos5
-ld1r
-ld1so
-ld2s1t
-1le.
-1led
-le4k1re
-4lele
-le4mo
-1len
-le2o
-1ler
-1les
-1let
-leu2m
-l1f
-lfin4
-lfind5
-l1go
-l1g[aeligature]
-l3h
-li4ga
-1ling
-2lingeni
-li1on
-li2on[aeligature]
-l3j
-4lk
-l1ka
-l1ke
-l1kj
-l1k2l4
-l1ko
-lk3s4k
-lk3s4p
-l3ky
-4l1l
-l2l1au
-l2l1b
-l2l1d
-ll4e
-l2l5e2sti
-l2l1f
-l2l1g
-l2l1h
-l2l1k2
-l2l1l
-l2l1m
-l2l1oks
-ll2om
-l2l3omr[aring]
-l2l5opp
-l2l1os
-l3l2o1sk
-l2l1r
-l2l1s
-ll2s1d
-ll2s1f
-lls4i
-lls4k
-ll3s2l
-ll4s3lo
-ll2s1m
-ll3s2med
-ll2sn
-ll2s3ord
-ll2sr
-ll2s3s2t
-ll4s3try
-l2l1t
-l2l1v
-lm1opp
-l5mu
-lo4du
-l3op
-2lo2per
-l4opp
-4l1ord
-4l3org
-3lo2v
-l2o5ve
-4l3p
-l4ps
-l4pt
-l3r
-4ls
-lses1
-l1sig
-ls3in
-l5sj
-ls1l
-ls3s2l
-ls3s2t
-6lt.
-l1ta
-lt1bl
-l1te
-l4t5erf
-l3ti
-lt3o
-l3tr
-lt3s6
-l3tu
-l1ty
-lu3l
-lut2t5r
-lv1an
-l3ve
-l3vi
-l2v1l
-l2v1s
-l3v[aeligature]
-l4v1[aring]4r
-l[ostroke]nn2s5kr
-l[ostroke]nn2s3n
-l[ostroke]nn2s3tr
-l[ostroke]nn2s3[ostroke]k
-l[ostroke]p4s1
-5l[ostroke]s
-1ma
-ma2g1r
-ma4k1ro
-2ma4nal
-m1b
-mbet2s1
-mb2l
-m3d
-1me
-2melem
-ments1
-mer2kv
-me4t1re
-m4e1ur
-m3f
-m1g
-m3h
-1mi
-mi3k
-mi4k1ro
-min2s3
-mi4o
-mis3s2t
-mi4s3ta
-m3k
-m1l
-4m1m
-mmen5
-mm2end2r
-mm2ut
-m1n
-3mo
-mo4da
-4mop
-m1opp
-mor1som
-mot1s2v
-4m5ov
-m5pa
-m1pe
-m3pi
-m3p2l
-m5po
-m3pr
-mp5s4kr
-m1p[aring]
-m1r
-mse5s
-ms5in
-m1sk
-m1s2ki
-m2s1kl
-m2s1kr
-m4s5p
-ms3s2t
-ms3v
-ms1[aring]r
-m3ta
-m3te
-m3ti
-m3tr
-m3tv
-m3ty
-m5t[aring]
-4m1ut
-1mul
-mu1li
-2m1ull
-m1v
-3my
-3m[aeligature]
-3m[ostroke]
-m[ostroke]d1re
-3m[aring]
-3na
-4nak
-4n1art
-na2s1ki
-na4t1re
-n1b
-4nd
-nd3d2
-nd1k2l
-nd1r
-nd5si
-nds5n
-nds1om
-nd5s4p
-nd6s5par
-nd3st
-1ne
-ne4da
-ne4d1r
-ned5s4l
-ned5s
-ned6sv
-ned5t
-ne5in
-nemen4
-nement5e
-ne5sl
-ne4utr
-ne[aeligature]3r
-n1f
-n4g1enh
-n2g3lys
-ng3l[ostroke]
-n4go
-n4g1r
-ng4s1la
-n4g4s3t
-ng5s4tige
-ng5s4toff
-ng4s1u
-ng4s1[aring]r
-n1gu
-4n1h
-1ni
-ni3e4s
-5ning
-ning6s5
-ningst6
-2n1inj
-2n1j
-nje3s2ty
-n1ka
-n1k4e
-nk1in
-nk5led
-nk3k2r
-n1kj
-n1ko
-n3kr
-nk3s4k
-nkt4s
-nkt5s4k
-n3ku
-nk1v
-n3kj[aeligature]
-4n1l
-n1m
-4n1n
-n2n1ak
-n4na4na
-n4n1ant
-n2n1b
-n2n1d2r
-n2n1ei
-n2n1eur
-n2n1f
-n2n1g
-n2n1int
-n2n1k6
-n2n1m
-n2n1ove
-n2n1p
-n2n1r
-n2n1s
-nn2s1ar
-nn2s1av
-nn2s1d
-nn2s1ei
-nn2s5e4ff
-nn2s1f
-nn2s5kl
-nn2s1l
-nn2s1m
-nns2n
-nn2s1ord
-nns4p
-nn2s5pl
-nn4s5pr
-nn2s1r
-nn2s1s
-nn2s1ut
-nn2s1v
-nn3s2vin
-nn2s1[ostroke]2ko
-n2n1t
-n2n1ut
-n2n1[aring]r
-nn[aring]4re
-1no
-2n3ord
-n5p
-n3r
-4ns
-ns4e3f
-nse4ff
-ns4e1p
-n3si
-n5s4inf
-nsin1k
-n4s1inn
-n2s1kom
-n2skt
-n1s4ku
-n2s1omr
-ns3po
-ns3s4k
-ns3s2t
-n1sta
-n1s2tem
-nst1v
-n1sty
-6nt.
-n1ta
-nta3le
-n1te
-n1ti
-ntiali4
-n3to
-n1tr
-nt4su
-n3tu
-n4t1ul
-n3ty
-n5t[aeligature]
-2nuly
-4n1v
-3ny
-n3z
-3n[aeligature]
-3n[ostroke]
-o2a
-oa4nal
-o3ar
-o4as
-ob3li
-o2b1r
-odel2s1t
-o4din
-od5ri
-o1e
-2oelem
-oe2ne.
-oe4r
-o4f3le
-of5r
-o4gek
-o4gel
-og5re
-og5sk
-o5h
-o1i4d
-4o3in
-o1isk
-o1ism
-o1ist
-o1j
-o1k
-o3ka
-o1ke
-o2k1h
-o4k1l
-o2km
-o4kn
-o2k1t
-o3ku
-o3la
-o3le
-o1li
-o1lo
-ol4t1r
-o3lu
-o5ly
-o5l[aeligature]
-o2marb
-om2ele
-om2ene
-1omr
-om1si
-om1sl
-om1s4ve
-o4n1av
-on5g2r
-on3k
-o1nu
-oo2pe
-o1p6e
-o3pi
-op4p1ad
-op4p1arb
-op2p1etter
-op2p1of
-op2p1und
-op2p1[ostroke]2
-1opsj
-1o4ptim
-4or.
-o1ra
-3ordn
-ord3s
-o3re.
-o3reg
-o3rek
-o3ren
-o3rer
-o3re3s
-o3ret
-o3ri
-3o4rient
-or5im
-o4r5in
-or3k
-or2n1ne
-o1ro
-or3sl
-or3so
-or3s2t
-o2r1t4r
-o1r4u5m
-o1r[ostroke]
-or5[aring]4r
-o1sa
-o3si
-o3so
-os1tu
-o3t
-o4t1v
-o5un
-o1v
-1o4ver
-over1al
-ove4r3an
-ove4r1ens
-over5s4
-o4v1l
-o2v4s
-ov5si
-o5[aring]
-3pa
-pa5gh
-p5anl
-p3d
-3pen
-1per
-pe1ra
-perb2l
-pe3s
-pe4sk
-pe4u
-4p5h
-1p2la
-plag1som
-pla4s3t
-5p4lek
-ple2o
-ple4u
-1p2lo
-p4l[ostroke]y
-p3m
-p3n
-pne4u
-5pok
-4po3re
-po2st1o
-po2st1[aring]
-3pot
-potet5s6
-4p1p
-p2p1b
-p2p1d4
-p2p1evn
-ppel1s4in
-p2p1f
-p2p1g
-p2p1il
-p2p1j2
-p2p1k
-p2p3l
-p2p1m
-p2p1n
-p2p1over
-p2p1r
-p2p1s4
-pp5s4kr
-p2p3t2
-p2p1v
-pr4ak
-1pre
-1pros
-6ps.
-p3s2k
-p4s3kau
-p4s3kr
-4p3so
-ps4p
-ps3s2t
-p3st
-ps3v
-2p1t
-6pt.
-p2t1r
-1pu
-pu5b
-p5ule
-p5v
-3py
-5ped
-1p[aeligature]
-p[aring]3
-p[aring]4sk
-p[aring]5skj
-p[aring]5s4kr
-p[aring]5sku
-p[aring]5sky
-qu4
-ra5is
-rak1au
-ral1v2a
-4r1angi
-4rarb
-r4avl
-r1b2
-r4d5ar
-rd3d2r
-r4deks
-rd1n
-rd1r
-rd4s3
-rd5s4e
-rd5s4j
-rd5s4ki
-rd5skj
-rd5s4p
-rd5s4t
-redd5s2om
-re1dra
-2reff
-1rel
-re5la
-6relem
-4r1endr
-2r1e2nerg
-1re2o
-1re3org
-re1pe
-re3sp
-5r2essu
-re5s4tere
-re5s4tert
-4r1e2stim
-re5s4u
-re5u2ni
-r1f
-r1gu
-r1h
-ri3abe
-ri1e
-rig4s1
-rik4s1
-ri5la
-4rimo
-r4ing
-2r5ingeni
-ringse4
-ringso4r
-4rinp
-4rint
-ri1od
-ris3s2t
-r1j
-r3ka
-r2kb
-r1ke
-r1ki
-r1k2l
-r1kr
-rk3so
-rk4s3pr
-r3ku
-r5kj[aeligature]
-r1l
-rm1s6l
-r3mu
-r1n
-r2n2s1n
-r2n1f
-ro1b
-ro3p
-ro4p4s
-ropp2s5
-4ropti
-r3ord
-r3org
-r3ork
-r3p
-r4p1s
-rps4k
-4r1r
-r2rakti
-r2r1b
-r2r1d
-rrd2r
-rre3s
-r2r1f
-r2r1g
-r2r1k
-r2r1l
-r2r1m
-rro4n5
-r2r1p
-r2r1s4
-r2r1v
-r1sa
-r1si
-rs1k
-r3s2ka
-r4s4k1n
-r3s2ko
-r3s4kr
-rsk3t2
-r3s4ku
-r4s4k5v
-r3s2ky
-r3s2k[aring]
-rs4n
-r2s5n[ostroke]d
-r2som
-r3sp
-r4s1po
-r4s3r
-rs3s4k
-rs3s4t
-r5s2tu
-r5su
-r3s4v
-r3s4[ostroke]
-6rt.
-r1ta
-r5tal
-r1te
-r4teli
-r1ti
-r1tj
-r3to
-r4t5or
-rt5rat
-rt3re
-r5tri
-r5tro
-rt3s
-rt4s1d
-rt4s1f
-rt4s1kon
-rt4s1lig
-rt4s1m
-rt4s1r
-r5ty
-r5t[aeligature]
-r5t[ostroke]
-run4da
-ru2s1t
-r1uts
-r3va
-r1ve
-r3vi
-r2v1l
-r1v4r
-r3v[aeligature]
-ry4s
-4r[ostroke]n
-5r[ostroke]r
-r[ostroke]1vi
-3r[aring]d
-s3af
-5s6aga
-3s2ak
-sak2s1
-sak3s2e
-sak3s2[ostroke]k
-1sam
-sa4ma
-sam5s6
-s3ap
-s1ar
-2sart
-sa2rea
-1sat
-4s1b
-1s2ce
-1s2ci
-6s1d
-sdy4
-1se
-s4ed
-4s1e4gen
-sek4s
-2seksp
-se5lek
-sel1som
-2s1e2nerg
-2s1endr
-sen2t1re
-sen3t2rer
-se2ps
-4s1erkl
-se5ro
-se5ru
-se4som
-se4s3pr
-4s1evn
-s1f
-3s2f[aeligature]r
-4s1g4
-sim4p3le
-sin1d2rev
-4s3h
-4sinf
-s6ingu
-4s1i2ni
-si3s2te
-si4s3te.
-si5stens
-5sit
-si2tera
-5siu
-3sj
-4sj.
-sjek2t1a
-5s4jon
-sjon4s5
-s3ju
-s4juk
-5s2j[ostroke]
-sj[ostroke]l1
-6sk.
-3s4kaf
-3s2kala
-3s4kap
-4s5kapa
-skap4s3
-3s2katt
-s2k1d
-2s1ke
-s2k1h
-1ski
-s2kildr
-ski4n1a
-2s1king
-s2kip
-skip4s5
-1s4kj
-s4kj[ostroke]v
-s3k2l
-4s5koef
-3s4kole
-s3kr
-3s4krank
-3s4krap
-s4kei
-3s4krenk
-3s4krev
-5s6krib
-3s4krid
-3s4krif
-5s6krip
-3s4kriv
-3s4kritt
-sk5s4
-6skt.
-skue4r
-s4kut
-3s2ky
-s4k[aring]
-sk[aring]n1som
-sl4akt
-s1le
-slen2t1r
-1s2lett
-s2leng
-s2lep
-s1li
-1s2lip
-s2lit
-slit1som
-slo3
-3s2lu
-s5ly
-s2l[ostroke]r
-3sl[aring]
-s1m
-s2murn
-s2murt
-sm2ut
-s4my
-s4m[ostroke]ri
-sn2a
-1snak
-sne4k1r
-s2nik
-4snin
-1s4nit
-snitt4s1t
-s4n[aeligature]
-so3k
-5sol
-4s3omf
-4s3omk
-4s3omr
-som4tv
-3son
-4s1o2pp
-4s1ord
-sp4
-s4palt
-s4pan
-spar1som
-3s2peil
-3s4pen
-s2pera
-s2perr
-3spes
-3s4pi
-s1pl
-3s2pr
-spr[aring]k1l
-spr[aring]k1v
-1s2pur
-s4py
-s5r4
-4s1s
-s2s1all
-s2s1b
-s2s1d
-s3s4en
-s2s1f
-s2s1inj
-s2s1inn
-s2s1k
-ss2kr
-s2s1l
-s4s3luf
-s2s1m
-s2s1op
-ss2pl
-s4s3pr
-s2s1r
-s2s1t
-ss3tab
-s4s1u4l
-s2s1v
-s2s1[aring]
-6st.
-1s2tab
-5s4tam
-3s2tan
-4sta4na
-3s2tasj
-3s2tat
-1stav
-2st1b
-4s4td
-s1te
-4ste.
-3s2ted
-4s3teda
-st2eg
-3s2tein
-4sten.
-s2tendelig
-s2tendig
-4stene.
-1s2teng
-4stens.
-4s3teo
-4ster.
-s2terk
-4stes.
-4stet.
-s2teu
-1sti
-2stid
-3s2tikk
-3stj
-6s2t1m
-1sto
-s2t5om
-3s2t2r
-5s4trat
-6s4t5re.
-6s4t5rene.
-6s4t5ret.
-4s4t3ring
-4s3tro
-5s4truk
-5s4tr[ostroke]m
-str[ostroke]ms5
-4st1s
-5s2tud
-st4uv
-2s2t1v
-1sty
-5s6tyr
-5s2t[ostroke]
-3s2t[aring]
-1su2b1
-s1u2ke
-suk1r
-3sul
-5s2um
-3sur
-sur4s5k
-2s1u2t
-s2var
-svar4s
-s3ve
-s4vev
-s4vu
-s4v[ostroke]
-3s4y
-syn1d2r
-1sy1s
-1sys2t
-1s[aeligature]
-s[aeligature]2r1e4g
-s[aeligature]2r1e2i
-s[aeligature]r1int
-1s[ostroke]
-s[aring]4r
-5ta.
-ta1b2lett
-1tag
-ta4l1ak
-tanns3
-4tanv
-1ta4s3t
-ta5s4t4r
-t4avl
-4tb
-tede4l
-te1dra
-teds5
-1teg
-4t1e4gen
-5tekn
-te5lek
-te2n1om
-te2o
-teo1re
-te5ret
-5term
-te3ro
-tes2teks
-te5s4tere
-te5s4tert
-2t1e2stim
-tet4s5
-te4uto
-4t5f
-6t3g
-4t1h
-tialis5t
-3tid
-tid4s5
-ti4en
-til1d2r
-ti4l3eg
-ti4li4s
-til1s2t
-2t1i2tera
-ti5t6r
-ti[ostroke]4
-tj4uv
-4t3k
-4t1l
-tli4s5
-4t1m
-4t1n
-t4ok.
-4t1o2per
-to1po
-4topti
-to3ra
-to4r1ar
-to4r1as
-to4r1au
-to4r1av
-to1re
-to1ri
-tor4m
-4t3p
-t4r4a
-tran4s
-tr4eff
-3trekk.
-4tres
-t6rettel
-4t1ring
-tr2o5ver
-1try
-t4r[aring]d
-4ts
-t3si
-t4s1inn
-t1s2kr
-ts1kv
-ts4pa
-ts3pr
-ts3s2k
-ts5s2t
-t3st
-ts1v
-t3s[aring]
-4t1t
-t2takti
-tte4r
-tte5ra
-tte6r1alg
-tte5re
-tte5ri
-tte5r[aeligature]
-t2t1h
-t2t1inn
-t2t1m
-t4t1opp
-t2t1s
-tt2s1adv
-tt2s1ald
-tt2s1an
-tt2s1ar
-tt2s1d
-tt2s1f
-tt4s1j
-tt2s1k
-tt3s4kr
-tt2s1l
-tt2s1m
-tt2s5p
-tt4s1tj
-tt2s1v
-t2t1v
-t2t1[aring]4
-t5uts
-5tur
-t3ve
-tvil1som
-1t2vist
-t4vu
-t3v[aeligature]
-tynn3s2l
-1typ
-tys4k3l
-u1a
-u2ale
-u3alen
-u3aler
-u3alet
-u2ali
-u2ane
-u2are
-u2asj
-1u2av
-ud3d4hi
-ud1r
-u1e
-u3e2n
-ue4t5
-uf5f4l
-ug3l[ostroke]
-ugs3
-u5gu
-u3i
-u4ida
-u4ide
-u4idum
-u4ine
-u4ise
-u5i2sen
-u4isj
-u4ite
-u4iti
-u1ke
-uke4ri
-u1ko
-uk4ta
-uk4tr
-u1la
-u1le
-3u4ly
-u3l[aeligature]
-u1l[ostroke]
-u2m1enh
-u2mint
-ums3l2
-um2sn
-um4p3le
-um4p3li
-uni1o2n
-unions1
-un2s1t
-un2t1r
-u5pe
-u1pi
-up3l
-up3p4l
-u3ra
-u3re
-u4r3eg
-u1ri
-u3ro
-u4r1opp
-urs1l
-u3si
-u4sikker
-u5ska
-u5so
-u5spek
-u4s5pen
-us5v
-u1ta
-ut1ad1
-u1te
-ut1eksa
-u1ti
-ut1j
-5utl
-u1to
-ut5r
-ut3s
-uts4pr
-3ut1v
-ut4vet
-ut2vil
-u2t3vist
-ut1[ostroke]2v
-ut1[aring]nd
-u1u2m
-3u3v
-u4vl
-u4vst
-u1[ostroke]
-va3d
-va4dm
-va4ds
-va4k1re
-2vakti
-1var
-van4n1av
-3varm
-var1som
-va4t1r
-6v1bl
-2v1d
-1ved
-veg1g2r
-ve4k4s
-vek5sel
-ve4l5opp
-ve4l1ord
-vel1s2t
-ve6l1ut
-6v1endr
-ven2s1ta
-ven4st3re
-ven2s1ty
-3verd
-ve4reg
-1verk
-v4erv
-ve3s
-ve4ske
-ve4st
-ve5s4tere
-ve5s4teri
-ve5s4tert
-1vet
-6v1g4
-v5h
-vi2ce
-vide2o
-vi4l3in
-vil4t1r
-vim4p3l
-vin1d2ru
-1vis
-vi2ss
-v1j
-1v2ju
-v5k
-vl4
-v3le
-v5li
-vls1
-2v1m
-2vn
-1vo
-4v5om
-vor1ett
-v5p
-v1r
-v2s5f
-vs3s2k
-vs3s2t
-v3st
-v5su
-v3t
-6vt.
-v4t1l
-3vu
-v1v
-3v[aring]
-v[aring]r3s2
-1xa
-1xe
-1xi
-x1n
-1xy
-y3a
-yde4rer
-y5dr
-y3e
-ye4der
-ye2ne.
-ye4r
-y4f3l
-y3i
-y3ke
-y5ki
-yk3li
-y3kl4o
-y3ko
-yk4s5
-y3kv
-y5li
-y5lo
-ym3p2t
-y5mu
-y5na
-yns5
-yn1t4
-y5o
-y1pe
-y3pi
-y3po
-y3re
-yr3ek
-y3ri
-yr1ull
-y1r[aring]
-y5se
-y3si
-y2sl
-y3te
-y3ti
-y3tr
-y1u
-y5ve
-y1vi
-y5v[aeligature]
-y1[aring]4
-1ze
-ze2o
-zi5o
-4z1z
-[aeligature]1re
-[aeligature]3ri
-[aeligature]r4ma
-[aeligature]r4mo
-[aeligature]r3opp
-[aeligature]r1s2ki
-[ostroke]de3
-[ostroke]3e
-[ostroke]e2ne.
-[ostroke]e4r
-[ostroke]4f3l
-[ostroke]1i
-[ostroke]3ke
-1[ostroke]2ko
-[ostroke]3le
-[ostroke]l1v2a
-[ostroke]nn4s1t
-[ostroke]n4t3
-[ostroke]1pe
-[ostroke]1pi
-[ostroke]1re
-[ostroke]re5d
-[ostroke]3ri
-[ostroke]rne3
-[ostroke]r5o
-[ostroke]r2s1t
-[ostroke]r1[ostroke]
-[ostroke]1si
-[ostroke]1te
-[ostroke]t1r
-[ostroke]1va
-[ostroke]1ve
-[ostroke]ver2st
-[ostroke]2v1r
-[ostroke]1v[aeligature]
-[ostroke]4y
-[ostroke]y4em
-[ostroke]y5en
-[ostroke]y5er
-[ostroke]y5et
-[ostroke]y1f
-[ostroke]y3s2
-[ostroke]y4s3t
-[ostroke]y1v
-[aring]1d
-[aring]2d1f
-[aring]2d1h
-[aring]2d1k
-[aring]2d1l
-[aring]2d1m
-[aring]2d5s4l
-[aring]2d3s4n
-[aring]2d3s4p
-[aring]2d4s5r
-[aring]2d1t
-[aring]2d1v
-[aring]1e
-[aring]e2ne.
-[aring]e4r
-[aring]g3l[ostroke]
-[aring]5h
-[aring]1i
-[aring]1ke
-[aring]1kj
-[aring]3l
-[aring]4lb
-[aring]4lf
-[aring]4lg
-[aring]4lr
-[aring]4lt
-[aring]4l1[ostroke]
-[aring]1pe
-[aring]1ra
-[aring]3re
-[aring]r2s1
-[aring]r4s2j
-[aring]r4s5k
-[aring]r4s5p
-[aring]r2s5t
-[aring]r4s5v
-[aring]3t
-}
+\patterns {}
% end pattern data
diff --git a/Master/texmf-dist/tex/context/patterns/lang-pl.hyp b/Master/texmf-dist/tex/context/patterns/lang-pl.hyp
index d426027354a..f12b012895b 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-pl.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-pl.hyp
@@ -29,18 +29,18 @@ ina-czej
na-dal
ni-gdy
ni-gdzie
-niech-[zdotaccent]e
+niech-że
niech-by
ow-szem
-p[oacute]-[lstroke]ach
-p[oacute]-[lstroke]ami
-p[oacute]-[lstroke]ek
-pod-[oacute]w-czas
+pó-łach
+pó-łami
+pó-łek
+pod-ów-czas
przy-naj-mniej
-sk[aogonek]d-in[aogonek]d
-tr[oacute]-jach
-tr[oacute]-jami
-tr[oacute]-jek
+skÄ…d-inÄ…d
+tró-jach
+tró-jami
+tró-jek
}
% end hyphenation data
diff --git a/Master/texmf-dist/tex/context/patterns/lang-pl.pat b/Master/texmf-dist/tex/context/patterns/lang-pl.pat
index 9171e29b995..55c64e93ffe 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-pl.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-pl.pat
@@ -21,167 +21,167 @@
% begin pattern data
\patterns {
-.[cacute][cacute]8
-.[cacute][lstroke]8
-.[cacute][nacute]8
-.[cacute][sacute]8
-.[cacute][zacute]8
-.[cacute][zdotaccent]8
-.[cacute]8
-.[cacute]b8
-.[cacute]c8
-.[cacute]d8
-.[cacute]f8
-.[cacute]g8
-.[cacute]h8
-.[cacute]j8
-.[cacute]k8
-.[cacute]l8
-.[cacute]m8
-.[cacute]n8
-.[cacute]p8
-.[cacute]r8
-.[cacute]s8
-.[cacute]t8
-.[cacute]v8
-.[cacute]w8
-.[cacute]wier2[cacute]3
-.[cacute]x8
-.[cacute]z8
-.[lstroke][cacute]8
-.[lstroke][lstroke]8
-.[lstroke][nacute]8
-.[lstroke][sacute]8
-.[lstroke][zacute]8
-.[lstroke][zdotaccent]8
-.[lstroke]8
-.[lstroke]b8
-.[lstroke]c8
-.[lstroke]d8
-.[lstroke]f8
-.[lstroke]g8
-.[lstroke]h8
-.[lstroke]j8
-.[lstroke]k8
-.[lstroke]l8
-.[lstroke]m8
-.[lstroke]n8
-.[lstroke]p8
-.[lstroke]r8
-.[lstroke]s8
-.[lstroke]t8
-.[lstroke]v8
-.[lstroke]w8
-.[lstroke]x8
-.[lstroke]z8
-.[nacute][cacute]8
-.[nacute][lstroke]8
-.[nacute][nacute]8
-.[nacute][sacute]8
-.[nacute][zacute]8
-.[nacute][zdotaccent]8
-.[nacute]8
-.[nacute]b8
-.[nacute]c8
-.[nacute]d8
-.[nacute]f8
-.[nacute]g8
-.[nacute]h8
-.[nacute]j8
-.[nacute]k8
-.[nacute]l8
-.[nacute]m8
-.[nacute]n8
-.[nacute]p8
-.[nacute]r8
-.[nacute]s8
-.[nacute]t8
-.[nacute]v8
-.[nacute]w8
-.[nacute]x8
-.[nacute]z8
-.[sacute][cacute]8
-.[sacute][lstroke]8
-.[sacute][nacute]8
-.[sacute][sacute]8
-.[sacute][zacute]8
-.[sacute][zdotaccent]8
-.[sacute]8
-.[sacute]b8
-.[sacute]c8
-.[sacute]d8
-.[sacute]f8
-.[sacute]g8
-.[sacute]h8
-.[sacute]j8
-.[sacute]k8
-.[sacute]l8
-.[sacute]m8
-.[sacute]n8
-.[sacute]p8
-.[sacute]r[oacute]2d5
-.[sacute]r[oacute]dr2
-.[sacute]r8
-.[sacute]s8
-.[sacute]t8
-.[sacute]v8
-.[sacute]w8
-.[sacute]wiat[lstroke]o3w2
-.[sacute]x8
-.[sacute]z8
-.[zacute][cacute]8
-.[zacute][lstroke]8
-.[zacute][nacute]8
-.[zacute][sacute]8
-.[zacute][zacute]8
-.[zacute][zdotaccent]8
-.[zacute]8
-.[zacute]b8
-.[zacute]c8
-.[zacute]d[zacute]8
-.[zacute]d8
-.[zacute]f8
-.[zacute]g8
-.[zacute]h8
-.[zacute]j8
-.[zacute]k8
-.[zacute]l8
-.[zacute]m8
-.[zacute]n8
-.[zacute]p8
-.[zacute]r8
-.[zacute]s8
-.[zacute]t8
-.[zacute]v8
-.[zacute]w8
-.[zacute]x8
-.[zacute]z8
-.[zdotaccent][cacute]8
-.[zdotaccent][lstroke]8
-.[zdotaccent][nacute]8
-.[zdotaccent][sacute]8
-.[zdotaccent][zacute]8
-.[zdotaccent][zdotaccent]8
-.[zdotaccent]8
-.[zdotaccent]b8
-.[zdotaccent]c8
-.[zdotaccent]d8
-.[zdotaccent]f8
-.[zdotaccent]g8
-.[zdotaccent]h8
-.[zdotaccent]j8
-.[zdotaccent]k8
-.[zdotaccent]l8
-.[zdotaccent]m8
-.[zdotaccent]n8
-.[zdotaccent]p8
-.[zdotaccent]r8
-.[zdotaccent]s8
-.[zdotaccent]t8
-.[zdotaccent]v8
-.[zdotaccent]w8
-.[zdotaccent]x8
-.[zdotaccent]z8
+.ćć8
+.ćł8
+.ćń8
+.ćś8
+.ćź8
+.ćż8
+.ć8
+.ćb8
+.ćc8
+.ćd8
+.ćf8
+.ćg8
+.ćh8
+.ćj8
+.ćk8
+.ćl8
+.ćm8
+.ćn8
+.ćp8
+.ćr8
+.ćs8
+.ćt8
+.ćv8
+.ćw8
+.ćwier2ć3
+.ćx8
+.ćz8
+.łć8
+.Å‚Å‚8
+.Å‚Å„8
+.łś8
+.łź8
+.łż8
+.Å‚8
+.Å‚b8
+.Å‚c8
+.Å‚d8
+.Å‚f8
+.Å‚g8
+.Å‚h8
+.Å‚j8
+.Å‚k8
+.Å‚l8
+.Å‚m8
+.Å‚n8
+.Å‚p8
+.Å‚r8
+.Å‚s8
+.Å‚t8
+.Å‚v8
+.Å‚w8
+.Å‚x8
+.Å‚z8
+.ńć8
+.Å„Å‚8
+.Å„Å„8
+.ńś8
+.ńź8
+.ńż8
+.Å„8
+.Å„b8
+.Å„c8
+.Å„d8
+.Å„f8
+.Å„g8
+.Å„h8
+.Å„j8
+.Å„k8
+.Å„l8
+.Å„m8
+.Å„n8
+.Å„p8
+.Å„r8
+.Å„s8
+.Å„t8
+.Å„v8
+.Å„w8
+.Å„x8
+.Å„z8
+.ść8
+.śł8
+.śń8
+.śś8
+.śź8
+.śż8
+.ś8
+.śb8
+.śc8
+.śd8
+.śf8
+.śg8
+.śh8
+.śj8
+.śk8
+.śl8
+.śm8
+.śn8
+.śp8
+.śró2d5
+.śródr2
+.śr8
+.śs8
+.śt8
+.śv8
+.św8
+.światło3w2
+.śx8
+.śz8
+.źć8
+.źł8
+.źń8
+.źś8
+.źź8
+.źż8
+.ź8
+.źb8
+.źc8
+.źdź8
+.źd8
+.źf8
+.źg8
+.źh8
+.źj8
+.źk8
+.źl8
+.źm8
+.źn8
+.źp8
+.źr8
+.źs8
+.źt8
+.źv8
+.źw8
+.źx8
+.źz8
+.żć8
+.żł8
+.żń8
+.żś8
+.żź8
+.żż8
+.ż8
+.żb8
+.żc8
+.żd8
+.żf8
+.żg8
+.żh8
+.żj8
+.żk8
+.żl8
+.żm8
+.żn8
+.żp8
+.żr8
+.żs8
+.żt8
+.żv8
+.żw8
+.żx8
+.żz8
.a2b2s3t
.a2d3
.ad4a
@@ -205,7 +205,7 @@
.antyi2
.antyo2
.antyu2
-.arcy3[lstroke]2
+.arcy3Å‚2
.arcy3b2
.arcy3bz2
.arcy3k2
@@ -225,12 +225,12 @@
.autoo2
.autotran2s3
.autou2
-.b[cacute]8
-.b[lstroke]8
-.b[nacute]8
-.b[sacute]8
-.b[zacute]8
-.b[zdotaccent]8
+.bć8
+.bł8
+.bń8
+.bś8
+.bź8
+.bż8
.b8
.bb8
.bc8
@@ -262,15 +262,15 @@
.bw8
.bx8
.bz8
-.c[cacute]8
-.c[lstroke]8
-.c[nacute]8
-.c[sacute]8
-.c[zacute]8
-.c[zdotaccent]8
+.cć8
+.cł8
+.cń8
+.cś8
+.cź8
+.cż8
.c8
-.ca[lstroke]o3[sacute]2
-.ca[lstroke]o3k2
+.cało3ś2
+.cało3k2
.cb8
.cc8
.cd8
@@ -279,7 +279,7 @@
.ch8
.chrz8
.cienko3w2
-.ciep[lstroke]o3kr2
+.ciepło3kr2
.cj8
.ck8
.cl8
@@ -297,21 +297,21 @@
.czk8
.cztere2ch3
.czterechse2t3
-.cztero3[sacute]2
-.czw[oacute]2r3
-.czw[oacute]3r4[aogonek]
-.czw[oacute]3r4[eogonek]
-.czw[oacute]3r4a
-.czw[oacute]3r4e
-.czw[oacute]3r4o
-.d[cacute]8
-.d[lstroke]8
-.d[lstroke]ugo3tr2
-.d[lstroke]ugo3w2
-.d[nacute]8
-.d[sacute]8
-.d[zacute]8
-.d[zdotaccent]8
+.cztero3ś2
+.czwó2r3
+.czwó3r4ą
+.czwó3r4ę
+.czwó3r4a
+.czwó3r4e
+.czwó3r4o
+.dć8
+.dł8
+.długo3tr2
+.długo3w2
+.dń8
+.dś8
+.dź8
+.dż8
.d8
.daleko3w2
.db8
@@ -333,11 +333,11 @@
.dl8
.dm8
.dn8
-.do3[cacute]2
-.do3[lstroke]2
-.do3[sacute]2
-.do3[zacute]2
-.do3[zdotaccent]2
+.do3ć2
+.do3Å‚2
+.do3ś2
+.do3ź2
+.do3ż2
.do3b2
.do3c2
.do3d2
@@ -353,7 +353,7 @@
.do3t2
.do3w2
.do3z2
-.do4[lstroke]3k
+.do4Å‚3k
.do4k3t
.do4l3n
.do4m3k
@@ -364,13 +364,13 @@
.dobrz2
.doch2
.docz2
-.dod[zacute]2
-.dod[zdotaccent]2
+.dodź2
+.dodż2
.dodz2
.dogrz2
.dopch2
.doprz2
-.dor[zdotaccent]2
+.dorż2
.dorz2
.dosch2
.dosm2
@@ -384,12 +384,12 @@
.ds8
.dt8
.dv8
-.dw[oacute]2j3
-.dw[oacute]3j4[aogonek]
-.dw[oacute]3j4[eogonek]
-.dw[oacute]3j4a
-.dw[oacute]3j4e
-.dw[oacute]3j4o
+.dwó2j3
+.dwó3j4ą
+.dwó3j4ę
+.dwó3j4a
+.dwó3j4e
+.dwó3j4o
.dw8
.dx8
.dy2s3
@@ -402,10 +402,10 @@
.dy3z4e
.dyzu2
.dz8
-.dziesi[eogonek]cio3[sacute]2
-.dziewi[eogonek][cacute]se2t3
-.dziewi[eogonek]2[cacute]3
-.dziewi[eogonek]cio3[sacute]2
+.dziesięcio3ś2
+.dziewięćse2t3
+.dziewię2ć3
+.dziewięcio3ś2
.e2k2s3
.e2m3e2s5ze2t
.e2s1e2s1ma
@@ -422,12 +422,12 @@
.elektroi2
.elektroo2
.elektrou2
-.f[cacute]8
-.f[lstroke]8
-.f[nacute]8
-.f[sacute]8
-.f[zacute]8
-.f[zdotaccent]8
+.fć8
+.fł8
+.fń8
+.fś8
+.fź8
+.fż8
.f8
.fb8
.fc8
@@ -448,12 +448,12 @@
.fw8
.fx8
.fz8
-.g[cacute]8
-.g[lstroke]8
-.g[nacute]8
-.g[sacute]8
-.g[zacute]8
-.g[zdotaccent]8
+.gć8
+.gł8
+.gń8
+.gś8
+.gź8
+.gż8
.g8
.gb8
.gc8
@@ -478,12 +478,12 @@
.gw8
.gx8
.gz8
-.h[cacute]8
-.h[lstroke]8
-.h[nacute]8
-.h[sacute]8
-.h[zacute]8
-.h[zdotaccent]8
+.hć8
+.hł8
+.hń8
+.hś8
+.hź8
+.hż8
.h8
.hb8
.hc8
@@ -521,14 +521,14 @@
.izoi2
.izoo2
.izou2
-.j[cacute]8
-.j[lstroke]8
-.j[nacute]8
-.j[sacute]8
-.j[zacute]8
-.j[zdotaccent]8
+.jć8
+.jł8
+.jń8
+.jś8
+.jź8
+.jż8
.j8
-.jad[lstroke]o3w2
+.jadło3w2
.jb8
.jc8
.jd8
@@ -548,12 +548,12 @@
.jw8
.jx8
.jz8
-.k[cacute]8
-.k[lstroke]8
-.k[nacute]8
-.k[sacute]8
-.k[zacute]8
-.k[zdotaccent]8
+.kć8
+.kł8
+.kń8
+.kś8
+.kź8
+.kż8
.k8
.kb8
.kc8
@@ -568,7 +568,7 @@
.kl8
.km8
.kn8
-.ko[lstroke]o3w2
+.koło3w2
.kon2t2r3
.kon3tr4a
.kon3tr4e
@@ -586,10 +586,10 @@
.kontro2
.kontru2
.kp8
-.kr[oacute]tko3tr2
-.kr[oacute]tko3w2
+.krótko3tr2
+.krótko3w2
.kr8
-.kro2[cacute]3
+.kro2ć3
.krz8
.ks8
.kt8
@@ -597,12 +597,12 @@
.kw8
.kx8
.kz8
-.l[cacute]8
-.l[lstroke]8
-.l[nacute]8
-.l[sacute]8
-.l[zacute]8
-.l[zdotaccent]8
+.lć8
+.lł8
+.lń8
+.lś8
+.lź8
+.lż8
.l8
.lb8
.lc8
@@ -624,12 +624,12 @@
.lw8
.lx8
.lz8
-.m[cacute]8
-.m[lstroke]8
-.m[nacute]8
-.m[sacute]8
-.m[zacute]8
-.m[zdotaccent]8
+.mć8
+.mł8
+.mń8
+.mś8
+.mź8
+.mż8
.m8
.mb8
.mc8
@@ -643,7 +643,7 @@
.ml8
.mm8
.mn8
-.mo[zdotaccent]no3w2
+.możno3w2
.mp8
.mr8
.ms8
@@ -652,29 +652,29 @@
.mw8
.mx8
.mz8
-.n[cacute]8
-.n[lstroke]8
-.n[nacute]8
-.n[sacute]8
-.n[zacute]8
-.n[zdotaccent]8
+.nć8
+.nł8
+.nń8
+.nś8
+.nź8
+.nż8
.n8
.na2d2
.na2j
-.na3[cacute]2
-.na3[lstroke]2
-.na3[sacute]2
-.na3[zacute]2
-.na3[zdotaccent]2
+.na3ć2
+.na3Å‚2
+.na3ś2
+.na3ź2
+.na3ż2
.na3b2
.na3c2
-.na3d[aogonek]
-.na3d[eogonek]
-.na3d[zacute]2
-.na3d4[lstroke]ub
+.na3dÄ…
+.na3dÄ™
+.na3dź2
+.na3d4Å‚ub
.na3d4ir
.na3d4much
-.na3d4r[eogonek]cz
+.na3d4ręcz
.na3d4r2w
.na3d4repcz
.na3d4rept
@@ -689,8 +689,8 @@
.na3f2
.na3g2
.na3h2
-.na3j[aogonek]
-.na3j[eogonek]
+.na3jÄ…
+.na3jÄ™
.na3jazd
.na3je
.na3k2
@@ -703,15 +703,15 @@
.na3u2
.na3w2
.na3z2
-.na4d3o2b2[lstroke]
+.na4d3o2b2Å‚
.na4d3o2bojcz
.na4d3o2bowi
.na4d3o2brot
.na4d3o2drz
.na4d3o2kien
.na4d3olbrz
-.na4d5rz[aogonek]
-.na4d5rz[eogonek]
+.na4d5rzÄ…
+.na4d5rzÄ™
.na4d5rzecz
.na4d5rzy
.na4d5ziem
@@ -735,10 +735,10 @@
.nabrz2
.nach2
.nacz2
-.nad[sacute]rod5ziem
-.nad3[cacute]2
-.nad3[lstroke]2
-.nad3[sacute]2
+.nadśrod5ziem
+.nad3ć2
+.nad3Å‚2
+.nad3ś2
.nad3b2
.nad3c2
.nad3d2
@@ -758,19 +758,19 @@
.nad3t2
.nad3u2
.nad3w2
-.nad5[zdotaccent]2
-.nad5z[oacute]
+.nad5ż2
+.nad5zó
.nad5z2mys
.nad5zo
.nad5zwycz
.nadch2
.nadcz2
-.nadd[zacute]2
-.nade3[cacute]2
-.nade3[lstroke]2
-.nade3[sacute]2
-.nade3[zacute]2
-.nade3[zdotaccent]2
+.naddź2
+.nade3ć2
+.nade3Å‚2
+.nade3ś2
+.nade3ź2
+.nade3ż2
.nade3b2
.nade3c2
.nade3d2
@@ -791,21 +791,21 @@
.nade4p3t
.nadech2
.nadecz2
-.naded[zacute]2
-.naded[zdotaccent]2
+.nadedź2
+.nadedż2
.nadedz2
-.nader[zdotaccent]2
+.naderż2
.naderz2
.nadesz2
.nadsz2
.nadtr2
.nadz2
.nagrz2
-.naj3[cacute]2
-.naj3[lstroke]2
-.naj3[sacute]2
-.naj3[zacute]2
-.naj3[zdotaccent]2
+.naj3ć2
+.naj3Å‚2
+.naj3ś2
+.naj3ź2
+.naj3ż2
.naj3akt
.naj3au
.naj3b2
@@ -819,11 +819,11 @@
.naj3l2
.naj3m2
.naj3o2
-.naj3o2[cacute]2
-.naj3o2[lstroke]2
-.naj3o2[sacute]2
-.naj3o2[zacute]2
-.naj3o2[zdotaccent]2
+.naj3o2ć2
+.naj3o2Å‚2
+.naj3o2ś2
+.naj3o2ź2
+.naj3o2ż2
.naj3o2b2
.naj3o2c2
.naj3o2d2
@@ -851,13 +851,13 @@
.najbezw2
.najch2
.najcz2
-.najd[zacute]2
-.najd[zdotaccent]2
-.najdo3[cacute]2
-.najdo3[lstroke]2
-.najdo3[sacute]2
-.najdo3[zacute]2
-.najdo3[zdotaccent]2
+.najdź2
+.najdż2
+.najdo3ć2
+.najdo3Å‚2
+.najdo3ś2
+.najdo3ź2
+.najdo3ż2
.najdo3b2
.najdo3c2
.najdo3d2
@@ -875,19 +875,19 @@
.najdo3z2
.najdoch2
.najdocz2
-.najdod[zacute]2
-.najdod[zdotaccent]2
+.najdodź2
+.najdodż2
.najdodz2
.najdorz2
.najdosz2
.najdotk2
.najdz2
.najkr2
-.najob3[cacute]2
-.najob3[lstroke]2
-.najob3[sacute]2
-.najob3[zacute]2
-.najob3[zdotaccent]2
+.najob3ć2
+.najob3Å‚2
+.najob3ś2
+.najob3ź2
+.najob3ż2
.najob3c2
.najob3d2
.najob3f2
@@ -904,16 +904,16 @@
.najob3w2
.najobch2
.najobcz2
-.najobd[zacute]2
-.najobd[zdotaccent]2
+.najobdź2
+.najobdż2
.najobdz2
.najobrz2
.najobsz2
.najoch2
.najocz2
-.najod[zacute]2
-.najod3[cacute]2
-.najod3[sacute]2
+.najodź2
+.najod3ć2
+.najod3ś2
.najod3c2
.najod3d2
.najod3f2
@@ -928,11 +928,11 @@
.najod3s2
.najod3t2
.najod3w2
-.najod5[zdotaccent]2
+.najod5ż2
.najodch2
.najodcz2
-.najodd[zacute]2
-.najodd[zdotaccent]2
+.najoddź2
+.najoddż2
.najoddz2
.najodsz2
.najodz2
@@ -948,11 +948,11 @@
.najzw2
.nakr2
.napo2d2
-.napo3[cacute]2
-.napo3[lstroke]2
-.napo3[sacute]2
-.napo3[zacute]2
-.napo3[zdotaccent]2
+.napo3ć2
+.napo3Å‚2
+.napo3ś2
+.napo3ź2
+.napo3ż2
.napo3b2
.napo3c2
.napo3f2
@@ -970,14 +970,14 @@
.napo4m3p
.napoch2
.napocz2
-.napod[zacute]2
-.napod[zdotaccent]2
+.napodź2
+.napodż2
.napod3d
.napomk2
.naporz2
.naposz2
.naprz2
-.nar[zdotaccent]2
+.narż2
.naro2z3
.narz2
.nasm2
@@ -993,11 +993,11 @@
.nf8
.ng8
.nh8
-.nie3[cacute]2
-.nie3[lstroke]2
-.nie3[sacute]2
-.nie3[zacute]2
-.nie3[zdotaccent]2
+.nie3ć2
+.nie3Å‚2
+.nie3ś2
+.nie3ź2
+.nie3ż2
.nie3b2
.nie3c2
.nie3d2
@@ -1016,17 +1016,17 @@
.nie3z2
.nie4c3c
.nie4c3k
-.nie4d[zacute]3
+.nie4dź3
.nie4m3c
.nie4m3k
.niech2
.niecz2
-.nied[zdotaccent]2
-.niedo3[cacute]2
-.niedo3[lstroke]2
-.niedo3[sacute]2
-.niedo3[zacute]2
-.niedo3[zdotaccent]2
+.niedż2
+.niedo3ć2
+.niedo3Å‚2
+.niedo3ś2
+.niedo3ź2
+.niedo3ż2
.niedo3b2
.niedo3c2
.niedo3d2
@@ -1045,8 +1045,8 @@
.niedobrz2
.niedoch2
.niedocz2
-.niedod[zacute]2
-.niedod[zdotaccent]2
+.niedodź2
+.niedodż2
.niedodz2
.niedokr2
.niedomk2
@@ -1055,17 +1055,17 @@
.niedosz2
.niedotk2
.niedz2
-.nieo[cacute]2
-.nieo[lstroke]2
-.nieo[sacute]2
-.nieo[zacute]2
-.nieo[zdotaccent]2
+.nieoć2
+.nieoł2
+.nieoś2
+.nieoź2
+.nieoż2
.nieo2
.nieob2
-.nieob3[cacute]2
-.nieob3[sacute]2
-.nieob3[zacute]2
-.nieob3[zdotaccent]2
+.nieob3ć2
+.nieob3ś2
+.nieob3ź2
+.nieob3ż2
.nieob3c2
.nieob3d2
.nieob3f2
@@ -1079,18 +1079,18 @@
.nieob3w2
.nieobch2
.nieobcz2
-.nieobd[zacute]2
-.nieobd[zdotaccent]2
+.nieobdź2
+.nieobdż2
.nieobdz2
.nieobsz2
.nieoc2
.nieoch2
.nieocz2
-.nieod[zacute]2
+.nieodź2
.nieod2
-.nieod3[cacute]2
-.nieod3[lstroke]2
-.nieod3[sacute]2
+.nieod3ć2
+.nieod3Å‚2
+.nieod3ś2
.nieod3c2
.nieod3d2
.nieod3f2
@@ -1104,11 +1104,11 @@
.nieod3s2
.nieod3t2
.nieod3wr
-.nieod5[zdotaccent]2
+.nieod5ż2
.nieodch2
.nieodcz2
-.nieodd[zacute]2
-.nieodd[zdotaccent]2
+.nieoddź2
+.nieoddż2
.nieoddz2
.nieodsz2
.nieodw2
@@ -1128,18 +1128,18 @@
.nieow2
.nieoz2
.niepo2d2
-.niepo3[cacute]2
-.niepo3[lstroke]2
-.niepo3[sacute]2
-.niepo3[zacute]2
-.niepo3[zdotaccent]2
+.niepo3ć2
+.niepo3Å‚2
+.niepo3ś2
+.niepo3ź2
+.niepo3ż2
.niepo3b2
.niepo3c2
-.niepo3d[zacute]2
-.niepo3d4[lstroke]u
+.niepo3dź2
+.niepo3d4Å‚u
.niepo3d4much
-.niepo3d4r[eogonek]cz
-.niepo3d4ra[zdotaccent]
+.niepo3d4ręcz
+.niepo3d4raż
.niepo3d4rap
.niepo3d4repcz
.niepo3d4rept
@@ -1164,9 +1164,9 @@
.niepo4d3o2strz
.niepoch2
.niepocz2
-.niepod3[cacute]2
-.niepod3[lstroke]2
-.niepod3[sacute]2
+.niepod3ć2
+.niepod3Å‚2
+.niepod3ś2
.niepod3b2
.niepod3c2
.niepod3d2
@@ -1183,28 +1183,28 @@
.niepod3s2
.niepod3t2
.niepod3w2
-.niepod5[zdotaccent]
+.niepod5ż
.niepodch2
.niepodcz2
-.niepodd[zacute]2
-.niepodd[zdotaccent]2
+.niepoddź2
+.niepoddż2
.niepodsm2
.niepodsz2
.nieporz2
.nieposm2
.nieposz2
-.nieprze[lstroke]k2
+.nieprzełk2
.nieprze2d2
-.nieprze3[cacute]2
-.nieprze3[lstroke]2
-.nieprze3[sacute]2
-.nieprze3[zacute]2
-.nieprze3[zdotaccent]2
+.nieprze3ć2
+.nieprze3Å‚2
+.nieprze3ś2
+.nieprze3ź2
+.nieprze3ż2
.nieprze3b2
.nieprze3brz2
.nieprze3c2
-.nieprze3d[zacute]2
-.nieprze3d4[lstroke]u[zdotaccent]
+.nieprze3dź2
+.nieprze3d4łuż
.nieprze3d4much
.nieprze3d4ramat
.nieprze3d4ruk
@@ -1227,8 +1227,8 @@
.nieprze3t2
.nieprze3w2
.nieprze3z2
-.nieprze4d5[lstroke]u[zdotaccent]yc
-.nieprze4d5[zdotaccent]2
+.nieprze4d5łużyc
+.nieprze4d5ż2
.nieprze4d5z2a
.nieprze4d5zg2
.nieprze4d5zim
@@ -1238,9 +1238,9 @@
.nieprze4d5zwoj
.nieprzech2
.nieprzecz2
-.nieprzed3[cacute]2
-.nieprzed3[lstroke]2
-.nieprzed3[sacute]2
+.nieprzed3ć2
+.nieprzed3Å‚2
+.nieprzed3ś2
.nieprzed3c2
.nieprzed3d2
.nieprzed3f2
@@ -1261,14 +1261,14 @@
.nieprzed3w2
.nieprzedch2
.nieprzedcz2
-.nieprzedd[zacute]2
-.nieprzedd[zdotaccent]2
+.nieprzeddź2
+.nieprzeddż2
.nieprzeddz2
.nieprzegrz2
.nieprzekl2
.nieprzekr2
.nieprzepch2
-.nieprzer[zdotaccent]2
+.nieprzerż2
.nieprzerz2
.nieprzesch2
.nieprzesm2
@@ -1278,7 +1278,7 @@
.niero2z3
.niero3z4e
.niero3z4u
-.nieroz[sacute]2
+.nierozś2
.nierozbrz2
.nieroze3r2
.nierozm2
@@ -1291,11 +1291,11 @@
.nietr2
.nieucz2
.nieuw2
-.niewy3[cacute]2
-.niewy3[lstroke]2
-.niewy3[sacute]2
-.niewy3[zacute]2
-.niewy3[zdotaccent]2
+.niewy3ć2
+.niewy3Å‚2
+.niewy3ś2
+.niewy3ź2
+.niewy3ż2
.niewy3b2
.niewy3c2
.niewy3d2
@@ -1314,8 +1314,8 @@
.niewybrz2
.niewych2
.niewycz2
-.niewyd[zacute]2
-.niewyd[zdotaccent]2
+.niewydź2
+.niewydż2
.niewydz2
.niewyrz2
.niewysz2
@@ -1335,42 +1335,42 @@
.nw8
.nx8
.nz8
-.o[cacute]2
-.o[sacute]2
-.o[sacute]mio3[sacute]2
-.o[zacute]2
-.o[zdotaccent]2
+.oć2
+.oś2
+.ośmio3ś2
+.oź2
+.oż2
.o2b2
.o2d2
-.o2t3ch[lstroke]
-.o3b4[lstroke][aogonek]
-.o3b4[lstroke][eogonek]
-.o3b4[lstroke]oc
+.o2t3chł
+.o3b4Å‚Ä…
+.o3b4Å‚Ä™
+.o3b4Å‚oc
.o3b4luzg
-.o3b4ra[cacute]
+.o3b4rać
.o3b4raso
-.o3b4ro[nacute]
+.o3b4roń
.o3b4ron
-.o3b4ry[zacute]
+.o3b4ryź
.o3b4ryz
.o3b4rz2
.o3be
.o3bi
.o3d4iu
-.o3d4r[eogonek]t
+.o3d4ręt
.o3d4rap
.o3d4robin
.o3d4rut
.o3d4rwi
-.o3d4rze[cacute]
+.o3d4rzeć
.o3d4rzw
.o3d6zia
.o3d6zie
.o3de
-.o3l2[sacute]n
-.o4b5[lstroke]ocz
-.o4b5rz[aogonek]
-.o4b5rz[eogonek]d
+.o3l2śn
+.o4b5Å‚ocz
+.o4b5rzÄ…
+.o4b5rzęd
.o4b5rzez
.o4b5rzuc
.o4b5rzut
@@ -1378,11 +1378,11 @@
.o4d7ziar
.o4d7ziem
.oa3z
-.ob3[cacute]2
-.ob3[lstroke]2
-.ob3[sacute]2
-.ob3[zacute]2
-.ob3[zdotaccent]2
+.ob3ć2
+.ob3Å‚2
+.ob3ś2
+.ob3ź2
+.ob3ż2
.ob3c2
.ob3d2
.ob3f2
@@ -1402,14 +1402,14 @@
.ob3w2
.obch2
.obcz2
-.obd[zacute]2
-.obd[zdotaccent]2
+.obdź2
+.obdż2
.obdz2
-.obe3[cacute]2
-.obe3[lstroke]2
-.obe3[sacute]2
-.obe3[zacute]2
-.obe3[zdotaccent]2
+.obe3ć2
+.obe3Å‚2
+.obe3ś2
+.obe3ź2
+.obe3ż2
.obe3b2
.obe3c2
.obe3d2
@@ -1430,10 +1430,10 @@
.obe4z3w
.obech2
.obecz2
-.obed[zacute]2
-.obed[zdotaccent]2
+.obedź2
+.obedż2
.obedz2
-.ober[zdotaccent]2
+.oberż2
.ober3m
.oberz2
.obesch2
@@ -1445,9 +1445,9 @@
.och2
.ochrz2
.ocz2
-.od[zacute]2
-.od3[cacute]2
-.od3[sacute]2
+.odź2
+.od3ć2
+.od3ś2
.od3au
.od3b2
.od3c2
@@ -1470,19 +1470,19 @@
.od3u2cz
.od3u2m2
.od3w2
-.od5[zdotaccent]2
+.od5ż2
.od5z2
.odbe2z3
.odch2
.odcz2
-.odd[zacute]2
-.odd[zdotaccent]2
+.oddź2
+.oddż2
.oddz2
-.ode3[cacute]2
-.ode3[lstroke]2
-.ode3[sacute]2
-.ode3[zacute]2
-.ode3[zdotaccent]2
+.ode3ć2
+.ode3Å‚2
+.ode3ś2
+.ode3ź2
+.ode3ż2
.ode3b2
.ode3c2
.ode3d2
@@ -1501,11 +1501,11 @@
.ode3z2
.odech2
.odecz2
-.oded[zacute]2
-.oded[zdotaccent]2
+.odedź2
+.odedż2
.odedz2
.odepch2
-.oder[zdotaccent]2
+.oderż2
.oderz2
.odesz2
.odetch2
@@ -1514,7 +1514,7 @@
.odrz2
.odsz2
.of2
-.og[oacute]lno3k2
+.ogólno3k2
.og2
.ognio3tr2
.oh2
@@ -1525,8 +1525,8 @@
.om2
.op2
.opch2
-.or2[zdotaccent]2
-.or2t[eogonek]
+.or2ż2
+.or2tÄ™
.or2z2
.os2
.osie2m3
@@ -1535,31 +1535,31 @@
.ot2
.ow2
.oz2
-.p[cacute]8
-.p[lstroke]8
-.p[lstroke]asko3w2
-.p[nacute]8
-.p[oacute][lstroke]k2
-.p[oacute][lstroke]kr2
-.p[oacute][lstroke]m2
-.p[oacute][lstroke]o2
-.p[oacute][lstroke]ob3r
-.p[oacute][lstroke]om2d
-.p[oacute][lstroke]przy3m2k
-.p[oacute]2[lstroke]3
-.p[oacute]3[lstroke]4[aogonek]
-.p[oacute]3[lstroke]4[eogonek]
-.p[oacute]3[lstroke]4ecz
-.p[oacute]3[lstroke]4y
-.p[sacute]8
-.p[zacute]8
-.p[zdotaccent]8
+.pć8
+.pł8
+.płasko3w2
+.pń8
+.półk2
+.półkr2
+.półm2
+.póło2
+.półob3r
+.półom2d
+.półprzy3m2k
+.pó2ł3
+.pó3ł4ą
+.pó3ł4ę
+.pó3ł4ecz
+.pó3ł4y
+.pś8
+.pź8
+.pż8
.p8
.pb8
.pc8
.pch8
.pd8
-.pe[lstroke]no3kr2
+.pełno3kr2
.pe2r3
.pe3c2k
.pe3r4e
@@ -1575,9 +1575,9 @@
.pf8
.pg8
.ph8
-.pi[eogonek][cacute]se2t3
-.pi[eogonek]2[cacute]3
-.pi[eogonek]cio3[sacute]2
+.pięćse2t3
+.pię2ć3
+.pięcio3ś2
.pierwo3w2
.piono3w2
.pj8
@@ -1585,31 +1585,31 @@
.pl8
.pm8
.pn8
-.po[lstroke]k2
+.połk2
.po2d2
-.po3[cacute]2
-.po3[lstroke]2
-.po3[sacute]2
-.po3[zacute]2
-.po3[zdotaccent]2
+.po3ć2
+.po3Å‚2
+.po3ś2
+.po3ź2
+.po3ż2
.po3b2
.po3c2
-.po3d[aogonek]
-.po3d[eogonek]
-.po3d[zacute]2
-.po3d4[lstroke]u
+.po3dÄ…
+.po3dÄ™
+.po3dź2
+.po3d4Å‚u
.po3d4much
.po3d4naw
-.po3d4r[eogonek]cz
-.po3d4r[eogonek]tw
-.po3d4r[oacute][zdotaccent]
+.po3d4ręcz
+.po3d4rętw
+.po3d4róż
.po3d4r2wi
-.po3d4ra[zdotaccent]
+.po3d4raż
.po3d4rap
.po3d4repcz
.po3d4rept
-.po3d4ro[zdotaccent]
-.po3d4rob[oacute]
+.po3d4roż
+.po3d4robó
.po3d4roba
.po3d4robo
.po3d4roby
@@ -1617,8 +1617,8 @@
.po3d4ruzg
.po3d4ryg
.po3d4rze
-.po3d4w[oacute]jn
-.po3d4w[oacute]r
+.po3d4wójn
+.po3d4wór
.po3d4waj
.po3d4woi
.po3d4woj
@@ -1639,18 +1639,18 @@
.po3l2
.po3m2
.po3p2
-.po3r[zdotaccent]
+.po3rż
.po3r2
.po3s2
.po3t2
.po3w2
.po3z2
-.po4[nacute]3c
+.po4Å„3c
.po4cz3d
.po4cz3t
-.po4d3[oacute]w
+.po4d3ów
.po4d3e4k2s3
-.po4d3o2b[oacute]z
+.po4d3o2bóz
.po4d3o2biad
.po4d3o2bojcz
.po4d3o2braz
@@ -1660,7 +1660,7 @@
.po4d3o2g
.po4d3o2kien
.po4d3o2kn
-.po4d3o2kr[eogonek]g
+.po4d3o2kręg
.po4d3o2kres
.po4d3o2piecz
.po4d3o2ryw
@@ -1675,16 +1675,16 @@
.po4d3u2ral
.po4d3u2sta
.po4d3u2szcz
-.po4d5r[eogonek]czn
+.po4d5ręczn
.po4d5zakr
.po4d5zam
.po4d5zast
.po4d5zbi
.po4d5ze
-.po4d5zieleni[aogonek]
-.po4d5zieleni[cacute]
-.po4d5zieleni[eogonek]
-.po4d5zieleni[lstroke]
+.po4d5zieleniÄ…
+.po4d5zielenić
+.po4d5zieleniÄ™
+.po4d5zielenił
.po4d5zielenic
.po4d5zielenien
.po4d5zielenil
@@ -1712,16 +1712,16 @@
.po4st3rom
.po4st3s
.po5d4uszczyn
-.po5r4t[eogonek]
+.po5r4tÄ™
.pobr2
.pobrz2
.poch2
.pochrz2
.pocz2
-.pod3[cacute]2
-.pod3[lstroke]2
-.pod3[sacute]2
-.pod3[sacute]r[oacute]2d5
+.pod3ć2
+.pod3Å‚2
+.pod3ś2
+.pod3śró2d5
.pod3alp
.pod3b2
.pod3c2
@@ -1740,16 +1740,16 @@
.pod3s2
.pod3t2
.pod3w2
-.pod5[zdotaccent]2
+.pod5ż2
.podch2
.podcz2
-.podd[zacute]2
-.podd[zdotaccent]2
-.pode3[cacute]2
-.pode3[lstroke]2
-.pode3[sacute]2
-.pode3[zacute]2
-.pode3[zdotaccent]2
+.poddź2
+.poddż2
+.pode3ć2
+.pode3Å‚2
+.pode3ś2
+.pode3ź2
+.pode3ż2
.pode3b2
.pode3c2
.pode3d2
@@ -1768,11 +1768,11 @@
.pode3z2
.podech2
.podecz2
-.poded[zacute]2
-.poded[zdotaccent]2
+.podedź2
+.podedż2
.podedz2
.podepch2
-.poder[zdotaccent]2
+.poderż2
.poderz2
.podesch2
.podesz2
@@ -1785,15 +1785,15 @@
.pom4pk
.pomk2
.pona2d2
-.pona3[cacute]2
-.pona3[lstroke]2
-.pona3[sacute]2
-.pona3[zacute]2
-.pona3[zdotaccent]2
+.pona3ć2
+.pona3Å‚2
+.pona3ś2
+.pona3ź2
+.pona3ż2
.pona3b2
.pona3c2
.pona3cz2
-.pona3d[zacute]2
+.pona3dź2
.pona3do
.pona3f2
.pona3g2
@@ -1810,12 +1810,12 @@
.pona4f3t
.ponabrz2
.ponach2
-.ponad3[cacute]2
-.ponad3[sacute]2
+.ponad3ć2
+.ponad3ś2
.ponad3c2
.ponad3ch2
.ponad3cz2
-.ponad3d[zacute]2
+.ponad3dź2
.ponad3f2
.ponad3g2
.ponad3h2
@@ -1858,19 +1858,19 @@
.prapra3w2nu
.predy2s3po
.prz8
-.prze[lstroke]k2
+.przełk2
.prze2d2
-.prze3[cacute]2
-.prze3[lstroke]2
-.prze3[sacute]2
-.prze3[zacute]2
-.prze3[zdotaccent]2
+.prze3ć2
+.prze3Å‚2
+.prze3ś2
+.prze3ź2
+.prze3ż2
.prze3b2
.prze3c2
-.prze3d[aogonek]
-.prze3d[eogonek]
-.prze3d[zacute]2
-.prze3d4[lstroke]u[zdotaccent]
+.prze3dÄ…
+.prze3dÄ™
+.prze3dź2
+.prze3d4łuż
.prze3d4much
.prze3d4o3br
.prze3d4o3st
@@ -1897,8 +1897,8 @@
.prze3u2
.prze3w2
.prze3z2
-.prze4d5[lstroke]u[zdotaccent]yc
-.prze4d5[zdotaccent]2
+.prze4d5łużyc
+.prze4d5ż2
.prze4d5o4stat
.prze4d5za
.prze4d5zg2
@@ -1916,9 +1916,9 @@
.przeciwa2
.przeciww2
.przecz2
-.przed3[cacute]2
-.przed3[lstroke]2
-.przed3[sacute]2
+.przed3ć2
+.przed3Å‚2
+.przed3ś2
.przed3a2gon
.przed3a2kc
.przed3alp
@@ -1940,15 +1940,15 @@
.przed3p2
.przed3r2
.przed3s2
-.przed3si[eogonek]3w2
+.przed3się3w2
.przed3sz2
.przed3t2
.przed3u2
.przed3w2
.przedch2
.przedcz2
-.przedd[zacute]2
-.przedd[zdotaccent]2
+.przeddź2
+.przeddż2
.przeddz2
.przedgrz2
.przedy2s3ku
@@ -1957,7 +1957,7 @@
.przekr2
.przemk2
.przepch2
-.przer[zdotaccent]2
+.przerż2
.przerz2
.przesch2
.przesm2
@@ -1965,11 +1965,11 @@
.przetk2
.przetr2
.przetran2s3
-.przy3[cacute]2
-.przy3[lstroke]2
-.przy3[sacute]2
-.przy3[zacute]2
-.przy3[zdotaccent]2
+.przy3ć2
+.przy3Å‚2
+.przy3ś2
+.przy3ź2
+.przy3ż2
.przy3b2
.przy3c2
.przy3d2
@@ -1988,14 +1988,14 @@
.przybr2
.przych2
.przycz2
-.przyd[zacute]2
-.przyd[zdotaccent]2
+.przydź2
+.przydż2
.przydz2
.przygrz2
.przymk2
.przyoz2
.przypch2
-.przyr[zdotaccent]2
+.przyrż2
.przyrz2
.przysch2
.przysz2
@@ -2006,12 +2006,12 @@
.pw8
.px8
.pz8
-.r[cacute]8
-.r[lstroke]8
-.r[nacute]8
-.r[sacute]8
-.r[zacute]8
-.r[zdotaccent]8
+.rć8
+.rł8
+.rń8
+.rś8
+.rź8
+.rż8
.r8
.rb8
.rc8
@@ -2028,11 +2028,11 @@
.ro2z3
.ro3z4a
.ro3z4e
-.ro3z4e3[cacute]2
-.ro3z4e3[lstroke]2
-.ro3z4e3[sacute]2
-.ro3z4e3[zacute]2
-.ro3z4e3[zdotaccent]2
+.ro3z4e3ć2
+.ro3z4e3Å‚2
+.ro3z4e3ś2
+.ro3z4e3ź2
+.ro3z4e3ż2
.ro3z4e3b2
.ro3z4e3c2
.ro3z4e3d2
@@ -2055,16 +2055,16 @@
.ro4z5e2mo
.ro4z5e4g3z
.ro4z5e4n3t
-.roz[sacute]2
+.rozś2
.rozbrz2
.rozd2
.rozech2
.rozecz2
-.rozed[zacute]2
-.rozed[zdotaccent]2
+.rozedź2
+.rozedż2
.rozedz2
.rozepch2
-.rozer[zdotaccent]2
+.rozerż2
.rozerz2
.rozesch2
.rozesz2
@@ -2083,12 +2083,12 @@
.rw8
.rx8
.rz8
-.s[cacute]8
-.s[lstroke]8
-.s[nacute]8
-.s[sacute]8
-.s[zacute]8
-.s[zdotaccent]8
+.sć8
+.sł8
+.sń8
+.sś8
+.sź8
+.sż8
.s8
.samo3ch2
.samo3k2
@@ -2104,9 +2104,9 @@
.sh8
.siede2m3
.siedemse2t3
-.siedmio3[sacute]2
+.siedmio3ś2
.sj8
-.sk[aogonek]2d5[zdotaccent]e
+.ską2d5że
.sk8
.skl8
.skr8
@@ -2114,14 +2114,14 @@
.sm8
.sn8
.sobo3w2
-.sp[oacute]2[lstroke]3
+.spó2ł3
.sp8
.spo2d2
-.spo3[cacute]2
-.spo3[lstroke]2
-.spo3[sacute]2
-.spo3[zacute]2
-.spo3[zdotaccent]2
+.spo3ć2
+.spo3Å‚2
+.spo3ś2
+.spo3ź2
+.spo3ż2
.spo3b2
.spo3c2
.spo3dz2
@@ -2141,8 +2141,8 @@
.spo4r3t
.spoch2
.spocz2
-.spod[zacute]2
-.spod[zdotaccent]2
+.spodź2
+.spodż2
.spod3d
.sporz2
.sposz2
@@ -2169,16 +2169,16 @@
.sw8
.sx8
.sz8
-.sze[sacute][cacute]se2t3
-.sze[sacute]cio3[sacute]2
-.sze2[sacute]2[cacute]3
+.sześćse2t3
+.sześcio3ś2
+.sze2ś2ć3
.sze2s3
-.t[cacute]8
-.t[lstroke]8
-.t[nacute]8
-.t[sacute]8
-.t[zacute]8
-.t[zdotaccent]8
+.tć8
+.tł8
+.tń8
+.tś8
+.tź8
+.tż8
.t8
.ta2o3
.ta2r7zan
@@ -2197,10 +2197,10 @@
.tn8
.toa3
.tp8
-.tr[oacute]2j3
-.tr[oacute]3j4[aogonek]
-.tr[oacute]3j4[eogonek]
-.tr[oacute]3j4ecz
+.tró2j3
+.tró3j4ą
+.tró3j4ę
+.tró3j4ecz
.tr8
.tran2s3
.tran3s4e
@@ -2218,17 +2218,17 @@
.tv8
.tw8
.tx8
-.tysi[aogonek]2c3
-.tysi[aogonek]3c4a
-.tysi[aogonek]3c4e
-.tysi[aogonek]3cz
-.tysi[aogonek]4c5z[lstroke]
+.tysiÄ…2c3
+.tysiÄ…3c4a
+.tysiÄ…3c4e
+.tysiÄ…3cz
+.tysią4c5zł
.tz8
-.u[cacute]2
-.u[sacute]2
-.u3[lstroke]2
-.u3[zacute]2
-.u3[zdotaccent]2
+.uć2
+.uś2
+.u3Å‚2
+.u3ź2
+.u3ż2
.u3b2
.u3c2
.u3d2
@@ -2264,18 +2264,18 @@
.ubr2
.uch2
.ucz2
-.ud[zacute]2
-.ud[zdotaccent]2
+.udź2
+.udż2
.udz2
.ukr2
.umk2
.upch2
.upo2d2
-.upo3[cacute]2
-.upo3[lstroke]2
-.upo3[sacute]2
-.upo3[zacute]2
-.upo3[zdotaccent]2
+.upo3ć2
+.upo3Å‚2
+.upo3ś2
+.upo3ź2
+.upo3ż2
.upo3b2
.upo3c2
.upo3da
@@ -2293,12 +2293,12 @@
.upo3z2
.upoch2
.upocz2
-.upod[zacute]2
-.upod[zdotaccent]2
+.upodź2
+.upodż2
.upod3d
.uporz2
.uposz2
-.ur[zdotaccent]2
+.urż2
.uro2z3
.urz2
.usch2
@@ -2306,12 +2306,12 @@
.utk2
.utr2
.uze3w2
-.v[cacute]8
-.v[lstroke]8
-.v[nacute]8
-.v[sacute]8
-.v[zacute]8
-.v[zdotaccent]8
+.vć8
+.vł8
+.vń8
+.vś8
+.vź8
+.vż8
.v8
.vb8
.vc8
@@ -2332,20 +2332,20 @@
.vw8
.vx8
.vz8
-.w[cacute]8
-.w[lstroke]8
-.w[nacute]8
-.w[sacute]8
-.w[zacute]8
-.w[zdotaccent]8
+.wć8
+.wł8
+.wń8
+.wś8
+.wź8
+.wż8
.w8
.wb8
.wc8
.wd8
-.we3[cacute]2
-.we3[lstroke]2
-.we3[sacute]2
-.we3[zdotaccent]2
+.we3ć2
+.we3Å‚2
+.we3ś2
+.we3ż2
.we3b2
.we3c2
.we3d2
@@ -2362,7 +2362,7 @@
.we3t2
.we3w2
.we3z2
-.we4[lstroke]3n
+.we4Å‚3n
.we4k3t
.we4l3w
.we4n3d
@@ -2375,22 +2375,22 @@
.we4s3prz
.we4s3tch2
.we4z3br
-.we4z3g[lstroke]
+.we4z3gł
.wech2
.wecz2
-.wed[zacute]2
-.wed[zdotaccent]2
+.wedź2
+.wedż2
.wedz2
.wemk2
.wepch2
.werz2
.wesz2
.wetk2
-.wewn[aogonek]2trz3
+.wewnÄ…2trz3
.wf8
.wg8
.wh8
-.wielo3[sacute]2
+.wielo3ś2
.wielo3d2
.wielo3k2
.wieluse2t3
@@ -2405,11 +2405,11 @@
.wp8
.wr8
.ws8
-.wsp[oacute][lstroke]i2
-.wsp[oacute][lstroke]o2b3w
-.wsp[oacute][lstroke]u2
-.wsp[oacute][lstroke]w2
-.wsp[oacute]2[lstroke]3
+.współi2
+.współo2b3w
+.współu2
+.współw2
+.wspó2ł3
.wsze2ch3
.wszecho2
.wszechw2
@@ -2417,11 +2417,11 @@
.wv8
.ww8
.wx8
-.wy3[cacute]2
-.wy3[lstroke]2
-.wy3[sacute]2
-.wy3[zacute]2
-.wy3[zdotaccent]2
+.wy3ć2
+.wy3Å‚2
+.wy3ś2
+.wy3ź2
+.wy3ż2
.wy3b2
.wy3c2
.wy3d2
@@ -2438,14 +2438,14 @@
.wy3t2
.wy3w2
.wy3z2
-.wy4[zdotaccent]3sz
+.wy4ż3sz
.wy4cz3ha
.wybr2
.wybrz2
.wych2
.wycz2
-.wyd[zacute]2
-.wyd[zdotaccent]2
+.wydź2
+.wydż2
.wydr2
.wydz2
.wye2k2s3
@@ -2457,7 +2457,7 @@
.wymk2
.wypch2
.wyprz2
-.wyr[zdotaccent]2
+.wyrż2
.wyrz2
.wysch2
.wysm2
@@ -2466,12 +2466,12 @@
.wytk2
.wytr2
.wz8
-.x[cacute]8
-.x[lstroke]8
-.x[nacute]8
-.x[sacute]8
-.x[zacute]8
-.x[zdotaccent]8
+.xć8
+.xł8
+.xń8
+.xś8
+.xź8
+.xż8
.x8
.xb8
.xc8
@@ -2492,19 +2492,19 @@
.xw8
.xx8
.xz8
-.z[cacute]8
-.z[lstroke]8
-.z[lstroke]o3w2
-.z[nacute]8
-.z[sacute]8
-.z[zacute]8
-.z[zdotaccent]8
+.zć8
+.zł8
+.zło3w2
+.zń8
+.zś8
+.zź8
+.zż8
.z8
-.za3[cacute]2
-.za3[lstroke]2
-.za3[sacute]2
-.za3[zacute]2
-.za3[zdotaccent]2
+.za3ć2
+.za3Å‚2
+.za3ś2
+.za3ź2
+.za3ż2
.za3b2
.za3c2
.za3d2
@@ -2535,10 +2535,10 @@
.zabrz2
.zach2
.zacz2
-.zad[zacute]2
-.zad[zdotaccent]2
-.zado[sacute][cacute]u4
-.zado2[sacute][cacute]3
+.zadź2
+.zadż2
+.zadośću4
+.zado2ść3
.zadr2
.zady2s3po
.zadz2
@@ -2550,7 +2550,7 @@
.zakr2
.zakrz2
.zanie3d2
-.zar[zdotaccent]2
+.zarż2
.zarz2
.zasch2
.zasm2
@@ -2568,11 +2568,11 @@
.zdy2s3kont
.zdy2s3kred
.zdy2s3kwal
-.ze3[cacute]2
-.ze3[lstroke]2
-.ze3[sacute]2
-.ze3[zacute]2
-.ze3[zdotaccent]2
+.ze3ć2
+.ze3Å‚2
+.ze3ś2
+.ze3ź2
+.ze3ż2
.ze3b2
.ze3c2
.ze3d2
@@ -2596,12 +2596,12 @@
.ze4t3hap
.zech2
.zecz2
-.zed[zacute]2
-.zed[zdotaccent]2
+.zedź2
+.zedż2
.zedz2
.zekl2
.zepch2
-.zer[zdotaccent]2
+.zerż2
.zerz2
.zesch2
.zesm4
@@ -2617,12 +2617,12 @@
.zmartwy2ch3
.zmartwychw2
.zn8
-.znie3[cacute]2
-.znie3[lstroke]2
-.znie3[nacute]2
-.znie3[sacute]2
-.znie3[zacute]2
-.znie3[zdotaccent]2
+.znie3ć2
+.znie3Å‚2
+.znie3Å„2
+.znie3ś2
+.znie3ź2
+.znie3ż2
.znie3b2
.znie3c2
.znie3d2
@@ -2639,11 +2639,11 @@
.znie3t2
.znie3w2
.znie3z2
-.znie4d[zacute]3
+.znie4dź3
.znie4m3c
.zniech2
.zniecz2
-.znied[zdotaccent]2
+.zniedż2
.zniedz2
.znierz2
.zniesz2
@@ -2658,133 +2658,133 @@
.zw8
.zx8
.zz8
-[aogonek]1
-[eogonek]1
-[oacute]1
-[oacute]4w3cz
-[sacute]1c
-[zacute]2d[zacute]
-1[sacute]2ci
-2[cacute]1[nacute]
-2[cacute]1[sacute]
-2[cacute]1[zacute]
-2[cacute]1[zdotaccent]
-2[cacute]1b
-2[cacute]1c
-2[cacute]1d
-2[cacute]1f
-2[cacute]1g
-2[cacute]1k
-2[cacute]1m
-2[cacute]1n
-2[cacute]1p
-2[cacute]1s
-2[cacute]1t
-2[cacute]1z
-2[lstroke]1[cacute]
-2[lstroke]1[nacute]
-2[lstroke]1[sacute]
-2[lstroke]1[zacute]
-2[lstroke]1[zdotaccent]
-2[lstroke]1b
-2[lstroke]1c
-2[lstroke]1d
-2[lstroke]1f
-2[lstroke]1g
-2[lstroke]1h
-2[lstroke]1j
-2[lstroke]1k
-2[lstroke]1l
-2[lstroke]1m
-2[lstroke]1n
-2[lstroke]1p
-2[lstroke]1r
-2[lstroke]1s
-2[lstroke]1t
-2[lstroke]1w
-2[lstroke]1z
-2[nacute]1[cacute]
-2[nacute]1[lstroke]
-2[nacute]1[nacute]
-2[nacute]1[sacute]
-2[nacute]1[zacute]
-2[nacute]1[zdotaccent]
-2[nacute]1b
-2[nacute]1c
-2[nacute]1d
-2[nacute]1f
-2[nacute]1g
-2[nacute]1h
-2[nacute]1j
-2[nacute]1k
-2[nacute]1l
-2[nacute]1m
-2[nacute]1n
-2[nacute]1p
-2[nacute]1r
-2[nacute]1s
-2[nacute]1t
-2[nacute]1w
-2[nacute]1z
-2[sacute][cacute]c
-2[sacute]1[sacute]
-2[sacute]1[zacute]
-2[sacute]1[zdotaccent]
-2[sacute]1b
-2[sacute]1d
-2[sacute]1f
-2[sacute]1g
-2[sacute]1k
-2[sacute]1p
-2[sacute]1s
-2[sacute]1t
-2[sacute]1z
-2[sacute]lm
-2[sacute]ln
-2[zacute]1[cacute]
-2[zacute]1[sacute]
-2[zacute]1[zdotaccent]
-2[zacute]1b
-2[zacute]1c
-2[zacute]1d
-2[zacute]1f
-2[zacute]1g
-2[zacute]1k
-2[zacute]1l
-2[zacute]1m
-2[zacute]1n
-2[zacute]1p
-2[zacute]1s
-2[zacute]1t
-2[zacute]1w
-2[zacute]1z
-2[zdotaccent]1[cacute]
-2[zdotaccent]1[lstroke]
-2[zdotaccent]1[nacute]
-2[zdotaccent]1[sacute]
-2[zdotaccent]1[zacute]
-2[zdotaccent]1b
-2[zdotaccent]1c
-2[zdotaccent]1d
-2[zdotaccent]1f
-2[zdotaccent]1g
-2[zdotaccent]1j
-2[zdotaccent]1k
-2[zdotaccent]1l
-2[zdotaccent]1m
-2[zdotaccent]1n
-2[zdotaccent]1p
-2[zdotaccent]1r
-2[zdotaccent]1s
-2[zdotaccent]1t
-2[zdotaccent]1w
-2[zdotaccent]1z
-2b[lstroke]k
-2b1[cacute]
-2b1[nacute]
-2b1[sacute]
-2b1[zacute]
-2b1[zdotaccent]
+Ä…1
+ę1
+ó1
+ó4w3cz
+ś1c
+ź2dź
+1ś2ci
+2ć1ń
+2ć1ś
+2ć1ź
+2ć1ż
+2ć1b
+2ć1c
+2ć1d
+2ć1f
+2ć1g
+2ć1k
+2ć1m
+2ć1n
+2ć1p
+2ć1s
+2ć1t
+2ć1z
+2ł1ć
+2Å‚1Å„
+2Å‚1Å›
+2ł1ź
+2ł1ż
+2Å‚1b
+2Å‚1c
+2Å‚1d
+2Å‚1f
+2Å‚1g
+2Å‚1h
+2Å‚1j
+2Å‚1k
+2Å‚1l
+2Å‚1m
+2Å‚1n
+2Å‚1p
+2Å‚1r
+2Å‚1s
+2Å‚1t
+2Å‚1w
+2Å‚1z
+2ń1ć
+2Å„1Å‚
+2Å„1Å„
+2Å„1Å›
+2ń1ź
+2ń1ż
+2Å„1b
+2Å„1c
+2Å„1d
+2Å„1f
+2Å„1g
+2Å„1h
+2Å„1j
+2Å„1k
+2Å„1l
+2Å„1m
+2Å„1n
+2Å„1p
+2Å„1r
+2Å„1s
+2Å„1t
+2Å„1w
+2Å„1z
+2śćc
+2ś1ś
+2ś1ź
+2ś1ż
+2ś1b
+2ś1d
+2ś1f
+2ś1g
+2ś1k
+2ś1p
+2ś1s
+2ś1t
+2ś1z
+2ślm
+2śln
+2ź1ć
+2ź1ś
+2ź1ż
+2ź1b
+2ź1c
+2ź1d
+2ź1f
+2ź1g
+2ź1k
+2ź1l
+2ź1m
+2ź1n
+2ź1p
+2ź1s
+2ź1t
+2ź1w
+2ź1z
+2ż1ć
+2ż1ł
+2ż1ń
+2ż1ś
+2ż1ź
+2ż1b
+2ż1c
+2ż1d
+2ż1f
+2ż1g
+2ż1j
+2ż1k
+2ż1l
+2ż1m
+2ż1n
+2ż1p
+2ż1r
+2ż1s
+2ż1t
+2ż1w
+2ż1z
+2błk
+2b1ć
+2b1Å„
+2b1Å›
+2b1ź
+2b1ż
2b1c
2b1d
2b1f
@@ -2797,11 +2797,11 @@
2b1t
2b1z
2brn
-2c1[cacute]
-2c1[nacute]
-2c1[sacute]
-2c1[zacute]
-2c1[zdotaccent]
+2c1ć
+2c1Å„
+2c1Å›
+2c1ź
+2c1ż
2c1b
2c1d
2c1f
@@ -2813,11 +2813,11 @@
2c1p
2c1s
2c1t
-2ch1[cacute]
-2ch1[nacute]
-2ch1[sacute]
-2ch1[zacute]
-2ch1[zdotaccent]
+2ch1ć
+2ch1Å„
+2ch1Å›
+2ch1ź
+2ch1ż
2ch1b
2ch1c
2ch1d
@@ -2830,11 +2830,11 @@
2ch1s
2ch1t
2ch1z
-2cz1[cacute]
-2cz1[nacute]
-2cz1[sacute]
-2cz1[zacute]
-2cz1[zdotaccent]
+2cz1ć
+2cz1Å„
+2cz1Å›
+2cz1ź
+2cz1ż
2cz1b
2cz1c
2cz1d
@@ -2848,45 +2848,45 @@
2cz1s
2cz1t
2cz1z
-2d[lstroke]b
-2d[lstroke]sz
-2d[zacute]1[cacute]
-2d[zacute]1[nacute]
-2d[zacute]1[sacute]
-2d[zacute]1[zacute]
-2d[zacute]1[zdotaccent]
-2d[zacute]1b
-2d[zacute]1c
-2d[zacute]1d
-2d[zacute]1f
-2d[zacute]1g
-2d[zacute]1k
-2d[zacute]1m
-2d[zacute]1n
-2d[zacute]1p
-2d[zacute]1s
-2d[zacute]1t
-2d[zacute]1z
-2d[zdotaccent]1[cacute]
-2d[zdotaccent]1[nacute]
-2d[zdotaccent]1[sacute]
-2d[zdotaccent]1[zacute]
-2d[zdotaccent]1[zdotaccent]
-2d[zdotaccent]1b
-2d[zdotaccent]1c
-2d[zdotaccent]1d
-2d[zdotaccent]1f
-2d[zdotaccent]1g
-2d[zdotaccent]1k
-2d[zdotaccent]1m
-2d[zdotaccent]1n
-2d[zdotaccent]1p
-2d[zdotaccent]1s
-2d[zdotaccent]1t
-2d[zdotaccent]1z
-2d1[cacute]
-2d1[nacute]
-2d1[sacute]
+2dłb
+2dłsz
+2dź1ć
+2dź1ń
+2dź1ś
+2dź1ź
+2dź1ż
+2dź1b
+2dź1c
+2dź1d
+2dź1f
+2dź1g
+2dź1k
+2dź1m
+2dź1n
+2dź1p
+2dź1s
+2dź1t
+2dź1z
+2dż1ć
+2dż1ń
+2dż1ś
+2dż1ź
+2dż1ż
+2dż1b
+2dż1c
+2dż1d
+2dż1f
+2dż1g
+2dż1k
+2dż1m
+2dż1n
+2dż1p
+2dż1s
+2dż1t
+2dż1z
+2d1ć
+2d1Å„
+2d1Å›
2d1b
2d1c
2d1f
@@ -2898,11 +2898,11 @@
2d1s
2d1t
2drn
-2dz1[cacute]
-2dz1[nacute]
-2dz1[sacute]
-2dz1[zacute]
-2dz1[zdotaccent]
+2dz1ć
+2dz1Å„
+2dz1Å›
+2dz1ź
+2dz1ż
2dz1b
2dz1c
2dz1d
@@ -2920,12 +2920,12 @@
2f1k
2f1m
2f1n
-2g[lstroke]b
-2g1[cacute]
-2g1[nacute]
-2g1[sacute]
-2g1[zacute]
-2g1[zdotaccent]
+2głb
+2g1ć
+2g1Å„
+2g1Å›
+2g1ź
+2g1ż
2g1b
2g1c
2g1d
@@ -2936,12 +2936,12 @@
2g1s
2g1t
2g1z
-2h1[cacute]
-2h1[lstroke]
-2h1[nacute]
-2h1[sacute]
-2h1[zacute]
-2h1[zdotaccent]
+2h1ć
+2h1Å‚
+2h1Å„
+2h1Å›
+2h1ź
+2h1ż
2h1b
2h1c
2h1d
@@ -2958,12 +2958,12 @@
2h1t
2h1w
2h1z
-2j1[cacute]
-2j1[lstroke]
-2j1[nacute]
-2j1[sacute]
-2j1[zacute]
-2j1[zdotaccent]
+2j1ć
+2j1Å‚
+2j1Å„
+2j1Å›
+2j1ź
+2j1ż
2j1b
2j1c
2j1d
@@ -2980,12 +2980,12 @@
2j1t
2j1w
2j1z
-2k[lstroke]b
-2k1[cacute]
-2k1[nacute]
-2k1[sacute]
-2k1[zacute]
-2k1[zdotaccent]
+2kłb
+2k1ć
+2k1Å„
+2k1Å›
+2k1ź
+2k1ż
2k1b
2k1c
2k1d
@@ -2998,12 +2998,12 @@
2k1sz
2k1t
2k1z
-2l1[cacute]
-2l1[lstroke]
-2l1[nacute]
-2l1[sacute]
-2l1[zacute]
-2l1[zdotaccent]
+2l1ć
+2l1Å‚
+2l1Å„
+2l1Å›
+2l1ź
+2l1ż
2l1b
2l1c
2l1d
@@ -3020,12 +3020,12 @@
2l1t
2l1w
2l1z
-2m1[cacute]
-2m1[lstroke]
-2m1[nacute]
-2m1[sacute]
-2m1[zacute]
-2m1[zdotaccent]
+2m1ć
+2m1Å‚
+2m1Å„
+2m1Å›
+2m1ź
+2m1ż
2m1b
2m1c
2m1d
@@ -3042,12 +3042,12 @@
2m1t
2m1w
2m1z
-2n1[cacute]
-2n1[lstroke]
-2n1[nacute]
-2n1[sacute]
-2n1[zacute]
-2n1[zdotaccent]
+2n1ć
+2n1Å‚
+2n1Å„
+2n1Å›
+2n1ź
+2n1ż
2n1b
2n1c
2n1d
@@ -3065,11 +3065,11 @@
2n1w
2n1z
2ntn
-2p1[cacute]
-2p1[nacute]
-2p1[sacute]
-2p1[zacute]
-2p1[zdotaccent]
+2p1ć
+2p1Å„
+2p1Å›
+2p1ź
+2p1ż
2p1b
2p1c
2p1d
@@ -3083,12 +3083,12 @@
2p1t
2p1z
2pln
-2r1[cacute]
-2r1[lstroke]
-2r1[nacute]
-2r1[sacute]
-2r1[zacute]
-2r1[zdotaccent]
+2r1ć
+2r1Å‚
+2r1Å„
+2r1Å›
+2r1ź
+2r1ż
2r1b
2r1c
2r1d
@@ -3104,12 +3104,12 @@
2r1s
2r1t
2r1w
-2rz1[cacute]
-2rz1[lstroke]
-2rz1[nacute]
-2rz1[sacute]
-2rz1[zacute]
-2rz1[zdotaccent]
+2rz1ć
+2rz1Å‚
+2rz1Å„
+2rz1Å›
+2rz1ź
+2rz1ż
2rz1b
2rz1c
2rz1d
@@ -3126,9 +3126,9 @@
2rz1s
2rz1t
2rz1w
-2s[lstroke]b
-2s1[zacute]
-2s1[zdotaccent]
+2słb
+2s1ź
+2s1ż
2s1b
2s1d
2s1f
@@ -3138,8 +3138,8 @@
2stk
2stn
2stsz
-2sz1[cacute]
-2sz1[sacute]
+2sz1ć
+2sz1Å›
2sz1c
2sz1f
2sz1k
@@ -3152,11 +3152,11 @@
2sz1w
2sz1z
2szln
-2t1[cacute]
-2t1[nacute]
-2t1[sacute]
-2t1[zacute]
-2t1[zdotaccent]
+2t1ć
+2t1Å„
+2t1Å›
+2t1ź
+2t1ż
2t1b
2t1c
2t1d
@@ -3171,12 +3171,12 @@
2tln
2trk
2trzn
-2w1[cacute]
-2w1[lstroke]
-2w1[nacute]
-2w1[sacute]
-2w1[zacute]
-2w1[zdotaccent]
+2w1ć
+2w1Å‚
+2w1Å„
+2w1Å›
+2w1ź
+2w1ż
2w1b
2w1c
2w1d
@@ -3192,8 +3192,8 @@
2w1s
2w1t
2w1z
-2z1[cacute]
-2z1[sacute]
+2z1ć
+2z1Å›
2z1c
2z1d
2z1f
@@ -3210,13 +3210,13 @@
3m2nezj
3m2sk2n
3p2neu
-3w2[lstroke]ad
-3w2[lstroke]os
+3w2Å‚ad
+3w2Å‚os
3w2czas
-4[cacute]3[cacute]
-4[lstroke]3[lstroke]
-4[zacute]3[zacute]
-4[zdotaccent]3[zdotaccent]
+4ć3ć
+4Å‚3Å‚
+4ź3ź
+4ż3ż
4b3b
4c3c
4d3d
@@ -3233,169 +3233,169 @@
4t3t
4w3w
4z3z
-8[cacute].
-8[cacute][cacute].
-8[cacute][lstroke].
-8[cacute][nacute].
-8[cacute][sacute].
-8[cacute][zacute].
-8[cacute][zdotaccent].
-8[cacute]b.
-8[cacute]c.
-8[cacute]d.
-8[cacute]f.
-8[cacute]g.
-8[cacute]h.
-8[cacute]j.
-8[cacute]k.
-8[cacute]l.
-8[cacute]m.
-8[cacute]n.
-8[cacute]p.
-8[cacute]r.
-8[cacute]s.
-8[cacute]t.
-8[cacute]v.
-8[cacute]w.
-8[cacute]x.
-8[cacute]z.
-8[lstroke].
-8[lstroke][cacute].
-8[lstroke][lstroke].
-8[lstroke][nacute].
-8[lstroke][sacute].
-8[lstroke][zacute].
-8[lstroke][zdotaccent].
-8[lstroke]b.
-8[lstroke]c.
-8[lstroke]d.
-8[lstroke]f.
-8[lstroke]g.
-8[lstroke]h.
-8[lstroke]j.
-8[lstroke]k.
-8[lstroke]l.
-8[lstroke]m.
-8[lstroke]n.
-8[lstroke]p.
-8[lstroke]r.
-8[lstroke]s.
-8[lstroke]t.
-8[lstroke]v.
-8[lstroke]w.
-8[lstroke]x.
-8[lstroke]z.
-8[nacute].
-8[nacute][cacute].
-8[nacute][lstroke].
-8[nacute][nacute].
-8[nacute][sacute].
-8[nacute][zacute].
-8[nacute][zdotaccent].
-8[nacute]b.
-8[nacute]c.
-8[nacute]d.
-8[nacute]f.
-8[nacute]g.
-8[nacute]h.
-8[nacute]j.
-8[nacute]k.
-8[nacute]l.
-8[nacute]m.
-8[nacute]n.
-8[nacute]p.
-8[nacute]r.
-8[nacute]s.
-8[nacute]t.
-8[nacute]v.
-8[nacute]w.
-8[nacute]x.
-8[nacute]z.
-8[sacute].
-8[sacute][cacute].
-8[sacute][lstroke].
-8[sacute][nacute].
-8[sacute][sacute].
-8[sacute][zacute].
-8[sacute][zdotaccent].
-8[sacute]b.
-8[sacute]c.
-8[sacute]d.
-8[sacute]f.
-8[sacute]g.
-8[sacute]h.
-8[sacute]j.
-8[sacute]k.
-8[sacute]l.
-8[sacute]m.
-8[sacute]n.
-8[sacute]p.
-8[sacute]r.
-8[sacute]s.
-8[sacute]t.
-8[sacute]v.
-8[sacute]w.
-8[sacute]x.
-8[sacute]z.
-8[zacute].
-8[zacute][cacute].
-8[zacute][lstroke].
-8[zacute][nacute].
-8[zacute][sacute].
-8[zacute][zacute].
-8[zacute][zdotaccent].
-8[zacute]b.
-8[zacute]c.
-8[zacute]d.
-8[zacute]f.
-8[zacute]g.
-8[zacute]h.
-8[zacute]j.
-8[zacute]k.
-8[zacute]l.
-8[zacute]m.
-8[zacute]n.
-8[zacute]p.
-8[zacute]r.
-8[zacute]s.
-8[zacute]t.
-8[zacute]v.
-8[zacute]w.
-8[zacute]x.
-8[zacute]z.
-8[zdotaccent].
-8[zdotaccent][cacute].
-8[zdotaccent][lstroke].
-8[zdotaccent][nacute].
-8[zdotaccent][sacute].
-8[zdotaccent][zacute].
-8[zdotaccent][zdotaccent].
-8[zdotaccent]b.
-8[zdotaccent]c.
-8[zdotaccent]d.
-8[zdotaccent]f.
-8[zdotaccent]g.
-8[zdotaccent]h.
-8[zdotaccent]j.
-8[zdotaccent]k.
-8[zdotaccent]l.
-8[zdotaccent]m.
-8[zdotaccent]n.
-8[zdotaccent]p.
-8[zdotaccent]r.
-8[zdotaccent]s.
-8[zdotaccent]t.
-8[zdotaccent]v.
-8[zdotaccent]w.
-8[zdotaccent]x.
-8[zdotaccent]z.
+8ć.
+8ćć.
+8ćł.
+8ćń.
+8ćś.
+8ćź.
+8ćż.
+8ćb.
+8ćc.
+8ćd.
+8ćf.
+8ćg.
+8ćh.
+8ćj.
+8ćk.
+8ćl.
+8ćm.
+8ćn.
+8ćp.
+8ćr.
+8ćs.
+8ćt.
+8ćv.
+8ćw.
+8ćx.
+8ćz.
+8Å‚.
+8łć.
+8Å‚Å‚.
+8Å‚Å„.
+8Å‚Å›.
+8łź.
+8łż.
+8Å‚b.
+8Å‚c.
+8Å‚d.
+8Å‚f.
+8Å‚g.
+8Å‚h.
+8Å‚j.
+8Å‚k.
+8Å‚l.
+8Å‚m.
+8Å‚n.
+8Å‚p.
+8Å‚r.
+8Å‚s.
+8Å‚t.
+8Å‚v.
+8Å‚w.
+8Å‚x.
+8Å‚z.
+8Å„.
+8ńć.
+8Å„Å‚.
+8Å„Å„.
+8Å„Å›.
+8ńź.
+8ńż.
+8Å„b.
+8Å„c.
+8Å„d.
+8Å„f.
+8Å„g.
+8Å„h.
+8Å„j.
+8Å„k.
+8Å„l.
+8Å„m.
+8Å„n.
+8Å„p.
+8Å„r.
+8Å„s.
+8Å„t.
+8Å„v.
+8Å„w.
+8Å„x.
+8Å„z.
+8Å›.
+8ść.
+8śł.
+8śń.
+8śś.
+8śź.
+8śż.
+8śb.
+8śc.
+8śd.
+8śf.
+8śg.
+8śh.
+8śj.
+8śk.
+8śl.
+8śm.
+8śn.
+8śp.
+8śr.
+8śs.
+8śt.
+8śv.
+8św.
+8śx.
+8śz.
+8ź.
+8źć.
+8źł.
+8źń.
+8źś.
+8źź.
+8źż.
+8źb.
+8źc.
+8źd.
+8źf.
+8źg.
+8źh.
+8źj.
+8źk.
+8źl.
+8źm.
+8źn.
+8źp.
+8źr.
+8źs.
+8źt.
+8źv.
+8źw.
+8źx.
+8źz.
+8ż.
+8żć.
+8żł.
+8żń.
+8żś.
+8żź.
+8żż.
+8żb.
+8żc.
+8żd.
+8żf.
+8żg.
+8żh.
+8żj.
+8żk.
+8żl.
+8żm.
+8żn.
+8żp.
+8żr.
+8żs.
+8żt.
+8żv.
+8żw.
+8żx.
+8żz.
8b.
-8b[cacute].
-8b[lstroke].
-8b[nacute].
-8b[sacute].
-8b[zacute].
-8b[zdotaccent].
+8bć.
+8bł.
+8bń.
+8bÅ›.
+8bź.
+8bż.
8bb.
8bc.
8bd.
@@ -3417,19 +3417,19 @@
8bx.
8bz.
8c.
-8c[cacute].
-8c[lstroke].
-8c[nacute].
-8c[sacute].
-8c[zacute].
-8c[zdotaccent].
+8cć.
+8cł.
+8cń.
+8cÅ›.
+8cź.
+8cż.
8cb.
8cc.
8cd.
8cf.
8cg.
8ch.
-8ch[lstroke].
+8chł.
8chrz.
8chw.
8cj.
@@ -3447,12 +3447,12 @@
8cz.
8czt.
8d.
-8d[cacute].
-8d[lstroke].
-8d[nacute].
-8d[sacute].
-8d[zacute].
-8d[zdotaccent].
+8dć.
+8dł.
+8dń.
+8dÅ›.
+8dź.
+8dż.
8db.
8dc.
8dd.
@@ -3474,12 +3474,12 @@
8dx.
8dz.
8f.
-8f[cacute].
-8f[lstroke].
-8f[nacute].
-8f[sacute].
-8f[zacute].
-8f[zdotaccent].
+8fć.
+8fł.
+8fń.
+8fÅ›.
+8fź.
+8fż.
8fb.
8fc.
8fd.
@@ -3500,12 +3500,12 @@
8fx.
8fz.
8g.
-8g[cacute].
-8g[lstroke].
-8g[nacute].
-8g[sacute].
-8g[zacute].
-8g[zdotaccent].
+8gć.
+8gł.
+8gń.
+8gÅ›.
+8gź.
+8gż.
8gb.
8gc.
8gd.
@@ -3526,12 +3526,12 @@
8gx.
8gz.
8h.
-8h[cacute].
-8h[lstroke].
-8h[nacute].
-8h[sacute].
-8h[zacute].
-8h[zdotaccent].
+8hć.
+8hł.
+8hń.
+8hÅ›.
+8hź.
+8hż.
8hb.
8hc.
8hd.
@@ -3552,12 +3552,12 @@
8hx.
8hz.
8j.
-8j[cacute].
-8j[lstroke].
-8j[nacute].
-8j[sacute].
-8j[zacute].
-8j[zdotaccent].
+8jć.
+8jł.
+8jń.
+8jÅ›.
+8jź.
+8jż.
8jb.
8jc.
8jd.
@@ -3578,12 +3578,12 @@
8jx.
8jz.
8k.
-8k[cacute].
-8k[lstroke].
-8k[nacute].
-8k[sacute].
-8k[zacute].
-8k[zdotaccent].
+8kć.
+8kł.
+8kń.
+8kÅ›.
+8kź.
+8kż.
8kb.
8kc.
8kd.
@@ -3605,12 +3605,12 @@
8kx.
8kz.
8l.
-8l[cacute].
-8l[lstroke].
-8l[nacute].
-8l[sacute].
-8l[zacute].
-8l[zdotaccent].
+8lć.
+8lł.
+8lń.
+8lÅ›.
+8lź.
+8lż.
8lb.
8lc.
8ld.
@@ -3631,12 +3631,12 @@
8lx.
8lz.
8m.
-8m[cacute].
-8m[lstroke].
-8m[nacute].
-8m[sacute].
-8m[zacute].
-8m[zdotaccent].
+8mć.
+8mł.
+8mń.
+8mÅ›.
+8mź.
+8mż.
8mb.
8mc.
8md.
@@ -3658,12 +3658,12 @@
8mx.
8mz.
8n.
-8n[cacute].
-8n[lstroke].
-8n[nacute].
-8n[sacute].
-8n[zacute].
-8n[zdotaccent].
+8nć.
+8nł.
+8nń.
+8nÅ›.
+8nź.
+8nż.
8nb.
8nc.
8nd.
@@ -3684,12 +3684,12 @@
8nx.
8nz.
8p.
-8p[cacute].
-8p[lstroke].
-8p[nacute].
-8p[sacute].
-8p[zacute].
-8p[zdotaccent].
+8pć.
+8pł.
+8pń.
+8pÅ›.
+8pź.
+8pż.
8pb.
8pc.
8pd.
@@ -3711,12 +3711,12 @@
8px.
8pz.
8r.
-8r[cacute].
-8r[lstroke].
-8r[nacute].
-8r[sacute].
-8r[zacute].
-8r[zdotaccent].
+8rć.
+8rł.
+8rń.
+8rÅ›.
+8rź.
+8rż.
8rb.
8rc.
8rd.
@@ -3737,14 +3737,14 @@
8rw.
8rx.
8rz.
-8rz[lstroke].
+8rzł.
8s.
-8s[cacute].
-8s[lstroke].
-8s[nacute].
-8s[sacute].
-8s[zacute].
-8s[zdotaccent].
+8sć.
+8sł.
+8sń.
+8sÅ›.
+8sź.
+8sż.
8sb.
8sc.
8sch.
@@ -3776,12 +3776,12 @@
8szt.
8sztr.
8t.
-8t[cacute].
-8t[lstroke].
-8t[nacute].
-8t[sacute].
-8t[zacute].
-8t[zdotaccent].
+8tć.
+8tł.
+8tń.
+8tÅ›.
+8tź.
+8tż.
8tb.
8tc.
8td.
@@ -3803,12 +3803,12 @@
8tx.
8tz.
8v.
-8v[cacute].
-8v[lstroke].
-8v[nacute].
-8v[sacute].
-8v[zacute].
-8v[zdotaccent].
+8vć.
+8vł.
+8vń.
+8vÅ›.
+8vź.
+8vż.
8vb.
8vc.
8vd.
@@ -3829,12 +3829,12 @@
8vx.
8vz.
8w.
-8w[cacute].
-8w[lstroke].
-8w[nacute].
-8w[sacute].
-8w[zacute].
-8w[zdotaccent].
+8wć.
+8wł.
+8wń.
+8wÅ›.
+8wź.
+8wż.
8wb.
8wc.
8wd.
@@ -3855,12 +3855,12 @@
8wx.
8wz.
8x.
-8x[cacute].
-8x[lstroke].
-8x[nacute].
-8x[sacute].
-8x[zacute].
-8x[zdotaccent].
+8xć.
+8xł.
+8xń.
+8xÅ›.
+8xź.
+8xż.
8xb.
8xc.
8xd.
@@ -3881,12 +3881,12 @@
8xx.
8xz.
8z.
-8z[cacute].
-8z[lstroke].
-8z[nacute].
-8z[sacute].
-8z[zacute].
-8z[zdotaccent].
+8zć.
+8zł.
+8zń.
+8zÅ›.
+8zź.
+8zż.
8zb.
8zc.
8zd.
@@ -3934,22 +3934,22 @@ busines2s
c4h
c4z
cal2d1well
-ch2[lstroke]
+ch2Å‚
ch2j
ch2l
ch2r
ch2w
chus1t
cu2r7zon
-d[zdotaccent]2[lstroke]
-d[zdotaccent]2j
-d[zdotaccent]2l
-d[zdotaccent]2r
-d[zdotaccent]2w
-d[zdotaccent]e4z3b
-d[zdotaccent]e4z3m
-d4[zacute]
-d4[zdotaccent]
+dż2ł
+dż2j
+dż2l
+dż2r
+dż2w
+dże4z3b
+dże4z3m
+d4ź
+d4ż
d4z
deut4sch3land
drz2w
@@ -3979,9 +3979,9 @@ hi2sz3p
hu2cz1w
hu2x3ley
i1
-i2[aogonek]
-i2[eogonek]
-i2[oacute]
+i2Ä…
+i2Ä™
+i2ó
i2a
i2e
i2i
@@ -3990,7 +3990,7 @@ i2u
i2y
in4nsbruck
in4sbruc
-j2t1[lstroke]
+j2t1Å‚
j2t1r
ja4z4z3b
ja4z4z3m
@@ -4002,16 +4002,16 @@ led1w
lu2ft3waffe
lu2ks1fer
ly2o
-ma2r5z[lstroke]
+ma2r5zł
ma2r5zl
ma2r5zn
mi2sz1masz
-mie2r5z[lstroke]
+mie2r5zł
mie2r5zi
mon2t3real
moza2i3k
mu2r7zasich3l
-na4[lstroke]3kows
+na4Å‚3kows
na4r3v
o1
o2y
@@ -4025,10 +4025,10 @@ ou2
pa2n3a2mer
pa2s3cal
pa2s3ch
-po[lstroke]u3d2ni
+połu3d2ni
po3d4nieprz
-po3m2n[aogonek]
-po3m2n[eogonek]
+po3m2nÄ…
+po3m2nÄ™
po3m2ni
po4rt2s3mo2uth
po4rt3land
@@ -4048,9 +4048,9 @@ sm2r
sowi3z2
sy2n3opt
sy2s1tem
-sza2sz1[lstroke]y
+sza2sz1Å‚y
sze2z1long
-sze4[sacute][cacute]
+sze4ść
szto2k1holm
szyn2k1was
to3y2o3t
diff --git a/Master/texmf-dist/tex/context/patterns/lang-pt.pat b/Master/texmf-dist/tex/context/patterns/lang-pt.pat
index 566f73e9f20..ecc572ae9ce 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-pt.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-pt.pat
@@ -28,15 +28,15 @@
1bi
1bo
1bu
-1b[aacute]
-1b[acircumflex]
-1b[atilde]
-1b[eacute]
-1b[iacute]
-1b[oacute]
-1b[uacute]
-1b[ecircumflex]
-1b[otilde]
+1bá
+1bâ
+1bã
+1bé
+1bí
+1bó
+1bú
+1bê
+1bõ
1c2h
1c2l
1c2r
@@ -45,29 +45,29 @@
1ci
1co
1cu
-1c[aacute]
-1c[acircumflex]
-1c[atilde]
-1c[eacute]
-1c[iacute]
-1c[oacute]
-1c[uacute]
-1c[ecircumflex]
-1c[otilde]
-1[ccedilla]a
-1[ccedilla]e
-1[ccedilla]i
-1[ccedilla]o
-1[ccedilla]u
-1[ccedilla][aacute]
-1[ccedilla][acircumflex]
-1[ccedilla][atilde]
-1[ccedilla][eacute]
-1[ccedilla][iacute]
-1[ccedilla][oacute]
-1[ccedilla][uacute]
-1[ccedilla][ecircumflex]
-1[ccedilla][otilde]
+1cá
+1câ
+1cã
+1cé
+1cí
+1có
+1cú
+1cê
+1cõ
+1ça
+1çe
+1çi
+1ço
+1çu
+1çá
+1çâ
+1çã
+1çé
+1çí
+1çó
+1çú
+1çê
+1çõ
1d2l
1d2r
1da
@@ -75,15 +75,15 @@
1di
1do
1du
-1d[aacute]
-1d[acircumflex]
-1d[atilde]
-1d[eacute]
-1d[iacute]
-1d[oacute]
-1d[uacute]
-1d[ecircumflex]
-1d[otilde]
+1dá
+1dâ
+1dã
+1dé
+1dí
+1dó
+1dú
+1dê
+1dõ
1f2l
1f2r
1fa
@@ -91,15 +91,15 @@
1fi
1fo
1fu
-1f[aacute]
-1f[acircumflex]
-1f[atilde]
-1f[eacute]
-1f[iacute]
-1f[oacute]
-1f[uacute]
-1f[ecircumflex]
-1f[otilde]
+1fá
+1fâ
+1fã
+1fé
+1fí
+1fó
+1fú
+1fê
+1fõ
1g2l
1g2r
1ga
@@ -111,29 +111,29 @@
1gu4e
1gu4i
1gu4o
-1g[aacute]
-1g[acircumflex]
-1g[atilde]
-1g[eacute]
-1g[iacute]
-1g[oacute]
-1g[uacute]
-1g[ecircumflex]
-1g[otilde]
+1gá
+1gâ
+1gã
+1gé
+1gí
+1gó
+1gú
+1gê
+1gõ
1ja
1je
1ji
1jo
1ju
-1j[aacute]
-1j[acircumflex]
-1j[atilde]
-1j[eacute]
-1j[iacute]
-1j[oacute]
-1j[uacute]
-1j[ecircumflex]
-1j[otilde]
+1já
+1jâ
+1jã
+1jé
+1jí
+1jó
+1jú
+1jê
+1jõ
1k2l
1k2r
1ka
@@ -141,59 +141,59 @@
1ki
1ko
1ku
-1k[aacute]
-1k[acircumflex]
-1k[atilde]
-1k[eacute]
-1k[iacute]
-1k[oacute]
-1k[uacute]
-1k[ecircumflex]
-1k[otilde]
+1ká
+1kâ
+1kã
+1ké
+1kí
+1kó
+1kú
+1kê
+1kõ
1l2h
1la
1le
1li
1lo
1lu
-1l[aacute]
-1l[acircumflex]
-1l[atilde]
-1l[eacute]
-1l[iacute]
-1l[oacute]
-1l[uacute]
-1l[ecircumflex]
-1l[otilde]
+1lá
+1lâ
+1lã
+1lé
+1lí
+1ló
+1lú
+1lê
+1lõ
1ma
1me
1mi
1mo
1mu
-1m[aacute]
-1m[acircumflex]
-1m[atilde]
-1m[eacute]
-1m[iacute]
-1m[oacute]
-1m[uacute]
-1m[ecircumflex]
-1m[otilde]
+1má
+1mâ
+1mã
+1mé
+1mí
+1mó
+1mú
+1mê
+1mõ
1n2h
1na
1ne
1ni
1no
1nu
-1n[aacute]
-1n[acircumflex]
-1n[atilde]
-1n[eacute]
-1n[iacute]
-1n[oacute]
-1n[uacute]
-1n[ecircumflex]
-1n[otilde]
+1ná
+1nâ
+1nã
+1né
+1ní
+1nó
+1nú
+1nê
+1nõ
1p2l
1p2r
1pa
@@ -201,15 +201,15 @@
1pi
1po
1pu
-1p[aacute]
-1p[acircumflex]
-1p[atilde]
-1p[eacute]
-1p[iacute]
-1p[oacute]
-1p[uacute]
-1p[ecircumflex]
-1p[otilde]
+1pá
+1pâ
+1pã
+1pé
+1pí
+1pó
+1pú
+1pê
+1põ
1qu4a
1qu4e
1qu4i
@@ -219,29 +219,29 @@
1ri
1ro
1ru
-1r[aacute]
-1r[acircumflex]
-1r[atilde]
-1r[eacute]
-1r[iacute]
-1r[oacute]
-1r[uacute]
-1r[ecircumflex]
-1r[otilde]
+1rá
+1râ
+1rã
+1ré
+1rí
+1ró
+1rú
+1rê
+1rõ
1sa
1se
1si
1so
1su
-1s[aacute]
-1s[acircumflex]
-1s[atilde]
-1s[eacute]
-1s[iacute]
-1s[oacute]
-1s[uacute]
-1s[ecircumflex]
-1s[otilde]
+1sá
+1sâ
+1sã
+1sé
+1sí
+1só
+1sú
+1sê
+1sõ
1t2l
1t2r
1ta
@@ -249,15 +249,15 @@
1ti
1to
1tu
-1t[aacute]
-1t[acircumflex]
-1t[atilde]
-1t[eacute]
-1t[iacute]
-1t[oacute]
-1t[uacute]
-1t[ecircumflex]
-1t[otilde]
+1tá
+1tâ
+1tã
+1té
+1tí
+1tó
+1tú
+1tê
+1tõ
1v2l
1v2r
1va
@@ -265,15 +265,15 @@
1vi
1vo
1vu
-1v[aacute]
-1v[acircumflex]
-1v[atilde]
-1v[eacute]
-1v[iacute]
-1v[oacute]
-1v[uacute]
-1v[ecircumflex]
-1v[otilde]
+1vá
+1vâ
+1vã
+1vé
+1ví
+1vó
+1vú
+1vê
+1võ
1w2l
1w2r
1xa
@@ -281,29 +281,29 @@
1xi
1xo
1xu
-1x[aacute]
-1x[acircumflex]
-1x[atilde]
-1x[eacute]
-1x[iacute]
-1x[oacute]
-1x[uacute]
-1x[ecircumflex]
-1x[otilde]
+1xá
+1xâ
+1xã
+1xé
+1xí
+1xó
+1xú
+1xê
+1xõ
1za
1ze
1zi
1zo
1zu
-1z[aacute]
-1z[acircumflex]
-1z[atilde]
-1z[eacute]
-1z[iacute]
-1z[oacute]
-1z[uacute]
-1z[ecircumflex]
-1z[otilde]
+1zá
+1zâ
+1zã
+1zé
+1zí
+1zó
+1zú
+1zê
+1zõ
a3a
a3e
a3o
@@ -315,9 +315,9 @@ i3a
i3e
i3i
i3o
-i3[acircumflex]
-i3[ecircumflex]
-i3[ocircumflex]
+i3â
+i3ê
+i3ô
o3a
o3e
o3o
diff --git a/Master/texmf-dist/tex/context/patterns/lang-ro.pat b/Master/texmf-dist/tex/context/patterns/lang-ro.pat
index da343a242c1..f6f69926b1f 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-ro.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-ro.pat
@@ -26,7 +26,7 @@
.contra1
.de3s2cri
.de2z1aco
-.de2z1am[abreve]
+.de2z1amă
.de2z1apro
.de2z1avan
.de2z1infec
@@ -49,16 +49,16 @@
.i2n1um
.i2n1un
.i2n1ut
-.[icircumflex]2n1[abreve]sp
-.[icircumflex]2n1ad
-.[icircumflex]2n3s2
-.[icircumflex]n3[scedilla]2
+.î2n1ăsp
+.î2n1ad
+.î2n3s2
+.în3ş2
.ne1a
-.ne1[icircumflex]
+.ne1î
.nema2i3
.ne3s2ta
.re1ac
-.re1[icircumflex]
+.re1î
.su2b1ord
.su2b3r
.supra1
@@ -69,9 +69,9 @@ a1a
a1ia
a1ie
a1io
-[abreve]1ie
-[abreve]1oa
-[acircumflex]1ia
+ă1ie
+ă1oa
+â1ia
e1e
e1ia
i1i
@@ -79,14 +79,14 @@ i2ii.
2i.
o1o
o1ua
-o1u[abreve]
+o1uă
u1u
u1ia
u1al.
u1os.
u1ism
u1ist
-u1i[scedilla]t
+u1iÅŸt
2bi.
2ci.
2di.
@@ -98,10 +98,10 @@ u1i[scedilla]t
2pi.
2ri.
2si.
-2[scedilla]i.
+2ÅŸi.
2ti.
2tri.
-2[tcedilla]i.
+2Å£i.
2vi.
2zi.
2bc
@@ -113,7 +113,7 @@ u1i[scedilla]t
2bs
b3s2t
2bt
-2b[tcedilla]
+2bţ
2bv
2cc
2cd
@@ -122,7 +122,7 @@ b3s2t
2cn
2cs
2ct
-2c[tcedilla]
+2cţ
2cv
2cz
2dg
@@ -160,7 +160,7 @@ b3s2t
2lr
2ls
2lt
-2l[tcedilla]
+2lţ
2lv
2lz
2mb
@@ -170,7 +170,7 @@ b3s2t
2mn
2mp
2m3s2
-2m[tcedilla]
+2mţ
2nb
2nc
2nd
@@ -186,7 +186,7 @@ n3d2v
2nr
2ns
n3s2a.
-n3s2[abreve]
+n3s2ă
n3s2e
n3s2i
n3s2o
@@ -196,11 +196,11 @@ ns3h
n3s2pl
n3s2pr
n3s2t
-2n[scedilla]
-n3[scedilla]2c
-n3[scedilla]2t
+2nÅŸ
+n3ÅŸ2c
+n3ÅŸ2t
2nt
-2n[tcedilla]
+2nţ
2nv
2nz
n3z2dr
@@ -208,7 +208,7 @@ n3z2dr
2pn
2ps
2pt
-2p[tcedilla]
+2pţ
2rb
2rc
2rd
@@ -225,9 +225,9 @@ n3z2dr
2rr
2rs
r3s2t
-2r[scedilla]
+2rÅŸ
2rt
-2r[tcedilla]
+2rţ
2rv
2rx
2rz
@@ -248,8 +248,8 @@ r3s2t
2st
2sv
2sz
-2[scedilla]n
-2[scedilla]t
+2ÅŸn
+2ÅŸt
2tb
2tc
2td
@@ -328,9 +328,9 @@ v2r
1q
1r
1s
-1[scedilla]
+1ÅŸ
1t
-1[tcedilla]
+1Å£
1v
1x
1z
@@ -345,9 +345,9 @@ v2r
.m2
.p2
.s2
-.[scedilla]2
+.ÅŸ2
.t2
-.[tcedilla]2
+.Å£2
.v2
.z2
2b.
@@ -364,8 +364,8 @@ v2r
2p.
2r.
4s.
-2[scedilla].
-2[tcedilla].
+2ÅŸ.
+2Å£.
4t.
2v.
2x.
diff --git a/Master/texmf-dist/tex/context/patterns/lang-ru.hyp b/Master/texmf-dist/tex/context/patterns/lang-ru.hyp
new file mode 100644
index 00000000000..822a03ecfc7
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-ru.hyp
@@ -0,0 +1,195 @@
+% context hyphenation file, see lang-ru.rme for original comment
+
+% source of data: ruhyphal.tex
+
+% begin hyphenation data
+
+\hyphenation {
+аÑ-беÑÑ‚
+бездн
+биз-неÑ-мен
+буй-нак-Ñке
+вбли-зи
+взба-ла-муть-ÑÑ
+вздрем-нешь
+во-до-Ñли-вом
+волж-Ñке
+воп-лем
+вопль
+воÑÑ‚-ра
+во-ткать
+во-ткем
+во-ткешь
+во-тку
+во-ткут
+впол-обо-ро-та
+впол-уха
+вÑе-во-лож-Ñке
+вцÑпÑ
+га-рем-но-го
+го-ло-дра-нец
+грÑÑ
+дву-зу-бец
+днепр
+добре-ем
+до-бре-ем-ÑÑ
+добре-ет
+добре-е-те
+до-бре-е-теÑÑŒ
+до-бре-ет-ÑÑ
+добре-ешь
+до-бре-ешь-ÑÑ
+добрею
+до-бре-ÑŽÑÑŒ
+добре-ют
+до-бре-ÑŽÑ‚-ÑÑ
+до-бре-Ñти
+до-бро-дÑÑ‚
+до-броÑÑŒ
+до-броÑÑŒ-те
+до-бро-ÑÑÑ‚
+до-бро-шу
+домну
+доп-пель
+драх-му
+дрейф-лю
+дрейфь-те
+еди-но-жды
+зав-Ñек-то-ром
+за-мру
+за-члиÑÑŒ
+из-древ-ле
+изо-тру
+ин-ког-ни-то
+иÑкр
+ка-за-шек
+казнь
+кольд-кре-мом
+корн-па-пир
+кÑендз
+лик-бе-зом
+ло-шадь-ми
+людь-ми
+лю-Ñ-Ñом
+ма-зу-те
+ме-ти-лам
+ме-ти-ла-ми
+мно-га-жды
+морщь-те
+на-бе-крень
+навз-ничь
+на-вÑкид-ку
+на-вÑтре-чу
+нагл
+на-изуÑÑ‚ÑŒ
+на-иÑ-ко-Ñок
+наи-ме-нее
+на-иÑ-коÑÑŒ
+на-обо-рот
+на-от-рез
+на-Ñупь-ÑÑ
+на-угад
+на-уголь-ник
+не-оÑÑ‚-ра
+неÑ-лаÑÑŒ
+неÑ-лиÑÑŒ
+нет-то
+не-уду
+обидь-ÑÑ
+обо-шлоÑÑŒ
+об-ра-Ñти
+од-на-жды
+оÑлаб-ла
+ото-мÑÑ‚ÑÑ‚
+ото-мщу
+ото-тру
+отру
+отруÑÑŒ
+паб-ли-Ñи-ти
+па-на-ме
+па-на-мец
+па-ра-так-ÑиÑ
+пе-ре-вру
+пе-ре-ме-жать
+пе-ре-ме-жать-ÑÑ
+пе-ре-шла
+пиÑ-чаÑ
+по-вÑе-дне-вен
+по-гре-мок
+по-до-тру
+по-иÑ-ти-не
+по-лу-то-ра-Ñта
+по-лу-Ñвью
+по-млад-ше
+помни
+по-мниÑÑŒ
+помни-те
+по-мни-теÑÑŒ
+по-мно-гу
+по-мру
+пол-вто-ро-го
+пол-шка-фа
+по-на-доб-люÑÑŒ
+по-трафь-те
+преж-де
+прид-ти
+при-шла
+при-шлоÑÑŒ
+про-тру
+про-хлад-ца
+пÑко-ва
+пыл-че
+раз-орем-ÑÑ
+раз-оре-теÑÑŒ
+раз-орет-ÑÑ
+раз-орешь-ÑÑ
+разо-тру
+ра-зу-мом
+резв-люÑÑŒ
+Ñ€ÑÑ„ÑÑ€
+Ñан-узел
+Ñдрейф-лю
+Ñе-го-днÑ
+Ñме-жат
+Ñо-блю-Ñти
+Ñо-лжешь
+ÑоÑÑ‚-рим
+ÑоÑÑ‚-ришь
+ÑоÑÑ‚-рю
+ÑоÑÑ‚-Ñ€ÑÑ‚
+Ñо-ткать
+Ñо-ткем
+Ñо-ткешь
+Ñотку
+Ñо-ткут
+ÑроÑ-лаÑÑŒ
+ÑроÑ-лиÑÑŒ
+Ñтрем-глав
+так-же
+тве-ре-зо-го
+те-ле-ате-лье
+тер-но-Ñли-вом
+троп-лю
+тьфу
+узу-фрукт
+умнем
+умнет
+умнете
+умну
+умру
+уÑлышь-те
+ушла
+фо-то-пле-нок
+ца-ре-дво-рец
+че-реÑ-чур
+чер-но-Ñли-вом
+чреÑл
+чуж-доÑÑ‚ÑŒ
+шеÑÑ‚ÑŒ-де-ÑÑÑ‚
+ÑŽÑом
+Ñдо-зу-бе
+Ñрем-но-го
+}
+
+% end hyphenation data
+
diff --git a/Master/texmf-dist/tex/context/patterns/lang-ru.pat b/Master/texmf-dist/tex/context/patterns/lang-ru.pat
new file mode 100644
index 00000000000..75012a9005d
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-ru.pat
@@ -0,0 +1,4502 @@
+% context pattern file, see lang-ru.rme for original comment
+
+% source of data: ruhyphal.tex
+
+% begin pattern data
+
+\patterns {
+.аб1р
+.аг1ро
+.ади2
+.аи2
+.ак1р
+.аль3Ñ
+.ар2т1о2
+.аÑ1то
+.аÑÑ‚1Ñ€
+.ау2
+.би2о
+.во2б3л
+.во3ж2д
+.го2ф
+.дек2
+.де1кв
+.ди2ак
+.ди1о
+.до3п
+.до3т2
+.епи3
+.зав2р
+.за3м2н
+.за3п
+.иг1р
+.изг2
+.из3н
+.ии2
+.ик1р
+.ио2
+.ио4на
+.иÑ3
+.ле2о
+.ле2п3р
+.леÑ1к
+.ль2
+.люÑÑ‚1
+.ме2ж1у2
+.ми1ом
+.мо2к1
+.му2шт1
+.на1в
+.на3т
+.на3ш2
+.не3вн
+.не1др
+.не1з2
+.не1Ñл
+.не1Ñ2ц
+.не3т
+.ноÑ1к
+.нук1л
+.обо3ж2
+.ово1
+.ог3н
+.оз4
+.оÑ2ка
+.оÑ2п
+.оÑ3пи
+.от1в
+.от1ро
+.от1ру
+.от1уж
+.по3в2
+.по3ж2
+.поз2н
+.проÑ2
+.ра2Ñ3Ñ‚
+.ре2бр
+.ре2з3в
+.ри2Ñк
+.ри2ч
+.ро2з3в
+.ро2Ñ3л
+.ро2х
+.Ñепт2
+.Ñк2
+.ÑÑ‚2
+.Ñу2ж
+.те2о3
+.тиа3
+.ти2г
+.тиг1р
+.ти2о
+.уб2
+.уд2
+.уе2
+.уз2на
+.ук2
+.ум2ч
+.уо3
+.уп2
+.ур2в
+.уÑ2
+.ут2р
+.ую2
+.хо2р3в
+.че2Ñ1к
+.ÑŽÑ1
+4а3а
+аа2п
+аа2р
+аа2ц
+а1б
+абе3ÑÑ‚
+а3бла
+аб2лю
+аб1ри
+а3бу
+ав1в
+а1ве
+ав3зо
+а1ви
+ави2а
+а1во
+аво1Ñ
+а2вот
+ав1ра
+ав2Ñе
+а2вт
+а1ву
+а2вх
+а3в2че
+2ага
+ага1Ñ2
+а2гд
+а2гити
+а2гле
+аг2ли
+а2глоÑ
+аг2лот
+2аго
+а3гу
+а1д
+2адв
+а2две
+ад2жи
+ади2од
+а2дл
+а2д1обл
+ад1ро
+а2д1ру
+аду3ч
+ад2ц
+а2дын
+а1е
+ае2го
+ае2ди
+ае2л
+а2еп
+ае2ре
+ае2Ñ
+аза4ш3
+азв2
+аз3вез
+аз1вл
+азг2
+аз1др
+аз1об
+аз2о1бр
+а2зовь
+а2золь
+а1зори
+аз2о1Ñ
+аз1р
+а1и
+аи2г1
+аи3гл
+а2их
+а1к
+ак1в
+1акк
+ак2л
+ак3лем
+ако1б2
+2аконÑ
+ако3т
+2акри
+ак1Ñ
+а1ла
+а3лаг
+а1ле
+2алек
+а3ли
+ало1з
+а1лу
+алу2ш
+алуш1т
+а1лы
+а2льщ
+а1лю
+2ама
+амб4
+2амет
+а2минт
+ам2нет
+2амо
+амо1з2
+амои2
+а2мч
+ана2дц
+а2н1а2ме
+а2наф
+ан2дра
+а2н1о2б
+ан1о2хр
+ан1р
+ан2Ñп
+анÑ1у
+ан2Ñур
+а2н1уз
+а1нь
+2а1о
+ао2д
+ао2к
+ао2р
+ао2Ñ
+аоÑÑ‚1
+а3пла
+ап2лом
+2апо
+апо4вÑ
+апо3ч2т
+ап2ра
+ап1рел
+а1ра
+ара2ÑÑ‚
+ар2бок
+ар2вал
+1аргу
+а1ре
+аре1дв
+аре1ол
+ар2жа
+а1ри
+а1ро
+ар2тор
+ар2т1р
+а1ру
+ар1х
+а1ры
+а1рю
+а1Ñ€Ñ
+2аÑ1к
+аÑ3ми
+аÑ3но
+1аÑÑиг
+аÑÑ‚1ву
+аÑ3тем
+аÑ2тин
+аÑ2тиÑ
+аÑ1тоо
+аÑ1тух
+а1Ñтье
+аÑ2шед
+аÑ2шеÑ
+а1Ñьи
+а1та
+1атак
+ат3ва
+ат1ви
+ат1ву
+2атез
+а1ти
+а1то
+ат1обе
+а2томн
+ато2ш
+ат1рах
+ат1ри
+а1ту
+ат2х
+а1ты
+а1тье
+а3тью
+а3Ñ‚ÑŒÑ
+а1тю
+а1Ñ‚Ñ
+а1у
+а2уб
+ау2д
+ау3до
+а2уле
+аут1р
+ау2х
+ау2ч
+ау3чь
+ауÑ1
+а2ф1л
+ах2а
+ахми2
+ах3Ñ
+а1ч
+2ача
+а2чл
+ач1т
+а2шл
+аÑ2ли
+а2ÑÑ€
+аю1та
+а1Ñ
+аÑ2б
+аÑ2в
+аÑ2з
+1ба
+ба2бв
+ба2г1р
+ба2др
+ба1з
+ба3зу
+балю1
+ба2о
+баÑ3м
+ба1ÑÑ‚
+ба1тр
+2б1б
+б1в
+бвы2
+бг2
+2б1д
+1бе
+3бев
+бе2гл
+бе2гн
+бе2д1р
+3бее
+3бе2з
+без1а2
+без5д4
+бе3зи
+без3н
+без1о2
+без1р
+бе2Ñ1к
+беÑ3п
+бе2Ñ1Ñ‚
+беÑ3те
+беÑ3ти
+3бец
+2бещ
+2бж
+б1з2
+1б2и
+3биа
+би2б
+2биж
+3бик
+били3т2
+3био
+би2об
+би2од
+би2он
+би2ор
+би2тв
+би1х
+2б3к
+б1л
+1благ
+1б2лаз
+б3лази
+б2лан
+1б2лее
+б3лен
+б2леÑ1к
+1б2леÑ
+б2луд
+1б2луж
+2блы
+2б2ль
+2б3лю.
+б2люд
+б2люе
+б2люл
+2б3люÑÑŒ
+2блÑ
+2б3н
+1бо
+бо1бра
+бо3вш
+бо2гд
+бо1дра
+бо1з2
+бо1л2ж
+бо1льÑ
+бо3м2л
+бо2мч
+бо3мш
+бону1
+бо1ру
+бо2Ñа
+бо1Ñк
+бо3Ñко
+бо3Ñти
+3бот
+бо2тв
+бот2р
+боÑ2Ñ€
+2бр.
+б3раб
+б2рав
+бра1зо
+1б2рал
+2б1рам
+б2ран
+1браÑ
+б2рать
+б1рах
+1б2рач
+2б3раÑ
+1б2ред
+б1рей
+б1рек
+б2рем
+б2рех
+б2рид
+б2рито
+б2риты
+1б2роди
+б1рол
+б1ром.
+1б2роÑи
+бро2Ñ1к
+2брÑ
+б1ру
+3брукÑ
+2брь
+1б2рю
+2б3рю.
+б1Ñ€Ñ
+2б1Ñ2
+б3Ñк
+бÑ4л
+б1т
+1б2у
+бу2г1р
+бук1л
+бу1Ñ
+2бф
+2б1х
+2бц
+2б1ч
+2бш
+2бщ
+1бы
+бы2г1
+бы2Ñ
+быÑ1к
+быÑÑ‚1
+1бь
+2бь.
+2бьÑ
+2бьт
+бÑ1Ñ€
+3б2ю
+бю1та
+1бÑ
+1ва
+ва2бр
+3ваг
+ва2д1р
+вадь2
+ва3ж2д
+ва1з
+ванÑ2
+ва1ÑÑ‚
+ва2ÑÑ‚Ñ€
+ва1тр
+вах1
+3вац
+3ваÑ
+2в1б
+в1ви
+в1вр
+2вг2
+в1д
+в2дох
+1вев
+3вег
+вед1р
+ве3ду
+1вее
+1вез
+3везе
+3везл
+вез2у
+1вей.
+ве2п1
+2верд
+1веÑ
+ве2Ñ1к
+ве2ÑÑ‚1в
+вет3р
+1вец
+1вею
+1веÑ
+1в2з2
+взг2
+взд2
+взо1б
+взъ2
+взъе3д
+ви2аз
+ви2ак
+ви2ар
+ви2а1Ñ2
+виа1т
+ви3аф
+ви2гв
+ви2гл
+1виз
+1винт
+1винч
+ви1о
+ви1Ñ2ни
+виу3
+ви2ф
+2в1к
+вк2л
+3в2куÑ
+в1л
+в2ла
+2в3лаб
+в2лев
+в2лек
+в2лет
+в2леч
+2вли
+в2лиÑ
+2влю
+в2люб
+2влÑ
+2вм
+1вме
+2в1н
+4в3на
+в2неÑ
+вно1
+в3ну.
+3в2нук
+3в2нуч
+в3ны
+во1б2
+во2б3ла
+вов2
+во3вк
+1вод
+во1дв
+во1др
+во2ер
+во2жж
+вои2Ñ1
+1вок
+во3м2
+воп2
+во1ру
+2ворц
+2ворь
+воÑ1к
+во1Ñм
+во1Ñн
+воÑ3пе
+во2ÑÑ‚Ñ€
+вот2р
+1вох
+во1хл
+во3х2т
+1вою
+2вп2
+2вр.
+2вра.
+в2рав
+2в1рам
+в1раÑ
+2в1рах
+2врац
+2вре.
+2в1рен
+1врид
+1в2риз
+в1рии
+в1рик
+в1рил
+в1риÑ
+в1рит
+2в1ро
+вро3т2
+2в1ры
+1врю
+в1Ñ€Ñ
+2в1Ñ2
+3вÑе3
+в3ÑкаÑ
+4в3Ñки
+4в3Ñку
+3в2Ñп
+3в2ÑÑŽ
+в1т2
+вто1б2
+вто3ш
+1вуа
+ву3г
+1ву1з
+2вуи
+2ву1к
+ву3п
+ву1Ñ2
+ву2х1а
+вух3в
+ву1чл
+вф2
+1вхо
+2вц
+2в1ч
+2вш
+3в2шив
+2вщ
+въ2
+1вы
+вы3г2
+вы3зн
+вып2
+вы3т2
+вых2
+вы3ш2л
+2вь.
+1вье
+1вьин
+2вьÑ
+2вьт
+1вью
+1вьÑ
+1в2Ñ1
+1в2ю
+1вÑ
+1г
+г2а
+га1з
+га1ÑÑ‚2
+га2у
+2г3б
+гба2
+г1ви
+2гг
+г3дан
+2г3ди
+3ге.
+ге2б1
+гено1
+ге2об
+ге2од
+ге1ор
+2г3ж
+2г1з
+г2и
+ги2бл
+ги3бр
+ги2гр
+ги1Ñл
+гиÑÑ‚2
+2г1к
+2гла.
+г2лав
+г1лай
+г1лами
+2глаÑÑŒ
+2глаÑ
+г1ле
+г2лет
+2гли.
+г2лин
+3г2лиф
+2гло.
+г3лобл
+2глов
+2глог
+2глое
+2глой
+2глою
+2глую
+2г1лы
+г2лÑж
+2глÑк
+2г3м
+г2нав
+г2нан
+г3не.
+г2нев
+г3нен
+г3неп
+г3неÑ
+г2нир
+гнит2р
+г2ное
+г2нои
+г2ноÑ
+г3нÑ
+го1б2
+го2вл
+го3ж2д
+го1з
+го2зл
+гоз2н
+гоиг2
+3гой
+г2ол
+гоми2
+го2Ñ1а
+го2Ñд
+го1Ñкл
+го1Ñн
+го1Ñпа
+2готд
+гоу3т
+го1чл
+3гою
+2гп
+2гр.
+г1рае
+г1рай
+г1рар
+г1рег
+г1рек
+г1рец
+гри4в3н
+г1рик
+г1рил
+г1рин
+г1риÑ
+г1рич
+г1ров
+г2роз
+г1рок
+г1рон
+г1роп
+г1рот
+г1роф
+гру2п
+г1рыв
+2грю
+г1Ñ€Ñе
+г1Ñ€Ñл
+г1Ñ€ÑÑ‚
+2г3Ñ2
+г4Ñа
+г4Ñб
+2г3т
+гу1в
+гу1Ñ
+гу2Ñ1к
+2гф
+2г1ч
+2г3ш
+2г3Ñ
+1да
+да2б1
+да2ген
+да2гр
+да1з
+да2о
+даÑÑ‚1Ñ€
+дат1р
+2д1б
+дв2
+д1ве
+1дви
+2д1вид
+2двиз
+2двинт
+2двинч
+2д1виÑ
+2д1вит
+д3вк
+д1вл
+2двод
+д1воз
+1дворь
+2двÑ
+2дг2
+2д1д2
+1де
+де1б2л
+де1б2р
+3девр
+3дез
+де2з1а2
+де2зи
+дез1о2
+де2зу
+деио2
+де1кл
+3деме
+де2од
+део3п
+де3пл
+дераÑ2
+де2Ñ3в
+деÑ2к
+де2ÑÑ€
+де1хл
+2дж.
+д2жам
+д2ж3м
+2джÑ
+2д1з2
+1ди
+ди2ад
+диа2з
+ди2али
+ди2ало
+ди2ар
+ди2аÑ
+ди2об
+дио3де
+ди2ор
+дио1Ñ
+ди1оти
+дип2
+ди2пи
+ди3пт
+ди2Ñ1Ñ‚Ñ€
+диу3
+ди3фр
+ди3фто
+ди1х
+2д1к
+д1л
+д2лев
+2д3м2
+2д1н
+д3на
+днеа2
+3дневн
+4д3но1
+дно3д2
+дноÑ2
+4д3ны
+3д2нÑш
+1до
+2д1о2бед
+до2бл
+2д1обла
+до1б2ра
+дов2л
+до3в2м
+до1д2
+до3дн
+до3ж2д
+до1з
+доз2н
+дои2р
+2докт
+2долим
+до2м1р
+доп2
+до3пл
+2допле
+до2пре
+до2руб
+до1Ñ
+д1о2Ñен
+д1о2Ñин
+2д1оÑно
+доÑ2п
+2дотд
+2дотл
+дот2ри
+2д1отрÑ
+2дотъ
+до3ть
+3дохл
+до2ш3в
+до3ш2к
+до2шлы
+до2щу
+2дп
+2др.
+д1раб
+1дравш
+2дразв
+1д2разн
+д1ране
+д1рар
+д1ра2Ñ3
+д1рах
+д1рач
+д2раю
+д1ре
+д2реб
+2д3реж
+2дрез
+д2рел
+д2рем
+1дрема
+1дремл
+дрем3н
+1дремы
+2д3рен
+дре2Ñк
+д2реÑÑ
+д1ри
+д2рий
+2дрин
+д2рип
+д2рих
+дро2г3н
+д1род
+д1рое
+1д2рож
+2д3роз
+д1рой
+д1рол
+д1рон
+д1роÑ
+д1рот
+д1рою
+д1руб
+1друг
+1друж
+д1рум
+д1рую
+д1ры
+2дрыв
+1д2рыг
+д1Ñ€Ñ
+д2Ñ€Ñб
+1д2Ñ€Ñг
+д2Ñ€ÑÑ…
+2д1Ñ2
+дÑк2
+дÑ3кн
+2д1т
+1ду
+дуб3р
+ду3г
+2д1уд
+ду2да
+ду2о
+дуп1л
+дуÑ1к
+д1уÑл
+ду1ÑÑ‚
+ду2Ñта
+2дут1р
+ду1х
+ду2чи
+дуÑ1Ñ‚
+2дф
+д1х
+2д3це
+2дцу
+2дцы
+2д1ч
+2д3ш2
+2дщ
+2дъ
+дъе2м
+1ды
+2дыг
+ды2г1р
+2дыд
+2дыме
+2ды2Ñ1
+2дыт
+2дыщ
+2дь.
+1дье
+2дьк
+2дьт
+1дью
+1дьÑ
+дь3ÑÑ€
+1д2ю
+1дÑ
+е1а
+еа2д
+еади3
+еа3до
+еа2з
+еан2д1р
+еат1р
+2еб
+еба2Ñ
+е1бра
+еб1рен
+еб1ри
+е1бро
+еб1ров
+еб1ры
+е2б3рю
+е1ве
+2евер
+е1ви
+е3в2ме
+ев2ним
+ев2нÑÑ‚
+е1во
+2евол
+евра1Ñ
+2е1вре
+ев1рее
+ев1рей
+ев1реÑ
+ев1ри
+е2вт
+е1ву
+е1вх
+ев2хо
+е1вь
+ега1Ñ2
+ег2д
+е2глан
+е2гле
+е2гли
+е2гло
+ег2на
+ег2но
+2ег2р
+ед1во
+ед2ж
+е1дже
+е1д2лин
+едноу3
+ед1опр
+е2дотв
+е2дох
+е2д1ощ
+е1дру
+е2дру.
+е2ду2б
+ед1убо
+е2дуве
+е2дуг
+е2дуÑ
+ед1уÑÑ‚
+2е3душ
+е2дын
+е1е
+е2евид
+ее2в1р
+ее2ги
+ее1Ñ2
+ее2ÑÑ‚
+ееÑÑ‚1Ñ€
+ее2х
+е2жг
+е4ждев
+еж3ди
+2еже
+е2ж1р
+еза2вр
+езау3
+е1з2ва
+езд1р
+е3зе
+еззу3
+е3зит
+ез1об
+ез1о2г
+е1зом
+ез1оп
+ез1о2р
+ез1от
+ез1ош
+ез2Ñ€Ñ
+ез1у2д
+ез1у2к
+ез1уп
+ез1уÑ
+езу2Ñо
+езу2ÑÑ‹
+ез1у2х
+ез1уча
+е3зÑ
+е1и
+еи2г1
+еи2д
+еи2м
+еи2о
+еиÑ1л
+еиÑ1Ñ‚Ñ€
+е1ка
+ека2б
+ек2з
+е1ки
+2е1ко
+2е1кр
+ек2ро
+ек1Ñк
+ек1Ñте
+е1ку
+е1ла
+е1ле
+еле3Ñк
+еле1Ñц
+е1лу
+е1лы
+е1лю
+е3лÑ
+еми3д2
+еми3к
+емо1Ñ
+2емуж
+е2мч
+2емыÑ
+е3на
+ен2д1р
+2е1нр
+енÑ2
+ен3ш2
+е1нÑ
+2ео
+е1о2б
+еоб2ро
+е2о3гл
+ео2гро
+е1од
+ео3да
+ео2де
+еоде3з
+ео2до
+е1о2ж
+е2ои
+ео3кл
+е1ол.
+е1ола
+ео3ли
+е1олк
+е1олы
+е1оль
+е2ом
+е1он.
+е2она
+е2они
+ео3но
+е1онÑ
+еоп2
+е1опе
+ео2пр
+ео4пу
+е2о3ро
+еоÑ2
+е1о2Ñви
+ео1Ñк
+е1оÑм
+е1оÑн
+еоÑÑ‚1Ñ€
+ео3ÑÑ…
+е1отл
+еот2ру
+е1о2ч
+е1о2щ
+епат2
+епа1тр
+2епе
+епиÑ2к
+е2пл
+е3пла
+еп1леш
+е3п2лод
+еп1лу
+е3плы
+еп1лющ
+е4пн
+2епо
+е4п3Ñ
+е4пт
+е1ра
+ер1акт
+е2рв
+ер1ве
+е1ре
+е3ре.
+ере3до
+ере1др
+ере1к2
+ере3м2н
+ере3п
+ере1х4
+е1ри
+ерио3з
+е1ро
+еро2б
+ер1обл
+2ерови
+2ерокр
+2ерол
+еро3ф2
+ер3Ñк
+е1ру
+е2р1у2п
+е1ры
+е1рю
+е1Ñ€Ñ
+е3Ñ2а
+еÑ2ба
+е1Ñг
+е1Ñк
+е2Ñ1ка.
+еÑ1кал
+е2Ñке
+е2Ñков
+е4Ñ1ку.
+2еÑл
+еÑ1лаÑ
+еÑ2лин
+еÑ2лов
+еÑ2лом
+е1Ñлу
+е1Ñлы
+е1Ñ4м
+е3Ñо
+2еÑп
+еÑ2пек
+еÑ3пол
+е2Ñпу
+е1ÑÑ‚
+еÑ2тан
+е2Ñтл
+е3Ñту
+еÑ2чет
+е1та
+ет1ве
+ет1ви
+е1тво
+2етеч
+е1ти
+е1то
+ето1Ñ
+ет1р
+ет2Ñ€Ñ
+е1ту
+е1ты
+е1тье
+е3тью
+е3Ñ‚ÑŒÑ
+е1тю
+е1Ñ‚Ñ
+е1у2
+2еуб
+еуб3р
+еуз2
+еук2ло
+ефи3б2
+еф2л
+еф1ре
+еха2т
+ех1ато
+ех3вал
+ех3лоп
+ех1об
+ех1опо
+ех1ре
+ех1ру
+ех1у2ч
+2ецв
+е1чл
+е2шл
+еÑ2
+ею2г
+е1Ñ
+еÑ2з
+1ж
+жа2бл
+жа2бр
+жа1з
+жат1в
+2ж1б2
+2ж1в
+жг2
+2жга
+ж2ги
+3ж2гл
+ж2гу
+2ж1д
+ж2дак
+ж2дач
+3ж2дел
+4ждеме
+ж2деп
+ж2ди
+4ж2дл
+ждо3
+жду1
+4ждь
+3ж2дÑ
+3жев
+же3д2
+же1к2в
+же1кл
+же1о2
+же3п2
+же1Ñ2
+же3Ñк
+2жжа
+ж2же
+2жжев
+2ж1з2
+жи1о
+2жирр
+2ж1к
+2ж1л
+ж2м
+ж3ма
+2ж3мо
+2ж1н
+жно1
+2ж1об
+2ж1о2т1
+жоу3
+жоу1Ñ
+2жп2
+жпо1
+ж2ру
+2ж1Ñ
+2жф
+2жц
+2ж1ч
+2жъ
+2жь.
+2жьÑ
+2жьт
+1за1
+заа2
+заб2
+за2в1ри
+за2вру
+з1аву
+заг4
+з1адр
+зае2д
+зае2х
+за3ж2д
+за3з2
+з1акт
+за3мне
+3з2ан
+за3на
+занÑ2
+зап2
+зар2в
+за3р2д
+зар2ж
+заÑ2
+заÑÑ‚2
+зат2
+за3тк
+зау2
+зах2
+зач2т
+за3ш2
+заÑ2
+з1б2
+2з3ва.
+з2вав
+з3валь
+з2ван
+2зваÑ
+з1ве
+з2вез
+з1ви
+з3в2к
+з1вла
+з1во
+2звол
+1з2вон
+з1вр
+1зву
+2з1вую
+з1вь
+2зг
+з3га
+з2гли
+зг2на
+з2гну
+з1д2в
+з2деш
+здож3
+1зе
+зе2б1
+зе2ев
+зе2од
+2зж2
+з3з2
+1зи
+3зи.
+3зий.
+з1инт
+зи2оз
+зи2оно
+зи1оп
+3зиÑ
+зи3т2р
+зиу3м
+3зич
+2з1к
+зко1
+зко3п2
+з1л
+з2лащ
+з2лоб
+з2лоп
+з2лор
+з2лющ
+2зм2
+з3мн
+з1н
+2зна.
+з2нав
+з2нае
+з2най
+з2нак
+з2нан
+з2нат
+з2наю
+2знаÑ
+2зне
+2з3ни
+2зно
+2зну
+2з3ны
+з2обе
+зо2би
+1зов
+зо3в2м
+зо2гл
+зо1др
+1зое
+зо1з2
+1зои
+1зой.
+1зок.
+з1окÑ
+1зол2
+зо1лг
+зо1лж
+зо3м2
+1зом.
+2зомн
+1зон
+2зонр
+1зоо
+зо2о3п
+зо2оÑ
+зо2па
+з2опл
+з2опр
+з1орг
+1з2о3ре
+зоÑ2
+з1оÑн
+зо1Ñп
+зо2тв
+з2оте
+з1отк
+з2ото
+зот2ре
+зот2ри
+1зох
+зош2
+зо2ши
+1зоÑ
+1зою
+з1ра
+з2рак
+зра2Ñ
+з2рач
+з2рен
+з1реÑ
+з2риш
+з1ро
+зро2Ñ3
+з1ру
+з2рю
+з1Ñ€Ñ
+2з1Ñ
+2зт
+з1ти
+1зу
+3зу.
+2з1у2бе
+зу2б3р
+зу1в
+2зуве
+2зу2г
+3зуе
+2з1уз3
+2зу1к
+3зуме
+з1у2мо
+2зуп
+зу2пр
+з1урб
+з1у2те
+зу2чаÑ
+2зц
+з1ч
+2зш
+зъе2м
+1зы
+2зы2г1
+зы2з
+2зыме
+2зымч
+2зы2Ñ1
+2зыщ
+1зье
+1зьи
+1зью
+3зьÑ
+1з2ю
+1зÑ
+и1а
+и2аб
+и2ав
+иаг2
+и2агр
+и2аде
+и2ади
+иа2зов
+иа2му
+и3ана
+иа2нал
+ианд2
+иао2
+и2ап
+иа1Ñ2к
+иа1Ñта
+иа1Ñто
+иат1ро
+и3ату
+и2аф
+и2а1х
+иа2це
+2и1б
+и2б1р
+2иваж
+2и1ве
+и2в3з
+и1ви
+2и1во
+и1в2р
+и3в2Ñ
+и1ву
+ив2хо
+2ивы
+иг2д
+и3ге
+2игл
+и2гле
+и2гли
+и2гн
+игни3
+иг1рен
+иг1ро
+иг1ру
+иг1ры
+и2г1Ñ€Ñ
+и1дв
+и2дей
+и1д2ж
+иди1ом
+иди1от
+ид1р
+и1дь
+и1е
+и2евод
+ие2г
+ие2д
+ие3де
+ие2зу
+и3ени
+ие1о2
+иепи1
+ие2р
+и3ж2д
+из1в2
+из2гне
+1из1д
+из2нал
+и1зо
+изо2о
+из1р
+и1и
+ийÑ2
+и1к
+и3к2а
+ика1Ñ2
+ик2ва
+и2кви
+и2клÑ
+и3ко
+ик1ро
+ик1Ñк
+ик2Ñ1Ñ‚
+и3ку
+и1л
+и2л1а2ц
+ило1Ñк
+илп2
+и2л1у2п
+и2ль
+ильт2
+2има
+и2мено
+и2мену
+2имень
+и3ми
+имои2
+им3пл
+и2м1р
+и2мч
+им2ча
+инд2
+1инж
+ино2к3л
+ино3п2л
+ино1Ñ
+инÑ2
+1инÑп
+1инÑти
+1инÑу
+1инф
+1инъ
+и1об
+ио2бо
+ио2вр
+и2ог
+и1од
+ио2де
+и1оз
+ио3зо
+и1окÑ
+и1оле
+и1он
+и3онов
+и1опт
+и1ор
+и3ора
+ио1ру
+ио2Ñа
+ио3Ñкл
+ио1Ñ2п
+и1ота
+ио2т1в
+и1отк
+и1отÑ
+иоуг2
+ио2хо
+и1ош
+2ип
+ипат2
+ипа1тр
+ип2лÑ
+ип3н
+ипо3к2
+и1р
+ира2ÑÑ‚
+и2р1ау
+и2рв
+и2рж
+ири2Ñк
+ириу3
+иро1з2
+1ирр
+иÑан2д1
+и2Ñб
+и2Ñд
+иÑ1к
+иÑ3ка.
+иÑ3кам
+иÑ3ках
+иÑ3ке
+иÑ3ки
+иÑ3ков
+иÑ3ку.
+и2Ñлам
+иÑ1лы
+иÑ3ме
+иÑ3му
+иÑ3но
+иÑо2Ñк
+и2Ñ3пр
+и4ÑÑ
+и1ÑÑ‚
+и2ÑÑ‚1в
+и2Ñтл
+иÑ1Ñ‚Ñз
+и1Ñьи
+и1т
+ита2в
+ит3ва
+и2т1ве
+ит1ви
+ит1ву
+и2тм
+и2т1р
+ит2реÑ
+ит3ром
+и2т1уч
+и3тью
+и3Ñ‚ÑŒÑ
+и1у2
+иу3п
+иф1л
+иф2лю
+и2фр
+иха3д
+и2Ñ…1аÑ
+их2ло2
+ихлор1
+и3х2о
+ихо3к
+их1ре
+их1ри
+и1ху
+и1ч
+иш2ли
+и2шлы
+и2шт
+ию4л
+ию2н
+ию2т
+ию3та
+и1Ñ
+иÑ2д
+2й1
+йд2
+й2д3в
+йно1
+й2о1Ñ
+йо2тр
+йп2л
+й2Ñб
+й3Ñка
+йÑ2ке
+йÑ4мо
+й2Ñ3му
+й2Ñн
+й2Ñ3Ñ„
+й2Ñш
+й2тм
+й2хм
+йх2Ñ3
+йÑ1
+ка2бл
+ка2бри
+1кав
+к2ад
+ка3дне
+ка2д1р
+1кае
+каз3н
+ка1зо
+1кай
+1кал.
+1кало
+1калÑ
+1кам
+1кан
+ка2п1л
+ка2пре
+кар3тр
+3к2аÑ
+ка1ÑÑ‚
+1кат
+ка1т2р
+1ках
+ка2ш1т
+1каю
+2к1б
+к2вак
+к2ваÑ
+к2ваш
+к1ви
+к2воз
+к1ву
+2кг
+2к1д
+кда2
+1ке
+2кеа
+ке2гл
+кед1р
+ке2Ñ1к
+ке2ÑÑ‚1
+2к1з
+1кив
+ки1о
+киоÑ1
+ки2пл
+ки1Ñ2ни
+1кит
+2к1к2
+кк3Ñ
+2к3ла.
+2к3лаÑÑŒ
+2к3ле.
+2клем
+к3лем.
+к3лен
+к1лео
+2к3ли.
+2к3лив
+к2лик
+к2лин
+2к3лиÑ
+к3лиÑ
+2к3ло.
+к2лоз
+к3лом
+2к3лоÑ
+кло3т
+1клук
+к3лы
+2кль
+1клю
+2к3лю.
+2клÑ.
+2клÑм
+2клÑÑ…
+2км
+2к1н
+3к2ниж
+к2ноп
+3к2нÑж
+к2о
+ко1б2ри
+1ков
+3кова
+1код
+ко1др
+1коз
+1кольÑ
+2комин
+3конÑ
+коп2р
+ко2р3в
+ко1ру
+1коÑ
+ко1Ñк
+коÑ3м
+ко1Ñп
+1котн
+ко2фр
+кохо2р3
+1кош
+2кп
+2кр.
+к1рел
+кре1о
+кре2Ñл
+к1реч
+1криб
+к1рид
+к2риз
+кри2о3
+к2рит
+к1рих
+к1роа
+к1роб
+к2рое
+к1рок
+к1роо
+к1рор
+к1роÑ
+к1роф
+к1рох
+к1роÑ
+кру1Ñ
+к1Ñ€Ñд
+2кÑ
+кÑанд2
+к2Ñ3в
+кÑ3г
+к2Ñ3д
+к2Ñиб
+к1Ñки
+кÑ1кл
+к1Ñко
+кÑ3м
+к3Ñо
+к1Ñтам
+к1Ñтан
+кÑ3те
+к1Ñто
+кÑ1Ñ‚Ñ€
+к1Ñту
+к3Ñу
+2к1т
+кта2к
+3к2то.
+кто1Ñ
+кт2р
+к2у
+ку1ве
+3куе
+1куй
+1кулÑ
+3кум
+куп1л
+ку2п1р
+1кур
+ку3ро
+куÑ1к
+ку1ÑÑ‚
+1кут
+ку3ть
+1куче
+1куют
+3кующ
+2кф
+2к1х2
+2кц
+2к1ч
+2кш
+1кь
+к2ю
+1ла.
+2лабе
+ла2бл
+2лаго
+ла2гр
+ла2д1аг
+1лае
+ла3ж2д
+ла1зо
+л2ак
+лак2р
+1лам.
+1лами.
+лан2д1р
+ла1Ñта
+лаÑÑ‚1в
+ла1Ñте
+ла1Ñто
+ла2ÑÑ‚1Ñ€
+ла1Ñту
+ла1ÑÑ‚Ñ
+ла1т2р
+лау1
+ла2уÑ
+ла2фр
+1ла1х
+1лаÑ
+2лб
+л1бр
+л1ве
+л1ви
+л1во
+л1ву
+1л2гал
+л2гл
+лго1
+2л3д2
+1ле.
+ле1вл
+лев1ра
+ле2г1л
+ле1дж
+ле3до
+ле1з2о3
+ле1зр
+лек1л
+2лемн
+1лен
+ле1онт
+ле1о2Ñ
+ле2Ñб
+ле2Ñк
+ле4Ñка
+ле1Ñ2л
+ле1Ñпе
+ле1тв
+ле1т2р
+1лех
+ле1хр
+л1зо
+1ли
+лиа2м
+3ливо
+3ливы
+лиг2л
+ли2гро
+лие3р
+ли2кв
+2лимп
+лио1Ñ
+ли2пл
+лиÑ3м
+2л1иÑп
+ли2тв
+лиу3м
+ли2х3в
+ли1хл
+ли1хр
+2л1к
+лк2в
+л2к1л
+2л1л
+л2ль
+ллю1
+2лм
+2л1н
+лни2е
+1ло
+ло2бл
+ло1б2р
+2ловиÑ
+ло2вл
+3ловод
+ло2г3д
+лого1Ñ
+ло1др
+2лоен
+ло1зв
+ло2к1а2у
+ло2кл
+лок3ла
+3лопаÑ
+ло2рв
+2л1орг
+ло1ру
+лоÑ1к
+ло1Ñ2п
+2лотд
+лот2р
+ло2шл
+2лп
+2л1Ñ2
+лÑ3б
+л1т
+1лу.
+лу1бр
+лу1в
+лу3г
+лу1д4р
+1луе
+лу1зн
+лу1кр
+1лун
+луо2д
+лу3п2ло
+лу1Ñ
+лу3ть
+1лую
+2л3ф2
+2л1х2
+л2х3в
+2лц
+л1ч
+1лы.
+1лые
+1лыж
+1лый
+1лым
+1лых.
+4ль.
+2льд
+3лье
+3льи
+2льк
+2льм
+2льн
+3льо
+2льÑк
+1льÑти
+1льÑÑ‚Ñ
+2льт
+2льц
+2льч
+1льща
+1льще
+1льщу
+3лью
+3льÑ
+л2ю
+1лю.
+1люж
+1люÑÑŒ
+лю1та
+1лÑ
+3лÑ.
+лÑ1ви
+3лÑво
+3лÑвы
+2лÑд
+3лÑм
+лÑ1ре
+лÑ1ру
+3лÑÑ…
+1м
+ма2вз
+3маг
+ма2гн
+ма2др
+ма2дь
+ма1зо
+ма2к1р
+2м1алл
+ман2д1р
+маÑ3л
+ма1Ñ4Ñ‚
+ма2тоб
+ма2т1р
+ма2у
+маф2
+3мач
+ма2чт
+4м1б
+м3би
+мб2л
+м3блÑ
+2м3в2
+2мг2
+3м2гл
+2м1д
+меан2
+ме2ег
+ме2ел
+ме2ж1ат
+ме1зо
+ме2Ñ1к
+ме2ÑÑ‚1Ñ€
+меч1т
+2мж
+2м1з2
+ми2гре
+ми1зв
+2мизд
+ми1зн
+ми2кр
+мик1ри
+ми2оз
+ми1опи
+ми2ор
+ми1Ñ2л
+2м1к2
+3мкн
+2м1л
+м2лее
+м2лел
+2мм
+2м1н
+4м3на
+мне1д
+3м2неш
+4мное
+м2нож
+4мной
+4мном
+м2нор
+4мною
+м2нут
+4м3ны
+мо1б2
+мо3вл
+3мод
+мо1др
+мо2жж
+мо1зв
+мо1зр
+моиÑ1Ñ‚
+мо2к3в
+мо3м2
+3мон
+3моп
+мо1ру
+моÑ1ка
+мо1Ñм
+мо1Ñн
+мо1Ñ2п
+3моти
+мо2т1р
+3моф
+2мп
+мп2л
+м1раб
+2мри
+2м1ро
+м1ры
+2м1Ñ
+мÑ2к
+мÑ2н
+м2Ñ1ор
+3м2Ñти
+2м1т
+му1Ñ2к
+му1Ñ4л
+му1ÑÑ‚
+мут1р
+му3ть
+2мф
+мфи3
+2м1х
+2мц
+м2чав
+м2чал
+м2чит
+м2чиш
+2мш2
+2мщ
+3м2ще
+мым1
+мы2мр
+мы2Ñ
+2мь.
+2мьÑ
+мью1
+2мÑ
+мÑ1Ñ€
+м2ю
+мÑ1Ñ€
+мÑ1ÑÑ‚
+1на
+наби1о
+наб2р
+на1в2р
+наг2н
+на3жд
+на1з2
+на2ил
+на2ин
+на2и1Ñ2
+4накк
+на3м2н
+нап2л
+на1рва
+на1р2ви
+на1Ñ2
+на1тв
+на1т2р
+н1а2фр
+на1х2
+2нач
+на3ш2л
+2нащ
+наÑ1Ñ€
+3наÑ
+2н1б2
+2н1в
+2нг
+н2г1в
+нги2о
+нг4л
+нго1Ñ
+нг2р
+2н1д
+н2дак
+н2д1в
+нде3з
+нде2Ñ
+нд2ж
+н3д2з
+н2дл
+нд1раг
+нд1раж
+нд2ре
+нд2риа
+н2дрÑ
+нд2Ñп
+н2дц
+1не
+не1б2
+не1в2д
+2невн
+не3внÑ
+нег2
+3нед
+не1д2л
+нед2о
+не2дра
+не1дро
+не3ду
+не3е
+нее2д
+не3ж2д
+не1зв
+не1з2л
+не1зн
+не1зо
+не1зр
+неи2
+не1к2в
+не1кл
+не3м2н
+3не1о2
+не2ода
+не2ол
+не3п2
+не1р2ж
+не2р1от
+неÑ2к
+не3Ñ2н
+не1Ñ2п
+неÑÑ‚2
+не1Ñ2Ñ…
+не1Ñ2ч
+не1т2в
+не3т2л
+не1т2р
+3неу
+не2фр
+не1хр
+не3шк
+неÑ2
+2н1з2
+нзо1Ñ
+1ни
+ни3б2
+ни2ен
+3ний
+ни2кл
+нила2
+ни2л1ал
+ни2л1ам
+2нинÑп
+2н1инÑÑ‚
+ни1Ñл
+ниÑ3п
+ниÑÑ‚2Ñ€
+ниу3
+ни1х
+3ниц
+3нищ
+2н1к
+нк2в
+нк2л
+нкоб2
+нко3п2
+н2к1ро
+нк1Ñ
+н1л
+2н1н
+нно3п2
+1но
+ноб2
+но1бр
+но2вл
+но1дв
+но1др
+но2ер
+но1зв
+но2зд
+но3з2о
+но1зр
+но3кн
+3номе
+ном3ш
+но2рв
+но1ру
+но1Ñкл
+но2Ñли
+но1Ñ2п
+но2Ñч
+2нотд
+но3ф2
+ноÑ2
+н3п2
+2н1ре
+2н1ри
+н1ро
+2н1Ñ
+н2Ñ3в
+н2Ñг
+нÑ2ке
+н2Ñкон
+н2Ñл
+н3Ñла
+н2Ñ3м
+н2Ñн
+н2Ñ1ок
+н3Ñ2пе
+нÑÑ‚2Ñ€
+нÑу2Ñ€
+н2Ñ3Ñ„
+н2ÑÑŠ3
+2н1т
+н2т1в
+нти1о2к
+н2тм
+нт2ра
+н2тр1а2г
+нтр1аж
+н2трар
+нтраÑ2
+нт2ре
+н2трив
+н2трок
+нт2ру
+нтр1уд
+нт2ры
+н2Ñ‚1Ñ€Ñ
+1ну
+нут1р
+ну1х
+3ную
+2нф2
+н1х
+нхо1
+2нц
+2н1ч
+н2чл
+2нш
+нш2т
+2нщ
+1ны
+3ны.
+2нь.
+1нье
+1ньи
+2ньк
+1ньо
+2ньÑ
+2ньт
+2ньч
+1нью
+1ньÑ
+н2Ñ
+1н2ю
+2н3ю2р
+1нÑ
+нÑ1ви
+2о1а2
+о3ав
+оап1
+2оба
+2обио
+об2лев
+об2лем
+о1блю
+1обм
+обо1л2г
+обо3м2
+обо2Ñ
+2обот
+об1р
+о2бра.
+о1брав
+о1бран
+1объ
+2обь
+о1в
+о3вла
+о3в2ло
+ов3но
+о3в2нуш
+о2в1ри
+ов2Ñе
+ов3Ñко
+ов2т
+о2вх
+ог2
+2о3ге
+ог3ла.
+ог3ли.
+ог3ло.
+о3грÑ
+2одан
+од1вое
+о3де.
+1о2деÑл
+2оди3а
+2о3дим
+од2лит
+о2д1о2пе
+одо3пр
+о2д1о2пы
+о2доÑи
+о2д1отч
+о1драг
+од1раж
+од1раз
+од1рак
+о1драл
+од3реб
+о1дроб
+од1ров
+о2д1у2ч
+о2дыма
+о2дыму
+о2дын
+о1дь
+о2дьб
+о1е
+ое1б
+о2е1вл
+ое2д
+о3ежек
+ое2жи
+ое1о
+ое1Ñ2
+ое2ÑÑ‚
+о2ето
+ое2ц
+о3жди
+о3ж2ду
+оза2б3в
+2озав
+о1з2ва
+оз2вен
+оз2ви
+о1з2вÑ
+оз2гло
+оз2дор
+о1здр
+озе1о
+оз3но
+о1зо
+о2з1об
+2озон
+о2зоп
+озо1ру
+оз1уг
+о2зым
+о3зыÑ
+о3и
+ои2г1
+оиг2н
+оие3
+ои2з
+ои2м
+ои3мо
+ои2о
+2ой
+ойÑ2
+о1к
+2о3кан
+ок2в
+2ок2л
+о3клю
+око1б
+2о3кол
+око3п2л
+ок1Ñк
+1окт
+2окти
+2окум
+о3ла
+ол2ган
+о1ле
+1олимп
+о3ло
+о1лу
+олу3д2
+о1лы
+о1лю
+о3лÑ
+о3ма
+ом2бл
+2оме
+о3м2нем
+о3м2нет
+о3множ
+ом1ри
+ом2ч
+ом2ше
+о2мь
+о3мьÑ
+о3на
+онд2
+оне3ф2
+оно1б
+о1нр
+онÑ2
+он2тру
+о1о2
+о2ол
+оо3пÑ
+ооÑ3м
+ооÑÑ‚1Ñ€
+о2оти
+о2оф
+о3пак
+о3пар
+о2пле.
+о2п1лей
+о2пли
+оп2лит
+оп2ло
+оп3лю.
+о2плÑ
+о3плÑÑ
+опо4вÑ
+опоз2н
+опо2ш3л
+оп2ри
+о3п2те
+оп2то
+о1ра
+ора2Ñ3
+ор2б3л
+о1р2в
+о1ре
+2о3рег
+оре2Ñк
+о1ри
+ор1иÑп
+о1ро
+оро2Ñ3л
+ор2тр
+о1руе
+о1рук
+ор1укÑ
+о1руÑ
+2орц
+о1ры
+о1рю
+о1Ñ€Ñ
+о3Ñад
+оÑа3ж2
+оÑ2б
+о2Ñ3ба
+о2Ñ1ка.
+оÑ3кар
+оÑк1во
+о2Ñке
+оÑ1ки
+о2Ñки.
+о2Ñков
+оÑ1кой
+оÑ1ком
+о1Ñ2коп
+оÑ1кою
+о2Ñ1ку.
+оÑ1кую
+о1Ñ2л
+оÑ3лей
+оÑ3лог
+оÑ3лых
+оÑ3ми
+оÑ3моÑ
+о1Ñ2ним
+оÑ2нÑл
+оÑ2паÑ
+о1Ñ2пу
+оÑ2пÑ
+оÑ2Ñв
+оÑ2Ñ3м
+о1ÑÑ‚
+оÑ2та
+о3Ñтра
+о2Ñуч
+2оÑÑ…
+оÑ2цен
+о1Ñ2ч
+о1Ñ2шив
+о1т
+отв2
+от3ва
+от1ве
+от1ви
+от1вл
+1отг
+1отд
+2о3тек
+о3тер
+2о3тех
+о3ти
+о3ткал
+о2тм
+от1раб
+от1рад
+от1раз
+отра2Ñ
+от1реж
+от1рек
+от1реч
+от1реш
+от1ри
+от1род
+от1рое
+от1рок
+от1роÑ
+от1роч
+от1руг
+от3Ñм
+оту2а
+от1у2ч
+1отх
+о3тью
+о3Ñ‚ÑŒÑ
+о1у2
+оуп2
+оуÑ2к
+оу3та
+оу3то
+2офаш
+о3фе
+2офит
+2офон
+о2фори
+2офот
+о2фри
+2охи
+ох1лы
+о2хлÑ
+ох2ме
+2охор
+о1хр
+о1ху
+о2цо
+оча1Ñ
+оч2л
+оч1ле
+о3чли
+о1чт
+о2ч1то
+ош3ва
+ош2ла
+ошпа2к3
+ош2т
+оÑ1ти
+2ою
+о1Ñ
+оÑ2в
+оÑ2д
+оÑ2з
+оÑ2ри
+1п
+пави3
+пав3л
+па2вь
+па2др
+па2ен
+па1зо
+паÑ1л
+паÑ1та
+па1Ñте
+паÑ1то
+паÑ1ту
+па2Ñ1Ñ‚Ñ‹
+па1тро
+па2ун
+па3ф
+па1ху
+па2шт
+2п1в2
+2п1д
+пе1
+пе2дв
+пе2д1ин
+пе2з
+пе3за
+пе3зо
+пе2к1ла
+пе2ль
+пе4пл
+пери1о
+пе2Ñ1к
+пе2Ñн
+пе2ÑÑ‚1Ñ€
+пе2Ñц
+пе2Ñч
+пе2тр
+пе2шт
+пиаÑÑ‚1
+пи2ж3м
+пи2к1р
+3пинк
+3пиÑÑ
+4п3к
+2пл.
+4пла.
+пла1Ñ
+п1лем.
+п1лемÑ
+2плен
+п2ленк
+п1ле2о
+плеÑ1к
+п1лею
+2плив
+3п2лик
+2пло.
+2плов
+2плог
+2плый
+2плым
+п1лын
+п1лых
+2плю.
+п1лют
+п2лÑÑ
+п2лÑш
+2п1н
+п3на
+п3но1
+п3ны
+по1б2
+по3вл
+по3в2Ñ
+под1во
+по2д1о2к
+подо3м2
+пое2л
+пое2х
+по1зве
+по1здо
+по1з2л
+по1зн
+пои2щ
+3пой
+3полк
+по3мно
+по3мну
+3по3п2
+п1орг
+пор2ж
+по1ру
+по1Ñ4
+3поÑл
+по3ÑÑ
+пот2в
+пот2р
+по1х2
+по2шло
+по2шлы
+по2шлÑ
+поÑ3м
+2пп2
+ппо1д
+2пр.
+3прев
+пре1з
+прей2
+пре1л
+пре1ог
+3прет
+при1
+при3в
+приг2
+при3д2
+при3к
+при3л
+приль2
+прип2
+п2риц
+про1бл
+прод2л
+про3ж2
+про1з2
+п1розо
+3прои
+про3п
+профо2
+2прÑ
+п2ру
+2п1Ñ2
+3п2Ñал
+п3Ñин
+3п2Ñих
+п3Ñо
+2п1т
+п2т3в
+3п2тих
+п3ту
+3пуб
+пуг3н
+пуÑ1ку
+пу1ÑÑ‚
+пу3ть
+2пф2
+пх2
+2пц
+4п3ч
+2пш
+2пщ
+2пь.
+2пьт
+пÑ1ра
+п2ю1
+1ра.
+раа2
+ра2бл
+1рабо
+ра2б1р
+1равнÑ
+ра2гв
+ра2гл
+рад2ж
+радо1б2
+ра2дц
+ра2жур
+ра2зий
+ра2зуб
+рак2в
+1ракиз
+ра2к3л
+1ралг
+1рамк
+1рамн
+ра2нох
+ран2Ñц
+ра2п1л
+раÑ3к2
+1раÑл
+раÑ3п
+раÑ1Ñ‚
+1раÑта
+раÑ3Ñ‚2л
+ра2так
+рат1в
+ра1т2р
+2рахи
+1ращи
+1раю
+1раÑ
+2раÑÑ‚
+2р1б
+рб2ла
+р2бле
+рб2ло
+рб2лю
+рбо3Ñ
+1р2вав
+р3вак
+р3вар
+р3вата
+р3веж
+р2вео
+1рвет
+р1ви
+р3вин
+р2вит
+р1во
+рво1з2д
+р1вь
+2рг
+р2гв
+р2г1л
+р2гн
+рг2р
+2р1д
+рда1Ñ
+р2д1в
+рд2ж
+рди2а
+р2дл
+рдоÑ2
+р2дц
+1ре.
+ре1вр
+рег2лÑ
+рег2н
+ре2д1о2п
+ре2доÑ
+рее2в
+рее2д
+рее2л
+ре3ж2д
+1резк
+ре1з2л
+ре1зна
+1ре1зо
+ре1зр
+рез2у
+1рейш
+ре1к2л
+1рекш
+ре3мно
+3ремо
+ремо2г3
+1ренк
+1рень
+ре1он
+ре1оп
+ре1о2р
+ре1о2ф
+ре1ох
+ре1о2ц
+1репь
+ре3р2
+реÑ1ки
+ре1Ñл
+ре1Ñ2п
+реÑ2Ñ3м
+ре3Ñта
+ре3Ñто
+ре1Ñч
+ре1тв
+ре1т2р
+реуч3т
+ре1чт
+ре3шл
+р3жа.
+р3жам
+р3жан
+р3ж2д
+2рз
+р1з2в
+р1зо
+ри3а
+риб2
+ри3бр
+ри3в2н
+2риги
+ри2гло
+ри3г2н
+2ридж
+ри1д2р
+рие2л
+рие3р
+риз2в
+рик2р
+ри3м2н
+ри3м2ч
+р2ин
+1ринÑ
+рио2з
+рио2Ñ
+ри1от
+ри3р2
+ри1Ñ2
+ри3Ñб
+2риÑп
+ри3Ñтв
+ри3т2р
+1риу
+ри2фл
+ри3фр
+ри1хл
+1риц
+1риш
+риÑти2
+2р1к
+р2кв
+р2к1л
+рк1Ñ
+2р1л2
+р2ль
+рлю1
+Ñ€3лÑ
+2рм
+р2мч
+2р1н
+рнаÑ4
+рне3о
+рне1Ñ2
+рно3Ñл
+1ро.
+ро2блю
+ро1б2р
+ро2вл
+1рогол
+1рогру
+ро1дв
+ро3д2з
+ро1дл
+род2ле
+ро2д1от
+ро1др
+1родь
+рое2л
+рое2м
+рое2х
+1розар
+ро1з2в
+ро1зр
+3розыÑ
+рои2Ñ3
+1рокон
+1рокр
+1ролиÑ
+1ролиц
+1ромор
+1ронаж
+1ронап
+1роноÑ
+рооп1р
+ро2плю
+ро3пÑ
+2р1орг
+ро1р2ж
+ро1ру
+ро1Ñк
+ро2Ñки
+ро2Ñку
+1роÑл
+ро1Ñм
+ро1Ñ2п
+роÑ2Ñ„
+1роÑш
+1роÑÑŽ
+1рот2в
+1ротк
+рот2ри
+1роу
+роуг2
+ро2ф1ак
+ро2фр
+ро1хл
+рош2л
+ро3шн
+1роÑз
+2рп
+рп2ло
+р2плю
+2Ñ€1Ñ€
+4Ñ€1Ñ
+Ñ€Ñ2к
+Ñ€2Ñн
+Ñ€Ñ2п
+Ñ€Ñтв2
+Ñ€3Ñтвл
+2Ñ€1Ñ‚
+р2такк
+р2т1акт
+р2т1в
+рт3ва
+рт2вл
+р2тм
+р2т1об
+рт1орг
+рт1ра
+рт2ран
+рт1ре
+рт1ри
+ртуÑ1
+р2т1у2чи
+р3тью
+рт1Ñч
+1ру.
+1руба
+руг3н
+ру2дар
+1ружей
+2рукÑ
+1рул
+руÑ1к
+руÑ3л
+ру1Ñта
+руÑÑ‚1Ñ€
+ру3ть
+1руха
+1рухо
+1ручн
+2рф
+рф2л
+2рх
+р2хв
+р2х1ин
+рх1л
+р1х2ло
+р2х1оп
+рх1р
+2рц
+р2цв
+2р1ч
+р2чл
+р2чм
+2рш
+р3ш2м
+рш2т
+2рщ
+2ръ
+1ры.
+1рыб
+ры2дв
+2рыз
+ры2кл
+1рым
+ры2Ñ1к
+ры2х1
+2рь.
+1рье
+1рьи
+2рьк
+2рьÑ
+2рьт
+1рью
+1рьÑ
+Ñ€Ñ1л
+Ñ€2ÑŽ
+1рю.
+1рюÑ
+Ñ€Ñ1ви
+1Ñ€ÑÑŽ
+1Ñа
+Ñа2бл
+Ñа2дь
+Ñа2кв
+Ñа2кл
+2Ñ1альп
+Ñ1апп
+2Ñ1арк
+2Ñ1атл
+Ñа1Ñ‚Ñ€
+Ñа2ун
+Ñа2Ñ„1Ñ€
+Ñа1Ñ…2
+1Ñб2
+2Ñбе3з2
+Ñбезо3
+Ñбе3Ñ2
+2Ñ3бу
+Ñ2бы
+2Ñбю
+1Ñ2в
+2Ñ3вен
+Ñг2
+Ñ2ги
+Ñ2гн
+Ñ2го
+1Ñд2
+Ñ2да
+Ñ2де
+Ñ3ди
+Ñ2до
+1Ñ2е
+Ñег2н
+Ñе1з2
+Ñе1кв
+Ñек1л
+Ñе2к1Ñ€
+ÑекÑ4
+Ñеми1
+Ñере2б
+Ñе2Ñк
+Ñе2ÑÑ‚
+Ñе3Ñта
+Ñе3Ñте
+ÑеÑÑ‚1Ñ€
+1Ñ2ж
+Ñ1з
+1Ñ2и
+3Ñиз
+Ñи1ом
+Ñи1оп
+Ñи2пл
+Ñи1Ñ…
+4Ñк.
+2Ñкам
+Ñ2канд
+1Ñ2каф
+2Ñках
+Ñк2ва
+Ñ2кви
+3Ñкино
+Ñк2л
+Ñ2клÑ
+Ñк3лÑв
+2Ñкн
+Ñ1кон
+2Ñкона
+Ñ2копÑ
+2Ñкош
+Ñк2Ñ€
+Ñ1кра
+2Ñкриб
+Ñк1Ñ
+2Ñкуе
+2Ñ3ла.
+1Ñлав
+1Ñлад
+Ñ1лам
+2Ñ3лаÑ
+Ñ3лев
+Ñ3лее
+Ñ1лей
+Ñлео2
+Ñ1лет
+Ñ3лею
+2Ñ3ли.
+2Ñлиц
+2Ñ3ло.
+Ñ2лож
+Ñ3лому
+2Ñ3лоÑ
+2Ñ3лую
+2Ñ3лые
+2Ñ3лый
+2Ñ3лым
+2Ñль
+Ñ1люÑ
+2Ñ3лÑ
+Ñ2м
+1ÑмеÑ
+Ñ4меÑ
+Ñ3мур
+Ñ1н
+1Ñ2наб
+Ñ2наÑ
+2ÑнаÑ
+1Ñ2неж
+2Ñ3ник
+2Ñно
+Ñно1з2
+2Ñную
+2Ñ3ны
+1Ñо
+Ñо1б2Ñ€
+Ñ2ов
+Ñов2Ñ€
+Ñо1д
+Ñо1з2
+Ñо1л2г
+Ñо3м2
+Ñо2рие
+Ñо1ру
+Ñо1Ñк
+Ñо1Ñ2п
+Ñо2ÑÑŒ
+Ñот2Ñ€
+Ñо1чл
+Ñош2л
+Ñп2
+Ñ2пав
+Ñ2пее
+Ñ2пел
+Ñ2пен
+Ñ2пех
+1Ñ2пец
+Ñ2пеш
+Ñ2пею
+Ñ2пим
+2ÑпиÑÑ
+Ñ3пн
+Ñпо1з2
+2Ñпол
+Ñ2поÑ
+2Ñпь
+1ÑÑ€
+2ÑÑ€.
+Ñ2раб
+Ñра2Ñ
+Ñ1рат
+Ñре2б1
+Ñре3до
+2Ñ1Ñ
+ÑÑанд2
+Ñ2Ñб
+ÑÑ3во
+4Ñ5Ñи
+Ñ3Ñ2к
+ÑÑ2л
+Ñ2Ñн
+Ñ3Ñ2не
+Ñ2Ñори
+ÑÑ2п
+ÑÑÑ‚2
+ÑÑ2ч
+2ÑÑ‚.
+1Ñта.
+2Ñтб
+4Ñтв.
+ÑÑ‚1вер
+2Ñтвл
+ÑÑ‚2вол
+ÑÑ‚2вÑ
+Ñ2те
+1Ñ4те.
+1Ñтей
+1Ñтел
+1Ñтен.
+Ñ3тет.
+Ñ3тете
+Ñте3Ñ…
+Ñ3теш
+1Ñти
+Ñ2тие
+Ñ2тии
+2Ñтимп
+2Ñтинд
+2Ñтинф
+2Ñтинъ
+Ñ2тич
+Ñ2тишк
+Ñ2тию
+2Ñтк
+ÑÑ‚2ла
+Ñ3Ñ‚2ле
+2Ñтли
+ÑÑ‚2лил
+ÑÑ‚2лит
+2ÑтлÑ
+2Ñтм
+2Ñтн
+1Ñто.
+Ñ2то1б
+1Ñтов
+1Ñтог
+Ñто2г3н
+1Ñтод
+1Ñтое
+3Ñ2тои
+1Ñток
+1Ñтом
+1Ñтон
+2Ñторг
+2Ñторж
+2ÑторÑ
+1ÑтоÑ
+1Ñтот
+Ñ2тоц
+1Ñтою
+2Ñтп
+2ÑÑ‚Ñ€.
+ÑтраÑ2
+4ÑтраÑ
+2Ñтред
+ÑÑ‚1рей
+2Ñтрив
+ÑÑ‚1риз
+2Ñтрил
+2Ñтрищ
+ÑÑ‚1роа
+Ñ4Ñ‚1ров
+ÑÑ‚1род
+ÑÑ‚1рох
+ÑÑ‚2руб
+ÑÑ‚1руш
+2ÑÑ‚Ñ
+Ñ1тут
+1Ñтую
+2ÑÑ‚Ñ„
+2Ñтц
+1ÑÑ‚Ñ‹
+Ñ2тыв
+Ñ4Ñ‚ÑŒ
+2ÑÑ‚ÑŒ.
+2ÑÑ‚ÑŒÑ
+3Ñтью
+1ÑÑ‚ÑŒÑ
+1ÑÑ‚Ñм
+1ÑÑ‚ÑÑ…
+1Ñу
+Ñу2б
+Ñуб1а2
+Ñуб1о
+Ñу1в
+Ñу3гл
+Ñу2ев
+Ñу2з
+Ñу1кр
+Ñума1
+Ñупе2
+ÑуÑ3л
+ÑуÑ3п
+Ñу1ÑÑ‚
+Ñут1Ñ€
+Ñу2Ñ„3
+Ñу1Ñ…
+1Ñ2фе
+Ñ1Ñ…2
+1Ñ2хе
+2Ñца
+Ñ2цена
+2Ñ3ци
+2Ñцо
+Ñч2
+1Ñча
+Ñ2чаÑ
+Ñче2Ñ1к
+Ñ3чив
+2Ñчик
+Ñ2чит
+Ñ1чл
+2Ñчо
+Ñш2
+Ñ3шн
+1ÑÑŠ2
+Ñъе3д
+Ñъе3л
+1ÑÑ‹
+ÑÑ‹2г1
+ÑÑ‹2з
+ÑÑ‹2п1л
+ÑÑ‹2Ñ
+ÑÑ‹Ñ1ка
+2ÑÑŒ.
+1Ñье
+2Ñьк
+2Ñьт
+1Ñью
+1ÑÑŒÑ
+ÑÑ1Ñ€
+Ñ2ÑÑ
+1Ñ2ÑŽ
+ÑÑŽ1Ñ
+1ÑÑ
+2ÑÑз
+ÑÑ3Ñ‚ÑŒ
+та2бл
+таб2р
+та1ври
+1таг
+та2гн
+та1з2
+так3ле
+т2ан
+та2пл
+1таÑ
+та1ÑÑ‚
+та1тр
+1тащ
+2т1б2
+2тв.
+2т2ва
+т1вей
+т1вел
+т1вет
+2тви
+т1вое
+т1во1з
+2т1вой
+Ñ‚1воÑ
+2твою
+2т1вр
+2тву
+2твы
+2твÑ
+2тг
+2т1д
+1т2е
+те2гн
+те1д
+те1зо
+3тека
+тек1л
+3текш
+теле1о
+тем2б1
+те2о3д
+те1ох
+те4п1л
+те2рак
+тере2о
+3терз
+тер3к
+3терÑ
+те2Ñка
+те2Ñ1ки
+те2Ñ1ко
+те2Ñку
+теÑÑ‚2
+те2хо
+2тж
+2т1з
+тиа2м
+ти2бл
+ти3д2
+ти1зна
+тии2
+тииÑ1
+тик2
+тила2м
+т1имп
+2т1инв
+т1инд
+2тинж
+2тинф
+ти1Ñ2л
+ти3Ñтв
+ти3ф2р
+ти1хр
+2т1к2
+3т2кав
+3т2кан
+3т2кет
+3ткн
+2т1л
+тло2б
+т2ль
+тм2
+тми2Ñ
+тмиÑÑ‚1
+т3мщ
+2т1н
+то2беÑ
+то1б2л
+2тобъ
+то2вл
+то1д
+то3д2р
+то1з2
+ток2р
+2т1омм
+2томÑ
+2тонг
+1торг
+1торж
+1торÑ
+то1ру
+1торш
+то1Ñ2н
+то1Ñ2п
+то1Ñ2ц
+2тотд
+то3тк
+1тощ
+2тп2
+тпа1т
+т1рага
+2т1раж
+2трб
+2трв
+2трг
+2трд
+трдо2
+т1реа
+1требо
+1требу
+т1ребь
+т1реве
+т1ревш
+т1рег
+т1ред
+т1рее
+т1реза
+т1резн
+треп1л
+3тре2Ñ
+треÑ1к
+Ñ‚1реÑÑ‚
+т1рету
+3т2ре2х
+т1рец
+т2решь
+т1рею
+1триб
+т1рив
+три2г1л
+т1рил
+т1рим
+4тринÑ
+три1о
+т1рит
+три3ф
+т1рищ
+2трм
+2трн
+т1рогл
+т1роид
+2трой
+тро3пл
+т1рор
+Ñ‚1роÑо
+тро3т
+4т3роц
+2трою
+2трп
+2трр
+1труб
+т2руд
+2трук
+т2рум
+т2рут
+2трф
+2трщ
+2тръ
+т1ры
+Ñ‚1Ñ€Ñ.
+Ñ‚1Ñ€Ñв
+2Ñ‚1Ñ€Ñд
+Ñ‚1Ñ€Ñе
+Ñ‚1Ñ€Ñж
+Ñ‚1Ñ€Ñй
+Ñ‚3Ñ€Ñк
+Ñ‚1Ñ€ÑÑ‚
+Ñ‚1Ñ€Ñщ
+Ñ‚1Ñ€ÑÑ
+4Ñ‚1Ñ2
+Ñ‚2Ñб
+Ñ‚2Ñ3д
+Ñ‚Ñеп2
+Ñ‚2Ñ3м
+Ñ‚2Ñ3п
+2Ñ‚1Ñ‚
+т2тм
+ту2гр
+ту2жин
+2т1у2пр
+ту1Ñл
+ту1ÑÑ‚
+ту2фл
+1туша
+1тушо
+1тушь
+1тущ
+2Ñ‚Ñ„
+2Ñ‚1Ñ…
+4тц
+2т1ч
+2тш2
+2тщ
+2Ñ‚ÑŠ
+ты2г1
+Ñ‚Ñ‹2Ñ1к
+2ть
+4ть.
+3тье
+3тьи
+ть2м
+4тьт
+тью1
+2Ñ‚Ñ
+Ñ‚2ÑŽ
+Ñ‚ÑŽ1Ñ‚
+1Ñ‚Ñг
+1Ñ‚Ñж
+1Ñ‚Ñп
+2Ñ‚Ñ2ч
+у1а
+у2але
+у2аÑ
+у3бел
+убо1д
+убоÑ2
+уб1р
+1убра
+уб3рю
+1у2быт
+у1ве.
+у1ви
+ув2л
+у1во
+у1ву
+у2гв
+у2гл
+у2гн
+уг2на
+уг2не
+уг1ре
+уг1Ñ€Ñ
+уда1Ñ
+уд2в
+уд1рам
+уд1ро
+у3ду
+у1е
+уе2д
+уе2л
+уе1Ñ
+уе2Ñ1к
+уеÑ2л
+уе2х
+у2жж
+у1з2в
+у1зо
+узо3п
+у1и
+у1ка
+ук1в
+у1ки
+у1ко
+уко1б
+у1ку1
+у1ла
+у1ле
+у1лу
+у1лых
+у1лю
+у2мч
+у3на
+ун2д1р
+у1нь
+у1о
+уо2б
+уо2в
+у2оза
+уо2к
+уо2п
+уо2Ñ
+уоÑÑ‚1
+уо2т1
+уо2ф
+у2пл
+уп1лю
+у3про
+у1ра
+у1ре
+уре2т3р
+у1ри
+урке3
+у1ро
+у2род
+уро2дл
+урт2р
+у3ру
+у1ры
+у1рю
+у1Ñ€Ñ
+у2Ñад
+у1Ñг
+уÑ1ка
+уÑ1ки
+уÑк3л
+уÑ1ком
+у1Ñкр
+уÑ1ку.
+уÑ2л
+уÑла4ж3
+уÑ3ли
+у1Ñм
+у2Ñн
+уÑ2п
+уÑ3Ñ
+у1Ñте
+у1ÑÑ‚Ñ
+у1ÑÑ„
+2уÑц
+у2Ñч
+у2ÑÑŒ
+у3ÑÑŒÑ
+у1та
+у3тер
+у1ти
+ут2лÑ
+у1то
+уто3п2Ñ
+ут1ри
+у1ту
+у1ты
+у1тье
+у3тью
+1утю
+у1Ñ‚Ñ
+у1у
+ууг2
+уу2Ñ
+у3фи
+уф1л
+уф2лÑ
+у2фр
+ух1ад
+уха2т
+у2хв
+у3х4во
+ух1л
+ух3лÑ
+ух1р
+у2чеб
+1учр
+у1чь
+у3ше
+у3ши
+у2шл
+уш1ла
+у2шп
+2уÑ
+у1Ñ
+уÑ2з
+1Ñ„
+фа2б1
+фа2гн
+фа1зо
+фан2д
+фанд1р
+фа1тр
+фа2х
+3фаш
+фаÑ1
+2ф1б
+2ф1в
+2фг
+2ф1д
+фев1р
+фед1р
+фе1о3
+фе2Ñ1к
+ф4и
+фиа2к1
+фи2гл
+фи2ж
+фи2зо
+фи2нин
+фи1о
+3фит
+2ф1к
+ф2ла
+ф2ли
+ф2ло
+2фм
+2ф1н
+2фобъ
+3фон
+фо2рв
+2ф1орг
+фор3тр
+фо1ру
+фоÑ1к
+3фот
+фото3п
+ф1раб
+фра1з
+фра1Ñ
+ф1рат
+ф2рен
+фре2Ñ
+ф1ри
+ф2риж
+ф2риз
+ф1ро
+ф2рон
+ф1ру
+2Ñ„3Ñ
+2Ñ„1Ñ‚
+ф2тм
+ф2тор
+2ф1у2п
+фу3тл
+2фуф
+2Ñ„Ñ„
+2ф1ч
+2фш2
+2фь.
+Ñ„2ÑŽ1
+1ха
+ха2бл
+ха2д
+2х1ак
+хан2д
+хао3
+х1арш
+2х1б
+1х2в
+2х3ве
+2х3ви
+х3вы
+2хг
+х3д2
+1хе
+хео3
+х1з2
+1хи
+хиат1
+хие2
+2х1изы
+хи1Ñ2
+х1к2
+х1лав
+Ñ…1лаÑ
+х1лат
+х1лац
+1хлеб
+Ñ…2леÑ
+х1лет
+х3ло.
+х2лоп
+1х2лор
+х1лу
+1х2му
+2х1н
+3х2ны
+1хо
+2х1о2к
+хоп2
+хо2пе
+хо2пор
+хо1ру
+Ñ…1оÑм
+2Ñ…1оÑн
+хоф2
+хох1л
+хоÑ2
+хп2
+х1раз
+1хран
+Ñ…1ра1Ñ2
+х1рей
+хри2пл
+Ñ…2риÑ
+х1ров
+1хром
+хро2мч
+х1ры
+Ñ…1Ñ€Ñ
+2Ñ…1Ñ2
+2Ñ…1Ñ‚
+1ху.
+х1у2г
+2хуе
+2хуй
+1хун
+х1у2р
+ху3ра
+1хуÑ
+1хуш
+2хую
+Ñ…1Ñ…2
+2х1ч2
+2хш
+хью1
+1ц
+ца1
+3ца.
+3цам
+ца2пл
+3цах
+2ц1б
+ц2ве
+2цвы
+2цг
+2ц1д
+це1з
+це1к
+це1от
+цеп1л
+цеÑ2л
+це1т
+2цетат
+2ц1з
+ци1
+ци2к1
+цик3л
+ци2ол
+цип2
+ци2Ñк
+циу3
+циф1р
+2ц1к2
+2ц1л
+2цм
+2ц1н
+ц1о2б
+2ц1о2д
+2ц1от
+2цп2
+2ц1р
+2ц1Ñ
+2ц1т
+3цу
+2цц
+2ц3ш2
+3цы
+цы2п
+цып3л
+цю1
+1ча
+ча2др
+ча2дц
+ча2ево
+ча2евы
+ча2ер
+чаÑÑ‚1в
+ча1Ñте
+ча1Ñту
+ча1ÑÑ‚Ñ
+3чато
+3чаты
+2ч1б
+ч1в
+2ч1д
+1че
+че1вл
+че2гл
+че1о
+чер2Ñ
+черÑÑ‚1
+че1Ñл
+ч2ж
+чжо2
+1чи
+3чик
+3чиц
+2ч1к
+1ч2ла
+ч2ле
+ч3лег
+ч3леж
+2чли
+ч2ли.
+1ч2ло
+1чм
+2чма
+2чме
+ч2мо
+2ч1н
+3чо
+2ч1Ñ
+2ч1та
+ч2те
+2чтм
+1чу
+3чук
+ч2х
+2ч1ч
+2чь.
+1чье
+1чьи
+2чьÑ
+2чьт
+1чью
+1чьÑ
+1ш
+ша2бл
+ша2гн
+ша2г1р
+ша2др
+шан2кр
+шар3т2
+ша1ÑÑ‚
+ша1тро
+2ш1б
+ш2в
+ш3вен
+ше2гл
+ше1к
+ше1о2
+ше3пл
+ше1Ñ2
+ши2бл
+ши2пл
+шиф1р
+2ш1к2
+3ш2кол
+2ш1лей
+2шлен
+ш2ли.
+2шлив
+2шлил
+ш2лин
+ш2лиÑ
+ш2лите
+ш2лиф
+ш2ло.
+2шлов
+ш2лог
+ш1лы
+ш2лю
+2шлÑе
+2шлÑк
+ш2лÑп
+2шлÑÑ‚
+2шлÑч
+2шлÑÑŽ
+2шм
+3ш2мы
+4ш3мы.
+2ш1н
+4шни
+ш2нур
+ш2п2
+ш3пр
+2ш1р
+2ш1Ñ
+ш1ти
+2штÑ
+шу2ев
+шуÑÑ‚1
+2шф
+ш1х
+2шц
+2ш1ч
+2шь
+4шь.
+3шье
+3шьи
+3шью
+3шьÑ
+ш2ю1
+1щ
+2щ3в2
+ще1б2л
+ще2гл
+щед1р
+щеи2
+щеиÑ1
+ще1Ñ
+ще1х
+щеш2
+ще3шк
+щи2п1л
+2щм
+2щ1н
+2щ1р
+2щь.
+ÑŠ1
+ъе2г
+ъе2д
+ъе3до
+ъе2л
+ъ2е2р
+ъе2Ñ
+ъе2хи
+ÑŠÑŽ2
+ÑŠÑ2
+ÑŠÑ3н
+Ñ‹1
+ы2бл
+ы3га
+ы3ги
+ыг2л
+ы2гн
+ы2дл
+ыд2ре
+ы2д1ро
+Ñ‹2дрÑ
+ые2
+ы3ж2д
+ыз2ва
+ыз2д
+ы2зл
+ы2зн
+ыз2на
+ыи2
+ыиг1
+ы2к1в
+ык2л
+ы2к3ло
+ыко1з
+ык1Ñ
+ы2ль
+ы2мч
+ыноÑ3л
+ы3по
+ыра2Ñ3
+ыр2в
+ыре2х
+Ñ‹3Ñа
+Ñ‹3Ñе
+Ñ‹Ñ1ки
+Ñ‹Ñ1ку
+Ñ‹2Ñн
+Ñ‹3Ñо
+Ñ‹Ñ2п
+Ñ‹2ÑÑ…
+Ñ‹Ñ2ч
+Ñ‹2Ñш
+ыт1ви
+Ñ‹Ñ‚2Ñ€
+ы3тью
+Ñ‹3Ñ‚ÑŒÑ
+ыу2
+ы2ш1л
+ы3шь
+ь1
+ьб2
+ÑŒ2вÑ
+ь2дц
+ь2е
+ье1зо
+ье1к
+ье2Ñ1к
+ь2зн
+ь2и1
+ь2кл
+ьми3д
+ьми3к
+ьмо1
+ьне2о
+ь2о
+ь2п1л
+ь3п2то
+ÑŒÑ2к
+ÑŒ2Ñн
+ÑŒ2Ñти
+ÑŒ2ÑÑ‚Ñ
+ь2т1амп
+ьти3м
+ь2тм
+ь2тот
+ь2траб
+ьт2ре
+ьт2ру
+ьт2ры
+ьхо2
+ьхоз1
+ь2ща
+ь2ще
+ь2щу
+ь2ю
+ÑŒ2Ñ
+ÑŒÑ1в
+ÑŒ3ÑгÑ
+1Ñ
+Ñ1в
+Ñв1Ñ€
+2Ñг
+Ñд1Ñ€
+Ñк1л
+ÑкÑ1
+Ñк2ÑÑ‚
+Ñле1о
+Ñ2м
+Ñ3ма
+Ñ2н
+Ñ3нь
+Ñо2з
+Ñ2п
+Ñпи3к
+Ñ1ре
+Ñ1ри
+Ñри4Ñ‚Ñ€
+Ñро1Ñ2
+Ñ1ру
+Ñ1ры
+ÑÑ1
+ÑÑк2
+ÑÑ3м
+Ñ2Ñо
+ÑÑ3те
+ÑÑ2Ñ‚1Ñ€
+Ñ2те
+Ñтил1а
+ÑÑ‚1ра
+Ñ2Ñ„
+ÑÑ…2
+Ñхо3
+Ñ2ц
+ÑÑ2
+1ÑŽ
+ю1а
+ю1б
+ю2бв
+ю2бл
+ю2б1ре
+ю1в
+ю1дь
+ю1е
+юз2г
+юзи2к
+ю1зо
+ю1и
+ю2идал
+ю1к
+ю2к1в
+ю1ла
+ю1ле
+ю2ли
+ю1лю
+2юм
+ю2мч
+ю2нь
+ю1о1
+ю1ра
+ю1ре
+юре4м
+ю1ри
+юри2Ñк
+ю1ро
+ю1ру
+ю1ры
+ÑŽ2Ñ1к
+ÑŽ1Ñта
+ÑŽ1Ñте
+ÑŽ1Ñто
+ÑŽ1ÑÑ‚Ñ
+ю1ти
+ю1то
+ю1ту
+ÑŽ1Ñ‚Ñ‹
+ÑŽ1Ñ…
+юха1Ñ
+ю1ч
+ю2щь
+ÑŽ1Ñ
+Ñ2бр
+Ñб1ра
+Ñб3ре
+Ñб1ри
+Ñб3рю
+3ÑвикÑ
+Ñ1во
+Ñ1ву
+Ñ1в2Ñ…
+Ñ2г1л
+Ñ2гн
+Ñд1в
+Ñд1Ñ€
+Ñ1е
+Ñз2гн
+Ñ1зо
+Ñ1и
+Ñ1к
+Ñ2к1в
+Ñ2к1л
+Ñк1Ñ
+Ñ1л
+Ñ2ль
+Ñм2б3л
+Ñ2мь
+Ñ3на
+ÑнÑ2
+Ñ1ра
+Ñ1ри
+Ñ1ро
+Ñ1рь
+ÑÑ1к
+ÑÑ1л
+ÑÑ2Ñ‚
+ÑÑÑ‚3в
+Ñ1Ñто
+ÑÑÑ‚1Ñ€
+Ñ1та
+ÑÑ‚3в
+Ñ3ти
+Ñти1з
+Ñ1то
+Ñ1ту
+Ñ1Ñ‚Ñ‹
+Ñ3тью
+Ñ3Ñ‚ÑŒÑ
+Ñ1Ñ‚Ñ
+Ñ1у
+ÑÑ…1л
+Ñ1ху
+Ñце1
+Ñ2шл
+2ÑÑŽ.
+2Ñ1Ñ
+.бо2дра
+.вÑÑ‚2Ñ€
+.доб2рел
+.до1б2ри
+.об2люю
+.об2рее
+.об2рей
+.об2рею
+.об2рив
+.об2рил
+.об2рит
+.па2н1иÑ
+.пом2ну
+.реа2н
+.ро2Ñ3пи
+.Ñо2пла
+а2ньш
+атро2Ñк
+безу2Ñ
+бино2Ñк
+виз2гн
+выб2ре
+гÑÑ‚4Ñ€
+ди1Ñ2лов
+доÑ2нÑ
+дро2ж3ж
+2дружей
+е2мьд
+е2о3плато
+е2о3пози
+ере3Ñ2Ñо
+4ж3дик
+4ж3дич
+заи2л
+зао2з
+2з1а2хав
+заю2л
+з2Ñ€ÑÑ‚
+зу2мь
+6зь.
+и2л1а2мин
+илло3к2
+й2кь
+ла2б1р
+лу3Ñ4н
+ме2динÑ
+ме2д1о2Ñм
+мети2л1ам
+миÑ4Ñ3н
+нар2ват
+не2о3ре
+ни1Ñ2кол
+ни4ÑÑŒ.
+но4л1а2мин
+н2траÑÑ
+о2д1о2бол
+о4ж3дев
+о1и2Ñ1Ñ‚Ñ€
+ойÑ4ков
+о2м3че.
+они3л2ам
+он2трат
+о2плюÑ
+оÑо4м3н
+оти4дн
+пере1Ñ2н
+по2доде
+по2д1у2ро
+пое2ж
+по2Ñтин
+прем2но
+приче2Ñ1к
+пти4дн
+редо4пл
+реж4ди
+рни3л2а3м
+роб2лею
+2Ñбрук1
+Ñо2Ñтрит
+Ñо3Ñ‚2кал
+2Ñтче.
+2Ñтьт
+ÑÑ‹2мит
+2ÑÑŒÑÑ.
+6Ñ‚Ñ€.
+тро2етеÑ
+6хуÑ.
+ы2рьм
+Ñ‹Ñ2вÑ
+ьбат2
+}
+
+% end pattern data
+
diff --git a/Master/texmf-dist/tex/context/patterns/lang-sk.hyp b/Master/texmf-dist/tex/context/patterns/lang-sk.hyp
index ae2a6f63e3a..d80c0df9d2d 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-sk.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-sk.hyp
@@ -29,14 +29,9 @@
% begin hyphenation data
\hyphenation {
-dos[tcaron]
-me-t[oacute]-da
-me-t[oacute]-dy
-ne-do-stat-ka-mi
-sep-tem-bra
-dos[tcaron]
-me-t[oacute]-da
-me-t[oacute]-dy
+dosť
+me-tó-da
+me-tó-dy
ne-do-stat-ka-mi
sep-tem-bra
}
diff --git a/Master/texmf-dist/tex/context/patterns/lang-sk.pat b/Master/texmf-dist/tex/context/patterns/lang-sk.pat
index 71f9a842b36..1ca17a74242 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-sk.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-sk.pat
@@ -30,32 +30,32 @@
\patterns {
a1
-[aacute]1
-[adiaeresis]1
+á1
+ä1
e1
-[eacute]1
+é1
i1
-[iacute]1
+í1
o1
-[oacute]1
-[ocircumflex]1
+ó1
+ô1
u1
-[uacute]1
+ú1
y1
-[yacute]1
+ý1
i2a
-i2[aacute]
+i2á
i2e
i2u
o2u
c2h
d2z
-d2[zcaron]
+d2ž
2b1b
2b1c
-2b1[ccaron]
+2b1Ä
2b1d
-2b1[dcaron]
+2b1Ä
2b1f
2b1g
2b1h
@@ -63,85 +63,85 @@ d2[zcaron]
2b1j
2b1k
2b1l
-2b1[lcaron]
+2b1ľ
2b1m
2b1n
-2b1[ncaron]
+2b1ň
2b1p
2b1r
2b1s
-2b1[scaron]
+2b1Å¡
2b1t
-2b1[tcaron]
+2b1Å¥
2b1v
2b1w
2b1x
2b1z
-2b1[zcaron]
+2b1ž
2b1d2z
-2b1d2[zcaron]
+2b1d2ž
2c1b
2c1c
-2c1[ccaron]
+2c1Ä
2c1d
-2c1[dcaron]
+2c1Ä
2c1f
2c1g
2c1c2h
2c1j
2c1k
2c1l
-2c1[lcaron]
+2c1ľ
2c1m
2c1n
-2c1[ncaron]
+2c1ň
2c1p
2c1r
2c1s
-2c1[scaron]
+2c1Å¡
2c1t
-2c1[tcaron]
+2c1Å¥
2c1v
2c1w
2c1x
2c1z
-2c1[zcaron]
+2c1ž
2c1d2z
-2c1d2[zcaron]
-2[ccaron]1b
-2[ccaron]1c
-2[ccaron]1[ccaron]
-2[ccaron]1d
-2[ccaron]1[dcaron]
-2[ccaron]1f
-2[ccaron]1g
-2[ccaron]1h
-2[ccaron]1c2h
-2[ccaron]1j
-2[ccaron]1k
-2[ccaron]1l
-2[ccaron]1[lcaron]
-2[ccaron]1m
-2[ccaron]1n
-2[ccaron]1[ncaron]
-2[ccaron]1p
-2[ccaron]1r
-2[ccaron]1s
-2[ccaron]1[scaron]
-2[ccaron]1t
-2[ccaron]1[tcaron]
-2[ccaron]1v
-2[ccaron]1w
-2[ccaron]1x
-2[ccaron]1z
-2[ccaron]1[zcaron]
-2[ccaron]1d2z
-2[ccaron]1d2[zcaron]
+2c1d2ž
+2Ä1b
+2Ä1c
+2Ä1Ä
+2Ä1d
+2Ä1Ä
+2Ä1f
+2Ä1g
+2Ä1h
+2Ä1c2h
+2Ä1j
+2Ä1k
+2Ä1l
+2Ä1ľ
+2Ä1m
+2Ä1n
+2Ä1ň
+2Ä1p
+2Ä1r
+2Ä1s
+2Ä1Å¡
+2Ä1t
+2Ä1Å¥
+2Ä1v
+2Ä1w
+2Ä1x
+2Ä1z
+2Ä1ž
+2Ä1d2z
+2Ä1d2ž
2d1b
2d1c
-2d1[ccaron]
+2d1Ä
2d1d
-2d1[dcaron]
+2d1Ä
2d1f
2d1g
2d1h
@@ -149,54 +149,54 @@ d2[zcaron]
2d1j
2d1k
2d1l
-2d1[lcaron]
+2d1ľ
2d1m
2d1n
-2d1[ncaron]
+2d1ň
2d1p
2d1r
2d1s
-2d1[scaron]
+2d1Å¡
2d1t
-2d1[tcaron]
+2d1Å¥
2d1v
2d1d2z
-2d1d2[zcaron]
-2[dcaron]1b
-2[dcaron]1c
-2[dcaron]1[ccaron]
-2[dcaron]1d
-2[dcaron]1[dcaron]
-2[dcaron]1f
-2[dcaron]1g
-2[dcaron]1h
-2[dcaron]1c2h
-2[dcaron]1j
-2[dcaron]1k
-2[dcaron]1l
-2[dcaron]1[lcaron]
+2d1d2ž
+2Ä1b
+2Ä1c
+2Ä1Ä
+2Ä1d
+2Ä1Ä
+2Ä1f
+2Ä1g
+2Ä1h
+2Ä1c2h
+2Ä1j
+2Ä1k
+2Ä1l
+2Ä1ľ
.as4t4ro3
.atmo3
.a2u1to3
-2[dcaron]1m
-2[dcaron]1n
-2[dcaron]1[ncaron]
-2[dcaron]1p
-2[dcaron]1r
-2[dcaron]1s
-2[dcaron]1[scaron]
-2[dcaron]1t
-2[dcaron]1[tcaron]
-2[dcaron]1v
-2[dcaron]1z
-2[dcaron]1[zcaron]
-2[dcaron]1d2z
-2[dcaron]1d2[zcaron]
+2Ä1m
+2Ä1n
+2Ä1ň
+2Ä1p
+2Ä1r
+2Ä1s
+2Ä1Å¡
+2Ä1t
+2Ä1Å¥
+2Ä1v
+2Ä1z
+2Ä1ž
+2Ä1d2z
+2Ä1d2ž
2f1b
2f1c
-2f1[ccaron]
+2f1Ä
2f1d
-2f1[dcaron]
+2f1Ä
2f1f
2f1g
2f1h
@@ -204,26 +204,26 @@ d2[zcaron]
2f1j
2f1k
2f1l
-2f1[lcaron]
+2f1ľ
2f1m
2f1n
-2f1[ncaron]
+2f1ň
2f1p
2f1r
2f1s
-2f1[scaron]
+2f1Å¡
2f1t
-2f1[tcaron]
+2f1Å¥
2f1v
2f1z
-2f1[zcaron]
+2f1ž
2f1d2z
-2f1d2[zcaron]
+2f1d2ž
2g1b
2g1c
-2g1[ccaron]
+2g1Ä
2g1d
-2g1[dcaron]
+2g1Ä
2g1f
2g1g
2g1h
@@ -231,26 +231,26 @@ d2[zcaron]
2g1j
2g1k
2g1l
-2g1[lcaron]
+2g1ľ
2g1m
2g1n
-2g1[ncaron]
+2g1ň
2g1p
2g1r
2g1s
-2g1[scaron]
+2g1Å¡
2g1t
-2g1[tcaron]
+2g1Å¥
2g1v
2g1z
-2g1[zcaron]
+2g1ž
2g1d2z
-2g1d2[zcaron]
+2g1d2ž
2h1b
2h1c
-2h1[ccaron]
+2h1Ä
2h1d
-2h1[dcaron]
+2h1Ä
2h1f
2h1g
2h1h
@@ -258,26 +258,26 @@ d2[zcaron]
2h1j
2h1k
2h1l
-2h1[lcaron]
+2h1ľ
2h1m
2h1n
-2h1[ncaron]
+2h1ň
2h1p
2h1r
2h1s
-2h1[scaron]
+2h1Å¡
2h1t
-2h1[tcaron]
+2h1Å¥
2h1v
2h1z
-2h1[zcaron]
+2h1ž
2h1d2z
-2h1d2[zcaron]
+2h1d2ž
2c2h1b
2c2h1c
-2c2h1[ccaron]
+2c2h1Ä
2c2h1d
-2c2h1[dcaron]
+2c2h1Ä
2c2h1f
2c2h1g
2c2h1h
@@ -285,26 +285,26 @@ d2[zcaron]
2c2h1j
2c2h1k
2c2h1l
-2c2h1[lcaron]
+2c2h1ľ
2c2h1m
2c2h1n
-2c2h1[ncaron]
+2c2h1ň
2c2h1p
2c2h1r
2c2h1s
-2c2h1[scaron]
+2c2h1Å¡
2c2h1t
-2c2h1[tcaron]
+2c2h1Å¥
2c2h1v
2c2h1w
-2c2h1[zcaron]
+2c2h1ž
2c2h1d2z
-2c2h1d2[zcaron]
+2c2h1d2ž
2j1b
2j1c
-2j1[ccaron]
+2j1Ä
2j1d
-2j1[dcaron]
+2j1Ä
2j1f
2j1g
2j1h
@@ -312,28 +312,28 @@ d2[zcaron]
2j1j
2j1k
2j1l
-2j1[lcaron]
+2j1ľ
2j1m
2j1n
-2j1[ncaron]
+2j1ň
2j1p
2j1r
2j1s
-2j1[scaron]
+2j1Å¡
2j1t
-2j1[tcaron]
+2j1Å¥
2j1v
2j1w
2j1x
2j1z
-2j1[zcaron]
+2j1ž
2j1d2z
-2j1d2[zcaron]
+2j1d2ž
2k1b
2k1c
-2k1[ccaron]
+2k1Ä
2k1d
-2k1[dcaron]
+2k1Ä
2k1f
2k1g
2k1h
@@ -341,28 +341,28 @@ d2[zcaron]
2k1j
2k1k
2k1l
-2k1[lcaron]
+2k1ľ
2k1m
2k1n
-2k1[ncaron]
+2k1ň
2k1p
2k1r
2k1s
-2k1[scaron]
+2k1Å¡
2k1t
-2k1[tcaron]
+2k1Å¥
2k1v
2k1w
2k1x
2k1z
-2k1[zcaron]
+2k1ž
2k1d2z
-2k1d2[zcaron]
+2k1d2ž
2l1b
2l1c
-2l1[ccaron]
+2l1Ä
2l1d
-2l1[dcaron]
+2l1Ä
2l1f
2l1g
2l1h
@@ -370,53 +370,53 @@ d2[zcaron]
2l1j
2l1k
2l1l
-2l1[lcaron]
+2l1ľ
2l1m
2l1n
-2l1[ncaron]
+2l1ň
2l1p
2l1r
2l1s
-2l1[scaron]
+2l1Å¡
2l1t
-2l1[tcaron]
+2l1Å¥
2l1v
2l1z
-2l1[zcaron]
+2l1ž
2l1d2z
-2l1d2[zcaron]
-2[lcaron]1b
-2[lcaron]1c
-2[lcaron]1[ccaron]
-2[lcaron]1d
-2[lcaron]1[dcaron]
-2[lcaron]1f
-2[lcaron]1g
-2[lcaron]1h
-2[lcaron]1c2h
-2[lcaron]1j
-2[lcaron]1k
-2[lcaron]1l
-2[lcaron]1[lcaron]
-2[lcaron]1m
-2[lcaron]1n
-2[lcaron]1[ncaron]
-2[lcaron]1p
-2[lcaron]1r
-2[lcaron]1s
-2[lcaron]1[scaron]
-2[lcaron]1t
-2[lcaron]1[tcaron]
-2[lcaron]1v
-2[lcaron]1z
-2[lcaron]1[zcaron]
-2[lcaron]1d2z
-2[lcaron]1d2[zcaron]
+2l1d2ž
+2ľ1b
+2ľ1c
+2ľ1Ä
+2ľ1d
+2ľ1Ä
+2ľ1f
+2ľ1g
+2ľ1h
+2ľ1c2h
+2ľ1j
+2ľ1k
+2ľ1l
+2ľ1ľ
+2ľ1m
+2ľ1n
+2ľ1ň
+2ľ1p
+2ľ1r
+2ľ1s
+2ľ1š
+2ľ1t
+2ľ1ť
+2ľ1v
+2ľ1z
+2ľ1ž
+2ľ1d2z
+2ľ1d2ž
2m1b
2m1c
-2m1[ccaron]
+2m1Ä
2m1d
-2m1[dcaron]
+2m1Ä
2m1f
2m1g
2m1h
@@ -424,26 +424,26 @@ d2[zcaron]
2m1j
2m1k
2m1l
-2m1[lcaron]
+2m1ľ
2m1m
2m1n
-2m1[ncaron]
+2m1ň
2m1p
2m1r
2m1s
-2m1[scaron]
+2m1Å¡
2m1t
-2m1[tcaron]
+2m1Å¥
2m1v
2m1z
-2m1[zcaron]
+2m1ž
2m1d2z
-2m1d2[zcaron]
+2m1d2ž
2n1b
2n1c
-2n1[ccaron]
+2n1Ä
2n1d
-2n1[dcaron]
+2n1Ä
2n1f
2n1g
2n1h
@@ -451,55 +451,55 @@ d2[zcaron]
2n1j
2n1k
2n1l
-2n1[lcaron]
+2n1ľ
2n1m
2n1n
-2n1[ncaron]
+2n1ň
2n1p
2n1r
2n1s
-2n1[scaron]
+2n1Å¡
2n1t
-2n1[tcaron]
+2n1Å¥
2n1v
2n1w
2n1x
2n1z
-2n1[zcaron]
+2n1ž
2n1d2z
-2n1d2[zcaron]
-2[ncaron]1b
-2[ncaron]1c
-2[ncaron]1[ccaron]
-2[ncaron]1d
-2[ncaron]1[dcaron]
-2[ncaron]1f
-2[ncaron]1g
-2[ncaron]1h
-2[ncaron]1c2h
-2[ncaron]1j
-2[ncaron]1k
-2[ncaron]1l
-2[ncaron]1[lcaron]
-2[ncaron]1m
-2[ncaron]1n
-2[ncaron]1[ncaron]
-2[ncaron]1p
-2[ncaron]1r
-2[ncaron]1s
-2[ncaron]1[scaron]
-2[ncaron]1t
-2[ncaron]1[tcaron]
-2[ncaron]1v
-2[ncaron]1z
-2[ncaron]1[zcaron]
-2[ncaron]1d2z
-2[ncaron]1d2[zcaron]
+2n1d2ž
+2ň1b
+2ň1c
+2ň1Ä
+2ň1d
+2ň1Ä
+2ň1f
+2ň1g
+2ň1h
+2ň1c2h
+2ň1j
+2ň1k
+2ň1l
+2ň1ľ
+2ň1m
+2ň1n
+2ň1ň
+2ň1p
+2ň1r
+2ň1s
+2ň1š
+2ň1t
+2ň1ť
+2ň1v
+2ň1z
+2ň1ž
+2ň1d2z
+2ň1d2ž
2p1b
2p1c
-2p1[ccaron]
+2p1Ä
2p1d
-2p1[dcaron]
+2p1Ä
2p1f
2p1g
2p1h
@@ -507,28 +507,28 @@ d2[zcaron]
2p1j
2p1k
2p1l
-2p1[lcaron]
+2p1ľ
2p1m
2p1n
-2p1[ncaron]
+2p1ň
2p1p
2p1r
2p1s
-2p1[scaron]
+2p1Å¡
2p1t
-2p1[tcaron]
+2p1Å¥
2p1v
2p1w
2p1x
2p1z
-2p1[zcaron]
+2p1ž
2p1d2z
-2p1d2[zcaron]
+2p1d2ž
2r1b
2r1c
-2r1[ccaron]
+2r1Ä
2r1d
-2r1[dcaron]
+2r1Ä
2r1f
2r1g
2r1h
@@ -536,28 +536,28 @@ d2[zcaron]
2r1j
2r1k
2r1l
-2r1[lcaron]
+2r1ľ
2r1m
2r1n
-2r1[ncaron]
+2r1ň
2r1p
2r1r
2r1s
-2r1[scaron]
+2r1Å¡
2r1t
-2r1[tcaron]
+2r1Å¥
2r1v
2r1w
2r1x
2r1z
-2r1[zcaron]
+2r1ž
2r1d2z
-2r1d2[zcaron]
+2r1d2ž
2s1b
2s1c
-2s1[ccaron]
+2s1Ä
2s1d
-2s1[dcaron]
+2s1Ä
2s1f
2s1g
2s1h
@@ -565,55 +565,55 @@ d2[zcaron]
2s1j
2s1k
2s1l
-2s1[lcaron]
+2s1ľ
2s1m
2s1n
-2s1[ncaron]
+2s1ň
2s1p
2s1r
2s1s
-2s1[scaron]
+2s1Å¡
2s1t
-2s1[tcaron]
+2s1Å¥
2s1v
2s1z
-2s1[zcaron]
+2s1ž
2s1d2z
-2s1d2[zcaron]
-2[scaron]1b
-2[scaron]1c
-2[scaron]1[ccaron]
-2[scaron]1d
-2[scaron]1[dcaron]
-2[scaron]1f
-2[scaron]1g
-2[scaron]1h
-2[scaron]1c2h
-2[scaron]1j
-2[scaron]1k
-2[scaron]1l
-2[scaron]1[lcaron]
-2[scaron]1m
-2[scaron]1n
-2[scaron]1[ncaron]
-2[scaron]1p
-2[scaron]1r
-2[scaron]1s
-2[scaron]1[scaron]
-2[scaron]1t
-2[scaron]1[tcaron]
-2[scaron]1v
-2[scaron]1w
-2[scaron]1x
-2[scaron]1z
-2[scaron]1[zcaron]
-2[scaron]1d2z
-2[scaron]1d2[zcaron]
+2s1d2ž
+2Å¡1b
+2Å¡1c
+2Å¡1Ä
+2Å¡1d
+2Å¡1Ä
+2Å¡1f
+2Å¡1g
+2Å¡1h
+2Å¡1c2h
+2Å¡1j
+2Å¡1k
+2Å¡1l
+2š1ľ
+2Å¡1m
+2Å¡1n
+2š1ň
+2Å¡1p
+2Å¡1r
+2Å¡1s
+2Å¡1Å¡
+2Å¡1t
+2Å¡1Å¥
+2Å¡1v
+2Å¡1w
+2Å¡1x
+2Å¡1z
+2š1ž
+2Å¡1d2z
+2š1d2ž
2t1b
2t1c
-2t1[ccaron]
+2t1Ä
2t1d
-2t1[dcaron]
+2t1Ä
2t1f
2t1g
2t1h
@@ -621,57 +621,57 @@ d2[zcaron]
2t1j
2t1k
2t1l
-2t1[lcaron]
+2t1ľ
2t1m
2t1n
-2t1[ncaron]
+2t1ň
2t1p
2t1r
2t1s
-2t1[scaron]
+2t1Å¡
2t1t
-2t1[tcaron]
+2t1Å¥
2t1v
2t1w
2t1x
2t1z
-2t1[zcaron]
+2t1ž
2t1d2z
-2t1d2[zcaron]
-2[tcaron]1b
-2[tcaron]1c
-2[tcaron]1[ccaron]
-2[tcaron]1d
-2[tcaron]1[dcaron]
-2[tcaron]1f
-2[tcaron]1g
-2[tcaron]1h
-2[tcaron]1c2h
-2[tcaron]1j
-2[tcaron]1k
-2[tcaron]1l
-2[tcaron]1[lcaron]
-2[tcaron]1m
-2[tcaron]1n
-2[tcaron]1[ncaron]
-2[tcaron]1p
-2[tcaron]1r
-2[tcaron]1s
-2[tcaron]1[scaron]
-2[tcaron]1t
-2[tcaron]1[tcaron]
-2[tcaron]1v
-2[tcaron]1w
-2[tcaron]1x
-2[tcaron]1z
-2[tcaron]1[zcaron]
-2[tcaron]1d2z
-2[tcaron]1d2[zcaron]
+2t1d2ž
+2Å¥1b
+2Å¥1c
+2Å¥1Ä
+2Å¥1d
+2Å¥1Ä
+2Å¥1f
+2Å¥1g
+2Å¥1h
+2Å¥1c2h
+2Å¥1j
+2Å¥1k
+2Å¥1l
+2ť1ľ
+2Å¥1m
+2Å¥1n
+2ť1ň
+2Å¥1p
+2Å¥1r
+2Å¥1s
+2Å¥1Å¡
+2Å¥1t
+2Å¥1Å¥
+2Å¥1v
+2Å¥1w
+2Å¥1x
+2Å¥1z
+2ť1ž
+2Å¥1d2z
+2ť1d2ž
2v1b
2v1c
-2v1[ccaron]
+2v1Ä
2v1d
-2v1[dcaron]
+2v1Ä
2v1f
2v1g
2v1h
@@ -679,28 +679,28 @@ d2[zcaron]
2v1j
2v1k
2v1l
-2v1[lcaron]
+2v1ľ
2v1m
2v1n
-2v1[ncaron]
+2v1ň
2v1p
2v1r
2v1s
-2v1[scaron]
+2v1Å¡
2v1t
-2v1[tcaron]
+2v1Å¥
2v1v
2v1w
2v1x
2v1z
-2v1[zcaron]
+2v1ž
2v1d2z
-2v1d2[zcaron]
+2v1d2ž
2z1b
2z1c
-2z1[ccaron]
+2z1Ä
2z1d
-2z1[dcaron]
+2z1Ä
2z1f
2z1g
2z1h
@@ -708,68 +708,68 @@ d2[zcaron]
2z1j
2z1k
2z1l
-2z1[lcaron]
+2z1ľ
2z1m
2z1n
-2z1[ncaron]
+2z1ň
2z1p
2z1r
2z1s
-2z1[scaron]
+2z1Å¡
2z1t
-2z1[tcaron]
+2z1Å¥
2z1v
2z1z
-2z1[zcaron]
+2z1ž
2z1d2z
-2z1d2[zcaron]
-2[zcaron]1b
-2[zcaron]1c
-2[zcaron]1[ccaron]
-2[zcaron]1d
-2[zcaron]1[dcaron]
-2[zcaron]1f
-2[zcaron]1g
-2[zcaron]1h
-2[zcaron]1c2h
-2[zcaron]1j
-2[zcaron]1k
-2[zcaron]1l
-2[zcaron]1[lcaron]
-2[zcaron]1m
-2[zcaron]1n
-2[zcaron]1[ncaron]
-2[zcaron]1p
-2[zcaron]1r
-2[zcaron]1s
-2[zcaron]1[scaron]
-2[zcaron]1t
-2[zcaron]1[tcaron]
-2[zcaron]1v
-2[zcaron]1z
-2[zcaron]1[zcaron]
-2[zcaron]1d2z
-2[zcaron]1d2[zcaron]
+2z1d2ž
+2ž1b
+2ž1c
+2ž1Ä
+2ž1d
+2ž1Ä
+2ž1f
+2ž1g
+2ž1h
+2ž1c2h
+2ž1j
+2ž1k
+2ž1l
+2ž1ľ
+2ž1m
+2ž1n
+2ž1ň
+2ž1p
+2ž1r
+2ž1s
+2ž1š
+2ž1t
+2ž1ť
+2ž1v
+2ž1z
+2ž1ž
+2ž1d2z
+2ž1d2ž
2d2z1k
2d2z1n
2d2z1r
2d2z1s
-2d2[zcaron]1[scaron]
+2d2ž1š
2x1t
2x1n
-2b1[racute]
-2[racute]1b
-2d2z1[racute]
-2[racute]1d2z
-2d2z1[lcaron]
-2[racute]1d2[zcaron]
-2d2[zcaron]1[lcaron]
-a1[iacute]2
+2b1Å•
+2Å•1b
+2d2z1Å•
+2Å•1d2z
+2d2z1ľ
+2ŕ1d2ž
+2d2ž1ľ
+a1í2
a1o2
-e1[aacute]2
-e1[iacute]2
+e1á2
+e1í2
e1o2
-e1[oacute]2
+e1ó2
e1u2
i1o2
o1a2
@@ -777,54 +777,54 @@ o1e2
o1i2
o1o2
u1a2
-u1[aacute]2
+u1á2
u1i2
-u1[iacute]2
+u1í2
u1o2
u1u2
y1a2
y1e2
-y1[oacute]2
+y1ó2
y1u2
a2u1
a2i1
b2l3b
-3b2l3[ccaron]
+3b2l3Ä
b2l3c2h
3b2l3k
-3b2[lcaron]3k
-3b2l3[ncaron]
-b2l3[scaron]
-b2[lcaron]3[scaron]
+3b2ľ3k
+3b2l3ň
+b2l3Å¡
+b2ľ3š
3b2r3b
b2r3d
3b2r3k
-3b2[racute]3k
+3b2Å•3k
3b2r3l
-3b2[racute]3[lcaron]
+3b2ŕ3ľ
3b2r3n
-3b2r3[ncaron]
+3b2r3ň
3b2r3v
b2r3z
b3s2c
b3s2t
c3k2t
-3c2r3[ccaron]
-3c2[racute]3[ccaron]
+3c2r3Ä
+3c2Å•3Ä
3c2r3k
-3c2[racute]3k
+3c2Å•3k
c3t2v
-3[ccaron]2l3n
-3[ccaron]2r3[ccaron]
-[ccaron]2r3p
-3[ccaron]2r3t
-3[ccaron]2r3v
+3Ä2l3n
+3Ä2r3Ä
+Ä2r3p
+3Ä2r3t
+3Ä2r3v
d3c4h4n
3d2l3b
3d2l3h
d2l3n
-3d2l3[zcaron]
-3d2[lcaron]3[zcaron]
+3d2l3ž
+3d2ľ3ž
3d2r3d
3d2r3g
d2r3l
@@ -833,98 +833,98 @@ d2r3l
d2r3n
3d2r3v
3d2r3z
-3d2r3[zcaron]
-3d2[racute]3[zcaron]
+3d2r3ž
+3d2ŕ3ž
d3s2v
d3s2t
d3v2r
-3f2r3[ccaron]
+3f2r3Ä
3f2r3f
3f2r3k
-3f2[racute]3k
+3f2Å•3k
3f2r3m
3f2r3n
3g2l3g
3g2r3c
3g2r3g
3h2l3b
-3h2[lcaron]3b
+3h2ľ3b
3h2l3t
3h2m2l
3h2r3b
-3h2[racute]3b
-3h2r3[ccaron]
+3h2Å•3b
+3h2r3Ä
3h2r3d
3h2r3d2z
3h2r3k
3h2r3m
3h2r3n
-3h2r3[ncaron]
+3h2r3ň
3h2r3t
3h2r3v
3c2h2l3p
3c2h2r3b
-3c2h2r3[ccaron]
+3c2h2r3Ä
c2h2r3c4h
3c2h2r3l
3c2h2r3t
j2c2h3n
j3s2t
-j3[scaron]2le
+j3Å¡2le
j3t2m
j3t2r
3k2l3b
-3k2[lcaron]3b
-3k2l3[ccaron]
+3k2ľ3b
+3k2l3Ä
3k2l3z
-3k2[lcaron]3z
+3k2ľ3z
k2r3b
-3k2r3[ccaron]
-3k2[racute]3[ccaron]
-3k2[racute]3d
+3k2r3Ä
+3k2Å•3Ä
+3k2Å•3d
3k2r3k
-3k2[racute]3k
-3k2[racute]3m
+3k2Å•3k
+3k2Å•3m
3k2r3p
3k2r3s
3k2r3t
3k2r3v
-k3s2[lcaron]
+k3s2ľ
k2s3n
k3t2r
l3d2r
-[lcaron]3k2n
+ľ3k2n
l3t2r
m3b2l
-m3b2[lcaron]
+m3b2ľ
m3b2r
m3f2l
m3f2r
m3k2n
-3m2l3[ccaron]
+3m2l3Ä
3m2l3k
m3p2l
-m3p2[lcaron]
+m3p2ľ
m3p2r
m3p2s
3m2r3h
m2r3c4h
3m2r3k
m2r3l
-m2r3[scaron]
+m2r3Å¡
m2r3t
3m2r3v
3m2r3z
-3m2[racute]3z
+3m2Å•3z
m3s2t
-m3[scaron]2t
-n3d[lcaron]a
+m3Å¡2t
+n3dľa
n3d2r
n3f2l
n3f2r
n3g2h
n3g2l
-n3g2[lcaron]
+n3g2ľ
n2g3n
n3g2r
n3g2v
@@ -934,28 +934,28 @@ n3k2n
n3k2r
n3k2v
n3s2c
-n3[scaron]2p
-n3[scaron]2t
+n3Å¡2p
+n3Å¡2t
n3t2g
n3t2l
n3t2n
n3t2r
-n2[zcaron]3m
+n2ž3m
3p2l3n
-3p2l3[ncaron]
-3p2[lcaron]3[ncaron]
+3p2l3ň
+3p2ľ3ň
3p2l3z
-3p2[lcaron]3z
-3p2[lcaron]3[zcaron]
-3p2[racute]3c
-3p2r3[ccaron]
+3p2ľ3z
+3p2ľ3ž
+3p2Å•3c
+3p2r3Ä
3p2r3d
3p2r3s
-3p2r3[scaron]
-p3[scaron]2[tcaron]
+3p2r3Å¡
+p3Å¡2Å¥
p3t2r
r2b3n
-r3g2[lcaron]
+r3g2ľ
r3g2r
r3g2s
r3k2d
@@ -963,15 +963,15 @@ r2k3n
r3k2t
r3k2v
r3p2c
-r3p2[ccaron]
+r3p2Ä
r3p2r
r3s2p
-r3[scaron]2[ccaron]
-r3[scaron]2l
-r3[scaron]2r
+r3Å¡2Ä
+r3Å¡2l
+r3Å¡2r
r2t3m
r3t2n
-r2t3[ncaron]
+r2t3ň
r3t2r
r3t2v
3s4c4h4n
@@ -981,59 +981,59 @@ s2k3n
s3k2r
s3k2v
3s2l3n
-3s2l3[ncaron]
+3s2l3ň
3s2l3z
s3p2r
3s2r3d
-3s4[racute]3k
-3s4r3[scaron]
+3s4Å•3k
+3s4r3Å¡
s3t2k
-[ocircumflex]s4t3k2[aacute]r3s4t4v
+ôs4t3k2ár3s4t4v
s2t3l
s3t2m
s2t3n
s3t2r
s3t2v
-s2[tcaron]3h
-s2[tcaron]3m
-s2[tcaron]3p
-[scaron]3k2l
-[scaron]3k2r
-[scaron]3t2r
-3[scaron]4t4v
+s2Å¥3h
+s2Å¥3m
+s2Å¥3p
+Å¡3k2l
+Å¡3k2r
+Å¡3t2r
+3Å¡4t4v
t3k2l
t3k2n
-3t2l3[ccaron]
+3t2l3Ä
3t2l3k
t3h2l
-3t4r3[ccaron]
+3t4r3Ä
3t4r3h
3t2r3l
3t2r3k
3t2r3m
a4t2r3n
3t2r3n
-3t2[racute]3n
-3t2[racute]3[ncaron]
+3t2Å•3n
+3t2ŕ3ň
3t4r3p
3t2r3v
-3t2[racute]3[zcaron]
-3v2l3[ccaron]
-3v2[lcaron]3[ccaron]
+3t2ŕ3ž
+3v2l3Ä
+3v2ľ3Ä
3v2l3h
3v2l3k
3v2l3n
3v2r3h
3v2r3c2h
3v2r3l
-3v2[racute]3[scaron]
-3v2[racute]3t
+3v2Å•3Å¡
+3v2Å•3t
3v2r3z
-3v2[racute]3z
+3v2Å•3z
3v4z4d
3v4z4h
3v4z4n
-3v3z2[tcaron]
+3v3z2Å¥
z3d2n
noz5d4r
3z4d4r
@@ -1043,30 +1043,30 @@ z3g2n
3z2r3k
3z2r3n
3z4v4l
-[zcaron]2d3n
-3[zcaron]2l3[ccaron]
-3[zcaron]2l3t
-3[zcaron]2[lcaron]t
-3[zcaron]2r3[dcaron]
-[zcaron]3s2t
+ž2d3n
+3ž2l3Ä
+3ž2l3t
+3ž2ľt
+3ž2r3Ä
+ž3s2t
x3p2l
x3p2r
x3t2r
-3b2l4[ccaron]3n
-3b2[lcaron]4[ccaron]3k
+3b2l4Ä3n
+3b2ľ4Ä3k
3b2l4n3k
-3b2[lcaron]3k2n
+3b2ľ3k2n
3b2r4b3l
3b2r4b3t
-3b2r4[ccaron]3k
+3b2r4Ä3k
3b2r4d3c
-3b2[racute]4d3n
+3b2Å•4d3n
3b2r3h2l
-3b4[racute]4k3n
+3b4Å•4k3n
3b4r4m3b
-3b4r4n3[ccaron]
+3b4r4n3Ä
3b4r4n3k
-3b4r4[scaron]3l
+3b4r4Å¡3l
3b4r4t3l
3b4r4t3n
3b4r4v3n
@@ -1074,111 +1074,111 @@ x3t2r
3b4r4z3l
3b4r4z3n
b3s2t2r
-3c4[racute]4[ccaron]3k
+3c4Å•4Ä3k
3c4r4k3n
-3c4v4r3[ccaron]
+3c4v4r3Ä
3c4v4r3k
-3c4v4[racute]3k
+3c4v4Å•3k
3c4v4r3l
-3[ccaron]4l4n3k
-3[ccaron]4r3[ccaron]4r
-3[ccaron]4r4c4h3n
-3[ccaron]4r4p3k
-3[ccaron]4r4p3n
-3[ccaron]4r4t3n
-3[ccaron]4v4r3k
-3[ccaron]4v4r3l
+3Ä4l4n3k
+3Ä4r3Ä4r
+3Ä4r4c4h3n
+3Ä4r4p3k
+3Ä4r4p3n
+3Ä4r4t3n
+3Ä4v4r3k
+3Ä4v4r3l
3d4l4b3n
-d4[lcaron]4[zcaron]3k
-d4l4[zcaron]3n
-d4[lcaron]4[zcaron]3n
+d4ľ4ž3k
+d4l4ž3n
+d4ľ4ž3n
3d4r4c3n
-3d4r4g3[lcaron]
+3d4r4g3ľ
3d4r4g3n
3d4r4h3n
-3d4r4n3[ccaron]
+3d4r4n3Ä
3d4r4n3k
3d4r4s3n
-3d4r4[zcaron]3b
-3d4r4[zcaron]3k
+3d4r4ž3b
+3d4r4ž3k
3f4r4c3k
3f4r4c3n
-3f4r4[ccaron]3k
+3f4r4Ä3k
3f4r4f3l
3f4r4k3n
3f4r4n3d
-3f4r4n3d4[zcaron]
+3f4r4n3d4ž
3f4r4n3g
3f4r4n3k
3g4l4g3n
3g2r4c3k
-3h2[lcaron]4b3k
+3h2ľ4b3k
3h2l3t4n
-3h2r4b3[ccaron]
-3h2r4[ccaron]3k
+3h2r4b3Ä
+3h2r4Ä3k
h2r4d3l
-3h2r4g3[lcaron]
-3h2r4k3[lcaron]
+3h2r4g3ľ
+3h2r4k3ľ
3h2r4k3n
-3h2[racute]4k3n
-3h2r4n3[ccaron]
+3h2Å•4k3n
+3h2r4n3Ä
3h2r4s3t
-3h2r4s3[tcaron]
-3ch4[lcaron]4p3k
+3h2r4s3Å¥
+3ch4ľ4p3k
3c2h2r4b3t
3c2h2r4c4h3l
-3c2h2r4c4h3[lcaron]
+3c2h2r4c4h3ľ
3c4h4r4s3t
j3s4t4r
j3s4t4v
-3k4l4b3[ccaron]
+3k4l4b3Ä
3k4l4b3k
3k4l4z3k
3k4l4z3n
-3k4r4[ccaron]3m
-3k4r4[ccaron]3n
+3k4r4Ä3m
+3k4r4Ä3n
3k4r4k3v
3k4r4m3n
-3k4[racute]4m3n
-3k4r4p3[ccaron]
+3k4Å•4m3n
+3k4r4p3Ä
3k4r4s3t
-3k4r4[scaron]3t
+3k4r4Å¡3t
3k4r4t3k
3k4r4v3n
-3m2l4[ccaron]3k
-3m2[lcaron]4k3n
-3m2[lcaron]4k3v
+3m2l4Ä3k
+3m2ľ4k3n
+3m2ľ4k3v
3m2l4s3n
m3p4r3p
m3p4r3v
3m4r4k3n
3m4r4k3v
3m4r4m3l
-3m4r4n3[ccaron]
+3m4r4n3Ä
3m4r4n3k
-3m4[racute]4[scaron]3t
-3m4[racute]4t3v
+3m4Å•4Å¡3t
+3m4Å•4t3v
3m4r4z3l
3m4r4z3k
3m4r4z3n
n4g3s4t
-n3[scaron]4t4r
+n3Å¡4t4r
n3t4l3m
3p2l4z3l
-3p2[lcaron]4z3n
-p2[racute]4c3n
-3p2r4[ccaron]3k
+3p2ľ4z3n
+p2Å•4c3n
+3p2r4Ä3k
3p4r4d3n
-3p4[racute]4c2h3n
+3p4Å•4c2h3n
3p4r4s3k
3p4r4t3k
r2s3k4d
r2s3k4t
-[ccaron]er4s3t4v
+Äer4s3t4v
3s4l4n3k
3s4k4r3z
3s4m4r3c
-3s4m4r3[ccaron]
+3s4m4r3Ä
3s4m4r3d
3s4m4r3k
3s4m4r3t
@@ -1186,195 +1186,195 @@ r2s3k4t
3s4r4d3c
3s4r4k3n
3s4r4s3t
-3s4t4[lcaron]3k
+3s4t4ľ3k
s3t4r3b
-ko4s3t4r3[ccaron]
-3s4t4r3[ccaron]
-3s4t4[racute]3h
+ko4s3t4r3Ä
+3s4t4r3Ä
+3s4t4Å•3h
3s4t4r3k
s4t4r3v
-4s4[tcaron]5k4r[aacute]t
-3[scaron]4k4l3b
-3[scaron]4k4r3k
-3[scaron]4k4[racute]3k
-ma[scaron]3k4r3t
-3[scaron]4k4r3t
-3[scaron]4p4l3h
-3[scaron]4t4r3b
-[scaron]4t4r3n
-3[scaron]4t4v4r3t
-3[scaron]4t4v4r3[tcaron]
-3t2[lcaron]4c3[tcaron]
+4s4ť5k4rát
+3Å¡4k4l3b
+3Å¡4k4r3k
+3Å¡4k4Å•3k
+maš3k4r3t
+3Å¡4k4r3t
+3Å¡4p4l3h
+3Å¡4t4r3b
+Å¡4t4r3n
+3Å¡4t4v4r3t
+3Å¡4t4v4r3Å¥
+3t2ľ4c3ť
3t2r4b3l
-t2r4[ccaron]3k
+t2r4Ä3k
3t2r4d3l
3t2r4h3l
3t2r4h3n
3t2r4k3n
3t2r4k3v
3t2r4m3n
-3t4[racute]4p3n
-3t2r4[zcaron]3k
-3t2r4[zcaron]3n
+3t4Å•4p3n
+3t2r4ž3k
+3t2r4ž3n
3t2v4r3d
3t2v4r3d4z
-3t2v4[racute]3d4z
-3v2l4h3[ccaron]
+3t2v4Å•3d4z
+3v2l4h3Ä
3v2l4h3k
3v2l4h3n
3v2l4n3k
3v2l4n3n
3v4r4h3n
3v4r4k3n
-3v4[racute]4z3g
+3v4Å•4z3g
3v4r4z3g
3v4r4z3n
-3v4r4[zcaron]3l
-3z4h4[racute]3[ncaron]
+3v4r4ž3l
+3z4h4ŕ3ň
3z4r4n3n
-3[zcaron]4l4[ccaron]3n
-3[zcaron]4l4t3n
-3[zcaron]4r4d3k
+3ž4l4Ä3n
+3ž4l4t3n
+3ž4r4d3k
3b4r4n3k4n
-b3d4[lcaron]4[zcaron]3n
-3c4v4r4[ccaron]3k
+b3d4ľ4ž3n
+3c4v4r4Ä3k
3c4v4r4n3k
-3[ccaron]4[racute]4s3t4v
-3[ccaron]4r4t4t3n
-3[ccaron]4v4r4k3n
-3d4r4[zcaron]3g4r
+3Ä4Å•4s3t4v
+3Ä4r4t4t3n
+3Ä4v4r4k3n
+3d4r4ž3g4r
3f4r4n4g3n
-h2[racute]4s3t4k
+h2Å•4s3t4k
3c4h4r4s4t3n
3k4r4s4t3n
-3k4r4s4t3[ncaron]
-3s4m4r4[scaron]3[tcaron]
+3k4r4s4t3ň
+3s4m4r4Å¡3Å¥
3s4m4r4t3k
s3t4r4n3k
-3[scaron]4k4l4b3n
-ma[scaron]3k4r4t3n
-3[scaron]4k4r4t3n
-3[scaron]4k4v4r3[ccaron]
-3[scaron]4k4v4r3k
-3[scaron]4k4v4[racute]3k
-3[scaron]4k4v4r3n
-3[scaron]4m4r4d3k
-3[scaron]4m4r4n3c
-3[scaron]4p4l4h3n
-3[scaron]4t4r4k3n
-3[scaron]3t4r4n3g
+3Å¡4k4l4b3n
+maš3k4r4t3n
+3Å¡4k4r4t3n
+3Å¡4k4v4r3Ä
+3Å¡4k4v4r3k
+3Å¡4k4v4Å•3k
+3Å¡4k4v4r3n
+3Å¡4m4r4d3k
+3Å¡4m4r4n3c
+3Å¡4p4l4h3n
+3Å¡4t4r4k3n
+3Å¡3t4r4n3g
3t4v4r4d3n
3v4r4s3t4v
3v4r4z3g4n
3c4v4r4n3g4n
-3[scaron]4k4v4r4k3n
-3[scaron]4k4v4[racute]4k3n
-k4[ccaron]3n[yacute].
-k4[ccaron]3n[eacute]ho.
-k4[ccaron]3n[eacute]mu.
-k4[ccaron]3nom.
-k4[ccaron]3n[yacute]m.
-k4[ccaron]3n[eacute].
-k4[ccaron]3n[aacute].
-k4[ccaron]3nej.
-k4[ccaron]3n[uacute].
-k4[ccaron]3nou.
-k4[ccaron]3n[iacute].
-k4[ccaron]3n[yacute]ch.
-k4[ccaron]3n[yacute]mi.
-k4t3n[yacute].
-k4t3n[eacute]ho.
-k4t3n[eacute]mu.
+3Å¡4k4v4r4k3n
+3Å¡4k4v4Å•4k3n
+k4Ä3ný.
+k4Ä3ného.
+k4Ä3nému.
+k4Ä3nom.
+k4Ä3ným.
+k4Ä3né.
+k4Ä3ná.
+k4Ä3nej.
+k4Ä3nú.
+k4Ä3nou.
+k4Ä3ní.
+k4Ä3ných.
+k4Ä3nými.
+k4t3ný.
+k4t3ného.
+k4t3nému.
k4t3nom.
-k4t3n[yacute]m.
-k4t3n[eacute].
-k4t3n[aacute].
+k4t3ným.
+k4t3né.
+k4t3ná.
k4t3nej.
-k4t3n[uacute].
+k4t3nú.
k4t3nou.
-k4t3n[iacute].
-k4t3n[yacute]ch.
-k4t3n[yacute]mi.
-n4[ccaron]3n[yacute].
-n4[ccaron]3n[eacute]ho.
-n4[ccaron]3n[eacute]mu.
-n4[ccaron]3nom.
-n4[ccaron]3n[yacute]m.
-n4[ccaron]3n[eacute].
-n4[ccaron]3n[aacute].
-n4[ccaron]3nej.
-n4[ccaron]3n[uacute].
-n4[ccaron]3nou.
-n4[ccaron]3n[iacute].
-n4[ccaron]3n[yacute]ch.
-n4[ccaron]3n[yacute]mi.
-n4k4[ccaron]3n
-n4t3n[yacute].
-n4t3n[eacute]ho.
-n4t3n[eacute]mu.
+k4t3ní.
+k4t3ných.
+k4t3nými.
+n4Ä3ný.
+n4Ä3ného.
+n4Ä3nému.
+n4Ä3nom.
+n4Ä3ným.
+n4Ä3né.
+n4Ä3ná.
+n4Ä3nej.
+n4Ä3nú.
+n4Ä3nou.
+n4Ä3ní.
+n4Ä3ných.
+n4Ä3nými.
+n4k4Ä3n
+n4t3ný.
+n4t3ného.
+n4t3nému.
n4t3nom.
-n4t3n[yacute]m.
-n4t3n[eacute].
-n4t3n[aacute].
+n4t3ným.
+n4t3né.
+n4t3ná.
n4t3nej.
-n4t3n[uacute].
+n4t3nú.
n4t3nou.
-n4t3n[iacute].
-n4t3n[yacute]ch.
-n4t3n[yacute]mi.
-r4d3n[yacute].
-r4d3n[eacute]ho.
-r4d3n[eacute]mu.
+n4t3ní.
+n4t3ných.
+n4t3nými.
+r4d3ný.
+r4d3ného.
+r4d3nému.
r4d3nom.
-r4d3n[yacute]m.
-r4d3n[eacute].
-r4d3n[aacute].
+r4d3ným.
+r4d3né.
+r4d3ná.
r4d3nej.
-r4d3n[uacute].
+r4d3nú.
r4d3nou.
-r4d3n[iacute].
-r4d3n[yacute]ch.
-r4d3n[yacute]mi.
-r4m3n[yacute].
-r4m3n[eacute]ho.
-r4m3n[eacute]mu.
+r4d3ní.
+r4d3ných.
+r4d3nými.
+r4m3ný.
+r4m3ného.
+r4m3nému.
r4m3nom.
-r4m3n[yacute]m.
-r4m3n[eacute].
-r4m3n[aacute].
+r4m3ným.
+r4m3né.
+r4m3ná.
r4m3nej.
-r4m3n[uacute].
+r4m3nú.
r4m3nou.
-r4m3n[iacute].
-r4m3n[yacute]ch.
-r4m3n[yacute]mi.
-r4p4[ccaron]3n
-r4t3n[yacute].
-r4t3n[eacute]ho.
-r4t3n[eacute]mu.
+r4m3ní.
+r4m3ných.
+r4m3nými.
+r4p4Ä3n
+r4t3ný.
+r4t3ného.
+r4t3nému.
r4t3nom.
-r4t3n[yacute]m.
-r4t3n[eacute].
-r4t3n[aacute].
+r4t3ným.
+r4t3né.
+r4t3ná.
r4t3nej.
-r4t3n[uacute].
+r4t3nú.
r4t3nou.
-r4t3n[iacute].
-r4t3n[yacute]ch.
-r4t3n[yacute]mi.
-s4t3n[yacute].
-s4t3n[eacute]ho.
-s4t3n[eacute]mu.
+r4t3ní.
+r4t3ných.
+r4t3nými.
+s4t3ný.
+s4t3ného.
+s4t3nému.
s4t3nom.
-s4t3n[yacute]m.
-s4t3n[eacute].
-s4t3n[aacute].
+s4t3ným.
+s4t3né.
+s4t3ná.
s4t3nej.
-s4t3n[uacute].
+s4t3nú.
s4t3nou.
-s4t3n[iacute].
-s4t3n[yacute]ch.
-s4t3n[yacute]mi.
+s4t3ní.
+s4t3ných.
+s4t3nými.
z4d3ny.
z4d3neho.
z4d3nemu.
@@ -1388,32 +1388,32 @@ z4d3nou.
z4d3ni.
z4d3nych.
z4d3nymi.
-z4d3n[yacute].
-z4d3n[eacute]ho.
-z4d3n[eacute]mu.
-z4d3n[yacute]m.
-z4d3n[eacute].
-z4d3n[aacute].
-z4d3n[uacute].
-z4d3n[iacute].
-z4d3n[yacute]ch.
-z4d3n[yacute]mi.
-b2l4[scaron]3k
+z4d3ný.
+z4d3ného.
+z4d3nému.
+z4d3ným.
+z4d3né.
+z4d3ná.
+z4d3nú.
+z4d3ní.
+z4d3ných.
+z4d3nými.
+b2l4Å¡3k
l2t3k2a.
l2t3k2y.
l2t3k2e.
l2t3k2u.
l2t3k2ou.
-l2t3k2[aacute]m.
-l2t3k2[aacute]ch.
+l2t3k2ám.
+l2t3k2ách.
l2t3k2a1mi.
n2t3k2a.
n2t3k2y.
n2t3k2e.
n2t3k2u.
n2t3k2ou.
-n2t3k2[aacute]m.
-n2t3k2[aacute]ch.
+n2t3k2ám.
+n2t3k2ách.
n2t3k2a1mi.
n2k2t3k
p2t3k2a.
@@ -1421,16 +1421,16 @@ p2t3k2y.
p2t3k2e.
p2t3k2u.
p2t3k2ou.
-p2t3k2[aacute]m.
-p2t3k2[aacute]ch.
+p2t3k2ám.
+p2t3k2ách.
p2t3k2a1mi.
s2t3k2a.
s2t3k2y.
s2t3k2e.
s2t3k2u.
s2t3k2ou.
-s2t3k2[aacute]m.
-s2t3k2[aacute]ch.
+s2t3k2ám.
+s2t3k2ách.
s2t3k2a1mi.
5p4r4s3t
b3s4k
@@ -1438,7 +1438,7 @@ d3s4k
j3s4k
l4p3s4k
l3s4k
-[lcaron]3s4k
+ľ3s4k
l4t3s4k
4m3s4k
4m4p3s4k
@@ -1452,29 +1452,29 @@ r3s4k
r4t3s4k
r4z5s4k
5s4r4b3s4k
-[scaron]3s4k
+Å¡3s4k
t3s4k
v3s4k
z3s4k
-[zcaron]3s4k
-n2d3[ccaron]
-z3[scaron]2t2
-r4z3[scaron]2t2
+ž3s4k
+n2d3Ä
+z3Å¡2t2
+r4z3Å¡2t2
b3s4t4v
-[ccaron]3s4t4v
+Ä3s4t4v
d3s4t4v
-[dcaron]3s4t4v
-[lcaron]3s4t4v
+Ä3s4t4v
+ľ3s4t4v
m3s4t4v
n3s4t4v
n4t3s4t4v
p3s4t4v
r3s4t4v
r4v5s4t4v
-[scaron]3s4t4v
+Å¡3s4t4v
t3s4t4v
v3s4t4v
-[zcaron]3s4t4v
+ž3s4t4v
.a2e2ro
.a2e2ro3d2r
.aero3g2r
@@ -1485,12 +1485,12 @@ v3s4t4v
.aero3t2r
.akcie3s2c2h
.ane3s2teti
-.ane3s2t[eacute]z
+.ane3s2téz
.anti5k4l
.anti5k4r
.apo5p4le
.ap4rio
-.ap4ri[oacute]
+.ap4rió
.arci5k4
.aristo5k4
.as3k2lep
@@ -1524,12 +1524,12 @@ v3s4t4v
.bledo5
.boha5p4
.boho5s4
-.bo[zcaron]e5
-.bo[zcaron]e5d4
-.bo[zcaron]ec2h4
+.bože5
+.bože5d4
+.božec2h4
.brato5v4r
.b2z2d
-.c[aacute]ro5v4ra
+.cáro5v4ra
.celo5d4
.celo5k4
.celo5p4
@@ -1546,33 +1546,33 @@ v3s4t4v
.cudzo5t4
.cudzo5v4
.cyto5p4
-.[ccaron]aro5k4
-.[ccaron]aro5s4
-.[ccaron]aro5v4
-.[ccaron]aro5z4
-.[ccaron]erno5b4
-.[ccaron]erno5h4
-.[ccaron]erno5k4
-.[ccaron]erno5o4
-.[ccaron]erveno5a4
-.[ccaron]erveno5b4
-.[ccaron]erveno5h4
-.[ccaron]erveno5k4
-.[ccaron]erveno5o4
-.[ccaron]erveno5p4
-.[ccaron]ierno5b4
-.[ccaron]ierno5h4
-.[ccaron]ierno5o4
-.[ccaron]o5ch4
-.[ccaron]o5s4
-.[ccaron]udo5t4
+.Äaro5k4
+.Äaro5s4
+.Äaro5v4
+.Äaro5z4
+.Äerno5b4
+.Äerno5h4
+.Äerno5k4
+.Äerno5o4
+.Äerveno5a4
+.Äerveno5b4
+.Äerveno5h4
+.Äerveno5k4
+.Äerveno5o4
+.Äerveno5p4
+.Äierno5b4
+.Äierno5h4
+.Äierno5o4
+.Äo5ch4
+.Äo5s4
+.Äudo5t4
.da3k2d
-.[dcaron]atelino5t4
+.Äatelino5t4
.de5f4
.de5g4
.dek4l
-.desa[tcaron]5
-.de5[scaron]4t2
+.desať5
+.de5Å¡4t2
.dez5i2
.dez5o2
.dis2k3d4
@@ -1582,7 +1582,7 @@ v3s4t4v
.dobro5d4
.dobro5p4
.dobro5s4
-.do5[ccaron]2m
+.do5Ä2m
.do5d4
.do5f4
.do5h4
@@ -1592,9 +1592,9 @@ v3s4t4v
.do5o
.do5p4
.do5s4
-.do5[scaron]4p
-.do5[scaron]4tie
-.do5[scaron]4t[iacute]
+.do5Å¡4p
+.do5Å¡4tie
+.do5š4tí
.do5t4l
.do5t4m
.do5t4r
@@ -1602,14 +1602,14 @@ v3s4t4v
.do5u
.do5v4
.do5z4
-.do5[zcaron]4
+.do5ž4
.drevo5p4
.drevo5o
.drevo5v4
.drobno5z4
.druho5s4
.dvoj5al
-.dvoj5[ccaron]4
+.dvoj5Ä4
.dvoj5d4
.dvoj5h4
.dvoj5i4
@@ -1634,9 +1634,9 @@ v3s4t4v
.holo5k4
.hore5z4
.horno5u4
-.hr[ocircumflex]zo5s4t4
-.hr[ocircumflex]zo5v4
-.hr[ocircumflex]zy5p4
+.hrôzo5s4t4
+.hrôzo5v4
+.hrôzy5p4
.hrubo5s4
.hydro5
.chorobo5p4
@@ -1650,12 +1650,12 @@ v3s4t4v
.jedno5z4
.juho5a
.juho5s4
-.ju[zcaron]no5s4
+.južno5s4
.kata5k4
.kata5s4t4
-.kme[ncaron]o5t4
+.kmeňo5t4
.koso5d4
-.koso5[scaron]4
+.koso5Å¡4
.koso5u
.krivo5p4
.kruto5v4
@@ -1663,32 +1663,32 @@ v3s4t4v
.krvi5s4
.krvi5t4
.ktovie5a2
-.l[aacute]sky5p4
+.lásky5p4
.lesos4
-.[lcaron]4s4t
-.[lcaron]udovo5u
+.ľ4s4t
+.ľudovo5u
.makro5k4
.makro5o4
.makro5s4
-.m[aacute]lo5k4
+.málo5k4
.malo5o
-.m[aacute]lo5v4
-.m[aacute]rno5t4
+.málo5v4
+.márno5t4
.medzi5h4
.medzi5i4
.medzi5p4
-.medzi5[scaron]4
+.medzi5Å¡4
.medzi5t4
.melo5d4
-.meru5[ocircumflex]2
+.meru5ô2
.miesto5d4
.miesto5p4
.mikro5e4
.mikro5k4
.mikro5o
.mikro5p4
-.mimo5[scaron]4
-.mimo5[uacute]
+.mimo5Å¡4
+.mimo5ú
.mimo5v4
.mnoho5s4
.mnoho5t4
@@ -1707,7 +1707,7 @@ v3s4t4v
.na5d4nes.
.nad5p4
.na5d4p4.
-.na5d4[racute]4.
+.na5d4Å•4.
.na5d4robno.
.na5h4
.na5i4
@@ -1715,30 +1715,30 @@ v3s4t4v
.na5m4
.na5o4
.na5p4
-.n[aacute]5p4
-.n[aacute]rodno5o
+.ná5p4
+.národno5o
.na5s4
.na5st4
-.n[aacute]5s4
-.n[aacute]5st4
-.na5[scaron]4
-.na5[scaron]k4
-.na6[scaron]5sk
+.ná5s4
+.ná5st4
+.na5Å¡4
+.na5Å¡k4
+.na6Å¡5sk
.na5t4
.na5u4
-.na5[uacute]4
-.n[aacute]5u4
-.n[aacute]5[uacute]4
+.na5ú4
+.ná5u4
+.ná5ú4
.na5v4l
.na5v4na
.na5v4r4
-.n[aacute]5v4r4
+.ná5v4r4
.na5v4z4
.na5z4r
.na5z4v
-.na6z5vy[scaron]
-.n[aacute]z5v4
-.na5[zcaron]4
+.na6z5vyš
+.náz5v4
+.na5ž4
.ne5a4
.ne5do3u2k
.ne5e4
@@ -1754,11 +1754,11 @@ v3s4t4v
.ne5p4
.ne5s4
.ne6s5tor
-.ne5[scaron]4
+.ne5Å¡4
.ne5t4
.ne6t5t
.ne5u2
-.ne5[uacute]2
+.ne5ú2
.ne5v4
.ne5z4d4r
.ne5z4d4v
@@ -1769,8 +1769,8 @@ v3s4t4v
.ne5z4v
.nie5k4
.ni5k4
-.ni6k5to[scaron]
-.n[iacute]zko5k4
+.ni6k5toš
+.nízko5k4
.novo5u2
.novo5z2
.obi5d4
@@ -1787,8 +1787,8 @@ v3s4t4v
.od5h4
.od5c4h4
.od5i4
-.od6i5[oacute]
-.od5[iacute]4
+.od6i5ó
+.od5í4
.od5k4
.odo5b4
.odo5h4
@@ -1798,29 +1798,29 @@ v3s4t4v
.odo5s4
.od5p4
.od5s4
-.od5[scaron]4
+.od5Å¡4
.od5t4
.od5v4
.od5z4
.t4v4r
.o5h4l
-.o5h4[lcaron]
+.o5h4ľ
.o5h4na
-.o5h4n[uacute]
+.o5h4nú
.o5h4r
.o5c4h4
.o5k4l
-.o5k4[lcaron]
+.o5k4ľ
.okolo5i
.okolo5s4
.o5k4ra
-.o5k4r[aacute]
-.o5k4resa[tcaron]
-.o5k4res[aacute]va[tcaron]
+.o5k4rá
+.o5k4resať
+.o5k4resávať
.o5k4ri
-.o5k4r[iacute]
+.o5k4rí
.o5k4ru
-.o5k4r[uacute]
+.o5k4rú
.o5m4l
.o5m4n
.o5m4r
@@ -1830,74 +1830,74 @@ v3s4t4v
.o5s4lab
.o5s4lad
.o5s4lav
-.o5s4l[aacute]v
+.o5s4láv
.o5s4lep
.o5s4lo
.o5s4p4
.o5s4tar
-.o5s4ta[tcaron]
+.o5s4tať
.o5s4tan
-.o5s4ta[ncaron]
+.o5s4taň
.o6s5tatn
.o5s4tatok
.o5s4tatk
-.o5s4t[aacute]v
+.o5s4táv
.o5s6to5
.o5s6t4rap
.ostro5u
.o5s4ved
.o5s4vetl
.o5s4viet
-.o5s4vie[zcaron]
+.o5s4viež
.o5s4vit
.o5s4voj
-.o5[scaron]4k4
-.o5[scaron]4[lcaron]4
-.o5[scaron]4m4
-.o5[scaron]4p4
-.o5[scaron]4v4
+.o5Å¡4k4
+.o5š4ľ4
+.o5Å¡4m4
+.o5Å¡4p4
+.o5Å¡4v4
.o5t4ras
.o5t4rav
-.o5t4r[aacute]v
+.o5t4ráv
.o5t4rep
.o5t4ria
.o5v4dov
-.o5v4l[aacute]d
-.o5v4la[zcaron]
+.o5v4lád
+.o5v4laž
.o5v4p4
.o5v4r
.o5z4l4
.o5z4n
.o5z4re
.o5z4v4l
-.p[adiaeresis][tcaron]5izbo
+.päť5izbo
.plno5a
.plno5p4
-.plno5[scaron]4
+.plno5Å¡4
.plno5kr4
.plocho5d4
.po5b4
-.po5[ccaron]4
+.po5Ä4
.poda5k4
.pod5b4r
.pod5h4
.pod5c4h
.pod5k4
.pod5p4
-.po5d4r[aacute][zcaron]
+.po5d4ráž
.po5d4rep
.pod5re
.po5d4rh
.po5d4rie
.po5d4rm
.po5d4rv
-.po5d4r4[zcaron]
-.pod5s4ko[ccaron]
+.po5d4r4ž
+.pod5s4koÄ
.pod5v4
.pod3zem
.pod3zol
-.pod3[zcaron]a
-.pod3[zcaron]u
+.pod3ža
+.pod3žu
.po5h4
.po6h5reb
.po5c4h4
@@ -1907,7 +1907,7 @@ v3s4t4v
.pol5i4z
.polo5a
.polo5b4
-.pol5o4bl[uacute]
+.pol5o4blú
.polo5d4
.polo5h4l
.polo5i
@@ -1918,24 +1918,24 @@ v3s4t4v
.polo5s4
.polo5t4
.polo5u4
-.polo5[uacute]4
+.polo5ú4
.polo5v4
.polo5z4
.pol5s4t
.po5m4
-.po6m5n[iacute]k
+.po6m5ník
.po5o4
.po5ob4h
.po5ob4l
.po5s4
.po6s4t5s4k4rip
.po6s5tul
-.po5[scaron]4
-.po6[scaron]5ta
-.po6[scaron]5tov
-.po6[scaron]5v
+.po5Å¡4
+.po6Å¡5ta
+.po6Å¡5tov
+.po6Å¡5v
.po5t4k4n
-.po5t4[lcaron]
+.po5t4ľ
.po5t4r
.poroz5p4
.poroz5s4
@@ -1959,8 +1959,8 @@ v3s4t4v
.pravicovo5o
.pra5v4l
.pra5v4nu
-.pra5v4n[uacute]
-.pr[aacute]5vo5p4
+.pra5v4nú
+.prá5vo5p4
.pra5vo5s4
.pre5b4
.pre5c4
@@ -1976,14 +1976,14 @@ v3s4t4v
.pred5p4
.pre5d4rah
.pre5d4rap
-.pre5d4ra[tcaron]
-.pre5d4ra[zcaron]
+.pre5d4rať
+.pre5d4raž
.pre5d4ri
-.pre5d4r[zcaron]
+.pre5d4rž
.pred5s4
.pred5v4
.pred5z4
-.pre5[ccaron]4
+.pre5Ä4
.pre5e2
.pre5f2
.pre5h4
@@ -1996,42 +1996,42 @@ v3s4t4v
.pre5p4
.pre5s4
.pre6s5n
-.pre5[scaron]4
+.pre5Å¡4
.pre5t4
.pre5v4
.pre5z4
-.pre5[zcaron]4
+.pre5ž4
.pri5b4
-.pri5[ccaron]4
+.pri5Ä4
.pri5d4
.pri5h4
.pri5c4h4
.pri5k4
-.pr[iacute]5k4
+.prí5k4
.pri5m4
.pri5p4
.pri5s4
-.pr[iacute]5s4
-.pr[iacute]6s5p
+.prí5s4
+.prí6s5p
.pri6s5p
-.pri5s4p[ocircumflex]
-.pri5[scaron]4
-.pri6[scaron]5la.
-.pri6[scaron]5li.
-.pri6[scaron]5lo.
+.pri5s4pô
+.pri5Å¡4
+.pri6Å¡5la.
+.pri6Å¡5li.
+.pri6Å¡5lo.
.pri5t4
.pri5v4
.pri5z4
-.pri5[zcaron]4
+.pri5ž4
.re5g4
.re5k4
.re6k5v
.re5p4
.re6p5n
-.re5[scaron]4
+.re5Å¡4
.re5t4
.ro4z5i4
-.ro6z5[iacute]4
+.ro6z5í4
.rozo5b4
.rozo5d4
.rozo5c4h4
@@ -2039,72 +2039,72 @@ v3s4t4v
.rozo5p4
.rozo5r4
.rozo5s4
-.rozo5[scaron]4
+.rozo5Å¡4
.rozo5z4
-.rozo5[zcaron]4
+.rozo5ž4
.ro6z5u4
.ro6z5v4
3s4polu5
3s4polu5h4
3s4polu5p4
3s4polu5v4
-.[scaron]ikmo5o
-.[scaron]iroko5
-.[scaron]iroko5p4
-.[scaron]t[aacute]to5
-.[scaron]t4vor5
+.Å¡ikmo5o
+.Å¡iroko5
+.Å¡iroko5p4
+.štáto5
+.Å¡t4vor5
.su4b5s4
-.s[uacute]5h4
-.s[uacute]5k4r
-.s[uacute]5m4r
-.s[uacute]5s4
-.s[uacute]5v4
-.s[uacute]5z4
+.sú5h4
+.sú5k4r
+.sú5m4r
+.sú5s4
+.sú5v4
+.sú5z4
.troj5
.t4v4r4do5
.viac5k4
.viac5v4
.vide2o5
-.vn[uacute]tro5s4
-.vn[uacute]tro5[scaron]4
+.vnútro5s4
+.vnútro5š4
.vo5p4ch
.vo5p4r
.vo5s4p
.vo5t4
.vo5v4
.vy5
-.v[yacute]5
+.vý5
.vy5b4
.vy5c4
-.v[yacute]5c4
-.vy5[ccaron]4
-.v[yacute]5[ccaron]4
+.vý5c4
+.vy5Ä4
+.vý5Ä4
.vy5d4
-.v[yacute]5d4
+.vý5d4
.vy5h4
-.vy6h5[ncaron]
+.vy6h5ň
.vy6h5ne
-.v[yacute]5h4
+.vý5h4
.vy5c4h4
.vy5k4
-.v[yacute]5k4
+.vý5k4
.vy5m4
.vy5p4
-.v[yacute]5p4
+.vý5p4
.vy5s4
-.v[yacute]5s4
-.vy5[scaron]4
-.vy6[scaron]5[scaron]
-.v[yacute]6[scaron]5k
+.vý5s4
+.vy5Å¡4
+.vy6Å¡5Å¡
+.vý6š5k
.vy5t4
-.v[yacute]5t4
+.vý5t4
.vy5v4
.vy5z4
-.v[yacute]5z4
+.vý5z4
.za5b4
-.z[aacute]5b4
+.zá5b4
.za5c4
-.za5[ccaron]4
+.za5Ä4
.za5d4
.za5h4
.za5c4h4
@@ -2113,13 +2113,13 @@ v3s4t4v
.za5p4
.za5r4
.za5s4
-.za5[scaron]4
+.za5Å¡4
.za5t4
.za5v4
.za5z4
-.za5[zcaron]4
-.z[aacute]5k4
-.z[aacute]5z4
+.za5ž4
+.zá5k4
+.zá5z4
.zo5b4
.zo6d5p
.zo5d4r
@@ -2128,11 +2128,11 @@ v3s4t4v
.zo5m4l
.zo5m4r
.zo5s4
-.zo5[scaron]4
+.zo5Å¡4
.zo5t4
.zo5v4
.zo5z4
-.zo5[zcaron]4
+.zo5ž4
5alkohol
auto4rk
auto4rs
@@ -2140,70 +2140,70 @@ auto4rs
5b4ledn
5b4lesk
5b4lok
-5b4l[uacute]d
+5b4lúd
5b4lysk
5b4lysn
5boh3vi4e3a2k
5boh3vi4e3o2d3k
5boh3z4
5boles4t5n
-5b4ra[tcaron]
-5b4r[aacute]zd
+5b4rať
+5b4rázd
5b4rec2h
5b4ronz
-5b4ru[ccaron]
-5b4r[uacute]s
-5b4r[yacute]zg
+5b4ruÄ
+5b4rús
+5b4rýzg
5c4muk
5c4nie
5c4vak
-5c4vi[ccaron]
+5c4viÄ
5c4vik
-[ccaron][iacute]6s5lov
-5[ccaron]4len
-5[ccaron]4l[aacute]nk
-5[ccaron]4l[aacute]nok
-5[ccaron]4lov
-5d4[ncaron]ov
+Äí6s5lov
+5Ä4len
+5Ä4lánk
+5Ä4lánok
+5Ä4lov
+5d4ňov
5d4ramat
-5d4ra[tcaron]
-5d4van[aacute]s4[tcaron]5
+5d4rať
+5d4vanás4ť5
5d4vih
-5d4vi[zcaron]
+5d4viž
5d4voj
5d4vor
-5e2u2r[oacute]p
-5f4[lcaron]ak
+5e2u2róp
+5f4ľak
5f4lias
-5f4ranc[uacute]
+5f4rancú
5f4rekven
-5f4r[aacute]z
+5f4ráz
5g4raf
5g4ram
pro6g5ram
-5g4r[eacute][ccaron]
+5g4réÄ
5g4rob
5g4vardej
5h4lad
5h4las
5h4lav
-5h4[lcaron]ad
+5h4ľad
5h4liad
5h4luch
5h4mat
5h4mot
-5h4na[tcaron]
+5h4nať
5h4ned
5h4nev
5h4niezd
5h4noj
5h4nut
-5h4n[uacute][tcaron]
-5h4n[uacute]t
+5h4núť
+5h4nút
5h4rab
5h4r3mot
5h4ran
-5h4ra[tcaron]
+5h4rať
5h4rob
5h4rom
5h4roz
@@ -2213,80 +2213,80 @@ pro6g5ram
5c6h4lap
5c6h4leb
5c6hran
-5c6h4r[aacute]n
-5c6h4r[aacute][ncaron]
-5c6h4v[aacute]l
-5c6h4v[aacute]t
+5c6h4rán
+5c6h4ráň
+5c6h4vál
+5c6h4vát
5c6h4vat
5c6h4vost
-5jeden[aacute]s4t5k
-5jeden[aacute]s4[tcaron]5
+5jedenás4t5k
+5jedenás4ť5
5k4lad
-5k4la[dcaron]
-5k4[lcaron]ak
+5k4laÄ
+5k4ľak
5k4lam
-5k4l[aacute]s[tcaron]
+5k4lásť
5k4liat
-5k4lia[tcaron]
+5k4liať
5k4lep
5k4les
-5k4[lcaron][uacute][ccaron]
+5k4ľúÄ
5k4resb
-5k4res[tcaron]
+5k4resť
5k4ritic
-5k4r[iacute]dl
-5k4r[ocircumflex]ch
+5k4rídl
+5k4rôch
5k4ruh
-5k4r[uacute][zcaron]
+5k4rúž
5k4ryt
5k4valif
5k4valit
5k4vet
5k4vadr
5m4ladis4t3v
-5m4no[zcaron]
+5m4nož
5m4rav
-5m4r[aacute]z
-na5d4[zcaron]4ga
-na5d4[zcaron]4g[aacute]
-nav3[scaron]4tev
-n[aacute]v3[scaron]4tev
-nav3[scaron]4t[iacute]v
-5p4l[aacute]n
+5m4ráz
+na5d4ž4ga
+na5d4ž4gá
+nav3Å¡4tev
+náv3š4tev
+nav3š4tív
+5p4lán
5p4lastik
5p4lat
5p4lav
5p4leta
5p4letie
-5p4let[uacute]
-5p4lies[tcaron]
+5p4letú
+5p4liesť
5p4ne2umat
-5p4r[aacute]v
-s6pr[aacute]v
+5p4ráv
+s6práv
5p4riam
5p4rirod
-5p2ris[aacute]m
+5p2risám
5p4roduk
-5s4f[eacute]r
+5s4fér
5s4c2hopn
5s4k4lad
5s4k4lon
-5s4ko[ccaron]
+5s4koÄ
5s4kok
5s4kop
5s4kor
-5s4k[ocircumflex]r
+5s4kôr
5s4k4romne
5s4k4rot
-5s4k4r[uacute]c
+5s4k4rúc
5s4k4rutk
-5s4k4r[yacute]v
-5s4k[uacute]sen
-5s4kuto[ccaron]
-5s4k4v[uacute]c
+5s4k4rýv
+5s4kúsen
+5s4kutoÄ
+5s4k4vúc
5s4ladk
5s4lav
-5s4l[aacute]v
+5s4láv
5s4led
5s4lep
5s4lovn
@@ -2294,9 +2294,9 @@ s6pr[aacute]v
5s4lova
5s4lovk
5s4luh
-5s4l[uacute][zcaron]
-5s4[lcaron]ub
-5s4ma[zcaron]
+5s4lúž
+5s4ľub
+5s4maž
5s4mel
5s4mer
5s4piev
@@ -2305,68 +2305,68 @@ s6pr[aacute]v
5s4potreb
5s4p4ravod
5s4p4raved
-5s4p4r[aacute]vn
+5s4p4rávn
5s4p4ravo
5s4tarost
5s4tatic
5s4tav
5s4t4rach
5s4t4ran
-5s4t4r[aacute]n
-5s4t4r[aacute]da
-5s4t4ra[scaron]
+5s4t4rán
+5s4t4ráda
+5s4t4raš
5s4t2rat
5s4t2red
5s4t2rek
5s4t4rel
-5s4t4re[lcaron]
+5s4t4reľ
5s4t4riel
-5s4t4rie[lcaron]
+5s4t4rieľ
5s4t4rih
-5s4t4ri[zcaron]
+5s4t4riž
5s4t4rom
-5s4t4r[uacute]h
+5s4t4rúh
5s4t4run
-5s4t4ru[zcaron]
+5s4t4ruž
5s4tati
5d2ve5s4to
5t2ri5s4to
-5[scaron]4tyri5s4to
-5p[adiaeresis][tcaron]5s4to
-5[scaron]es4[tcaron]5s4to
+5Å¡4tyri5s4to
+5päť5s4to
+5Å¡es4Å¥5s4to
5sedem5s4to
5osem5s4to
-5dev[adiaeresis][tcaron]5s4to
-5p[adiaeresis][tcaron]5
-5[scaron]es4[tcaron]5
+5deväť5s4to
+5päť5
+5Å¡es4Å¥5
5s4t4la
5s4tup
5s4ved
-5[scaron]4[lcaron]ah
-5[scaron]4liap
-5[scaron]4kola
-5[scaron]4k4rab
-5[scaron]4k4rie
-5[scaron]4pin
-5[scaron]4p4liech
-5[scaron]4print
-5[scaron]4tart
-5[scaron]4t[aacute]t
-5[scaron]4tep
-5[scaron]4t[iacute]t
-5[scaron]4t4rukt[uacute]r
-5[scaron]4tude
-5[scaron]4tudo
-5[scaron]4t4vera
-5[scaron]4t4vorec
-5[scaron]4tyli
-5[scaron]4[tcaron]ast
-5[scaron]tiep4
-5[scaron]4t4v4r4[tcaron]5k4
-5[scaron]4t4v4r4[tcaron]5l4
-5[scaron]4t4v4r4[tcaron]5r4
-5[scaron]4t4v4r4[tcaron]5s4
-5t4la[ccaron]
+5š4ľah
+5Å¡4liap
+5Å¡4kola
+5Å¡4k4rab
+5Å¡4k4rie
+5Å¡4pin
+5Å¡4p4liech
+5Å¡4print
+5Å¡4tart
+5š4tát
+5Å¡4tep
+5š4tít
+5š4t4ruktúr
+5Å¡4tude
+5Å¡4tudo
+5Å¡4t4vera
+5Å¡4t4vorec
+5Å¡4tyli
+5Å¡4Å¥ast
+5Å¡tiep4
+5Å¡4t4v4r4Å¥5k4
+5Å¡4t4v4r4Å¥5l4
+5Å¡4t4v4r4Å¥5r4
+5Å¡4t4v4r4Å¥5s4
+5t4laÄ
5t4lak
5t4ran4s5
5t4ras
@@ -2377,48 +2377,48 @@ s6pr[aacute]v
5t4r4vaj
5t4r4val
5t4r4van
-5uholn[iacute]k
-5uho[lcaron]n
+5uholník
+5uhoľn
5viac5h4
-5v4[ccaron]era
-5v4l[aacute]d
+5v4Äera
+5v4lád
5v4las
-5v4r[aacute]s
+5v4rás
5v4rav
5v4rat
-5v4r[aacute]t
-5v4[scaron]imn
-5v4t[aacute]k
+5v4rát
+5v4Å¡imn
+5v4ták
5v4tip
-5vy5s4t4r[aacute]ja
+5vy5s4t4rája
5v4z4du
-5v4z4[tcaron]ah
-5v4z4[tcaron]a[zcaron]
+5v4z4Å¥ah
+5v4z4ťaž
5z4lom
-5z4lu[ccaron]
+5z4luÄ
5z4mysel
5z4mysl
5z4nak
-5z4n[aacute]m
-5z4n[aacute][scaron]a
+5z4nám
+5z4náša
5z4rak
-5z4v[adiaeresis]z
+5z4väz
5z4vest
-5zv4es[tcaron]
+5zv4esť
5z4vod
5z4vuk
-5z4vu[ccaron]
-5[zcaron]4r[aacute][ccaron]
-5[zcaron]4rane
-5[zcaron]4reb
-5[zcaron]4r[uacute]t
+5z4vuÄ
+5ž4ráÄ
+5ž4rane
+5ž4reb
+5ž4rút
.cv6
.ch6
.sp6
.st6
-.[scaron]k6
-.[scaron]p6
-.[scaron]t6
+.Å¡k6
+.Å¡p6
+.Å¡t6
.tk6
.uh6
.uc6h6
@@ -2426,24 +2426,24 @@ s6pr[aacute]v
.um6
.up6
.us6
-.[uacute]s6
+.ús6
.usc6h6
-.[uacute]sc6h
+.úsc6h
.usk6
-.[uacute]sl6
+.úsl6
.usm6
-.[uacute]sm6
-.[uacute]s7ta.
-.[uacute]s7tami.
-.[uacute]s7to[ccaron]
-.[uacute]s7ti
+.úsm6
+.ús7ta.
+.ús7tami.
+.ús7toÄ
+.ús7ti
.ust6l
-.[uacute]st7ny
+.úst7ny
.ust6r
-.[uacute]s7tret
+.ús7tret
.us7t4ric
-.[uacute]s6t6r
-.[uacute][scaron]6
+.ús6t6r
+.úš6
.ut6
.uv6
.uz6
@@ -2452,14 +2452,14 @@ s6pr[aacute]v
.vk6
.vp6
.vs6
-.v[scaron]6
+.vš6
.vt6
.vz6
.vzh6
.vzk6
.vzl6
.vzp6
-.v[zcaron]6
+.vž6
.zb6
.zd6n
.zd6r
@@ -2469,31 +2469,31 @@ s6pr[aacute]v
.zm6
.zr6
.zv6
-4b4s4[tcaron].
+4b4s4Å¥.
8c4h.
8d4z.
-8d4[zcaron].
+8d4ž.
4c4ht4.
-4j4s4[tcaron].
+4j4s4Å¥.
4lt.
4m4p4r.
4m4p4s.
-4m4[scaron]4t.
+4m4Å¡4t.
4n4k4t.
4p4r4v.
4rd.
r4p4t.
-r4[scaron]4[ccaron].
+r4Å¡4Ä.
r4t4z.
4st.
-4s[tcaron].
-5k4r[aacute]t.
-5s4to5k4r[aacute]t.
-5t4[lcaron]4c4[tcaron].
+4sť.
+5k4rát.
+5s4to5k4rát.
+5t4ľ4c4ť.
akci3a2
-akv[aacute]ri3u2m
-gymn[aacute]zi3um
-le2u3k[eacute]mia
+akvári3u2m
+gymnázi3um
+le2u3kémia
t2ri3u2mf
kli3e2nt
}
diff --git a/Master/texmf-dist/tex/context/patterns/lang-sl.pat b/Master/texmf-dist/tex/context/patterns/lang-sl.pat
index 3d9097569a7..c8a3964f2f6 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-sl.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-sl.pat
@@ -58,7 +58,7 @@ ab5ba
ab6rod
a1c
ac5ci
-a1[ccaron]
+a1Ä
a1d
ad2l
a6dobl
@@ -89,9 +89,9 @@ aj6imo
aj3os
aj6stb
a5ju.
-aj3u[ccaron]
+aj3uÄ
aj3ug
-aj5[zcaron]n
+aj5žn
a1k
ak4s
a4kst
@@ -118,9 +118,9 @@ ar5xa
ar5xo
ar5xu
a1s
-a4s[scaron]
-as5[scaron][ccaron]
-a1[scaron]
+a4sš
+as5Å¡Ä
+a1Å¡
a1t
a4tf
at4i
@@ -129,9 +129,9 @@ a4uf
a2uk
a4ul
a1v
-av5[scaron]i
-a4v[zcaron]
-av5[zcaron]a
+av5Å¡i
+a4vž
+av5ža
ay5to
a1ze
az5fo
@@ -142,19 +142,19 @@ az4lil
az4lit
az4liv
a4zob
-a4z3o[ccaron]
+a4z3oÄ
az5ora
az5oro
a4zra
az4red
az5vp
-a1[zcaron]
-a[zcaron]5mi
+a1ž
+až5mi
ba6bba
-ban3[ccaron]4
+ban3Ä4
ba4u
2b1c
-2b1[ccaron]
+2b1Ä
2b1d
be1
be4v
@@ -180,16 +180,16 @@ b5ord
bo5vp
b3rab
b5ras
-b3ra[scaron]
+b3raš
b3rez
bre4zg
bre4zi
bre4zr
-b5re[zcaron]e
+b5reže
b3rob
-br6[zcaron]da
+br6žda
2b1s
-2b1[scaron]
+2b1Å¡
2b1t
bu5ki
bu5ku
@@ -197,7 +197,7 @@ bu5kv
bu5ry
2b1v
b1z
-b1[zcaron]
+b1ž
2cc
2ch.
ch5ma
@@ -210,22 +210,22 @@ ck1s
ck5we
2c1n
2c1t
-2[ccaron]1b
-2[ccaron]1g
-[ccaron]i1
-1[ccaron]j
-2[ccaron]1k
-1[ccaron]l
-4[ccaron]3let
-[ccaron]5mes
-2[ccaron]1n
-4[ccaron]op
-2[ccaron]1p
-2[ccaron]1s
-4[ccaron]up
+2Ä1b
+2Ä1g
+Äi1
+1Äj
+2Ä1k
+1Äl
+4Ä3let
+Ä5mes
+2Ä1n
+4Äop
+2Ä1p
+2Ä1s
+4Äup
2d1b
2d1c
-2d1[ccaron]
+2d1Ä
2d1d
dd6voj
d2e
@@ -250,21 +250,21 @@ d5liv
d1lo
2d3m
4d3nac
-4d5na[ccaron]
+4d5naÄ
4d5nap
4d3nar
4dnas
4d5neb
d5niv
4d5niz
-4d5nja[ccaron]
-4d3no[zcaron]
+4d5njaÄ
+4d3nož
d2o
-4dob[ccaron]
+4dobÄ
4d5obd
2d3o2f
do5rd
-do5v[ccaron]
+do5vÄ
do5v4z
2d1p
d5raz
@@ -272,7 +272,7 @@ d3rep
dre6pn
d4rev
2d1s
-2d1[scaron]
+2d1Å¡
2d1t
dteks6
d4ur
@@ -286,20 +286,20 @@ e1b
eb4j
eb6liz
e1c
-e1[ccaron]
-e4[ccaron]d
-e[ccaron]5de
-e[ccaron]5di
-e[ccaron]5do
-e[ccaron]3le
-e[ccaron]5op
-e4[ccaron]t
-e[ccaron]5ti
-e[ccaron]5to
-e[ccaron]5tr
-e[ccaron]5up
-e2[ccaron]1v
-e[ccaron]6vrs
+e1Ä
+e4Äd
+eÄ5de
+eÄ5di
+eÄ5do
+eÄ3le
+eÄ5op
+e4Ät
+eÄ5ti
+eÄ5to
+eÄ5tr
+eÄ5up
+e2Ä1v
+eÄ6vrs
e1d
e4df
ed5ig
@@ -308,8 +308,8 @@ ed5ob
ed6obe
ed6obr
e4dobs
-e4d3o[ccaron]
-ed5v[ccaron]
+e4d3oÄ
+ed5vÄ
ed5zb
e1e
e4ep
@@ -353,12 +353,12 @@ e5sta
e5sti.
e5stih
e5stil
-e1[scaron]
-e4[scaron]p
-e[scaron]5po
+e1Å¡
+e4Å¡p
+eš5po
e1t
4eth
-e4tin[scaron]
+e4tinš
e1u1
e1v
eve6t5l
@@ -392,8 +392,8 @@ e4z5or
ez4re
e4zt
e4z5u4m5
-e4z[zcaron]
-e1[zcaron]
+e4zž
+e1ž
1fa
fe1
fe6ljt
@@ -408,22 +408,22 @@ ft5ve
fu1
2g1d
ge6ige
-gel5[ccaron]4
-ge6nj[ccaron]
+gel5Ä4
+ge6njÄ
gi6tpr
go1
go5vz
2g1t
gu1
ha4u
-2h1[ccaron]
+2h1Ä
he4i
2h1k
4hl.
h4lo
2h1n
h5ren
-2h1[scaron]
+2h1Å¡
2h1t
1hu
hu6ffm
@@ -431,12 +431,12 @@ i1a
i1b
i1c
i4cs
-i1[ccaron]a
-i1[ccaron]e
-i1[ccaron]i
-i[ccaron]5ra
-i1[ccaron]u
-i[ccaron]5vr
+i1Äa
+i1Äe
+i1Äi
+iÄ5ra
+i1Äu
+iÄ5vr
i1d
4idor
i1e1
@@ -448,10 +448,10 @@ i1i
ii2n1
i1j
i1k
-i4k[ccaron]
-ik5[ccaron]a
+i4kÄ
+ik5Äa
i1l
-il5[ccaron]4k
+il5Ä4k
4ile
4ilo
i1m
@@ -463,8 +463,8 @@ i1n
3i4n3os
1inp
3inse
-1in[scaron]
-4in[scaron]k
+1inš
+4inšk
3intr
i1o1
i1p
@@ -476,7 +476,7 @@ is6ert
isis4
i4skv
2iss
-i1[scaron]
+i1Å¡
i1t
it5pr
i1u
@@ -494,11 +494,11 @@ iz5po
i2zr
iz1u
iz6ure
-i1[zcaron]
+i1ž
j5akt
2j1b
2j1c
-2j1[ccaron]
+2j1Ä
2j1d
je4ks4
2j1g
@@ -514,20 +514,20 @@ j1hi
2j1od
jod4l
2jos
-4jo[zcaron]
+4jož
2j1p
2j1r
jra1
jraz4
2j1s
jsis6t
-2j1[scaron]
+2j1Å¡
2j1t
ju1
-2ju[ccaron]
+2juÄ
ju5dm
2jus
-ju2[zcaron]1
+ju2ž1
2j1v
2j1z
jz6ves
@@ -540,7 +540,7 @@ ki1
ko1
kok4
ko5kd
-ko6v[scaron]e
+ko6vše
koz6lo
1kre
2ks.
@@ -561,7 +561,7 @@ la4ir
la6vz.
2l1b
2l1c
-2l1[ccaron]
+2l1Ä
2l1d
le1
le4e
@@ -569,38 +569,38 @@ le6ipz
le5me
2l1f
2l1g
-lg5[ccaron]a
+lg5Äa
2l1h
l2i1
-li6d[zcaron].
+li6dž.
1liz
4l5izd
2lj.
4ljc
-2lj[ccaron]
+2ljÄ
2ljk
2ljn
2ljs
-2lj[scaron]
+2ljš
lju5d6j
2l1k
2l1l
2l1m
2l1n
lo1
-1lo[ccaron]
+1loÄ
2l1p
2l1s
-2l1[scaron]
+2l1Å¡
2l1t
lu5ki
lu5ku
2l1v
2l1z
-2l1[zcaron]
+2l1ž
2m1b
2m1c
-2m1[ccaron]
+2m1Ä
2m1d
me4d5n
me6dos
@@ -608,23 +608,23 @@ me4dr
2m1f
4mind
4minp
-4min[scaron]
+4minš
mi6th.
2m1k
2m1m
m5niv
-mo6[scaron]t.
-mo6v[scaron].
+mo6Å¡t.
+mo6vš.
2m1p
2m1s
-2m1[scaron]
+2m1Å¡
2m1t
m5urn
2m1v
my5hi
-2m1[zcaron]
+2m1ž
na1
-5na[ccaron]el
+5naÄel
na4d5nj
nad5r
na6dra
@@ -634,7 +634,7 @@ na6dur
na6jak
na4j5en
naj3o
-na6jo[ccaron]
+na6joÄ
na4j3u
1nas
na4v3z
@@ -643,11 +643,11 @@ navze6
naz6or
2n1b
2n1c
-2n[ccaron]
-n1[ccaron]a
-n1[ccaron]e
-n1[ccaron]i
-n1[ccaron]u
+2nÄ
+n1Äa
+n1Äe
+n1Äi
+n1Äu
2n3d2
nd5ga
nd5hi
@@ -669,7 +669,7 @@ ng5vi
nje4v5s
2njk
2njs
-2nj[scaron]
+2njš
4njv
2n1k
2n1l
@@ -679,7 +679,7 @@ n4ost
2n1p
2n1s
nsis4
-2n1[scaron]
+2n1Å¡
2n1t
nteks4
n4tg
@@ -692,7 +692,7 @@ nu1
ny5qu
2n1z
nz4i
-2n1[zcaron]
+2n1ž
o1a
o4as
o1b
@@ -706,13 +706,13 @@ o1c
oc5ke
oc5ki
o4cr
-o1[ccaron]
+o1Ä
o1d
od5dv
od5nal
o6drep
od5zd
-o2d1[zcaron]
+o2d1ž
o1e
oele4
o1f
@@ -729,7 +729,7 @@ ok5be
o4kt
o1l
o6l5avt
-ol6g[ccaron]a
+ol6gÄa
o4lr
ol5re
o1m
@@ -743,7 +743,7 @@ o4pm
op5me
4opy
o1ra
-or4de[ccaron]
+or4deÄ
o1re
o1ri
o1ro
@@ -751,14 +751,14 @@ o1ru
o1s
5oseb
ose4m5
-o1[scaron]
+o1Å¡
o1t
o1u
ou5ki
ou5ku
o1v
ov5sem
-ov5[scaron]k
+ov5Å¡k
o2v1z
o5vza
ov3zd
@@ -768,20 +768,20 @@ oz4b
ozd5j
oz4g
oz5lo
-oz6lo[zcaron]
+oz6lož
oz2n
oz5nic
-oz5ni[scaron]
+oz5niš
oz2o
oz2r
oz2v
-o1[zcaron]
-o[zcaron]5mi
+o1ž
+ož5mi
2p1c
-2p3[ccaron]2
-p[ccaron]5ka
+2p3Ä2
+pÄ5ka
pe1
-1pe[ccaron]
+1peÄ
pe4kt
pet3l
pe4tle
@@ -796,18 +796,18 @@ po1
po6dfa
po4d3l
po4dna
-po4d5o[ccaron]
+po4d5oÄ
po6lob
po6std
prez4
2p1s
-2p1[scaron]
+2p1Å¡
2p1t
pz6ig.
qu2
-3ra[ccaron]u
+3raÄu
2rae
-ra6j[zcaron]n
+ra6jžn
rav5z
ra6vza
ra4z5id
@@ -815,13 +815,13 @@ ra4z5id
ra4z5or
2r1b
2r1c
-2r1[ccaron]
+2r1Ä
2r1d
re1
3real
re6cht
-re5[ccaron]v
-5red[ccaron]
+re5Äv
+5redÄ
re6dig
re6dnju
re6iba
@@ -829,7 +829,7 @@ re5jo
re5km
re6sda
rev6sk
-re6zna[ccaron]
+re6znaÄ
re6zus
re6zve
r1f
@@ -853,7 +853,7 @@ ro5zo
2r1p
r1r
2r1s
-2r1[scaron]
+2r1Å¡
2r1t
r4th
rt5ha
@@ -864,8 +864,8 @@ rv5jo
ry5an
2r1z
rz2l
-r1[zcaron]
-r[zcaron]5da
+r1ž
+rž5da
2s1b
1sc
4sc.
@@ -886,7 +886,7 @@ s2kn
s4lav
s4on
soni5
-soni[ccaron]4
+soniÄ4
1sp
s4plod
spod4l
@@ -895,7 +895,7 @@ spod4l
3ste
s4ten
4stf
-s4ti[ccaron]
+s4tiÄ
5stim
s4tir
2stk
@@ -905,12 +905,12 @@ s4tra.
su1
su4bo
sve5t
-[scaron]2[ccaron]
-2[scaron][ccaron].
-2[scaron][ccaron]k
-2[scaron][ccaron]n
-[scaron]e2s
-2[scaron]1j
+Å¡2Ä
+2Å¡Ä.
+2Å¡Äk
+2Å¡Än
+Å¡e2s
+2Å¡1j
ta5wi
taz4
2t1b
@@ -930,7 +930,7 @@ t1f
6tletno
2t1m
4tnaj
-to6v[zcaron].
+to6vž.
trt5u
tr6tur
2t1s
@@ -943,7 +943,7 @@ ub4j
u4bp
ub5po
u1c
-u1[ccaron]
+u1Ä
u1d
ud6mi.
u1e
@@ -959,32 +959,32 @@ u1l
u1m
u1n
u1p
-up6[ccaron]ka
+up6Äka
u1ra
u1re
4urg
u1ri
u1s
1usp
-u1[scaron]
-u[scaron]e3s
+u1Å¡
+uše3s
u1t
u4th
uth5o
u1v
ux5em
u1z
-u1[zcaron]
+u1ž
2v1b
2v1c
-2v[ccaron]
-v1[ccaron]a
-v1[ccaron]e
-v4[ccaron]er
-v1[ccaron]i
+2vÄ
+v1Äa
+v1Äe
+v4Äer
+v1Äi
2v1d
-ve4[ccaron]l
-ve4[ccaron]m
+ve4Äl
+ve4Äm
ve4i
ve4tin
vetle6t
@@ -993,7 +993,7 @@ v1g
vi5dv
vid6va
1viv
-vi6[zcaron]g.
+vi6žg.
2v1j
4vjo
2v1k
@@ -1006,8 +1006,8 @@ voz5le
v4pij
v4pil
v5skn
-v5[scaron]ek
-4v[scaron]k
+v5Å¡ek
+4všk
2v1t
vt4k
vz2
@@ -1034,7 +1034,7 @@ za5zd
2z1b
3zbir
z1c
-2z1[ccaron]
+2z1Ä
2z1d2
zd5ju
z3dv
@@ -1045,7 +1045,7 @@ z5got
1zi
z1ig
2z1is
-4z5i[scaron][ccaron]
+4z5iÅ¡Ä
2z1j
2z1k
z3ku
@@ -1058,7 +1058,7 @@ zliz5
1zlj
3zlog
z5lom
-3zlo[zcaron]
+3zlož
z1lu
2z1m
1zn
@@ -1070,14 +1070,14 @@ z2ol
z4om
2z1p
1z1r
-4zred[ccaron]
-4zre[scaron]
+4zredÄ
+4zreš
4zrez
-4zre[zcaron]
+4zrež
4zri
4zru
2z1s
-z1[scaron]
+z1Å¡
z1t
1zu
z4uj
@@ -1089,19 +1089,19 @@ z3vn
3z4voj
z4vok
2z1z2
-z1[zcaron]
-2[zcaron]1b
-2[zcaron]1c
-2[zcaron]1[ccaron]
-2[zcaron]1j
-2[zcaron]1k
-4[zcaron]mi
-.[ccaron]8
-.[scaron]8
-.[zcaron]8
-8[zcaron].
-8[scaron].
-8[ccaron].
+z1ž
+2ž1b
+2ž1c
+2ž1Ä
+2ž1j
+2ž1k
+4žmi
+.Ä8
+.Å¡8
+.ž8
+8ž.
+8Å¡.
+8Ä.
}
% end pattern data
diff --git a/Master/texmf-dist/tex/context/patterns/lang-sv.pat b/Master/texmf-dist/tex/context/patterns/lang-sv.pat
index a4aab75ef98..05201c519ed 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-sv.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-sv.pat
@@ -66,12 +66,12 @@
.cis4
.cy5klop
.d4
-.d[adiaeresis]r3
+.där3
.ek1v
.e3l4a
.e2l5in
.en5st
-.e4n[adiaeresis]
+.e4nä
.e2r3i
.e2s
.e5skad
@@ -86,11 +86,11 @@
.feb3r
.fram3
.fres5
-.f[aring]gel3
-.f[odiaeresis]r1a
-.f[odiaeresis]r1en
+.fågel3
+.för1a
+.för1en
.g2
-.gu4l[adiaeresis]
+.gu4lä
.gus3
.he2m
.hu5sa
@@ -112,7 +112,7 @@
.kort5s
.kring3
.krings2
-.k[odiaeresis]p5s
+.köp5s
.l2
.lak5r
.lek5tr
@@ -122,16 +122,16 @@
.ma5skeri
.me4re
.minis4
-.mj[odiaeresis]lk5s
+.mjölk5s
.mon2s
-.m[aring]n3s
-.m[aring]4st
-.m[adiaeresis]n5sko
-.m[odiaeresis]rk5r
+.mån3s
+.må4st
+.män5sko
+.mörk5r
.n4
.ner1
.no4n
-.n[odiaeresis]d5r
+.nöd5r
.oc1ku
.ok3t
.o3kv
@@ -161,12 +161,12 @@
.re2ste
.runs4
.rym2d
-.r[odiaeresis]ve5
+.röve5
.s4
.sa2k
.seg3r
.si5o
-.sj[odiaeresis]1
+.sjö1
.sk4
.skott3s
.slut3s
@@ -186,7 +186,7 @@
.topp5s
.tred2s
.tre3s
-.tr[adiaeresis]5k
+.trä5k
.u3k
.ult5r
.ung2e
@@ -201,17 +201,17 @@
.var4t
.vatten3
.ved5s
-.v[adiaeresis]2g
-.v[adiaeresis]g3s
+.vä2g
+.väg3s
.x2
.y2a
.y4e
-.[aring]ng3
-.[aring]r4s5
-.[aring]3st
-.[aring]ter1
-.[adiaeresis]3ro
-.[odiaeresis]3ro
+.Ã¥ng3
+.Ã¥r4s5
+.Ã¥3st
+.Ã¥ter1
+.ä3ro
+.ö3ro
a2b
ab4bu
a5be
@@ -243,7 +243,7 @@ ad3ru
ad2s
a5ed
af4fo
-3aff[adiaeresis]
+3affä
1af3ri
af4tor
a1ga
@@ -274,9 +274,9 @@ ak3tri
a1ku
a5kvari
ak3ve
-a5k[aring]r
-ak5[aring]t
-4ak[odiaeresis]
+a5kår
+ak5Ã¥t
+4akö
a1la
al5adm
ali2br
@@ -288,16 +288,16 @@ ali5stik
a4lj
alk3ak
al2kv
-al4k[adiaeresis]
+al4kä
all3st
-al3l[aring]
+al3lå
alms4k
a1lo
al5ort
als5pa
al3tr
al4tu
-al4t[adiaeresis]
+al4tä
a1lu
alu5s
alv3s
@@ -306,8 +306,8 @@ a4maf
am4i
am4pr
am1s
-am3[aring]t
-a3m[odiaeresis]
+am3Ã¥t
+a3mö
ana4bo
an3alf
an3ark
@@ -316,7 +316,7 @@ anci5
an5dak
andel2s
an4dun
-an4d[adiaeresis]n
+an4dän
a4nef
ang4es
an3gi
@@ -340,7 +340,7 @@ an4tj
an4tre
a1nu
a5ny
-a3n[odiaeresis]
+a3nö
a1o
a1pe
a2pe.
@@ -359,7 +359,7 @@ aps5l
aps3p
apu5s
a5py
-a5p[adiaeresis]
+a5pä
2ara
a4rann
a4rarv
@@ -393,9 +393,9 @@ ar4tur
4aru
a4rur
a5rus
-ar4v[adiaeresis]g
+ar4väg
a3ry
-a3r[adiaeresis]
+a3rä
2asa
asbe4
a1sc
@@ -423,19 +423,19 @@ as4tr
ast5rak
a5stral
ast3rol
-as5t[odiaeresis]r
+as5tör
a3su
a4sul
a4sund
as2ut
as3v
a1sy
-a2s5[aring]
-a2s[odiaeresis]
+a2s5Ã¥
+a2sö
a1t
ata5ra
a5te
-ati5[odiaeresis]
+ati5ö
a4tj
a2tr
a3tral
@@ -465,8 +465,8 @@ a4vart
1avg
2a1vi
av3r
-4a3v[adiaeresis]
-a5[aring]
+4a3vä
+a5Ã¥
1b2
3ba
ba4di
@@ -494,11 +494,11 @@ be1k
4beld
be5lu
be3ly
-be3l[aring]
-be5l[odiaeresis]
+be3lå
+be5lö
beng4
-be3n[aring]
-be1r[odiaeresis]
+be3nå
+be1rö
be1s
be3sl
bes5s
@@ -550,10 +550,10 @@ boy5
b3rika
3brike
3briks
-b5rik[odiaeresis]
+b5rikö
bru4st
3bry
-3br[odiaeresis]
+3brö
4b3s
b5sce
bs3ch
@@ -569,12 +569,12 @@ bus2st
b3v
3by
by5r
-3b[aring]
-b[aring]ng3
-b[aring]t2s
-3b[adiaeresis]
-3b[odiaeresis]
-b[odiaeresis]r2s
+3bå
+bång3
+båt2s
+3bä
+3bö
+bör2s
c2
5cap
c3c
@@ -587,8 +587,8 @@ ceu4s
3chef
5choc
4cht
-ch[adiaeresis]s3
-ch[odiaeresis]r4
+chäs3
+chör4
1ci
ci4lu
cim2
@@ -611,9 +611,9 @@ ck3sla
ckus2
ck3va
ck3ve
-ck3v[adiaeresis]
-ck5[adiaeresis]
-ck3[odiaeresis]
+ck3vä
+ck5ä
+ck3ö
cle2a
co2a
co4m
@@ -630,7 +630,7 @@ dags3
5dako
da3li
5dam
-da3m[aring]
+da3må
4dand.
4d1ap
4darb
@@ -649,7 +649,7 @@ d4dos
dd3ra
dd3re
dd3ri
-d3dr[adiaeresis]
+d3drä
dd2s
dds3v
3d2e
@@ -660,7 +660,7 @@ del2sa
dels5ti
de5lut
d4en
-denti5[odiaeresis]
+denti5ö
den2to
de3pr
5der
@@ -677,7 +677,7 @@ d4et
de3tr
4dex
2d1f
-df[odiaeresis]3ra
+dfö3ra
2d1g
d3gl
2d5h
@@ -746,11 +746,11 @@ d5roc
d3ror
4drot
drotts3
-d3r[adiaeresis]kn
-3dr[adiaeresis]kt
-5dr[adiaeresis]n
-d3r[adiaeresis]t
-d5r[odiaeresis]d
+d3räkn
+3dräkt
+5drän
+d3rät
+d5röd
4ds
d2s1an
d2se
@@ -768,8 +768,8 @@ ds5kn
ds1l
ds4lot
ds4mo
-d4sm[aring]
-ds5n[aring]
+d4små
+ds5nå
d2so
ds3pl
ds3s4
@@ -782,7 +782,7 @@ ds3tin
ds5tro
d2su
ds1v
-d2s[odiaeresis]
+d2sö
2d3t
3du
dub3ble
@@ -790,7 +790,7 @@ dub3ble
du1s
du2sc
du4ste
-du5s[odiaeresis]
+du5sö
4dut
du4vu
2d1v
@@ -800,17 +800,17 @@ d3vr
dy4kan
dy4ro
4dz
-5d[aring]g
-2d[aring]s
-4d[aring]t
-4d[adiaeresis]g
-d[adiaeresis]2r
-3d[odiaeresis]
-d[odiaeresis]ds1
-4d[odiaeresis]g
-4d[odiaeresis]p
-d5[odiaeresis]st
-d[eacute]4
+5dåg
+2dås
+4dåt
+4däg
+dä2r
+3dö
+döds1
+4dög
+4döp
+d5öst
+dé4
e1a
e2ake
e4am
@@ -832,7 +832,7 @@ ed1sk
ed2sko
ed3s2l
edso4
-e3d[aring]
+e3då
e1e
e2ed
e4ei
@@ -855,7 +855,7 @@ eg5rat
eg3rin
e5gru
egs3
-e5g[aring]
+e5gå
eig2
ei5gn
e3ik
@@ -864,8 +864,8 @@ ei5sh
e1isk
e1jo
e3ju
-e3j[adiaeresis]
-e5j[odiaeresis]
+e3jä
+e5jö
e3ka
e1ki
e1kl
@@ -881,7 +881,7 @@ e1ku
e1kve
ek5vis
e1ky
-e1k[adiaeresis]
+e1kä
e1la
el1akt
el4arb
@@ -893,14 +893,14 @@ eli5ku
el3k4
el3li
ell3s
-el3l[adiaeresis]
+el3lä
e1lo
e4lob
el3p
el2si
el5ug
e5luv
-2e1l[adiaeresis]
+2e1lä
e1m
e5mat
e5mis
@@ -912,12 +912,12 @@ e2nav
en4ce
e4ned
e4nek
-ene3r[odiaeresis]
+ene3rö
2enj
en5klo
en3kn
en5kr
-en5k[adiaeresis]
+en5kä
enning5
ennings2
eno2m
@@ -927,7 +927,7 @@ ens2m
en2sp
ens4te
ens4vin
-en4s[aring]
+en4så
ent4ha
en2t1r
ent4rat.
@@ -936,7 +936,7 @@ ent3ri
ent5ru
e5nus
2eny
-2e1n[adiaeresis]
+2e1nä
e1o
e2og
eo4i
@@ -952,20 +952,20 @@ e1pr
ep3s
ep4tr
epu3b
-e3p[aring]
+e3på
er1ak
4eras
er3d4
erg4l
er4gu
-er4g[aring]s
+er4gås
e1ri
e5rib
e4rinf
erings3
eri5stik
erk4lin
-erl[adiaeresis]4
+erlä4
er5na
e1ro
e3rob
@@ -983,8 +983,8 @@ er3sv
e1ru
e5rum
e3ry
-e5r[aring]d
-e1r[adiaeresis]
+e5råd
+e1rä
e2sal
es5all
es3arm
@@ -1004,7 +1004,7 @@ es2mi
e1sp
es3pl
es2sk
-ess5l[adiaeresis]
+ess5lä
es2st
e3stal
es5ten.
@@ -1014,17 +1014,17 @@ es5tor.
es4tr
est5rer
e3stru
-est4r[odiaeresis]
-e3st[aring]
+est4rö
+e3stå
es2u
e1sy
eta3b
e5ti
-eti3[odiaeresis]
+eti3ö
e1to
e5tri.
et3ris
-e5tr[adiaeresis]
+e5trä
et2s
ets2ad
ets3kr
@@ -1039,8 +1039,8 @@ et4va
et5vu
e1ty
2etz
-e1t[adiaeresis]
-et[adiaeresis]c4
+e1tä
+etäc4
euk4
e5um.
e5up4
@@ -1053,7 +1053,7 @@ e4vj
ev3r
3exp
ext4r
-4e[adiaeresis]
+4eä
f2
3fa
fac4
@@ -1062,7 +1062,7 @@ fac5ke
4farb
fa3sh
fa4st
-fa4t[odiaeresis]
+fa4tö
4fav
4f3b
f3d
@@ -1079,8 +1079,8 @@ ff3n
f3fo
ff3r
ffs4
-f3f[adiaeresis]
-ff[odiaeresis]5re
+f3fä
+ffö5re
f3g2
f5h
3fi
@@ -1115,7 +1115,7 @@ fri5sp
5frit
fros5ta
fru5str
-fr[aring]n5
+från5
2f3s
fs2k
f4sl
@@ -1141,7 +1141,7 @@ ft4set
ft2s5i
ft4sj
fts4t
-fts5v[adiaeresis]
+fts5vä
ft5t
ft1v
3fu
@@ -1151,24 +1151,24 @@ fu3tu
4fv
5fy
fy4ma
-f[aring]3t[odiaeresis]
-1f[adiaeresis]
-f[adiaeresis]s5ti
-3f[odiaeresis]
-f[odiaeresis]2ra
-f[odiaeresis]2ren
-f[odiaeresis]2ri
-f[odiaeresis]r3k
-f[odiaeresis]r3sm
-f[odiaeresis]r3su
-f[odiaeresis]rt4
-f[odiaeresis]r1[odiaeresis]
+få3tö
+1fä
+fäs5ti
+3fö
+fö2ra
+fö2ren
+fö2ri
+för3k
+för3sm
+för3su
+fört4
+för1ö
ga5br
3g2ag
4gakt
3g2al
gall3s
-ga5l[adiaeresis]
+ga5lä
ga4no
2garb
4garm
@@ -1192,8 +1192,8 @@ g2eli
3gelis
gel5st
gel5y
-3gel[adiaeresis]
-gel5[adiaeresis]n
+3gelä
+gel5än
g4em
ge4nap
gen5g
@@ -1206,7 +1206,7 @@ g4ense
1g2ent
4genv
ge5ny
-3gen[adiaeresis]
+3genä
ge2o
1g2era
4gerarb
@@ -1239,10 +1239,10 @@ gis4tr
gi5stral
gi5st4rat
3giv
-gi2[odiaeresis]
+gi2ö
g2jo
3gjor
-g3j[adiaeresis]
+g3jä
2g3k2
2gl
g4lans
@@ -1250,11 +1250,11 @@ g1lar
g2las
5glase
glas5k
-5glas[odiaeresis]
+5glasö
g4lid
4glj
-g4l[odiaeresis]g
-5gl[odiaeresis]m
+g4lög
+5glöm
2g1m
2g1n
g4nag
@@ -1285,10 +1285,10 @@ g5roi
gro2v
4grum
grus5t
-g4r[aring]
-5gr[aring].
-gr[adiaeresis]4n
-5gr[adiaeresis]ns
+g4rå
+5grå.
+grä4n
+5gräns
2g2s
gs1an
g5satt
@@ -1306,7 +1306,7 @@ gs1m
g4sme
gs3n
gs4ni
-gs4n[odiaeresis]
+gs4nö
gs1or
gs3pl
gs3po
@@ -1324,21 +1324,21 @@ gs3tj
g3stol
gs3tra
gst4re
-g3st[adiaeresis]m
+g3stäm
g4sug
gs1v
g4s3ve
gs3vi
-gs3v[aring]
+gs3vå
gs3yt
-gs1[adiaeresis]
+gs1ä
2g1t
g3tr
1g2u
4gug
guld3
gul4da
-4gul[adiaeresis]
+4gulä
gu2ma
4gup
gu5ru
@@ -1349,22 +1349,22 @@ g3utb
4gw
3gy
gytt3j
-1g2[aring]
-g[aring]rds5
-2g5[aring]ri
-g4[adiaeresis]l
-g2[adiaeresis]r
-g[adiaeresis]4s
-1g2[odiaeresis]
-4g[odiaeresis]g
-g[odiaeresis]5ro
-2g5[odiaeresis]rt
+1g2Ã¥
+gårds5
+2g5Ã¥ri
+g4äl
+g2är
+gä4s
+1g2ö
+4gög
+gö5ro
+2g5ört
1h
ha3bl
ha5ge
ha4li
hal4so
-halv3[aring]
+halv3Ã¥
ham4st
handels3
hands4l
@@ -1380,7 +1380,7 @@ h5c
4hd
he4at
he4fr
-he4l[adiaeresis]
+he4lä
hets1
hets3t
hets3v
@@ -1389,7 +1389,7 @@ h2i
4hir
his2sk
hi4t
-hj[adiaeresis]l3s
+hjäl3s
h1k
2hl
h4le
@@ -1413,20 +1413,20 @@ hyg5r
hys4t
hys5ta
hy3ster
-h[aring]rd5s4
-h[adiaeresis]ll2
-h[adiaeresis]lls1
-h[adiaeresis]lso3
-h[adiaeresis]4ri
-h[adiaeresis]4s
-h[adiaeresis]4var
-h2[odiaeresis]
-h[odiaeresis]2g
-h[odiaeresis]5gen
-h[odiaeresis]g5r
-h[odiaeresis]rn5s
-h[odiaeresis]4s
-h[odiaeresis]st5r
+hård5s4
+häll2
+hälls1
+hälso3
+hä4ri
+hä4s
+hä4var
+h2ö
+hö2g
+hö5gen
+hög5r
+hörn5s
+hö4s
+höst5r
i1a
ia3fr
ia3g
@@ -1450,13 +1450,13 @@ id3ro
id2s
ids3v
i4dun
-i3d[aring]
-i4d[odiaeresis]
+i3då
+i4dö
2i1e
ifes4
i5fn
i1fr
-3ifr[aring]n
+3ifrån
i1g
4igan
i2geb
@@ -1467,7 +1467,7 @@ i3i
i4kart
i1ki
i3klo
-ik5l[adiaeresis]n
+ik5län
ik3n
i1ko
ik3re
@@ -1481,34 +1481,34 @@ i3kum
ik5u4t
ik1v
i3ky
-i3k[aring]
-i3k[odiaeresis]
+i3kå
+i3kö
i1la
il4dan
i2lin
-il1j[odiaeresis]
+il1jö
il5k
il5lak
il4lik
ill3s2
3illu
-il5l[adiaeresis]r
+il5lär
il2min
i1lo
il2tj
i3lu
ilufts5
i4lup
-i5l[adiaeresis]
+i5lä
im2b3r
im5sm
im4so
i1mu
-i5m[aring]
-i3m[adiaeresis]
-i5m[odiaeresis]
+i5må
+i3mä
+i5mö
i4nau
-ind5sk[adiaeresis]
+ind5skä
ind5sti
1indu
in4ga
@@ -1524,9 +1524,9 @@ in5kve
1inneh
5inre
1inri
-3inr[adiaeresis]
+3inrä
in4sem
-in3skr[adiaeresis]
+in3skrä
in3sl
ins4m
in3sn
@@ -1535,7 +1535,7 @@ in3sn
in5spr
3instink
3instru
-in4st[aring]
+in4stå
in5te
1intr
in4tra
@@ -1543,7 +1543,7 @@ int3s
i1nu
i4nun
in3ym
-i1n[adiaeresis]
+i1nä
i5oc
i1og
i3ok
@@ -1580,7 +1580,7 @@ is3ku
is4kun
is3ky
i5slam
-is3l[adiaeresis]n
+is3län
is3m
is3n
i2s3p
@@ -1589,7 +1589,7 @@ is3sa
is3se
iss5n
is4s3tr
-iss3t[adiaeresis]
+iss3tä
i1stal
i1stans
ist5att
@@ -1601,10 +1601,10 @@ is5ting
is5tor.
is5tore
ist5ro
-ist[aring]4
+istå4
is5v
i3sy
-i4s[aring]
+i4så
i1t
it5c
i4tei
@@ -1616,7 +1616,7 @@ i3tris
it2t5op
it4t3r
it4tu
-i2t5[aring]
+i2t5Ã¥
4i1u
i1va
i2vak
@@ -1624,10 +1624,10 @@ i1vi
i4vin
iv3r
iv2s
-i1v[aring]
+i1vå
ix2t
ix5tu
-i1[odiaeresis]
+i1ö
1ja
3jakt.
4jarb
@@ -1657,7 +1657,7 @@ j2o
3job
jo4kr
4jolj
-jo5l[odiaeresis]
+jo5lö
jor4din
jord3s4
3jou
@@ -1681,21 +1681,21 @@ juss4
jus4t
jus5ta
jut4sta
-j[adiaeresis]5lo
-j[adiaeresis]l4p5r
-j[adiaeresis]l4sa
-j[adiaeresis]rn3sk
-j[adiaeresis]r5s
-j[odiaeresis]r2s
-j[odiaeresis]s4t
-5j[eacute]
+jä5lo
+jäl4p5r
+jäl4sa
+järn3sk
+jär5s
+jör2s
+jös4t
+5jé
1k2a
3ka.
3kad.
3kade.
ka4dr
2kaf
-5kaf[adiaeresis]
+5kafä
ka3i
ka5ju
2kak
@@ -1748,15 +1748,15 @@ ke4er
4keld
kels4
4kense
-ke5n[aring]
+ke5nå
2kep
3kern
ke2s
kes3s
4kex
2k1f
-kf[odiaeresis]2
-kf[odiaeresis]3ri
+kfö2
+kfö3ri
2k5g4
2kh4
kid3s
@@ -1764,7 +1764,7 @@ kid3s
1kig
kik4s
kilt4
-5kim[aring]
+5kimå
king3r
4kinne
4kins
@@ -1774,7 +1774,7 @@ ki4tr
kiv3s
4kj
5kjol
-k3j[adiaeresis]
+k3jä
2k3k
kl2
1klag
@@ -1796,8 +1796,8 @@ k5lock.
3klos
1klub
4kluk
-1kl[adiaeresis]d
-2k3l[adiaeresis]g
+1kläd
+2k3läg
2k1m
2k2n
k4nal
@@ -1856,12 +1856,12 @@ krings2k
kropps5
kru5stad
k3ryg
-kr[aring]k5s
-kr[aring]4pa
-k5r[adiaeresis]dd.
-kr[adiaeresis]k5l
-4kr[adiaeresis]l
-k3r[adiaeresis]t
+kråk5s
+krå4pa
+k5rädd.
+kräk5l
+4kräl
+k3rät
2ks
ksaks5
k2s5as
@@ -1871,8 +1871,8 @@ ks2k4
ks3kl
ks5kra
ks5kv
-k3sk[adiaeresis]
-k3sk[odiaeresis]
+k3skä
+k3skö
k5slag.
ks2li
k5sly
@@ -1895,17 +1895,17 @@ kt3rin
k5trod
kt5rog
kt3rol
-kt5r[adiaeresis]t
+kt5rät
kt2st
kt5t4
k4tug
k2tut
-k4t[adiaeresis]l
+k4täl
4kug
k5ugn
ku5la
4kuld
-3kul[odiaeresis]
+3kulö
kum5pl
kungs5
5kunn
@@ -1926,22 +1926,22 @@ k2ve
1kvinn
5kvire
k4vo
-k1v[aring]
-3kv[adiaeresis]ll
-k1v[adiaeresis]r
+k1vå
+3kväll
+k1vär
kydds3
ky4lin
3kyrk
-k[adiaeresis]l4m
-5k[adiaeresis]mp
-5k[adiaeresis]nn
-3k[adiaeresis]ns
-3k[adiaeresis]rl
-4k[odiaeresis]g
-k[odiaeresis]ks5t
-5k[odiaeresis]p.
-k[odiaeresis]r4l
-k[odiaeresis]r4sl
+käl4m
+5kämp
+5känn
+3käns
+3kärl
+4kög
+köks5t
+5köp.
+kör4l
+kör4sl
3la.
1lade.
2ladm
@@ -1987,14 +1987,14 @@ le4ge.
le5ig
le2kl
le4kv
-lem4s[odiaeresis]
+lem4sö
2l5enl
3ler.
ler5k
3lern
ler3ste
le5s2l
-le5t[aring]
+le5tå
le3um
le4vu
2lex
@@ -2027,21 +2027,21 @@ li1o
2lip
lis3c
li4sta
-li3str[odiaeresis]
+li3strö
li4vo
livs1
l2jak
4l1jo
1lju
-l5j[aring]
-l1j[adiaeresis]
-l3j[odiaeresis]r
+l5jå
+l1jä
+l3jör
2l1k
l3ke
l5kju
l2kl
lk5lag
-l5kl[adiaeresis]
+l5klä
l2kr
l3k4ra
lk3t
@@ -2066,10 +2066,10 @@ ll5un
llust3ra
ll5v
l5ly
-ll[adiaeresis]ggs5
-l5l[odiaeresis]d
-ll[odiaeresis]r4
-ll5[odiaeresis]rt
+lläggs5
+l5löd
+llör4
+ll5ört
4l1m
l4mol
lm3st
@@ -2090,23 +2090,23 @@ l4pak
l1pe
l1pi
l5pla
-lp5l[odiaeresis]
+lp5lö
lp4st
4l3r
2l1s
l2sc
l4sjo
-l4sj[adiaeresis]
+l4sjä
l2sk
l4skensv
l3ski
lsk3n
l5skot
-l3skr[adiaeresis]
+l3skrä
l3sky
-l3sk[aring]
-lsk[aring]4p
-l3sk[adiaeresis]
+l3skå
+lskå4p
+l3skä
l3slu
l4sm
ls4mo
@@ -2124,15 +2124,15 @@ ls5ter
l3sto
l3sty
l4styg
-l3st[aring]
-l3st[adiaeresis]
-l5st[odiaeresis]
+l3stå
+l3stä
+l5stö
l2su
l5sur
l2sv
l4svi
ls5vid
-l4s[aring]
+l4så
4l1t
lta2tu
l4tef
@@ -2141,7 +2141,7 @@ l4tih
l4tos
lt5rati
l4tret
-l4tr[odiaeresis]
+l4trö
lt5sk
ltu4
lu5i
@@ -2163,8 +2163,8 @@ l1vi
l4vos
lv3ri
lv3sp
-l1v[adiaeresis]
-lv[adiaeresis]v4
+l1vä
+lväv4
lycks5t
ly4gat
lyg3r
@@ -2172,27 +2172,27 @@ lyg3s2
3lyste
5lystn
ly4str
-2l[aring].
-l[aring]g3s
-1l[aring]ng
-l[aring]ng3s
-l[aring]4sk
-l[aring]s5te
-l[aring]4st[aring]
-4l[adiaeresis]c
-l[adiaeresis]g5r
-1l[adiaeresis]nds
-5l[adiaeresis]ngder
-l[adiaeresis]4san
-l[adiaeresis]4sp
-l[adiaeresis]tt3s
-4l[odiaeresis]l
-4l[odiaeresis]m
-3l[odiaeresis]n
-3l[odiaeresis]rer
-1l[odiaeresis]s
-l[odiaeresis]4v[adiaeresis]
-3l[eacute]
+2lå.
+låg3s
+1lång
+lång3s
+lå4sk
+lås5te
+lå4stå
+4läc
+läg5r
+1länds
+5längder
+lä4san
+lä4sp
+lätt3s
+4löl
+4löm
+3lön
+3lörer
+1lös
+lö4vä
+3lé
1ma
ma5fr
mag5n
@@ -2209,7 +2209,7 @@ mani1k
mash5
mas3ko
mask3ro
-ma5sk[odiaeresis]
+ma5skö
mas3ti
mas4v
2mb
@@ -2253,7 +2253,7 @@ ming4o
4mink
min4kr
4minv
-mi3n[odiaeresis]
+mi3nö
mis2
mi5sf
mi4sp
@@ -2275,7 +2275,7 @@ mn5dr
mn3g4
mn5st
mn5tu
-m2n3[aring]
+m2n3Ã¥
1mo
m4od
mo4i
@@ -2298,19 +2298,19 @@ mpos4
mp5p4
mps4k
mp5sp
-m4p[aring]
+m4på
2m1r
4ms
m4sal
m4ske
m3slag
-ms3l[adiaeresis]
+ms3lä
ms2m
mste2
m1sto
m2str
mst3rin
-ms5[adiaeresis]p
+ms5äp
2m1t
4mud
mulls3
@@ -2325,26 +2325,26 @@ mut4sl
2m3v
1myn
mys4te
-m[aring]g4
-1m[aring]l.
-5m[aring]let.
-5m[aring]n.
-4m[aring]r
-m[aring]1s
-4m[adiaeresis]g
-m[adiaeresis]k3
-1m[adiaeresis]n
-m[adiaeresis]ns4
-3m[adiaeresis]rk
-1m[adiaeresis]s
-m[adiaeresis]s5ta
-1m[adiaeresis]t
-m[odiaeresis]4bl
-m[odiaeresis]4gen.
-3m[odiaeresis]j
-m[odiaeresis]r4kl
-3m[odiaeresis]s
-4m[odiaeresis]v
+måg4
+1mål.
+5målet.
+5mån.
+4mår
+må1s
+4mäg
+mäk3
+1män
+mäns4
+3märk
+1mäs
+mäs5ta
+1mät
+mö4bl
+mö4gen.
+3möj
+mör4kl
+3mös
+4möv
1na
3na.
3nad
@@ -2396,15 +2396,15 @@ nd5ros
nd5skal
nd3sn
nds3or
-nds5v[adiaeresis]
-nd5[aring]s
+nds5vä
+nd5Ã¥s
1ne
3ne.
ne4di
5nedl
ne4d3r
ned3s
-ne4d[odiaeresis]
+ne4dö
ne2gr
ne5gres
4nek.
@@ -2436,13 +2436,13 @@ n2go
ng5om
ng3or
ng3rad
-n4gr[odiaeresis]
+n4grö
ng4ser
ngs1k
ngs3pa
ngs5tim
ngs3val
-n4g[odiaeresis]d
+n4göd
2nh
1n2i
4nid
@@ -2465,7 +2465,7 @@ niv5st
n4jar
n3jun
nju4s
-n3j[adiaeresis]
+n3jä
2nk
n4kart
n1ki
@@ -2480,7 +2480,7 @@ nk5sl
nk3sp
nk4tin
n1ku
-n1k[odiaeresis]
+n1kö
2n1l
2n1m
2n1n
@@ -2531,7 +2531,7 @@ nst5vil
n3s4ty
n1sva
ns3vi
-ns3v[adiaeresis]r
+ns3vär
2n1t
n4tark
nter5s4
@@ -2550,13 +2550,13 @@ nt3rin
nt3ris
n4tropin
n4tror
-n4tr[odiaeresis]
+n4trö
nts3c
nt4se
nts5kor
nt4str
n4tut
-n3tv[aring]
+n3två
nufts4
4nug
n5ugn
@@ -2569,18 +2569,18 @@ n3upp
2n1v
ny5gr
n5z
-4n[aring]r
-4n[adiaeresis].
-4n[adiaeresis]c
-3n[adiaeresis]m
-3n[adiaeresis]t
-4n[odiaeresis]g4
-3n[odiaeresis]j
-n[odiaeresis]2ja
-n[odiaeresis]5kr
-4n[odiaeresis]l
-n[odiaeresis]s4
-n[odiaeresis]s5ke
+4når
+4nä.
+4näc
+3näm
+3nät
+4nög4
+3nöj
+nö2ja
+nö5kr
+4nöl
+nös4
+nös5ke
o1a
o2ard
o2b
@@ -2600,12 +2600,12 @@ ods4k
od2st
ods4ti
od5stu
-o3d[adiaeresis]
+o3dä
o1e
offs5t
o4fl
o3fr
-of[odiaeresis]rm[aring]4
+oförmå4
o1g
o4gav
og3gr
@@ -2615,10 +2615,10 @@ o5gly
ognos4
ogno5st
o4gri
-o4gr[odiaeresis]
+o4grö
og3se
og4s3t
-o4g[adiaeresis]
+o4gä
o1i
o4il
o1j
@@ -2631,28 +2631,28 @@ o2kv
o1la
o5lak
ol5au
-olf[odiaeresis]4
+olfö4
1olj
ol3ka
olk3r
ol4ku
-ol4k[adiaeresis]
+ol4kä
oll4si
-oll5sl[adiaeresis]
-ol3l[adiaeresis]
+oll5slä
+ol3lä
olm4s
oln3s
o1lo
olo5kv
ol4sa
-ol4t[aring]
+ol4tå
o1lu
o4lug
o4lur
o1ly
-ol5[aring]r
-o1l[adiaeresis]
-om4br[adiaeresis]
+ol5Ã¥r
+o1lä
+om4brä
o3men
o4mord
om5pa
@@ -2661,7 +2661,7 @@ om3pl
4omra
om1sk
om4ste
-3oms[adiaeresis]t
+3omsät
om4tr
om3tv
on3c
@@ -2680,9 +2680,9 @@ on3tras
on4tre
ont4s
o1ny
-on5[aring]
-o1n[adiaeresis]
-o3n[odiaeresis]
+on5Ã¥
+o1nä
+o3nö
oo4d
oom5s
o3or
@@ -2695,25 +2695,25 @@ op4pr
op4pu
o3pri
op4st
-o3p[aring]
+o3på
o5q
4ora
o3rak
oran3g4
o2rap
1ordn
-or4d5[adiaeresis]
+or4d5ä
o4reh
1orga
5organi
or4gr
-or4g[aring]
+or4gå
o1ri
3orient
4ork
-or4m[odiaeresis]
+or4mö
or4nu
-or4n[adiaeresis]
+or4nä
o1ro
or4pl
or5pr
@@ -2725,9 +2725,9 @@ ort3re
ort3ro
o1ru
o3ry
-o1r[adiaeresis]
-o1r[odiaeresis]
-o3s2f[adiaeresis]
+o1rä
+o1rö
+o3s2fä
osk4l
o1skop
o3som
@@ -2739,7 +2739,7 @@ os5tiker
o5still
os4tr
ost5ron
-ost5r[odiaeresis]
+ost5rö
os3tul
ota2lan
4oti.
@@ -2750,18 +2750,18 @@ o5tro
ot5run
ot3sv
ot5ti
-ot4tr[adiaeresis]
+ot4trä
ott2s
o1tu
o5tun
otvin4
o1ty
-o5t[aring]
-o3t[adiaeresis]
+o5tå
+o3tä
oun4
oup4
4our
-ou3r[odiaeresis]
+ou3rö
ou4s
o3ut3t
o1va
@@ -2771,13 +2771,13 @@ ov3r
ov4si
ov3sl
ovs4me
-o1v[adiaeresis]
+o1vä
o3we
ox5
oy2
-o3[aring]
-o3[adiaeresis]n
-o3[odiaeresis]
+o3Ã¥
+o3än
+o3ö
1pa
4paf
pag4
@@ -2785,7 +2785,7 @@ paki3
pakis4
pa5la
pals5
-pa5l[adiaeresis]
+pa5lä
4pand.
pan4tr
3pap
@@ -2825,7 +2825,7 @@ pi5so
pi5sta
pi5sto
p2j
-3pj[adiaeresis]s
+3pjäs
4p3k2
p2l
p4lac
@@ -2855,7 +2855,7 @@ poly3
3pos
pos4ter
4pov
-po4v[adiaeresis]
+po4vä
2pp
p4part
pp5ask
@@ -2870,10 +2870,10 @@ pp3lin
pp5lis
pp5lu
pp3ly
-pp3l[aring]n
-pp3l[aring]t
-pp3l[adiaeresis]
-pp3l[odiaeresis]
+pp3lån
+pp3låt
+pp3lä
+pp3lö
pp5oc
pp3of
pp3p4
@@ -2882,11 +2882,11 @@ pp3ra
pp3ri
pp3ru
pp3ry
-pp3r[adiaeresis]
+pp3rä
pp3tr
p2pu
p5py
-pp3[aring]
+pp3Ã¥
p2r2
2pra
5prax
@@ -2903,9 +2903,9 @@ p5riol
3pro
pro3g
p3ror
-4pr[aring]
-3pr[adiaeresis]s
-3pr[odiaeresis]v
+4prå
+3präs
+3pröv
2ps
p2sal
3psalm
@@ -2917,8 +2917,8 @@ p3sna
p3sod
p1s4t
p4stak
-p4st[adiaeresis]v
-p2s[odiaeresis]
+p4stäv
+p2sö
2p1t
p3tri
1pu
@@ -2929,11 +2929,11 @@ pul5tr
3punk
pus3t
2p1v
-p[aring]3dr
-3p[adiaeresis]l
-p[adiaeresis]5ro
-4p[odiaeresis]r
-3p[eacute]
+på3dr
+3päl
+pä5ro
+4pör
+3pé
qu4
3que
1ra
@@ -2943,7 +2943,7 @@ raci4t
4radr
ra4du
5ra1e
-2raff[adiaeresis]
+2raffä
ra3fr
ra5is
2rak
@@ -2965,7 +2965,7 @@ r4arn
r4ars
4rart
r3arta
-ra5r[odiaeresis]
+ra5rö
r4as
ras3h
ra2st
@@ -2984,9 +2984,9 @@ r4dos
rd3ran
rd3rat
r4dul
-r3d[aring]
-r3d[adiaeresis]
-r4d[odiaeresis]s
+r3då
+r3dä
+r4dös
1re
3re.
4reaus
@@ -3008,7 +3008,7 @@ r4en.
2reni
2renk
2renl
-re3n[odiaeresis]
+re3nö
re3o
3rer.
3rern
@@ -3019,11 +3019,11 @@ re1sti
4retet
ret3ro
4rety
-re5t[aring]
+re5tå
2revig
4rex
2r1f
-rf[odiaeresis]3ri
+rfö3ri
2r1g
rg3g2
rgs5top
@@ -3033,7 +3033,7 @@ rhands5
4rib
3rifi
2rifr
-r3ifr[aring]
+r3ifrå
3rifu
3rigt
rik2s
@@ -3049,7 +3049,7 @@ ring3r
ri1o
3riot
ri5ple
-ri2st[adiaeresis]
+ri2stä
ri4tut
ri4vis
riv3s
@@ -3057,7 +3057,7 @@ riv3s
r4jis
r3jo
r5ju
-r5j[odiaeresis]
+r5jö
2rk
rk3akt
r4kek
@@ -3065,7 +3065,7 @@ rkes3
r1ki
r3klas
rk2le
-r4kl[odiaeresis]
+r4klö
rk3n
rk4ne
r1ko
@@ -3073,8 +3073,8 @@ r4kod
rk3tr
r1ku
r4kup
-r1k[adiaeresis]
-r5k[odiaeresis]r
+r1kä
+r5kör
2r1l
r5laka
r5lav
@@ -3116,8 +3116,8 @@ ro4sn
ros3v
ro5te
2r1p
-r4pl[odiaeresis]
-r4p[odiaeresis]
+r4plö
+r4pö
4r1r
rra4n
rrd4
@@ -3141,14 +3141,14 @@ rs5koll
rs4kos
rskotts3
r2sku
-r3sk[odiaeresis]
+r3skö
rslags4v
r4sle
r4slo
-r4s5l[odiaeresis]
+r4s5lö
rs4mo
rs5nat
-rs5n[adiaeresis]
+rs5nä
r1sp
r2spl
r2spo
@@ -3162,11 +3162,11 @@ rs5till
r1sto
r4ston
rst4r
-r3str[odiaeresis]
+r3strö
r3stu
r1sv
rs4vag
-r2sv[adiaeresis]
+r2svä
r1sy
2r1t
r2taf
@@ -3175,7 +3175,7 @@ rt4an
r4tins
r4tom
r5trit
-r3tr[adiaeresis]
+r3trä
rt3t
r4tut
rubb5l
@@ -3194,41 +3194,41 @@ ru5sha
5rutig
rut4ra
ru4vi
-5ru[odiaeresis]
+5ruö
2r1v
rv4sj
-rv2s5k[adiaeresis]
+rv2s5kä
r3w
rydd5s
ry5o
-r[aring]ge5l
-4r[aring]l
-r[aring]ng3s
-r[aring]5ra
-r[aring]3st
-r[adiaeresis]ck5s
-4r[adiaeresis]kt
-4r[adiaeresis]m
-r[adiaeresis]ng3s
-r[adiaeresis]ns5t
-4r[adiaeresis]s
-r[adiaeresis]4san
-r[adiaeresis]s3s
-r[adiaeresis]5sti
-r[adiaeresis]v5s
-r[odiaeresis]d5el
-r[odiaeresis]d5r
-r[odiaeresis]d3s
-2r[odiaeresis]g
-r3[odiaeresis]i
-r[odiaeresis]k3s
-r[odiaeresis]ns4t
-4r[odiaeresis]p
-3r[odiaeresis]r
-r[odiaeresis]r4s
-r[odiaeresis]4st
-r[odiaeresis]st3r
-r1[odiaeresis]vr
+råge5l
+4rål
+rång3s
+rå5ra
+rå3st
+räck5s
+4räkt
+4räm
+räng3s
+räns5t
+4räs
+rä4san
+räs3s
+rä5sti
+räv5s
+röd5el
+röd5r
+röd3s
+2rög
+r3öi
+rök3s
+röns4t
+4röp
+3rör
+rör4s
+rö4st
+röst3r
+r1övr
1sa
3sa.
3sad.
@@ -3248,7 +3248,7 @@ sa2mor
sand3s
4sang
2sanl
-s3anl[adiaeresis]
+s3anlä
san3sla
2sap
3s4ar.
@@ -3278,7 +3278,7 @@ s2c
4schm
4schp
3schy
-3sch[odiaeresis]
+3schö
sci3p
4s3d
1se
@@ -3294,17 +3294,17 @@ sek5tr
se5ly
sem2
3sen.
-s5ers[adiaeresis]
+s5ersä
3set.
2sexp
2s1f
-s4f[adiaeresis]r.
-sf[odiaeresis]2
+s4fär.
+sfö2
4s3g2
2sh
5s2haw
shi1s
-s5h[odiaeresis]
+s5hö
1si
sid5s
5sie
@@ -3337,8 +3337,8 @@ s3jakt
s4ju
5sjuk
4sjur
-sj[adiaeresis]ls3
-3sj[odiaeresis]
+själs3
+3sjö
4sk.
2ska.
3s2kada
@@ -3399,7 +3399,7 @@ s5kron
s4kru
5skrub
3skruv
-5skr[adiaeresis]c
+5skräc
sk3s
2skt
3skulp
@@ -3409,12 +3409,12 @@ s4kve
1s2ky
s4kyn
2skyrk
-1sk[aring]
-s4k[aring]l
-5sk[aring]p.
-4sk[aring]r
-5sk[adiaeresis]nk
-3sk[adiaeresis]rv
+1skå
+s4kål
+5skåp.
+4skår
+5skänk
+3skärv
2sl2
4sla.
s5lad.
@@ -3439,15 +3439,15 @@ s3luf
s3lust
3slut
slu4to
-3sl[aring].
-5s4l[aring]r
-s4l[adiaeresis]k
-s5l[adiaeresis]m
-s5l[adiaeresis]nn
-3s4l[adiaeresis]p
-4s3l[adiaeresis]r
-s2l[adiaeresis]t
-3s2l[odiaeresis]j
+3slå.
+5s4lår
+s4läk
+s5läm
+s5länn
+3s4läp
+4s3lär
+s2lät
+3s2löj
2sm
s2mak
3smak.
@@ -3460,13 +3460,13 @@ s2mit
s3mj
5smug
5smyg
-sm[aring]5g
-sm[aring]3k
-sm[aring]3s
-3sm[adiaeresis]d
-3sm[adiaeresis]l
-4sm[adiaeresis]s
-3sm[odiaeresis]r
+små5g
+små3k
+små3s
+3smäd
+3smäl
+4smäs
+3smör
2s2n4
3snab
3s4nac
@@ -3480,14 +3480,14 @@ s5ner
1snitt
s3niv
3snut
-s4n[aring]
-5sn[aring]r
-5sn[adiaeresis]c
-s4n[adiaeresis]r
-3sn[odiaeresis].
-sn[odiaeresis]5g
-3sn[odiaeresis]r
-sn[odiaeresis]3s
+s4nå
+5snår
+5snäc
+s4när
+3snö.
+snö5g
+3snör
+snö3s
1so
3soc
5sock
@@ -3532,21 +3532,21 @@ s3plats
spli4
s4plin
5split
-s5pl[adiaeresis]
+s5plä
4spre
s3pres
4s3pris
3sprit
2spro
s3pry
-3spr[aring]
-5spr[adiaeresis]n
+3språ
+5sprän
s3ps
-1s4p[aring]
-3sp[aring]n
-3sp[aring]r
-5sp[adiaeresis]n
-3sp[odiaeresis]
+1s4på
+3spån
+3spår
+5spän
+3spö
4s1r
4s1s
s5sad
@@ -3557,8 +3557,8 @@ ss5kl
ss3kun
ss1l
ss2lag.
-ss2l[adiaeresis]
-ss2l[odiaeresis]
+ss2lä
+ss2lö
ss3na
sss4
ss3unn
@@ -3612,8 +3612,8 @@ s4tiken
1stit
2stj
s5tju
-3stj[adiaeresis]l
-3stj[adiaeresis]r
+3stjäl
+3stjär
2stm
5stoc
1stol
@@ -3641,25 +3641,25 @@ st5risk
2strumm
s3tryc
5stryk
-5str[aring]k
-3str[aring]l
-3str[adiaeresis]c
-4str[adiaeresis]d
-3str[adiaeresis]ng
-5str[adiaeresis]v
-3str[odiaeresis]m
+5stråk
+3strål
+3sträc
+4sträd
+3sträng
+5sträv
+3ström
2st3s4
st3t
4stv
s3tvis
1sty
2styp
-1st[aring]
-4st[aring]g
-5st[aring]l
-1st[adiaeresis]
-3st[adiaeresis]l
-1st[odiaeresis]
+1stå
+4ståg
+5stål
+1stä
+3stäl
+1stö
1su
su4b
3sug
@@ -3696,12 +3696,12 @@ s5ves
s4vine
4svis
s5vitt
-s5v[aring]d
-3sv[aring]ri
-3sv[adiaeresis]ng
-5sv[adiaeresis]rm.
-s3v[adiaeresis]s
-s3v[adiaeresis]t
+s5våd
+3svåri
+3sväng
+5svärm.
+s3väs
+s3vät
4syk
5syl
3syn
@@ -3712,28 +3712,28 @@ sys4t
sys5ter
syt2
sy5th
-1s[aring]
-5s[aring]g
-4s[aring]k
-2s[aring]lde
-s[aring]ng3
-1s[adiaeresis]
-s4[adiaeresis]d
-2s5[adiaeresis]gg
-s4[adiaeresis]l
-2s[adiaeresis]p
-5s[adiaeresis]s
-3s[adiaeresis]t
-4s[adiaeresis]ta
-1s[odiaeresis]
-4s[odiaeresis]d
-2s[odiaeresis]g
-s5[odiaeresis]ga
-s[odiaeresis]4ko
-4s[odiaeresis]l
-4s[odiaeresis]p
-s[odiaeresis]r2s
-2s3[odiaeresis]rt
+1så
+5såg
+4såk
+2sålde
+sång3
+1sä
+s4äd
+2s5ägg
+s4äl
+2säp
+5säs
+3sät
+4säta
+1sö
+4söd
+2sög
+s5öga
+sö4ko
+4söl
+4söp
+sör2s
+2s3ört
1ta
3ta.
ta1ch
@@ -3801,17 +3801,17 @@ te4kl
5teknik
5teknis
4teld
-5te5l[odiaeresis]
+5te5lö
5tema
4temo
te4mu
ten3g4
5tensi
ten3tr
-te4n[adiaeresis]
-te5n[odiaeresis]r
+te4nä
+te5nör
5ter.
-5teri[odiaeresis]
+5teriö
ter3k4
5term
5terna
@@ -3838,7 +3838,7 @@ t4hen
3tid
5tide
ti4du
-4tid[odiaeresis]
+4tidö
ti4ed
tifts5
ti2gel
@@ -3853,7 +3853,7 @@ t2il
5tilj
3tillst
3tillv
-3till[adiaeresis]
+3tillä
5time
2tind
2tinr
@@ -3867,14 +3867,14 @@ ti2os
3tiva
ti4van
5tivite
-ti2[odiaeresis]
+ti2ö
t2j
4tje
4tjob
2tjou
-4tj[adiaeresis]l
-4tj[adiaeresis]m
-3tj[adiaeresis]n
+4tjäl
+4tjäm
+3tjän
2t3k2
2t3l
2t1m
@@ -3942,19 +3942,19 @@ trus5ta
1tryc
5tryck.
5tryggh
-4tr[aring]k
-5tr[adiaeresis].
-3tr[adiaeresis]d
-tr[adiaeresis]ds4
-3tr[adiaeresis]f
-3tr[adiaeresis]g
-4tr[adiaeresis]k
-t3r[adiaeresis]kn
-t4r[adiaeresis]n
-5tr[adiaeresis]ni
-5tr[odiaeresis]ja
-t4r[odiaeresis]t
-5tr[eacute]
+4tråk
+5trä.
+3träd
+träds4
+3träf
+3träg
+4träk
+t3räkn
+t4rän
+5träni
+5tröja
+t4röt
+5tré
2ts
t5s4and
ts5art
@@ -3970,9 +3970,9 @@ t1ski
ts3kl
tskotts5
t5slot
-ts5l[adiaeresis]k
-ts3n[adiaeresis]
-t3sn[odiaeresis]
+ts5läk
+ts3nä
+t3snö
t2so
ts3ord
ts3pl
@@ -4016,10 +4016,10 @@ tt4sta
t3tu
t4tug
tt1v
-tt4v[aring]
+tt4vå
t3ty
-t3t[adiaeresis]
-t3t[odiaeresis]r
+t3tä
+t3tör
4t5ugn
2tund
3tunga
@@ -4029,9 +4029,9 @@ tung3s
tu5re
2tutb
t3utv
-t3ut[odiaeresis]
+t3utö
tu4vu
-5tu[odiaeresis]
+5tuö
2tv
t1va
4tve
@@ -4039,11 +4039,11 @@ t3vig
3tving
t3vit
3tviv
-t3v[aring]g
-3tv[aring]n
-t3v[adiaeresis]n
-tv[adiaeresis]r3s
-3tv[adiaeresis]tt
+t3våg
+3tvån
+t3vän
+tvär3s
+3tvätt
ty5da
5tyg.
3tyngd
@@ -4051,23 +4051,23 @@ ty5da
ty3pi
5tys
2tz
-3t[aring]g
-t[aring]s4
-4t[aring]t
-t[adiaeresis]c4ko
-4t5[adiaeresis]g
-4t[adiaeresis]m
-4t[adiaeresis]rm
-3t[adiaeresis]vl
-4t[odiaeresis]4d
-t[odiaeresis]5de
-4t[odiaeresis]g
-4t[odiaeresis]p
-t[odiaeresis]4pi
-3t[odiaeresis]rer
-t[odiaeresis]rs3t
-t[odiaeresis]4vas
-5t[eacute]
+3tåg
+tås4
+4tåt
+täc4ko
+4t5äg
+4täm
+4tärm
+3tävl
+4tö4d
+tö5de
+4tög
+4töp
+tö4pi
+3törer
+törs3t
+tö4vas
+5té
u1a
u2b
ub5al
@@ -4086,7 +4086,7 @@ u4du
u4dy
u1e
u2es
-uf4f[adiaeresis]
+uf4fä
uf4tan
uf4to
4u1ga
@@ -4111,33 +4111,33 @@ uk2s
uks5ko
uk3tris
ukt5s
-uk4t[adiaeresis]
+uk4tä
u3ku
uk3v
u1la
ul4di
ulds2m
ul4du
-ul4d[odiaeresis]
+ul4dö
ull3ste
-ull3[adiaeresis]n
+ull3än
u1lo
uls5ti
ul2tr
u3lu
-u1l[adiaeresis]
-u1l[odiaeresis]
-um4f[adiaeresis]
+u1lä
+u1lö
+um4fä
um4so
ums4t
u1mu
-u3m[odiaeresis]r
+u3mör
5underl
-1unders[odiaeresis]
+1undersö
1underv
un4dom
und3r
-un4d[aring]
+un4då
un5g2ef
un3gersk
ung5it
@@ -4162,7 +4162,7 @@ up3lik
1uppg
up4pin
1uppla
-5uppl[adiaeresis]
+5upplä
up4p3r
upp3s
upp5sp
@@ -4175,7 +4175,7 @@ u1ro
u4rob
u4rom
urs5tin
-ur4st[adiaeresis]
+ur4stä
u5ry
u2sak
us5anl
@@ -4187,8 +4187,8 @@ us3ka
us4kla
us4kr
u5sky
-us4k[aring]
-us5l[adiaeresis]
+us4kå
+us5lä
us3n
u2sp
us3pen
@@ -4197,21 +4197,21 @@ us3tig
u3stik
us5tin
ust5ro
-u4st[aring]
-u4st[adiaeresis]
+u4stå
+u4stä
us3v
-u4s[aring]
-u4s[adiaeresis]
-u2s[odiaeresis]
+u4så
+u4sä
+u2sö
u4tak
1utb
u4tef
ute3s
utik2
u5til
-uti3[odiaeresis]
+uti3ö
ut3j
-3utj[adiaeresis]m
+3utjäm
utlands3
u1to
u3top
@@ -4223,20 +4223,20 @@ ut5rop
1utru
2utsid
ut3sl
-3utsl[adiaeresis]
+3utslä
2utt
utt4j
ut1v
3utvec
u5ty
-ut3[odiaeresis]v
+ut3öv
u5u
2u1v
u2vak
u4vj
-u4v[adiaeresis]
-u5[aring]
-u3[odiaeresis]
+u4vä
+u5Ã¥
+u3ö
va5dro
1vagn
2v1akti
@@ -4270,10 +4270,10 @@ vas5ti
ve2k
ve3ke
4veld
-vensk3[adiaeresis]
+vensk3ä
5ventera
ve3ny
-ve5n[odiaeresis]
+ve5nö
4vep
ver5g
3verk
@@ -4311,7 +4311,7 @@ vi4var
2v3k2
2v1l
2v1m
-vm[odiaeresis]rk4
+vmörk4
2v1n4
1vo
4vok.
@@ -4333,10 +4333,10 @@ v3sni
v2so
v1st
vs4te
-vs5tr[aring]
+vs5trå
v5styc
-vs3v[aring]
-v2s[odiaeresis]
+vs3vå
+v2sö
2v1t
vu4d1
v1und
@@ -4344,26 +4344,26 @@ v1und
4vut
2v1v
3vy
-5v[aring]ld
-v[aring]ngs3
-3v[aring]rd
-4v[aring]ri
-v[aring]3ru
-3v[adiaeresis]g
-v[adiaeresis]gg5s
-v[adiaeresis]4l
-v[adiaeresis]ll4s3
-3v[adiaeresis]nl
-3v[adiaeresis]rde
-v[adiaeresis]4ril
-4v[adiaeresis]rj
-5v[adiaeresis]rk
-3v[adiaeresis]rld
-2v[adiaeresis]t
-3v[adiaeresis]x
-4v[odiaeresis]g
-4v[odiaeresis]p
-3v[odiaeresis]r
+5våld
+vångs3
+3vård
+4våri
+vå3ru
+3väg
+vägg5s
+vä4l
+väll4s3
+3vänl
+3värde
+vä4ril
+4värj
+5värk
+3värld
+2vät
+3väx
+4vög
+4vöp
+3vör
1wa
we2
w2h
@@ -4378,7 +4378,7 @@ xk2
xli4
xs4
xti2
-x4t[aring]
+x4tå
2y
y1a
y4bris
@@ -4390,12 +4390,12 @@ y4do
yd3r
yds4
y4du
-y4d[odiaeresis]
+y4dö
y1e
y1ga
y1ge
ygg3r
-yg4g[aring]
+yg4gå
ygs4p
y1i
y1ki
@@ -4407,12 +4407,12 @@ y1la
yl4gj
y3li
yl5k
-yl5l[adiaeresis]
+yl5lä
y1lo
yl4tr
ym2fl
ym4for
-y3m[aring]
+y3må
yng3r
ynk5l
yn4sa
@@ -4430,7 +4430,7 @@ y1ro
yrs4k
yr5st
yr5tu
-y1r[aring]3
+y1rå3
y5scho
ys2st
ys3ta
@@ -4445,9 +4445,9 @@ ytt3r
yt5v
y3va
y3vi
-y3v[adiaeresis]
+y3vä
y5w
-y5[aring]
+y5Ã¥
1za
1ze
ze4ro
@@ -4458,265 +4458,265 @@ zo4nal
z5s
3zu
z4zin
-[aring]1a
-[aring]3dj
-[aring]ds4l
-[aring]1e
-[aring]1f
-[aring]1ga
-[aring]1ge
-[aring]ge2l
-[aring]g3l
-[aring]g3s4k
-[aring]g3st
-[aring]g[aring]4
-[aring]3i
-[aring]1ki
-5[aring]klag
-[aring]k4str[adiaeresis]
-[aring]1la
-1[aring]lder
-[aring]2lin
-[aring]l3k
-[aring]ll4sp
-[aring]l2s5e
-[aring]l3st
-[aring]1l[adiaeresis]
-[aring]1m
-[aring]man4s
-[aring]nd4r
-[aring]n4du
-[aring]ns4t
-[aring]ns4v
-[aring]3o
-[aring]1p
-[aring]2pl
-[aring]5pla
-[aring]4p[odiaeresis]
-[aring]r4do
-[aring]rd4ra
-[aring]rd2s
-[aring]rd4s3t
-[aring]4rel
-[aring]1ri
-[aring]5ror
-5[aring]rsav
-[aring]r5s2li
-[aring]r2sv
-[aring]r5[odiaeresis]
-[aring]s4ke
-[aring]s3n
-[aring]ss4
-[aring]s4skr
-[aring]s4t
-[aring]te2
-[aring]t3ri
-[aring]3tr[aring]
-[aring]t2sj
-[aring]tt5s
-[aring]1v
-[adiaeresis]1a
-[adiaeresis]2b
-2[adiaeresis]c
-[adiaeresis]ck5v
-[adiaeresis]2d
-[adiaeresis]dd3s
-[adiaeresis]d4du
-[adiaeresis]de4s
-[adiaeresis]d3r
-[adiaeresis]d5se
-[adiaeresis]d3st
-[adiaeresis]3e
-[adiaeresis]1ga
-[adiaeresis]1ge
-[adiaeresis]g4go
-[adiaeresis]g1l
-[adiaeresis]g3r
-[adiaeresis]g4re
-[adiaeresis]g3se
-[adiaeresis]3i
-[adiaeresis]5jo
-4[adiaeresis]k
-[adiaeresis]1ki
-[adiaeresis]k3n
-[adiaeresis]k3r
-[adiaeresis]1la
-[adiaeresis]l4pap
-[adiaeresis]l4seg
-[adiaeresis]ls5kog
-[adiaeresis]l4slu
-[adiaeresis]l2t3r
-[adiaeresis]l2tu
-[adiaeresis]l4vin
-[adiaeresis]mp3l
-4[adiaeresis]ndligh
-[adiaeresis]nd3r
-[adiaeresis]nd1st
-[adiaeresis]ng5r
-[adiaeresis]nni3s
-[adiaeresis]nn3s
-[adiaeresis]4no
-[adiaeresis]ns1l
-[adiaeresis]n4st
-[adiaeresis]ns5te
-[adiaeresis]n4sv
-[adiaeresis]n2t3r
-[adiaeresis]3pe
-[adiaeresis]pp3l
-[adiaeresis]4pr
-[adiaeresis]p4st
-[adiaeresis]4rap
-[adiaeresis]r2bre
-[adiaeresis]rg5l
-[adiaeresis]r4gr
-[adiaeresis]1ri
-[adiaeresis]rib4
-[adiaeresis]r4k[adiaeresis]
-[adiaeresis]r4nis
-[adiaeresis]rn3st
-[adiaeresis]r2n[aring]
-[adiaeresis]r4n[odiaeresis]
-[adiaeresis]r5ob
-[adiaeresis]5rol
-[adiaeresis]3rop
-[adiaeresis]5ror
-[adiaeresis]5ros
-[adiaeresis]r2si
-[adiaeresis]r4sko
-[adiaeresis]r2so
-[adiaeresis]r4sp
-[adiaeresis]r2sv
-[adiaeresis]r4tand
-[adiaeresis]r2tr
-[adiaeresis]rt3s
-4[adiaeresis]s
-[adiaeresis]s3pa
-[adiaeresis]s5pi
-[adiaeresis]s4sk
-[adiaeresis]s4sp
-[adiaeresis]s3ta
-[adiaeresis]st3r
-[adiaeresis]4st[adiaeresis]
-[adiaeresis]4s[aring]
-2[adiaeresis]t
-[adiaeresis]3to
-[adiaeresis]5tre
-[adiaeresis]t4s3k
-[adiaeresis]t5te
-[adiaeresis]t4top
-[adiaeresis]tt3r
-[adiaeresis]t4tu
-[adiaeresis]t4tv
-[adiaeresis]1va
-[adiaeresis]2vak
-[adiaeresis]3vi
-[adiaeresis]5vu
-[odiaeresis]1a
-[odiaeresis]2d
-[odiaeresis]4dak
-[odiaeresis]4dal
-[odiaeresis]4darv
-[odiaeresis]de4s5
-[odiaeresis]4dis
-[odiaeresis]d3ra
-[odiaeresis]d2s
-[odiaeresis]d3se
-[odiaeresis]4du
-[odiaeresis]4d[odiaeresis]
-[odiaeresis]1e
-[odiaeresis]1ga
-[odiaeresis]g5ak
-[odiaeresis]5gar
-1[odiaeresis]gd
-[odiaeresis]1ge
-[odiaeresis]5ger
-[odiaeresis]gg4
-[odiaeresis]g1l
-[odiaeresis]g2n
-[odiaeresis]gn3e
-1[odiaeresis]go
-[odiaeresis]g3si
-[odiaeresis]g3sk
-[odiaeresis]1i
-[odiaeresis]3jo
-[odiaeresis]j4sv
-[odiaeresis]4karm
-[odiaeresis]1ki
-[odiaeresis]k3n
-[odiaeresis]k2s
-[odiaeresis]k3sl
-[odiaeresis]1la
-[odiaeresis]l4kv
-[odiaeresis]l4k[odiaeresis]
-[odiaeresis]l2p
-[odiaeresis]5l[adiaeresis]
-[odiaeresis]man4
-[odiaeresis]m2kl
-[odiaeresis]4nal
-[odiaeresis]2nom
-[odiaeresis]ns3ke
-[odiaeresis]n4so
-[odiaeresis]nst3r
-[odiaeresis]3pe
-[odiaeresis]4pel
-[odiaeresis]3pi
-[odiaeresis]p5li
-[odiaeresis]5plo
-1[odiaeresis]ppn
-[odiaeresis]4pr
-[odiaeresis]3rande
-[odiaeresis]3ras
-[odiaeresis]4rask
-[odiaeresis]rb4
-[odiaeresis]r3d4r
-[odiaeresis]r1eni
-[odiaeresis]3res
-[odiaeresis]4restr
-[odiaeresis]3ret
-[odiaeresis]r5evig
-[odiaeresis]r3g
-[odiaeresis]1ri
-[odiaeresis]5rig
-[odiaeresis]3ring
-[odiaeresis]r3int
-[odiaeresis]r5ir
-[odiaeresis]r5iv
-[odiaeresis]r4kal
-[odiaeresis]r1k2l
-[odiaeresis]r5kli
-[odiaeresis]r4nis
-[odiaeresis]r3ol
-[odiaeresis]r1or
-[odiaeresis]r2p5la
-[odiaeresis]r1s2k
-[odiaeresis]r3sl
-[odiaeresis]r4sl[adiaeresis]
-[odiaeresis]r5te
-[odiaeresis]rt5s
-[odiaeresis]r1u
-[odiaeresis]r3vr
-[odiaeresis]r3y
-[odiaeresis]r1[adiaeresis]
-[odiaeresis]r[odiaeresis]4d
-[odiaeresis]2sak
-[odiaeresis]s3n
-[odiaeresis]s4sj
-[odiaeresis]s2sk
-[odiaeresis]s4sp
-[odiaeresis]s3ta
-[odiaeresis]st3v
-[odiaeresis]2tak
-[odiaeresis]ts5ko
-[odiaeresis]t4st
-[odiaeresis]1v
-[odiaeresis]ve4
-[odiaeresis]ver1
-5[odiaeresis]vere
-[odiaeresis]2vj
-[odiaeresis]v3ra
-[odiaeresis]v3ri
-[odiaeresis]v4sk
-[eacute]3e
+Ã¥1a
+Ã¥3dj
+Ã¥ds4l
+Ã¥1e
+Ã¥1f
+Ã¥1ga
+Ã¥1ge
+Ã¥ge2l
+Ã¥g3l
+Ã¥g3s4k
+Ã¥g3st
+ågå4
+Ã¥3i
+Ã¥1ki
+5Ã¥klag
+åk4strä
+Ã¥1la
+1Ã¥lder
+Ã¥2lin
+Ã¥l3k
+Ã¥ll4sp
+Ã¥l2s5e
+Ã¥l3st
+å1lä
+Ã¥1m
+Ã¥man4s
+Ã¥nd4r
+Ã¥n4du
+Ã¥ns4t
+Ã¥ns4v
+Ã¥3o
+Ã¥1p
+Ã¥2pl
+Ã¥5pla
+å4pö
+Ã¥r4do
+Ã¥rd4ra
+Ã¥rd2s
+Ã¥rd4s3t
+Ã¥4rel
+Ã¥1ri
+Ã¥5ror
+5Ã¥rsav
+Ã¥r5s2li
+Ã¥r2sv
+år5ö
+Ã¥s4ke
+Ã¥s3n
+Ã¥ss4
+Ã¥s4skr
+Ã¥s4t
+Ã¥te2
+Ã¥t3ri
+å3trå
+Ã¥t2sj
+Ã¥tt5s
+Ã¥1v
+ä1a
+ä2b
+2äc
+äck5v
+ä2d
+ädd3s
+äd4du
+äde4s
+äd3r
+äd5se
+äd3st
+ä3e
+ä1ga
+ä1ge
+äg4go
+äg1l
+äg3r
+äg4re
+äg3se
+ä3i
+ä5jo
+4äk
+ä1ki
+äk3n
+äk3r
+ä1la
+äl4pap
+äl4seg
+äls5kog
+äl4slu
+äl2t3r
+äl2tu
+äl4vin
+ämp3l
+4ändligh
+änd3r
+änd1st
+äng5r
+änni3s
+änn3s
+ä4no
+äns1l
+än4st
+äns5te
+än4sv
+än2t3r
+ä3pe
+äpp3l
+ä4pr
+äp4st
+ä4rap
+är2bre
+ärg5l
+är4gr
+ä1ri
+ärib4
+är4kä
+är4nis
+ärn3st
+är2nå
+är4nö
+är5ob
+ä5rol
+ä3rop
+ä5ror
+ä5ros
+är2si
+är4sko
+är2so
+är4sp
+är2sv
+är4tand
+är2tr
+ärt3s
+4äs
+äs3pa
+äs5pi
+äs4sk
+äs4sp
+äs3ta
+äst3r
+ä4stä
+ä4så
+2ät
+ä3to
+ä5tre
+ät4s3k
+ät5te
+ät4top
+ätt3r
+ät4tu
+ät4tv
+ä1va
+ä2vak
+ä3vi
+ä5vu
+ö1a
+ö2d
+ö4dak
+ö4dal
+ö4darv
+öde4s5
+ö4dis
+öd3ra
+öd2s
+öd3se
+ö4du
+ö4dö
+ö1e
+ö1ga
+ög5ak
+ö5gar
+1ögd
+ö1ge
+ö5ger
+ögg4
+ög1l
+ög2n
+ögn3e
+1ögo
+ög3si
+ög3sk
+ö1i
+ö3jo
+öj4sv
+ö4karm
+ö1ki
+ök3n
+ök2s
+ök3sl
+ö1la
+öl4kv
+öl4kö
+öl2p
+ö5lä
+öman4
+öm2kl
+ö4nal
+ö2nom
+öns3ke
+ön4so
+önst3r
+ö3pe
+ö4pel
+ö3pi
+öp5li
+ö5plo
+1öppn
+ö4pr
+ö3rande
+ö3ras
+ö4rask
+örb4
+ör3d4r
+ör1eni
+ö3res
+ö4restr
+ö3ret
+ör5evig
+ör3g
+ö1ri
+ö5rig
+ö3ring
+ör3int
+ör5ir
+ör5iv
+ör4kal
+ör1k2l
+ör5kli
+ör4nis
+ör3ol
+ör1or
+ör2p5la
+ör1s2k
+ör3sl
+ör4slä
+ör5te
+ört5s
+ör1u
+ör3vr
+ör3y
+ör1ä
+örö4d
+ö2sak
+ös3n
+ös4sj
+ös2sk
+ös4sp
+ös3ta
+öst3v
+ö2tak
+öts5ko
+öt4st
+ö1v
+öve4
+över1
+5övere
+ö2vj
+öv3ra
+öv3ri
+öv4sk
+é3e
}
% end pattern data
diff --git a/Master/texmf-dist/tex/context/patterns/lang-tr.pat b/Master/texmf-dist/tex/context/patterns/lang-tr.pat
index 06a1bf80204..df6c4db4a9a 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-tr.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-tr.pat
@@ -29,7 +29,7 @@
\patterns {
2a1
2e1
-2[quotedblright]1
+2â€1
2o1
2u1
1b1
@@ -50,770 +50,770 @@
1v1
1y1
1z1
-2b[acircumflex].
-2b[icircumflex].
+2bâ.
+2bî.
2bi.
-2b[ocircumflex].
-2b[odiaeresis].
-2b[udiaeresis].
-2c[acircumflex].
-2c[icircumflex].
+2bô.
+2bö.
+2bü.
+2câ.
+2cî.
2ci.
-2c[ocircumflex].
-2c[odiaeresis].
-2c[udiaeresis].
-2[ccedilla]a.
-2[ccedilla][acircumflex].
-2[ccedilla]e.
-2[ccedilla][quotedblright].
-2[ccedilla][icircumflex].
-2[ccedilla]i.
-2[ccedilla]o.
-2[ccedilla][ocircumflex].
-2[ccedilla][odiaeresis].
-2[ccedilla]u.
-2[ccedilla][udiaeresis].
-2d[acircumflex].
-2d[icircumflex].
+2cô.
+2cö.
+2cü.
+2ça.
+2çâ.
+2çe.
+2çâ€.
+2çî.
+2çi.
+2ço.
+2çô.
+2çö.
+2çu.
+2çü.
+2dâ.
+2dî.
2di.
-2d[ocircumflex].
-2d[odiaeresis].
-2d[udiaeresis].
-2f[acircumflex].
-2f[icircumflex].
+2dô.
+2dö.
+2dü.
+2fâ.
+2fî.
2fi.
-2f[ocircumflex].
-2f[odiaeresis].
-2f[udiaeresis].
-2g[acircumflex].
-2g[icircumflex].
+2fô.
+2fö.
+2fü.
+2gâ.
+2gî.
2gi.
-2g[ocircumflex].
-2g[odiaeresis].
-2g[udiaeresis].
-2[gbreve]a.
-2[gbreve][acircumflex].
-2[gbreve]e.
-2[gbreve][quotedblright].
-2[gbreve][icircumflex].
-2[gbreve]i.
-2[gbreve]o.
-2[gbreve][ocircumflex].
-2[gbreve][odiaeresis].
-2[gbreve]u.
-2[gbreve][udiaeresis].
-2h[acircumflex].
-2h[icircumflex].
+2gô.
+2gö.
+2gü.
+2ÄŸa.
+2ğâ.
+2ÄŸe.
+2ÄŸâ€.
+2ğî.
+2ÄŸi.
+2ÄŸo.
+2ğô.
+2ğö.
+2ÄŸu.
+2ğü.
+2hâ.
+2hî.
2hi.
-2h[ocircumflex].
-2h[odiaeresis].
-2h[udiaeresis].
-2j[acircumflex].
-2j[icircumflex].
+2hô.
+2hö.
+2hü.
+2jâ.
+2jî.
2ji.
-2j[ocircumflex].
-2j[odiaeresis].
-2j[udiaeresis].
-2k[acircumflex].
-2k[icircumflex].
+2jô.
+2jö.
+2jü.
+2kâ.
+2kî.
2ki.
-2k[ocircumflex].
-2k[odiaeresis].
-2k[udiaeresis].
-2l[acircumflex].
-2l[icircumflex].
+2kô.
+2kö.
+2kü.
+2lâ.
+2lî.
2li.
-2l[ocircumflex].
-2l[odiaeresis].
-2l[udiaeresis].
-2m[acircumflex].
-2m[icircumflex].
+2lô.
+2lö.
+2lü.
+2mâ.
+2mî.
2mi.
-2m[ocircumflex].
-2m[odiaeresis].
-2m[udiaeresis].
-2n[acircumflex].
-2n[icircumflex].
+2mô.
+2mö.
+2mü.
+2nâ.
+2nî.
2ni.
-2n[ocircumflex].
-2n[odiaeresis].
-2n[udiaeresis].
-2[ntilde]a.
-2[ntilde][acircumflex].
-2[ntilde]e.
-2[ntilde][quotedblright].
-2[ntilde][icircumflex].
-2[ntilde]i.
-2[ntilde]o.
-2[ntilde][ocircumflex].
-2[ntilde][odiaeresis].
-2[ntilde]u.
-2[ntilde][udiaeresis].
-2p[acircumflex].
-2p[icircumflex].
+2nô.
+2nö.
+2nü.
+2ña.
+2ñâ.
+2ñe.
+2ñâ€.
+2ñî.
+2ñi.
+2ño.
+2ñô.
+2ñö.
+2ñu.
+2ñü.
+2pâ.
+2pî.
2pi.
-2p[ocircumflex].
-2p[odiaeresis].
-2p[udiaeresis].
-2r[acircumflex].
-2r[icircumflex].
+2pô.
+2pö.
+2pü.
+2râ.
+2rî.
2ri.
-2r[ocircumflex].
-2r[odiaeresis].
-2r[udiaeresis].
-2s[acircumflex].
-2s[icircumflex].
+2rô.
+2rö.
+2rü.
+2sâ.
+2sî.
2si.
-2s[ocircumflex].
-2s[odiaeresis].
-2s[udiaeresis].
-2[scedilla]a.
-2[scedilla][acircumflex].
-2[scedilla]e.
-2[scedilla][quotedblright].
-2[scedilla][icircumflex].
-2[scedilla]i.
-2[scedilla]o.
-2[scedilla][ocircumflex].
-2[scedilla][odiaeresis].
-2[scedilla]u.
-2[scedilla][udiaeresis].
-2t[acircumflex].
-2t[icircumflex].
+2sô.
+2sö.
+2sü.
+2ÅŸa.
+2şâ.
+2ÅŸe.
+2ÅŸâ€.
+2şî.
+2ÅŸi.
+2ÅŸo.
+2şô.
+2şö.
+2ÅŸu.
+2şü.
+2tâ.
+2tî.
2ti.
-2t[ocircumflex].
-2t[odiaeresis].
-2t[udiaeresis].
-2v[acircumflex].
-2v[icircumflex].
+2tô.
+2tö.
+2tü.
+2vâ.
+2vî.
2vi.
-2v[ocircumflex].
-2v[odiaeresis].
-2v[udiaeresis].
-2y[acircumflex].
-2y[icircumflex].
+2vô.
+2vö.
+2vü.
+2yâ.
+2yî.
2yi.
-2y[ocircumflex].
-2y[odiaeresis].
-2y[udiaeresis].
-2z[acircumflex].
-2z[icircumflex].
+2yô.
+2yö.
+2yü.
+2zâ.
+2zî.
2zi.
-2z[ocircumflex].
-2z[odiaeresis].
-2z[udiaeresis].
+2zô.
+2zö.
+2zü.
2e2cek.
2bb
2bc
-2b[ccedilla]
+2bç
2bd
2bf
2bg
-2b[gbreve]
+2bÄŸ
2bh
2bj
2bk
2bl
2bm
2bn
-2b[ntilde]
+2bñ
2bp
2br
2bs
-2b[scedilla]
+2bÅŸ
2bt
2bv
2by
2bz
2cb
2cc
-2c[ccedilla]
+2cç
2cd
2cf
2cg
-2c[gbreve]
+2cÄŸ
2ch
2cj
2ck
2cl
2cm
2cn
-2c[ntilde]
+2cñ
2cp
2cr
2cs
-2c[scedilla]
+2cÅŸ
2ct
2cv
2cy
2cz
-2[ccedilla]b
-2[ccedilla]c
-2[ccedilla][ccedilla]
-2[ccedilla]d
-2[ccedilla]f
-2[ccedilla]g
-2[ccedilla][gbreve]
-2[ccedilla]h
-2[ccedilla]j
-2[ccedilla]k
-2[ccedilla]l
-2[ccedilla]m
-2[ccedilla]n
-2[ccedilla][ntilde]
-2[ccedilla]p
-2[ccedilla]r
-2[ccedilla]s
-2[ccedilla][scedilla]
-2[ccedilla]t
-2[ccedilla]v
-2[ccedilla]y
-2[ccedilla]z
+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
2db
2dc
-2d[ccedilla]
+2dç
2dd
2df
2dg
-2d[gbreve]
+2dÄŸ
2dh
2dj
2dk
2dl
2dm
2dn
-2d[ntilde]
+2dñ
2dp
2dr
2ds
-2d[scedilla]
+2dÅŸ
2dt
2dv
2dy
2dz
2fb
2fc
-2f[ccedilla]
+2fç
2fd
2ff
2fg
-2f[gbreve]
+2fÄŸ
2fh
2fj
2fk
2fl
2fm
2fn
-2f[ntilde]
+2fñ
2fp
2fr
2fs
-2f[scedilla]
+2fÅŸ
2ft
2fv
2fy
2fz
2gb
2gc
-2g[ccedilla]
+2gç
2gd
2gf
2gg
-2g[gbreve]
+2gÄŸ
2gh
2gj
2gk
2gl
2gm
2gn
-2g[ntilde]
+2gñ
2gp
2gr
2gs
-2g[scedilla]
+2gÅŸ
2gt
2gv
2gy
2gz
-2[gbreve]b
-2[gbreve]c
-2[gbreve][ccedilla]
-2[gbreve]d
-2[gbreve]f
-2[gbreve]g
-2[gbreve][gbreve]
-2[gbreve]h
-2[gbreve]j
-2[gbreve]k
-2[gbreve]l
-2[gbreve]m
-2[gbreve]n
-2[gbreve][ntilde]
-2[gbreve]p
-2[gbreve]r
-2[gbreve]s
-2[gbreve][scedilla]
-2[gbreve]t
-2[gbreve]v
-2[gbreve]y
-2[gbreve]z
+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
2hb
2hc
-2h[ccedilla]
+2hç
2hd
2hf
2hg
-2h[gbreve]
+2hÄŸ
2hh
2hj
2hk
2hl
2hm
2hn
-2h[ntilde]
+2hñ
2hp
2hr
2hs
-2h[scedilla]
+2hÅŸ
2ht
2hv
2hy
2hz
2jb
2jc
-2j[ccedilla]
+2jç
2jd
2jf
2jg
-2j[gbreve]
+2jÄŸ
2jh
2jj
2jk
2jl
2jm
2jn
-2j[ntilde]
+2jñ
2jp
2jr
2js
-2j[scedilla]
+2jÅŸ
2jt
2jv
2jy
2jz
2kb
2kc
-2k[ccedilla]
+2kç
2kd
2kf
2kg
-2k[gbreve]
+2kÄŸ
2kh
2kj
2kk
2kl
2km
2kn
-2k[ntilde]
+2kñ
2kp
2kr
2ks
-2k[scedilla]
+2kÅŸ
2kt
2kv
2ky
2kz
2lb
2lc
-2l[ccedilla]
+2lç
2ld
2lf
2lg
-2l[gbreve]
+2lÄŸ
2lh
2lj
2lk
2ll
2lm
2ln
-2l[ntilde]
+2lñ
2lp
2lr
2ls
-2l[scedilla]
+2lÅŸ
2lt
2lv
2ly
2lz
2mb
2mc
-2m[ccedilla]
+2mç
2md
2mf
2mg
-2m[gbreve]
+2mÄŸ
2mh
2mj
2mk
2ml
2mm
2mn
-2m[ntilde]
+2mñ
2mp
2mr
2ms
-2m[scedilla]
+2mÅŸ
2mt
2mv
2my
2mz
2nb
2nc
-2n[ccedilla]
+2nç
2nd
2nf
2ng
-2n[gbreve]
+2nÄŸ
2nh
2nj
2nk
2nl
2nm
2nn
-2n[ntilde]
+2nñ
2np
2nr
2ns
-2n[scedilla]
+2nÅŸ
2nt
2nv
2ny
2nz
-2[ntilde]b
-2[ntilde]c
-2[ntilde][ccedilla]
-2[ntilde]d
-2[ntilde]f
-2[ntilde]g
-2[ntilde][gbreve]
-2[ntilde]h
-2[ntilde]j
-2[ntilde]k
-2[ntilde]l
-2[ntilde]m
-2[ntilde]n
-2[ntilde][ntilde]
-2[ntilde]p
-2[ntilde]r
-2[ntilde]s
-2[ntilde][scedilla]
-2[ntilde]t
-2[ntilde]v
-2[ntilde]y
-2[ntilde]z
+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[ccedilla]
+2pç
2pd
2pf
2pg
-2p[gbreve]
+2pÄŸ
2ph
2pj
2pk
2pl
2pm
2pn
-2p[ntilde]
+2pñ
2pp
2pr
2ps
-2p[scedilla]
+2pÅŸ
2pt
2pv
2py
2pz
2rb
2rc
-2r[ccedilla]
+2rç
2rd
2rf
2rg
-2r[gbreve]
+2rÄŸ
2rh
2rj
2rk
2rl
2rm
2rn
-2r[ntilde]
+2rñ
2rp
2rr
2rs
-2r[scedilla]
+2rÅŸ
2rt
2rv
2ry
2rz
2sb
2sc
-2s[ccedilla]
+2sç
2sd
2sf
2sg
-2s[gbreve]
+2sÄŸ
2sh
2sj
2sk
2sl
2sm
2sn
-2s[ntilde]
+2sñ
2sp
2sr
2ss
-2s[scedilla]
+2sÅŸ
2st
2sv
2sy
2sz
-2[scedilla]b
-2[scedilla]c
-2[scedilla][ccedilla]
-2[scedilla]d
-2[scedilla]f
-2[scedilla]g
-2[scedilla][gbreve]
-2[scedilla]h
-2[scedilla]j
-2[scedilla]k
-2[scedilla]l
-2[scedilla]m
-2[scedilla]n
-2[scedilla][ntilde]
-2[scedilla]p
-2[scedilla]r
-2[scedilla]s
-2[scedilla][scedilla]
-2[scedilla]t
-2[scedilla]v
-2[scedilla]y
-2[scedilla]z
+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
2tb
2tc
-2t[ccedilla]
+2tç
2td
2tf
2tg
-2t[gbreve]
+2tÄŸ
2th
2tj
2tk
2tl
2tm
2tn
-2t[ntilde]
+2tñ
2tp
2tr
2ts
-2t[scedilla]
+2tÅŸ
2tt
2tv
2ty
2tz
2vb
2vc
-2v[ccedilla]
+2vç
2vd
2vf
2vg
-2v[gbreve]
+2vÄŸ
2vh
2vj
2vk
2vl
2vm
2vn
-2v[ntilde]
+2vñ
2vp
2vr
2vs
-2v[scedilla]
+2vÅŸ
2vt
2vv
2vy
2vz
2yb
2yc
-2y[ccedilla]
+2yç
2yd
2yf
2yg
-2y[gbreve]
+2yÄŸ
2yh
2yj
2yk
2yl
2ym
2yn
-2y[ntilde]
+2yñ
2yp
2yr
2ys
-2y[scedilla]
+2yÅŸ
2yt
2yv
2yy
2yz
2zb
2zc
-2z[ccedilla]
+2zç
2zd
2zf
2zg
-2z[gbreve]
+2zÄŸ
2zh
2zj
2zk
2zl
2zm
2zn
-2z[ntilde]
+2zñ
2zp
2zr
2zs
-2z[scedilla]
+2zÅŸ
2zt
2zv
2zy
2zz
a3a2
-a3[acircumflex]2
+a3â2
a3e2
-a3[quotedblright]2
-a3[icircumflex]2
+a3â€2
+a3î2
a3i2
a3o2
-a3[ocircumflex]2
-a3[odiaeresis]2
+a3ô2
+a3ö2
a3u2
-a3[udiaeresis]2
-[acircumflex]3a2
-[acircumflex]3[acircumflex]2
-[acircumflex]3e2
-[acircumflex]3[quotedblright]2
-[acircumflex]3[icircumflex]2
-[acircumflex]3i2
-[acircumflex]3o2
-[acircumflex]3[ocircumflex]2
-[acircumflex]3[odiaeresis]2
-[acircumflex]3u2
-[acircumflex]3[udiaeresis]2
+a3ü2
+â3a2
+â3â2
+â3e2
+â3â€2
+â3î2
+â3i2
+â3o2
+â3ô2
+â3ö2
+â3u2
+â3ü2
e3a2
-e3[acircumflex]2
+e3â2
e3e2
-e3[quotedblright]2
-e3[icircumflex]2
+e3â€2
+e3î2
e3i2
e3o2
-e3[ocircumflex]2
-e3[odiaeresis]2
+e3ô2
+e3ö2
e3u2
-e3[udiaeresis]2
-[quotedblright]3a2
-[quotedblright]3[acircumflex]2
-[quotedblright]3e2
-[quotedblright]3[quotedblright]2
-[quotedblright]3[icircumflex]2
-[quotedblright]3i2
-[quotedblright]3o2
-[quotedblright]3[ocircumflex]2
-[quotedblright]3[odiaeresis]2
-[quotedblright]3u2
-[quotedblright]3[udiaeresis]2
-[icircumflex]3a2
-[icircumflex]3[acircumflex]2
-[icircumflex]3e2
-[icircumflex]3[quotedblright]2
-[icircumflex]3[icircumflex]2
-[icircumflex]3i2
-[icircumflex]3o2
-[icircumflex]3[ocircumflex]2
-[icircumflex]3[odiaeresis]2
-[icircumflex]3u2
-[icircumflex]3[udiaeresis]2
+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
i3a2
-i3[acircumflex]2
+i3â2
i3e2
-i3[quotedblright]2
-i3[icircumflex]2
+i3â€2
+i3î2
i3i2
i3o2
-i3[ocircumflex]2
-i3[odiaeresis]2
+i3ô2
+i3ö2
i3u2
-i3[udiaeresis]2
+i3ü2
o3a2
-o3[acircumflex]2
+o3â2
o3e2
-o3[quotedblright]2
-o3[icircumflex]2
+o3â€2
+o3î2
o3i2
o3o2
-o3[ocircumflex]2
-o3[odiaeresis]2
+o3ô2
+o3ö2
o3u2
-o3[udiaeresis]2
-[ocircumflex]3a2
-[ocircumflex]3[acircumflex]2
-[ocircumflex]3e2
-[ocircumflex]3[quotedblright]2
-[ocircumflex]3[icircumflex]2
-[ocircumflex]3i2
-[ocircumflex]3o2
-[ocircumflex]3[ocircumflex]2
-[ocircumflex]3[odiaeresis]2
-[ocircumflex]3u2
-[ocircumflex]3[udiaeresis]2
-[odiaeresis]3a2
-[odiaeresis]3[acircumflex]2
-[odiaeresis]3e2
-[odiaeresis]3[quotedblright]2
-[odiaeresis]3[icircumflex]2
-[odiaeresis]3i2
-[odiaeresis]3o2
-[odiaeresis]3[ocircumflex]2
-[odiaeresis]3[odiaeresis]2
-[odiaeresis]3u2
-[odiaeresis]3[udiaeresis]2
+o3ü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
u3a2
-u3[acircumflex]2
+u3â2
u3e2
-u3[quotedblright]2
-u3[icircumflex]2
+u3â€2
+u3î2
u3i2
u3o2
-u3[ocircumflex]2
-u3[odiaeresis]2
+u3ô2
+u3ö2
u3u2
-u3[udiaeresis]2
-[udiaeresis]3a2
-[udiaeresis]3[acircumflex]2
-[udiaeresis]3e2
-[udiaeresis]3[quotedblright]2
-[udiaeresis]3[icircumflex]2
-[udiaeresis]3i2
-[udiaeresis]3o2
-[udiaeresis]3[ocircumflex]2
-[udiaeresis]3[odiaeresis]2
-[udiaeresis]3u2
-[udiaeresis]3[udiaeresis]2
-.[acircumflex]2
-.[icircumflex]2
+u3ü2
+ü3a2
+ü3â2
+ü3e2
+ü3â€2
+ü3î2
+ü3i2
+ü3o2
+ü3ô2
+ü3ö2
+ü3u2
+ü3ü2
+.â2
+.î2
.i2
-.[ocircumflex]2
-.[odiaeresis]2
-.[udiaeresis]2
+.ô2
+.ö2
+.ü2
tu4r4k
m1t4rak
}
diff --git a/Master/texmf-dist/tex/context/patterns/lang-uk.hyp b/Master/texmf-dist/tex/context/patterns/lang-uk.hyp
index 5865fb54fe2..cef1757a292 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-uk.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-uk.hyp
@@ -1,6 +1,6 @@
% context hyphenation file, see lang-all.xml for original comment
-% source of data: ukhyphen.tex
+% source of data: ukhyphen.tex ukhyph.tex
% begin description data
diff --git a/Master/texmf-dist/tex/context/patterns/lang-uk.pat b/Master/texmf-dist/tex/context/patterns/lang-uk.pat
index 968788f8b0f..1427919834b 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-uk.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-uk.pat
@@ -1,6 +1,6 @@
% context pattern file, see lang-all.xml for original comment
-% source of data: ukhyphen.tex
+% source of data: ukhyphen.tex ukhyph.tex
% begin description data
diff --git a/Master/texmf-dist/tex/context/patterns/lang-us.hyp b/Master/texmf-dist/tex/context/patterns/lang-us.hyp
new file mode 100644
index 00000000000..b349d011d30
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-us.hyp
@@ -0,0 +1,25 @@
+% context hyphenation file, see lang-us.rme for original comment
+
+% source of data: ushyphmax.tex ushyph.tex hyphen.tex
+
+% 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-us.pat b/Master/texmf-dist/tex/context/patterns/lang-us.pat
new file mode 100644
index 00000000000..a8258cb3c6b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-us.pat
@@ -0,0 +1,4949 @@
+% context pattern file, see lang-us.rme for original comment
+
+% source of data: ushyphmax.tex ushyph.tex hyphen.tex
+
+% 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/user/cont-sys.rme b/Master/texmf-dist/tex/context/user/cont-sys.rme
index a74614bd1bf..fff231619b5 100644
--- a/Master/texmf-dist/tex/context/user/cont-sys.rme
+++ b/Master/texmf-dist/tex/context/user/cont-sys.rme
@@ -82,12 +82,15 @@
\resetmapfiles
+% more recent versions of pdftex support map loading on each page
+
\donefalse \ifx\pdftexversion\undefined \else \ifnum\number\pdftexversion>119
\donetrue
\fi \fi \ifdone
\loadmapfile[original-base.map]
\loadmapfile[original-ams-base.map]
+ \loadmapfile[original-ams-euler.map]
\loadmapfile[original-public-lm.map]
\else
diff --git a/Master/texmf-dist/tex/generic/context/mptopdf.tex b/Master/texmf-dist/tex/generic/context/mptopdf.tex
index c9e4057b244..97f2890a645 100644
--- a/Master/texmf-dist/tex/generic/context/mptopdf.tex
+++ b/Master/texmf-dist/tex/generic/context/mptopdf.tex
@@ -2,104 +2,103 @@
%D [ file=mptopdf,
%D version=2000.03.27,
%D title=\METAPOST,
-%D subtitle=conversion to \PDF,
+%D subtitle=conversion to \PDF,
%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.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
-%D The file \type {mptopdf} provides a quick way to convert
-%D \METAPOST\ files to \PDF\ using a slightly stripped down
-%D plain \TEX, \PDFTEX, and a few \CONTEXT\ modules.
+%D The file \type {mptopdf} provides a quick way to convert
+%D \METAPOST\ files to \PDF\ using a slightly stripped down
+%D plain \TEX, \PDFTEX, and a few \CONTEXT\ modules.
%D
%D First generate a format, which in \WEBC\ looks like:
%D
-%D \starttyping
-%D pdftex --ini mptopdf
-%D \stoptyping
+%D \starttyping
+%D pdftex --ini mptopdf
+%D \stoptyping
%D
-%D or:
+%D or:
%D
-%D \starttyping
-%D texexec --make --tex=pdftex --format=mptopdf --alone
-%D \stoptyping
+%D \starttyping
+%D texexec --make --tex=pdftex --format=mptopdf --alone
+%D \stoptyping
%D
-%D Since this conversion only works with \PDFTEX\ or \PDFETEX,
-%D the session is aborted when another \TEX\ is used. When
-%D finished, the resulting \type {fmt} file should be moved to
-%D the right location.
+%D Since this conversion only works with \PDFTEX\ or \PDFETEX,
+%D the session is aborted when another \TEX\ is used. When
+%D finished, the resulting \type {fmt} file should be moved to
+%D the right location.
%D
-%D The conversion itself is accomplished by:
-%D
-%D \starttyping
-%D pdftex &mptopdf \relax filename.number
-%D \stoptyping
+%D The conversion itself is accomplished by:
%D
+%D \starttyping
+%D pdftex &mptopdf \relax filename.number
+%D \stoptyping
+%D
%D The \type {\relax} is needed since we don't want to process
%D the file directly. Instead we pick up the filename using
%D \type {\everypar}. Since this file is still the first one
%D we load, although delayed, the jobname is as we expect. So,
%D at least in \WEBC, the result of the conversion comes
%D available in the file \type {filename.pdf}. This conversion
-%D process is roughly compatible with:
+%D process is roughly compatible with:
%D
-%D \starttyping
+%D \starttyping
%D texexec --pdf --fig=c --result=filename filename.number
-%D \stoptyping
+%D \stoptyping
%D
-%D This uses \CONTEXT, and is therefore slower. Therefore,
-%D we provide a small \PERL\ script that does a faster job,
-%D using the minimal format. Given that a format is
-%D generated, one can say:
+%D This uses \CONTEXT, and is therefore slower. Therefore,
+%D we provide a small \PERL\ script that does a faster job,
+%D using the minimal format. Given that a format is
+%D generated, one can say:
%D
-%D \starttyping
-%D mptopdf somefile
+%D \starttyping
+%D mptopdf somefile
%D mptopdf somefile.123
-%D mptopdf mp*.*
-%D \stoptyping
-%D
-%D The results are copied into files named \type
-%D {somefile-number}. This mechanism will also be available
+%D mptopdf mp*.*
+%D \stoptyping
+%D
+%D The results are copied into files named \type
+%D {somefile-number}. This mechanism will also be available
%D in a next release of \TEXUTIL.
-%D The \TEX\ implementation is rather simple, since we use some
+%D The \TEX\ implementation is rather simple, since we use some
%D generic \CONTEXT\ modules. Because we need a few register
-%D allocation macros, we preload plain \TEX. We don't load
-%D fonts yet.
+%D allocation macros, we preload plain \TEX. We don't load
+%D fonts yet.
\input syst-tex
-%D We check for the usage of \PDFTEX, and quit if another
-%D \TEX\ is used.
+%D We check for the usage of \PDFTEX, and quit if another
+%D \TEX\ is used.
-\ifx\pdfoutput\undefined
- \message{Sorry, you should use pdf(e)TeX instead.}
- \expandafter \endinput
+\ifx\pdfoutput\undefined
+ \message{Sorry, you should use pdf(e)TeX instead.}
+ \expandafter \endinput
\fi
-%D The conversion to \PDF\ is carried out by macros, that
-%D are collected in the file:
+%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-pdf
\input supp-mpe \MPcmykcolorstrue \MPspotcolorstrue
-%D We use no output routine.
+%D We use no output routine.
-\output{}
+\output{}
-%D Since we need to calculate and set the bounding box,
+%D Since we need to calculate and set the bounding box,
%D we definitely don't want to indent paragraphs.
-\parindent=0pt
+\parindent=0pt
%D We use \type {\everypar} to pick up the filename and
-%D process the \METAPOST\ graphic.
+%D process the \METAPOST\ graphic.
-\everypar{\processMPfile}
+\everypar{\processMPfile}
%D The main macro shows a few \PDFTEX\ primitives. The main
%D work is done by the macro \type {\convertMPtoPDF} which is
@@ -108,39 +107,39 @@
%D learn a few (\PDF) tricks. Apart from some path
%D transformations, which are needed since \PDF\ has a
%D different vision on paths, the graphic is positioned in
-%D such a way that accuracy in \PDF\ xforms is guaranteed.
+%D such a way that accuracy in \PDF\ xforms is guaranteed.
\def\processMPfile#1 %
- {\pdfoutput=1
+ {\pdfoutput=1
\pdfcompresslevel=9
\chardef\makeMPintoPDFobject=1
\hsize=100in
\vsize=\hsize
- \hoffset=-1in
+ \hoffset=-1in
\voffset=\hoffset
\topskip=0pt
\setbox0=\vbox{\convertMPtoPDF{#1}{1}{1}}%
\ifdim\wd0<1in \message{[warning: width<1in]}\fi
\ifdim\ht0<1in \message{[warning: height<1in]}\fi
- \pdfpageheight=\ht0
- \pdfpagewidth=\wd0
+ \pdfpageheight=\ht0
+ \pdfpagewidth=\wd0
\box0
\bye}
-%D The \type {\chardef} forces the converter to build a so
+%D The \type {\chardef} forces the converter to build a so
%D called xform object. This is needed in case the graphic
-%D uses special trickery, like shading.
+%D uses special trickery, like shading.
-%D Since \ACROBAT\ has troubles with figures smaller than
-%D 1~inch, we issue a warning. When embedding graphics in
-%D documents, a size less that 1~inch does not harm. In
-%D order to overload runtime directives in the \PDFTEX\
-%D configuration file, we set the offsets and output method
+%D Since \ACROBAT\ has troubles with figures smaller than
+%D 1~inch, we issue a warning. When embedding graphics in
+%D documents, a size less that 1~inch does not harm. In
+%D order to overload runtime directives in the \PDFTEX\
+%D configuration file, we set the offsets and output method
%D in the macro.
-%D
+%D
%D The resulting \PDF\ file is about as efficient as such a
%D self contained file can be. However, if needed, this \PDF\
-%D file can be converted to \EPS\ using for instance the
-%D \PDFTOPS\ program (in \WEBC) or \GHOSTSCRIPT.
+%D file can be converted to \EPS\ using for instance the
+%D \PDFTOPS\ program (in \WEBC) or \GHOSTSCRIPT.
\dump